diff --git a/Makefile b/Makefile index 0061f82..193e1f1 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ .PHONY: crds clean: - rm -r crds/ + rm -r crds/ || true crds: clean crd2pulumi --go ~/Documents/virtualization/kubeadm/cert-manager/cert-manager/1-crds.yaml diff --git a/crds/kubernetes/gateway/v1alpha2/init.go b/crds/kubernetes/gateway/v1alpha2/init.go new file mode 100644 index 0000000..6d76051 --- /dev/null +++ b/crds/kubernetes/gateway/v1alpha2/init.go @@ -0,0 +1,44 @@ +// Code generated by crd2pulumi DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha2 + +import ( + "fmt" + + "antoine-roux.tk/projects/go/pulumi-library/crds/kubernetes/internal" + "github.com/blang/semver" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "kubernetes:gateway.networking.k8s.io/v1alpha2:UDPRoute": + r = &UDPRoute{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := internal.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "crds", + "gateway.networking.k8s.io/v1alpha2", + &module{version}, + ) +} diff --git a/crds/kubernetes/gateway/v1alpha2/pulumiTypes.go b/crds/kubernetes/gateway/v1alpha2/pulumiTypes.go new file mode 100644 index 0000000..d212f71 --- /dev/null +++ b/crds/kubernetes/gateway/v1alpha2/pulumiTypes.go @@ -0,0 +1,1693 @@ +// Code generated by crd2pulumi DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha2 + +import ( + "context" + "reflect" + + "antoine-roux.tk/projects/go/pulumi-library/crds/kubernetes/internal" + v1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +var _ = internal.GetEnvOrDefault + +// UDPRoute provides a way to route UDP traffic. When combined with a Gateway listener, it can be used to forward traffic on the port specified by the listener to a set of backends specified by the UDPRoute. +type UDPRouteType struct { + ApiVersion *string `pulumi:"apiVersion"` + Kind *string `pulumi:"kind"` + Metadata *v1.ObjectMeta `pulumi:"metadata"` + // Spec defines the desired state of UDPRoute. + Spec UDPRouteSpec `pulumi:"spec"` + // Status defines the current state of UDPRoute. + Status *UDPRouteStatus `pulumi:"status"` +} + +type UDPRouteMetadata struct { +} + +// Spec defines the desired state of UDPRoute. +type UDPRouteSpec struct { + // ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a "producer" route, or the mesh implementation must support and allow "consumer" routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a "producer" route for a Service in a different namespace from the Route. + // There are two kinds of parent resources with "Core" support: + // * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. + // ParentRefs must be _distinct_. This means either that: + // * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by `group`, `kind`, `namespace`, and `name` must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. + // Some examples: + // * If one ParentRef sets `sectionName`, all ParentRefs referencing the same object must also set `sectionName`. * If one ParentRef sets `port`, all ParentRefs referencing the same object must also set `port`. * If one ParentRef sets `sectionName` and `port`, all ParentRefs referencing the same object must also set `sectionName` and `port`. + // It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. + // Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. + // ParentRefs from a Route to a Service in the same namespace are "producer" routes, which apply default routing rules to inbound connections from any namespace to the Service. + // ParentRefs from a Route to a Service in a different namespace are "consumer" routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. + ParentRefs []UDPRouteSpecParentRefs `pulumi:"parentRefs"` + // Rules are a list of UDP matchers and actions. + Rules []UDPRouteSpecRules `pulumi:"rules"` +} + +// UDPRouteSpecInput is an input type that accepts UDPRouteSpecArgs and UDPRouteSpecOutput values. +// You can construct a concrete instance of `UDPRouteSpecInput` via: +// +// UDPRouteSpecArgs{...} +type UDPRouteSpecInput interface { + pulumi.Input + + ToUDPRouteSpecOutput() UDPRouteSpecOutput + ToUDPRouteSpecOutputWithContext(context.Context) UDPRouteSpecOutput +} + +// Spec defines the desired state of UDPRoute. +type UDPRouteSpecArgs struct { + // ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a "producer" route, or the mesh implementation must support and allow "consumer" routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a "producer" route for a Service in a different namespace from the Route. + // There are two kinds of parent resources with "Core" support: + // * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. + // ParentRefs must be _distinct_. This means either that: + // * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by `group`, `kind`, `namespace`, and `name` must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. + // Some examples: + // * If one ParentRef sets `sectionName`, all ParentRefs referencing the same object must also set `sectionName`. * If one ParentRef sets `port`, all ParentRefs referencing the same object must also set `port`. * If one ParentRef sets `sectionName` and `port`, all ParentRefs referencing the same object must also set `sectionName` and `port`. + // It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. + // Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. + // ParentRefs from a Route to a Service in the same namespace are "producer" routes, which apply default routing rules to inbound connections from any namespace to the Service. + // ParentRefs from a Route to a Service in a different namespace are "consumer" routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. + ParentRefs UDPRouteSpecParentRefsArrayInput `pulumi:"parentRefs"` + // Rules are a list of UDP matchers and actions. + Rules UDPRouteSpecRulesArrayInput `pulumi:"rules"` +} + +func (UDPRouteSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UDPRouteSpec)(nil)).Elem() +} + +func (i UDPRouteSpecArgs) ToUDPRouteSpecOutput() UDPRouteSpecOutput { + return i.ToUDPRouteSpecOutputWithContext(context.Background()) +} + +func (i UDPRouteSpecArgs) ToUDPRouteSpecOutputWithContext(ctx context.Context) UDPRouteSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteSpecOutput) +} + +func (i UDPRouteSpecArgs) ToOutput(ctx context.Context) pulumix.Output[UDPRouteSpec] { + return pulumix.Output[UDPRouteSpec]{ + OutputState: i.ToUDPRouteSpecOutputWithContext(ctx).OutputState, + } +} + +func (i UDPRouteSpecArgs) ToUDPRouteSpecPtrOutput() UDPRouteSpecPtrOutput { + return i.ToUDPRouteSpecPtrOutputWithContext(context.Background()) +} + +func (i UDPRouteSpecArgs) ToUDPRouteSpecPtrOutputWithContext(ctx context.Context) UDPRouteSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteSpecOutput).ToUDPRouteSpecPtrOutputWithContext(ctx) +} + +// UDPRouteSpecPtrInput is an input type that accepts UDPRouteSpecArgs, UDPRouteSpecPtr and UDPRouteSpecPtrOutput values. +// You can construct a concrete instance of `UDPRouteSpecPtrInput` via: +// +// UDPRouteSpecArgs{...} +// +// or: +// +// nil +type UDPRouteSpecPtrInput interface { + pulumi.Input + + ToUDPRouteSpecPtrOutput() UDPRouteSpecPtrOutput + ToUDPRouteSpecPtrOutputWithContext(context.Context) UDPRouteSpecPtrOutput +} + +type udprouteSpecPtrType UDPRouteSpecArgs + +func UDPRouteSpecPtr(v *UDPRouteSpecArgs) UDPRouteSpecPtrInput { + return (*udprouteSpecPtrType)(v) +} + +func (*udprouteSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**UDPRouteSpec)(nil)).Elem() +} + +func (i *udprouteSpecPtrType) ToUDPRouteSpecPtrOutput() UDPRouteSpecPtrOutput { + return i.ToUDPRouteSpecPtrOutputWithContext(context.Background()) +} + +func (i *udprouteSpecPtrType) ToUDPRouteSpecPtrOutputWithContext(ctx context.Context) UDPRouteSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteSpecPtrOutput) +} + +func (i *udprouteSpecPtrType) ToOutput(ctx context.Context) pulumix.Output[*UDPRouteSpec] { + return pulumix.Output[*UDPRouteSpec]{ + OutputState: i.ToUDPRouteSpecPtrOutputWithContext(ctx).OutputState, + } +} + +// Spec defines the desired state of UDPRoute. +type UDPRouteSpecOutput struct{ *pulumi.OutputState } + +func (UDPRouteSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UDPRouteSpec)(nil)).Elem() +} + +func (o UDPRouteSpecOutput) ToUDPRouteSpecOutput() UDPRouteSpecOutput { + return o +} + +func (o UDPRouteSpecOutput) ToUDPRouteSpecOutputWithContext(ctx context.Context) UDPRouteSpecOutput { + return o +} + +func (o UDPRouteSpecOutput) ToUDPRouteSpecPtrOutput() UDPRouteSpecPtrOutput { + return o.ToUDPRouteSpecPtrOutputWithContext(context.Background()) +} + +func (o UDPRouteSpecOutput) ToUDPRouteSpecPtrOutputWithContext(ctx context.Context) UDPRouteSpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v UDPRouteSpec) *UDPRouteSpec { + return &v + }).(UDPRouteSpecPtrOutput) +} + +func (o UDPRouteSpecOutput) ToOutput(ctx context.Context) pulumix.Output[UDPRouteSpec] { + return pulumix.Output[UDPRouteSpec]{ + OutputState: o.OutputState, + } +} + +// ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a "producer" route, or the mesh implementation must support and allow "consumer" routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a "producer" route for a Service in a different namespace from the Route. +// +// There are two kinds of parent resources with "Core" support: +// * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. +// ParentRefs must be _distinct_. This means either that: +// * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by `group`, `kind`, `namespace`, and `name` must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. +// Some examples: +// * If one ParentRef sets `sectionName`, all ParentRefs referencing the same object must also set `sectionName`. * If one ParentRef sets `port`, all ParentRefs referencing the same object must also set `port`. * If one ParentRef sets `sectionName` and `port`, all ParentRefs referencing the same object must also set `sectionName` and `port`. +// It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. +// Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. +// ParentRefs from a Route to a Service in the same namespace are "producer" routes, which apply default routing rules to inbound connections from any namespace to the Service. +// ParentRefs from a Route to a Service in a different namespace are "consumer" routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. +func (o UDPRouteSpecOutput) ParentRefs() UDPRouteSpecParentRefsArrayOutput { + return o.ApplyT(func(v UDPRouteSpec) []UDPRouteSpecParentRefs { return v.ParentRefs }).(UDPRouteSpecParentRefsArrayOutput) +} + +// Rules are a list of UDP matchers and actions. +func (o UDPRouteSpecOutput) Rules() UDPRouteSpecRulesArrayOutput { + return o.ApplyT(func(v UDPRouteSpec) []UDPRouteSpecRules { return v.Rules }).(UDPRouteSpecRulesArrayOutput) +} + +type UDPRouteSpecPtrOutput struct{ *pulumi.OutputState } + +func (UDPRouteSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UDPRouteSpec)(nil)).Elem() +} + +func (o UDPRouteSpecPtrOutput) ToUDPRouteSpecPtrOutput() UDPRouteSpecPtrOutput { + return o +} + +func (o UDPRouteSpecPtrOutput) ToUDPRouteSpecPtrOutputWithContext(ctx context.Context) UDPRouteSpecPtrOutput { + return o +} + +func (o UDPRouteSpecPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*UDPRouteSpec] { + return pulumix.Output[*UDPRouteSpec]{ + OutputState: o.OutputState, + } +} + +func (o UDPRouteSpecPtrOutput) Elem() UDPRouteSpecOutput { + return o.ApplyT(func(v *UDPRouteSpec) UDPRouteSpec { + if v != nil { + return *v + } + var ret UDPRouteSpec + return ret + }).(UDPRouteSpecOutput) +} + +// ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a "producer" route, or the mesh implementation must support and allow "consumer" routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a "producer" route for a Service in a different namespace from the Route. +// +// There are two kinds of parent resources with "Core" support: +// * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. +// ParentRefs must be _distinct_. This means either that: +// * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by `group`, `kind`, `namespace`, and `name` must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. +// Some examples: +// * If one ParentRef sets `sectionName`, all ParentRefs referencing the same object must also set `sectionName`. * If one ParentRef sets `port`, all ParentRefs referencing the same object must also set `port`. * If one ParentRef sets `sectionName` and `port`, all ParentRefs referencing the same object must also set `sectionName` and `port`. +// It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. +// Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. +// ParentRefs from a Route to a Service in the same namespace are "producer" routes, which apply default routing rules to inbound connections from any namespace to the Service. +// ParentRefs from a Route to a Service in a different namespace are "consumer" routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. +func (o UDPRouteSpecPtrOutput) ParentRefs() UDPRouteSpecParentRefsArrayOutput { + return o.ApplyT(func(v *UDPRouteSpec) []UDPRouteSpecParentRefs { + if v == nil { + return nil + } + return v.ParentRefs + }).(UDPRouteSpecParentRefsArrayOutput) +} + +// Rules are a list of UDP matchers and actions. +func (o UDPRouteSpecPtrOutput) Rules() UDPRouteSpecRulesArrayOutput { + return o.ApplyT(func(v *UDPRouteSpec) []UDPRouteSpecRules { + if v == nil { + return nil + } + return v.Rules + }).(UDPRouteSpecRulesArrayOutput) +} + +// ParentReference identifies an API object (usually a Gateway) that can be considered a parent of this resource (usually a route). There are two kinds of parent resources with "Core" support: +// - Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) +// This API may be extended in the future to support additional kinds of parent resources. +// The API object must be valid in the cluster; the Group and Kind must be registered in the cluster for this reference to be valid. +type UDPRouteSpecParentRefs struct { + // Group is the group of the referent. When unspecified, "gateway.networking.k8s.io" is inferred. To set the core API group (such as for a "Service" kind referent), Group must be explicitly set to "" (empty string). + // Support: Core + Group *string `pulumi:"group"` + // Kind is kind of the referent. + // There are two kinds of parent resources with "Core" support: + // * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) + // Support for other resources is Implementation-Specific. + Kind *string `pulumi:"kind"` + // Name is the name of the referent. + // Support: Core + Name string `pulumi:"name"` + // Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. + // Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. + // ParentRefs from a Route to a Service in the same namespace are "producer" routes, which apply default routing rules to inbound connections from any namespace to the Service. + // ParentRefs from a Route to a Service in a different namespace are "consumer" routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route.\ + // Support: Core + Namespace *string `pulumi:"namespace"` + // Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. + // When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set `Port` unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. + // When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values.\ + // Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. + // For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. + // Support: Extended + Port *int `pulumi:"port"` + // SectionName is the name of a section within the target resource. In the following resources, SectionName is interpreted as the following: + // * Gateway: Listener Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. * Service: Port Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. Note that attaching Routes to Services as Parents is part of experimental Mesh support and is not supported for any other purpose. + // Implementations MAY choose to support attaching Routes to other resources. If that is the case, they MUST clearly document how SectionName is interpreted. + // When unspecified (empty string), this will reference the entire resource. For the purpose of status, an attachment is considered successful if at least one section in the parent resource accepts it. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. + // Support: Core + SectionName *string `pulumi:"sectionName"` +} + +// Defaults sets the appropriate defaults for UDPRouteSpecParentRefs +func (val *UDPRouteSpecParentRefs) Defaults() *UDPRouteSpecParentRefs { + if val == nil { + return nil + } + tmp := *val + if tmp.Group == nil { + group_ := "gateway.networking.k8s.io" + tmp.Group = &group_ + } + if tmp.Kind == nil { + kind_ := "Gateway" + tmp.Kind = &kind_ + } + return &tmp +} + +// UDPRouteSpecParentRefsInput is an input type that accepts UDPRouteSpecParentRefsArgs and UDPRouteSpecParentRefsOutput values. +// You can construct a concrete instance of `UDPRouteSpecParentRefsInput` via: +// +// UDPRouteSpecParentRefsArgs{...} +type UDPRouteSpecParentRefsInput interface { + pulumi.Input + + ToUDPRouteSpecParentRefsOutput() UDPRouteSpecParentRefsOutput + ToUDPRouteSpecParentRefsOutputWithContext(context.Context) UDPRouteSpecParentRefsOutput +} + +// ParentReference identifies an API object (usually a Gateway) that can be considered a parent of this resource (usually a route). There are two kinds of parent resources with "Core" support: +// - Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) +// This API may be extended in the future to support additional kinds of parent resources. +// The API object must be valid in the cluster; the Group and Kind must be registered in the cluster for this reference to be valid. +type UDPRouteSpecParentRefsArgs struct { + // Group is the group of the referent. When unspecified, "gateway.networking.k8s.io" is inferred. To set the core API group (such as for a "Service" kind referent), Group must be explicitly set to "" (empty string). + // Support: Core + Group pulumi.StringPtrInput `pulumi:"group"` + // Kind is kind of the referent. + // There are two kinds of parent resources with "Core" support: + // * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) + // Support for other resources is Implementation-Specific. + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Name is the name of the referent. + // Support: Core + Name pulumi.StringInput `pulumi:"name"` + // Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. + // Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. + // ParentRefs from a Route to a Service in the same namespace are "producer" routes, which apply default routing rules to inbound connections from any namespace to the Service. + // ParentRefs from a Route to a Service in a different namespace are "consumer" routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route.\ + // Support: Core + Namespace pulumi.StringPtrInput `pulumi:"namespace"` + // Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. + // When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set `Port` unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. + // When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values.\ + // Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. + // For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. + // Support: Extended + Port pulumi.IntPtrInput `pulumi:"port"` + // SectionName is the name of a section within the target resource. In the following resources, SectionName is interpreted as the following: + // * Gateway: Listener Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. * Service: Port Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. Note that attaching Routes to Services as Parents is part of experimental Mesh support and is not supported for any other purpose. + // Implementations MAY choose to support attaching Routes to other resources. If that is the case, they MUST clearly document how SectionName is interpreted. + // When unspecified (empty string), this will reference the entire resource. For the purpose of status, an attachment is considered successful if at least one section in the parent resource accepts it. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. + // Support: Core + SectionName pulumi.StringPtrInput `pulumi:"sectionName"` +} + +// Defaults sets the appropriate defaults for UDPRouteSpecParentRefsArgs +func (val *UDPRouteSpecParentRefsArgs) Defaults() *UDPRouteSpecParentRefsArgs { + if val == nil { + return nil + } + tmp := *val + if tmp.Group == nil { + tmp.Group = pulumi.StringPtr("gateway.networking.k8s.io") + } + if tmp.Kind == nil { + tmp.Kind = pulumi.StringPtr("Gateway") + } + return &tmp +} +func (UDPRouteSpecParentRefsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UDPRouteSpecParentRefs)(nil)).Elem() +} + +func (i UDPRouteSpecParentRefsArgs) ToUDPRouteSpecParentRefsOutput() UDPRouteSpecParentRefsOutput { + return i.ToUDPRouteSpecParentRefsOutputWithContext(context.Background()) +} + +func (i UDPRouteSpecParentRefsArgs) ToUDPRouteSpecParentRefsOutputWithContext(ctx context.Context) UDPRouteSpecParentRefsOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteSpecParentRefsOutput) +} + +func (i UDPRouteSpecParentRefsArgs) ToOutput(ctx context.Context) pulumix.Output[UDPRouteSpecParentRefs] { + return pulumix.Output[UDPRouteSpecParentRefs]{ + OutputState: i.ToUDPRouteSpecParentRefsOutputWithContext(ctx).OutputState, + } +} + +// UDPRouteSpecParentRefsArrayInput is an input type that accepts UDPRouteSpecParentRefsArray and UDPRouteSpecParentRefsArrayOutput values. +// You can construct a concrete instance of `UDPRouteSpecParentRefsArrayInput` via: +// +// UDPRouteSpecParentRefsArray{ UDPRouteSpecParentRefsArgs{...} } +type UDPRouteSpecParentRefsArrayInput interface { + pulumi.Input + + ToUDPRouteSpecParentRefsArrayOutput() UDPRouteSpecParentRefsArrayOutput + ToUDPRouteSpecParentRefsArrayOutputWithContext(context.Context) UDPRouteSpecParentRefsArrayOutput +} + +type UDPRouteSpecParentRefsArray []UDPRouteSpecParentRefsInput + +func (UDPRouteSpecParentRefsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]UDPRouteSpecParentRefs)(nil)).Elem() +} + +func (i UDPRouteSpecParentRefsArray) ToUDPRouteSpecParentRefsArrayOutput() UDPRouteSpecParentRefsArrayOutput { + return i.ToUDPRouteSpecParentRefsArrayOutputWithContext(context.Background()) +} + +func (i UDPRouteSpecParentRefsArray) ToUDPRouteSpecParentRefsArrayOutputWithContext(ctx context.Context) UDPRouteSpecParentRefsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteSpecParentRefsArrayOutput) +} + +func (i UDPRouteSpecParentRefsArray) ToOutput(ctx context.Context) pulumix.Output[[]UDPRouteSpecParentRefs] { + return pulumix.Output[[]UDPRouteSpecParentRefs]{ + OutputState: i.ToUDPRouteSpecParentRefsArrayOutputWithContext(ctx).OutputState, + } +} + +// ParentReference identifies an API object (usually a Gateway) that can be considered a parent of this resource (usually a route). There are two kinds of parent resources with "Core" support: +// - Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) +// This API may be extended in the future to support additional kinds of parent resources. +// The API object must be valid in the cluster; the Group and Kind must be registered in the cluster for this reference to be valid. +type UDPRouteSpecParentRefsOutput struct{ *pulumi.OutputState } + +func (UDPRouteSpecParentRefsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UDPRouteSpecParentRefs)(nil)).Elem() +} + +func (o UDPRouteSpecParentRefsOutput) ToUDPRouteSpecParentRefsOutput() UDPRouteSpecParentRefsOutput { + return o +} + +func (o UDPRouteSpecParentRefsOutput) ToUDPRouteSpecParentRefsOutputWithContext(ctx context.Context) UDPRouteSpecParentRefsOutput { + return o +} + +func (o UDPRouteSpecParentRefsOutput) ToOutput(ctx context.Context) pulumix.Output[UDPRouteSpecParentRefs] { + return pulumix.Output[UDPRouteSpecParentRefs]{ + OutputState: o.OutputState, + } +} + +// Group is the group of the referent. When unspecified, "gateway.networking.k8s.io" is inferred. To set the core API group (such as for a "Service" kind referent), Group must be explicitly set to "" (empty string). +// +// Support: Core +func (o UDPRouteSpecParentRefsOutput) Group() pulumi.StringPtrOutput { + return o.ApplyT(func(v UDPRouteSpecParentRefs) *string { return v.Group }).(pulumi.StringPtrOutput) +} + +// Kind is kind of the referent. +// +// There are two kinds of parent resources with "Core" support: +// * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) +// Support for other resources is Implementation-Specific. +func (o UDPRouteSpecParentRefsOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v UDPRouteSpecParentRefs) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Name is the name of the referent. +// +// Support: Core +func (o UDPRouteSpecParentRefsOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v UDPRouteSpecParentRefs) string { return v.Name }).(pulumi.StringOutput) +} + +// Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. +// +// Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. +// ParentRefs from a Route to a Service in the same namespace are "producer" routes, which apply default routing rules to inbound connections from any namespace to the Service. +// ParentRefs from a Route to a Service in a different namespace are "consumer" routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route.\ +// Support: Core +func (o UDPRouteSpecParentRefsOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v UDPRouteSpecParentRefs) *string { return v.Namespace }).(pulumi.StringPtrOutput) +} + +// Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. +// +// When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set `Port` unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. +// When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values.\ +// Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. +// For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. +// Support: Extended +func (o UDPRouteSpecParentRefsOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v UDPRouteSpecParentRefs) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// SectionName is the name of a section within the target resource. In the following resources, SectionName is interpreted as the following: +// - Gateway: Listener Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. * Service: Port Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. Note that attaching Routes to Services as Parents is part of experimental Mesh support and is not supported for any other purpose. +// Implementations MAY choose to support attaching Routes to other resources. If that is the case, they MUST clearly document how SectionName is interpreted. +// When unspecified (empty string), this will reference the entire resource. For the purpose of status, an attachment is considered successful if at least one section in the parent resource accepts it. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. +// Support: Core +func (o UDPRouteSpecParentRefsOutput) SectionName() pulumi.StringPtrOutput { + return o.ApplyT(func(v UDPRouteSpecParentRefs) *string { return v.SectionName }).(pulumi.StringPtrOutput) +} + +type UDPRouteSpecParentRefsArrayOutput struct{ *pulumi.OutputState } + +func (UDPRouteSpecParentRefsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]UDPRouteSpecParentRefs)(nil)).Elem() +} + +func (o UDPRouteSpecParentRefsArrayOutput) ToUDPRouteSpecParentRefsArrayOutput() UDPRouteSpecParentRefsArrayOutput { + return o +} + +func (o UDPRouteSpecParentRefsArrayOutput) ToUDPRouteSpecParentRefsArrayOutputWithContext(ctx context.Context) UDPRouteSpecParentRefsArrayOutput { + return o +} + +func (o UDPRouteSpecParentRefsArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]UDPRouteSpecParentRefs] { + return pulumix.Output[[]UDPRouteSpecParentRefs]{ + OutputState: o.OutputState, + } +} + +func (o UDPRouteSpecParentRefsArrayOutput) Index(i pulumi.IntInput) UDPRouteSpecParentRefsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) UDPRouteSpecParentRefs { + return vs[0].([]UDPRouteSpecParentRefs)[vs[1].(int)] + }).(UDPRouteSpecParentRefsOutput) +} + +// UDPRouteRule is the configuration for a given rule. +type UDPRouteSpecRules struct { + // BackendRefs defines the backend(s) where matching requests should be sent. If unspecified or invalid (refers to a non-existent resource or a Service with no endpoints), the underlying implementation MUST actively reject connection attempts to this backend. Packet drops must respect weight; if an invalid backend is requested to have 80% of the packets, then 80% of packets must be dropped instead. + // Support: Core for Kubernetes Service + // Support: Extended for Kubernetes ServiceImport + // Support: Implementation-specific for any other resource + // Support for weight: Extended + BackendRefs []UDPRouteSpecRulesBackendRefs `pulumi:"backendRefs"` +} + +// UDPRouteSpecRulesInput is an input type that accepts UDPRouteSpecRulesArgs and UDPRouteSpecRulesOutput values. +// You can construct a concrete instance of `UDPRouteSpecRulesInput` via: +// +// UDPRouteSpecRulesArgs{...} +type UDPRouteSpecRulesInput interface { + pulumi.Input + + ToUDPRouteSpecRulesOutput() UDPRouteSpecRulesOutput + ToUDPRouteSpecRulesOutputWithContext(context.Context) UDPRouteSpecRulesOutput +} + +// UDPRouteRule is the configuration for a given rule. +type UDPRouteSpecRulesArgs struct { + // BackendRefs defines the backend(s) where matching requests should be sent. If unspecified or invalid (refers to a non-existent resource or a Service with no endpoints), the underlying implementation MUST actively reject connection attempts to this backend. Packet drops must respect weight; if an invalid backend is requested to have 80% of the packets, then 80% of packets must be dropped instead. + // Support: Core for Kubernetes Service + // Support: Extended for Kubernetes ServiceImport + // Support: Implementation-specific for any other resource + // Support for weight: Extended + BackendRefs UDPRouteSpecRulesBackendRefsArrayInput `pulumi:"backendRefs"` +} + +func (UDPRouteSpecRulesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UDPRouteSpecRules)(nil)).Elem() +} + +func (i UDPRouteSpecRulesArgs) ToUDPRouteSpecRulesOutput() UDPRouteSpecRulesOutput { + return i.ToUDPRouteSpecRulesOutputWithContext(context.Background()) +} + +func (i UDPRouteSpecRulesArgs) ToUDPRouteSpecRulesOutputWithContext(ctx context.Context) UDPRouteSpecRulesOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteSpecRulesOutput) +} + +func (i UDPRouteSpecRulesArgs) ToOutput(ctx context.Context) pulumix.Output[UDPRouteSpecRules] { + return pulumix.Output[UDPRouteSpecRules]{ + OutputState: i.ToUDPRouteSpecRulesOutputWithContext(ctx).OutputState, + } +} + +// UDPRouteSpecRulesArrayInput is an input type that accepts UDPRouteSpecRulesArray and UDPRouteSpecRulesArrayOutput values. +// You can construct a concrete instance of `UDPRouteSpecRulesArrayInput` via: +// +// UDPRouteSpecRulesArray{ UDPRouteSpecRulesArgs{...} } +type UDPRouteSpecRulesArrayInput interface { + pulumi.Input + + ToUDPRouteSpecRulesArrayOutput() UDPRouteSpecRulesArrayOutput + ToUDPRouteSpecRulesArrayOutputWithContext(context.Context) UDPRouteSpecRulesArrayOutput +} + +type UDPRouteSpecRulesArray []UDPRouteSpecRulesInput + +func (UDPRouteSpecRulesArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]UDPRouteSpecRules)(nil)).Elem() +} + +func (i UDPRouteSpecRulesArray) ToUDPRouteSpecRulesArrayOutput() UDPRouteSpecRulesArrayOutput { + return i.ToUDPRouteSpecRulesArrayOutputWithContext(context.Background()) +} + +func (i UDPRouteSpecRulesArray) ToUDPRouteSpecRulesArrayOutputWithContext(ctx context.Context) UDPRouteSpecRulesArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteSpecRulesArrayOutput) +} + +func (i UDPRouteSpecRulesArray) ToOutput(ctx context.Context) pulumix.Output[[]UDPRouteSpecRules] { + return pulumix.Output[[]UDPRouteSpecRules]{ + OutputState: i.ToUDPRouteSpecRulesArrayOutputWithContext(ctx).OutputState, + } +} + +// UDPRouteRule is the configuration for a given rule. +type UDPRouteSpecRulesOutput struct{ *pulumi.OutputState } + +func (UDPRouteSpecRulesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UDPRouteSpecRules)(nil)).Elem() +} + +func (o UDPRouteSpecRulesOutput) ToUDPRouteSpecRulesOutput() UDPRouteSpecRulesOutput { + return o +} + +func (o UDPRouteSpecRulesOutput) ToUDPRouteSpecRulesOutputWithContext(ctx context.Context) UDPRouteSpecRulesOutput { + return o +} + +func (o UDPRouteSpecRulesOutput) ToOutput(ctx context.Context) pulumix.Output[UDPRouteSpecRules] { + return pulumix.Output[UDPRouteSpecRules]{ + OutputState: o.OutputState, + } +} + +// BackendRefs defines the backend(s) where matching requests should be sent. If unspecified or invalid (refers to a non-existent resource or a Service with no endpoints), the underlying implementation MUST actively reject connection attempts to this backend. Packet drops must respect weight; if an invalid backend is requested to have 80% of the packets, then 80% of packets must be dropped instead. +// +// Support: Core for Kubernetes Service +// Support: Extended for Kubernetes ServiceImport +// Support: Implementation-specific for any other resource +// Support for weight: Extended +func (o UDPRouteSpecRulesOutput) BackendRefs() UDPRouteSpecRulesBackendRefsArrayOutput { + return o.ApplyT(func(v UDPRouteSpecRules) []UDPRouteSpecRulesBackendRefs { return v.BackendRefs }).(UDPRouteSpecRulesBackendRefsArrayOutput) +} + +type UDPRouteSpecRulesArrayOutput struct{ *pulumi.OutputState } + +func (UDPRouteSpecRulesArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]UDPRouteSpecRules)(nil)).Elem() +} + +func (o UDPRouteSpecRulesArrayOutput) ToUDPRouteSpecRulesArrayOutput() UDPRouteSpecRulesArrayOutput { + return o +} + +func (o UDPRouteSpecRulesArrayOutput) ToUDPRouteSpecRulesArrayOutputWithContext(ctx context.Context) UDPRouteSpecRulesArrayOutput { + return o +} + +func (o UDPRouteSpecRulesArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]UDPRouteSpecRules] { + return pulumix.Output[[]UDPRouteSpecRules]{ + OutputState: o.OutputState, + } +} + +func (o UDPRouteSpecRulesArrayOutput) Index(i pulumi.IntInput) UDPRouteSpecRulesOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) UDPRouteSpecRules { + return vs[0].([]UDPRouteSpecRules)[vs[1].(int)] + }).(UDPRouteSpecRulesOutput) +} + +// BackendRef defines how a Route should forward a request to a Kubernetes resource. +// +// Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. +// +// When the BackendRef points to a Kubernetes Service, implementations SHOULD honor the appProtocol field if it is set for the target Service Port. +// Implementations supporting appProtocol SHOULD recognize the Kubernetes Standard Application Protocols defined in KEP-3726. +// If a Service appProtocol isn't specified, an implementation MAY infer the backend protocol through its own means. Implementations MAY infer the protocol from the Route type referring to the backend Service. +// If a Route is not able to send traffic to the backend using the specified protocol then the backend is considered invalid. Implementations MUST set the "ResolvedRefs" condition to "False" with the "UnsupportedProtocol" reason. +// +// Note that when the BackendTLSPolicy object is enabled by the implementation, there are some extra rules about validity to consider here. See the fields where this struct is used for more information about the exact behavior. +type UDPRouteSpecRulesBackendRefs struct { + // Group is the group of the referent. For example, "gateway.networking.k8s.io". When unspecified or empty string, core API group is inferred. + Group *string `pulumi:"group"` + // Kind is the Kubernetes resource kind of the referent. For example "Service". + // Defaults to "Service" when not specified. + // ExternalName services can refer to CNAME DNS records that may live outside of the cluster and as such are difficult to reason about in terms of conformance. They also may not be safe to forward to (see CVE-2021-25740 for more information). Implementations SHOULD NOT support ExternalName Services. + // Support: Core (Services with a type other than ExternalName) + // Support: Implementation-specific (Services with type ExternalName) + Kind *string `pulumi:"kind"` + // Name is the name of the referent. + Name string `pulumi:"name"` + // Namespace is the namespace of the backend. When unspecified, the local namespace is inferred. + // Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. + // Support: Core + Namespace *string `pulumi:"namespace"` + // Port specifies the destination port number to use for this resource. Port is required when the referent is a Kubernetes Service. In this case, the port number is the service port number, not the target port. For other resources, destination port might be derived from the referent resource or this field. + Port *int `pulumi:"port"` + // Weight specifies the proportion of requests forwarded to the referenced backend. This is computed as weight/(sum of all weights in this BackendRefs list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. Weight is not a percentage and the sum of weights does not need to equal 100. + // If only one backend is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weight is set to 0, no traffic should be forwarded for this entry. If unspecified, weight defaults to 1. + // Support for this field varies based on the context where used. + Weight *int `pulumi:"weight"` +} + +// Defaults sets the appropriate defaults for UDPRouteSpecRulesBackendRefs +func (val *UDPRouteSpecRulesBackendRefs) Defaults() *UDPRouteSpecRulesBackendRefs { + if val == nil { + return nil + } + tmp := *val + if tmp.Group == nil { + group_ := "" + tmp.Group = &group_ + } + if tmp.Kind == nil { + kind_ := "Service" + tmp.Kind = &kind_ + } + if tmp.Weight == nil { + weight_ := 1 + tmp.Weight = &weight_ + } + return &tmp +} + +// UDPRouteSpecRulesBackendRefsInput is an input type that accepts UDPRouteSpecRulesBackendRefsArgs and UDPRouteSpecRulesBackendRefsOutput values. +// You can construct a concrete instance of `UDPRouteSpecRulesBackendRefsInput` via: +// +// UDPRouteSpecRulesBackendRefsArgs{...} +type UDPRouteSpecRulesBackendRefsInput interface { + pulumi.Input + + ToUDPRouteSpecRulesBackendRefsOutput() UDPRouteSpecRulesBackendRefsOutput + ToUDPRouteSpecRulesBackendRefsOutputWithContext(context.Context) UDPRouteSpecRulesBackendRefsOutput +} + +// BackendRef defines how a Route should forward a request to a Kubernetes resource. +// +// Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. +// +// When the BackendRef points to a Kubernetes Service, implementations SHOULD honor the appProtocol field if it is set for the target Service Port. +// Implementations supporting appProtocol SHOULD recognize the Kubernetes Standard Application Protocols defined in KEP-3726. +// If a Service appProtocol isn't specified, an implementation MAY infer the backend protocol through its own means. Implementations MAY infer the protocol from the Route type referring to the backend Service. +// If a Route is not able to send traffic to the backend using the specified protocol then the backend is considered invalid. Implementations MUST set the "ResolvedRefs" condition to "False" with the "UnsupportedProtocol" reason. +// +// Note that when the BackendTLSPolicy object is enabled by the implementation, there are some extra rules about validity to consider here. See the fields where this struct is used for more information about the exact behavior. +type UDPRouteSpecRulesBackendRefsArgs struct { + // Group is the group of the referent. For example, "gateway.networking.k8s.io". When unspecified or empty string, core API group is inferred. + Group pulumi.StringPtrInput `pulumi:"group"` + // Kind is the Kubernetes resource kind of the referent. For example "Service". + // Defaults to "Service" when not specified. + // ExternalName services can refer to CNAME DNS records that may live outside of the cluster and as such are difficult to reason about in terms of conformance. They also may not be safe to forward to (see CVE-2021-25740 for more information). Implementations SHOULD NOT support ExternalName Services. + // Support: Core (Services with a type other than ExternalName) + // Support: Implementation-specific (Services with type ExternalName) + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Name is the name of the referent. + Name pulumi.StringInput `pulumi:"name"` + // Namespace is the namespace of the backend. When unspecified, the local namespace is inferred. + // Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. + // Support: Core + Namespace pulumi.StringPtrInput `pulumi:"namespace"` + // Port specifies the destination port number to use for this resource. Port is required when the referent is a Kubernetes Service. In this case, the port number is the service port number, not the target port. For other resources, destination port might be derived from the referent resource or this field. + Port pulumi.IntPtrInput `pulumi:"port"` + // Weight specifies the proportion of requests forwarded to the referenced backend. This is computed as weight/(sum of all weights in this BackendRefs list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. Weight is not a percentage and the sum of weights does not need to equal 100. + // If only one backend is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weight is set to 0, no traffic should be forwarded for this entry. If unspecified, weight defaults to 1. + // Support for this field varies based on the context where used. + Weight pulumi.IntPtrInput `pulumi:"weight"` +} + +// Defaults sets the appropriate defaults for UDPRouteSpecRulesBackendRefsArgs +func (val *UDPRouteSpecRulesBackendRefsArgs) Defaults() *UDPRouteSpecRulesBackendRefsArgs { + if val == nil { + return nil + } + tmp := *val + if tmp.Group == nil { + tmp.Group = pulumi.StringPtr("") + } + if tmp.Kind == nil { + tmp.Kind = pulumi.StringPtr("Service") + } + if tmp.Weight == nil { + tmp.Weight = pulumi.IntPtr(1) + } + return &tmp +} +func (UDPRouteSpecRulesBackendRefsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UDPRouteSpecRulesBackendRefs)(nil)).Elem() +} + +func (i UDPRouteSpecRulesBackendRefsArgs) ToUDPRouteSpecRulesBackendRefsOutput() UDPRouteSpecRulesBackendRefsOutput { + return i.ToUDPRouteSpecRulesBackendRefsOutputWithContext(context.Background()) +} + +func (i UDPRouteSpecRulesBackendRefsArgs) ToUDPRouteSpecRulesBackendRefsOutputWithContext(ctx context.Context) UDPRouteSpecRulesBackendRefsOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteSpecRulesBackendRefsOutput) +} + +func (i UDPRouteSpecRulesBackendRefsArgs) ToOutput(ctx context.Context) pulumix.Output[UDPRouteSpecRulesBackendRefs] { + return pulumix.Output[UDPRouteSpecRulesBackendRefs]{ + OutputState: i.ToUDPRouteSpecRulesBackendRefsOutputWithContext(ctx).OutputState, + } +} + +// UDPRouteSpecRulesBackendRefsArrayInput is an input type that accepts UDPRouteSpecRulesBackendRefsArray and UDPRouteSpecRulesBackendRefsArrayOutput values. +// You can construct a concrete instance of `UDPRouteSpecRulesBackendRefsArrayInput` via: +// +// UDPRouteSpecRulesBackendRefsArray{ UDPRouteSpecRulesBackendRefsArgs{...} } +type UDPRouteSpecRulesBackendRefsArrayInput interface { + pulumi.Input + + ToUDPRouteSpecRulesBackendRefsArrayOutput() UDPRouteSpecRulesBackendRefsArrayOutput + ToUDPRouteSpecRulesBackendRefsArrayOutputWithContext(context.Context) UDPRouteSpecRulesBackendRefsArrayOutput +} + +type UDPRouteSpecRulesBackendRefsArray []UDPRouteSpecRulesBackendRefsInput + +func (UDPRouteSpecRulesBackendRefsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]UDPRouteSpecRulesBackendRefs)(nil)).Elem() +} + +func (i UDPRouteSpecRulesBackendRefsArray) ToUDPRouteSpecRulesBackendRefsArrayOutput() UDPRouteSpecRulesBackendRefsArrayOutput { + return i.ToUDPRouteSpecRulesBackendRefsArrayOutputWithContext(context.Background()) +} + +func (i UDPRouteSpecRulesBackendRefsArray) ToUDPRouteSpecRulesBackendRefsArrayOutputWithContext(ctx context.Context) UDPRouteSpecRulesBackendRefsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteSpecRulesBackendRefsArrayOutput) +} + +func (i UDPRouteSpecRulesBackendRefsArray) ToOutput(ctx context.Context) pulumix.Output[[]UDPRouteSpecRulesBackendRefs] { + return pulumix.Output[[]UDPRouteSpecRulesBackendRefs]{ + OutputState: i.ToUDPRouteSpecRulesBackendRefsArrayOutputWithContext(ctx).OutputState, + } +} + +// BackendRef defines how a Route should forward a request to a Kubernetes resource. +// +// Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. +// +// When the BackendRef points to a Kubernetes Service, implementations SHOULD honor the appProtocol field if it is set for the target Service Port. +// Implementations supporting appProtocol SHOULD recognize the Kubernetes Standard Application Protocols defined in KEP-3726. +// If a Service appProtocol isn't specified, an implementation MAY infer the backend protocol through its own means. Implementations MAY infer the protocol from the Route type referring to the backend Service. +// If a Route is not able to send traffic to the backend using the specified protocol then the backend is considered invalid. Implementations MUST set the "ResolvedRefs" condition to "False" with the "UnsupportedProtocol" reason. +// +// Note that when the BackendTLSPolicy object is enabled by the implementation, there are some extra rules about validity to consider here. See the fields where this struct is used for more information about the exact behavior. +type UDPRouteSpecRulesBackendRefsOutput struct{ *pulumi.OutputState } + +func (UDPRouteSpecRulesBackendRefsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UDPRouteSpecRulesBackendRefs)(nil)).Elem() +} + +func (o UDPRouteSpecRulesBackendRefsOutput) ToUDPRouteSpecRulesBackendRefsOutput() UDPRouteSpecRulesBackendRefsOutput { + return o +} + +func (o UDPRouteSpecRulesBackendRefsOutput) ToUDPRouteSpecRulesBackendRefsOutputWithContext(ctx context.Context) UDPRouteSpecRulesBackendRefsOutput { + return o +} + +func (o UDPRouteSpecRulesBackendRefsOutput) ToOutput(ctx context.Context) pulumix.Output[UDPRouteSpecRulesBackendRefs] { + return pulumix.Output[UDPRouteSpecRulesBackendRefs]{ + OutputState: o.OutputState, + } +} + +// Group is the group of the referent. For example, "gateway.networking.k8s.io". When unspecified or empty string, core API group is inferred. +func (o UDPRouteSpecRulesBackendRefsOutput) Group() pulumi.StringPtrOutput { + return o.ApplyT(func(v UDPRouteSpecRulesBackendRefs) *string { return v.Group }).(pulumi.StringPtrOutput) +} + +// Kind is the Kubernetes resource kind of the referent. For example "Service". +// +// Defaults to "Service" when not specified. +// ExternalName services can refer to CNAME DNS records that may live outside of the cluster and as such are difficult to reason about in terms of conformance. They also may not be safe to forward to (see CVE-2021-25740 for more information). Implementations SHOULD NOT support ExternalName Services. +// Support: Core (Services with a type other than ExternalName) +// Support: Implementation-specific (Services with type ExternalName) +func (o UDPRouteSpecRulesBackendRefsOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v UDPRouteSpecRulesBackendRefs) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Name is the name of the referent. +func (o UDPRouteSpecRulesBackendRefsOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v UDPRouteSpecRulesBackendRefs) string { return v.Name }).(pulumi.StringOutput) +} + +// Namespace is the namespace of the backend. When unspecified, the local namespace is inferred. +// +// Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. +// Support: Core +func (o UDPRouteSpecRulesBackendRefsOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v UDPRouteSpecRulesBackendRefs) *string { return v.Namespace }).(pulumi.StringPtrOutput) +} + +// Port specifies the destination port number to use for this resource. Port is required when the referent is a Kubernetes Service. In this case, the port number is the service port number, not the target port. For other resources, destination port might be derived from the referent resource or this field. +func (o UDPRouteSpecRulesBackendRefsOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v UDPRouteSpecRulesBackendRefs) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// Weight specifies the proportion of requests forwarded to the referenced backend. This is computed as weight/(sum of all weights in this BackendRefs list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. Weight is not a percentage and the sum of weights does not need to equal 100. +// +// If only one backend is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weight is set to 0, no traffic should be forwarded for this entry. If unspecified, weight defaults to 1. +// Support for this field varies based on the context where used. +func (o UDPRouteSpecRulesBackendRefsOutput) Weight() pulumi.IntPtrOutput { + return o.ApplyT(func(v UDPRouteSpecRulesBackendRefs) *int { return v.Weight }).(pulumi.IntPtrOutput) +} + +type UDPRouteSpecRulesBackendRefsArrayOutput struct{ *pulumi.OutputState } + +func (UDPRouteSpecRulesBackendRefsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]UDPRouteSpecRulesBackendRefs)(nil)).Elem() +} + +func (o UDPRouteSpecRulesBackendRefsArrayOutput) ToUDPRouteSpecRulesBackendRefsArrayOutput() UDPRouteSpecRulesBackendRefsArrayOutput { + return o +} + +func (o UDPRouteSpecRulesBackendRefsArrayOutput) ToUDPRouteSpecRulesBackendRefsArrayOutputWithContext(ctx context.Context) UDPRouteSpecRulesBackendRefsArrayOutput { + return o +} + +func (o UDPRouteSpecRulesBackendRefsArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]UDPRouteSpecRulesBackendRefs] { + return pulumix.Output[[]UDPRouteSpecRulesBackendRefs]{ + OutputState: o.OutputState, + } +} + +func (o UDPRouteSpecRulesBackendRefsArrayOutput) Index(i pulumi.IntInput) UDPRouteSpecRulesBackendRefsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) UDPRouteSpecRulesBackendRefs { + return vs[0].([]UDPRouteSpecRulesBackendRefs)[vs[1].(int)] + }).(UDPRouteSpecRulesBackendRefsOutput) +} + +// Status defines the current state of UDPRoute. +type UDPRouteStatus struct { + // Parents is a list of parent resources (usually Gateways) that are associated with the route, and the status of the route with respect to each parent. When this route attaches to a parent, the controller that manages the parent must add an entry to this list when the controller first sees the route and should update the entry as appropriate when the route or gateway is modified. + // Note that parent references that cannot be resolved by an implementation of this API will not be added to this list. Implementations of this API can only populate Route status for the Gateways/parent resources they are responsible for. + // A maximum of 32 Gateways will be represented in this list. An empty list means the route has not been attached to any Gateway. + Parents []UDPRouteStatusParents `pulumi:"parents"` +} + +// UDPRouteStatusInput is an input type that accepts UDPRouteStatusArgs and UDPRouteStatusOutput values. +// You can construct a concrete instance of `UDPRouteStatusInput` via: +// +// UDPRouteStatusArgs{...} +type UDPRouteStatusInput interface { + pulumi.Input + + ToUDPRouteStatusOutput() UDPRouteStatusOutput + ToUDPRouteStatusOutputWithContext(context.Context) UDPRouteStatusOutput +} + +// Status defines the current state of UDPRoute. +type UDPRouteStatusArgs struct { + // Parents is a list of parent resources (usually Gateways) that are associated with the route, and the status of the route with respect to each parent. When this route attaches to a parent, the controller that manages the parent must add an entry to this list when the controller first sees the route and should update the entry as appropriate when the route or gateway is modified. + // Note that parent references that cannot be resolved by an implementation of this API will not be added to this list. Implementations of this API can only populate Route status for the Gateways/parent resources they are responsible for. + // A maximum of 32 Gateways will be represented in this list. An empty list means the route has not been attached to any Gateway. + Parents UDPRouteStatusParentsArrayInput `pulumi:"parents"` +} + +func (UDPRouteStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UDPRouteStatus)(nil)).Elem() +} + +func (i UDPRouteStatusArgs) ToUDPRouteStatusOutput() UDPRouteStatusOutput { + return i.ToUDPRouteStatusOutputWithContext(context.Background()) +} + +func (i UDPRouteStatusArgs) ToUDPRouteStatusOutputWithContext(ctx context.Context) UDPRouteStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteStatusOutput) +} + +func (i UDPRouteStatusArgs) ToOutput(ctx context.Context) pulumix.Output[UDPRouteStatus] { + return pulumix.Output[UDPRouteStatus]{ + OutputState: i.ToUDPRouteStatusOutputWithContext(ctx).OutputState, + } +} + +func (i UDPRouteStatusArgs) ToUDPRouteStatusPtrOutput() UDPRouteStatusPtrOutput { + return i.ToUDPRouteStatusPtrOutputWithContext(context.Background()) +} + +func (i UDPRouteStatusArgs) ToUDPRouteStatusPtrOutputWithContext(ctx context.Context) UDPRouteStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteStatusOutput).ToUDPRouteStatusPtrOutputWithContext(ctx) +} + +// UDPRouteStatusPtrInput is an input type that accepts UDPRouteStatusArgs, UDPRouteStatusPtr and UDPRouteStatusPtrOutput values. +// You can construct a concrete instance of `UDPRouteStatusPtrInput` via: +// +// UDPRouteStatusArgs{...} +// +// or: +// +// nil +type UDPRouteStatusPtrInput interface { + pulumi.Input + + ToUDPRouteStatusPtrOutput() UDPRouteStatusPtrOutput + ToUDPRouteStatusPtrOutputWithContext(context.Context) UDPRouteStatusPtrOutput +} + +type udprouteStatusPtrType UDPRouteStatusArgs + +func UDPRouteStatusPtr(v *UDPRouteStatusArgs) UDPRouteStatusPtrInput { + return (*udprouteStatusPtrType)(v) +} + +func (*udprouteStatusPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**UDPRouteStatus)(nil)).Elem() +} + +func (i *udprouteStatusPtrType) ToUDPRouteStatusPtrOutput() UDPRouteStatusPtrOutput { + return i.ToUDPRouteStatusPtrOutputWithContext(context.Background()) +} + +func (i *udprouteStatusPtrType) ToUDPRouteStatusPtrOutputWithContext(ctx context.Context) UDPRouteStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteStatusPtrOutput) +} + +func (i *udprouteStatusPtrType) ToOutput(ctx context.Context) pulumix.Output[*UDPRouteStatus] { + return pulumix.Output[*UDPRouteStatus]{ + OutputState: i.ToUDPRouteStatusPtrOutputWithContext(ctx).OutputState, + } +} + +// Status defines the current state of UDPRoute. +type UDPRouteStatusOutput struct{ *pulumi.OutputState } + +func (UDPRouteStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UDPRouteStatus)(nil)).Elem() +} + +func (o UDPRouteStatusOutput) ToUDPRouteStatusOutput() UDPRouteStatusOutput { + return o +} + +func (o UDPRouteStatusOutput) ToUDPRouteStatusOutputWithContext(ctx context.Context) UDPRouteStatusOutput { + return o +} + +func (o UDPRouteStatusOutput) ToUDPRouteStatusPtrOutput() UDPRouteStatusPtrOutput { + return o.ToUDPRouteStatusPtrOutputWithContext(context.Background()) +} + +func (o UDPRouteStatusOutput) ToUDPRouteStatusPtrOutputWithContext(ctx context.Context) UDPRouteStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v UDPRouteStatus) *UDPRouteStatus { + return &v + }).(UDPRouteStatusPtrOutput) +} + +func (o UDPRouteStatusOutput) ToOutput(ctx context.Context) pulumix.Output[UDPRouteStatus] { + return pulumix.Output[UDPRouteStatus]{ + OutputState: o.OutputState, + } +} + +// Parents is a list of parent resources (usually Gateways) that are associated with the route, and the status of the route with respect to each parent. When this route attaches to a parent, the controller that manages the parent must add an entry to this list when the controller first sees the route and should update the entry as appropriate when the route or gateway is modified. +// +// Note that parent references that cannot be resolved by an implementation of this API will not be added to this list. Implementations of this API can only populate Route status for the Gateways/parent resources they are responsible for. +// A maximum of 32 Gateways will be represented in this list. An empty list means the route has not been attached to any Gateway. +func (o UDPRouteStatusOutput) Parents() UDPRouteStatusParentsArrayOutput { + return o.ApplyT(func(v UDPRouteStatus) []UDPRouteStatusParents { return v.Parents }).(UDPRouteStatusParentsArrayOutput) +} + +type UDPRouteStatusPtrOutput struct{ *pulumi.OutputState } + +func (UDPRouteStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UDPRouteStatus)(nil)).Elem() +} + +func (o UDPRouteStatusPtrOutput) ToUDPRouteStatusPtrOutput() UDPRouteStatusPtrOutput { + return o +} + +func (o UDPRouteStatusPtrOutput) ToUDPRouteStatusPtrOutputWithContext(ctx context.Context) UDPRouteStatusPtrOutput { + return o +} + +func (o UDPRouteStatusPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*UDPRouteStatus] { + return pulumix.Output[*UDPRouteStatus]{ + OutputState: o.OutputState, + } +} + +func (o UDPRouteStatusPtrOutput) Elem() UDPRouteStatusOutput { + return o.ApplyT(func(v *UDPRouteStatus) UDPRouteStatus { + if v != nil { + return *v + } + var ret UDPRouteStatus + return ret + }).(UDPRouteStatusOutput) +} + +// Parents is a list of parent resources (usually Gateways) that are associated with the route, and the status of the route with respect to each parent. When this route attaches to a parent, the controller that manages the parent must add an entry to this list when the controller first sees the route and should update the entry as appropriate when the route or gateway is modified. +// +// Note that parent references that cannot be resolved by an implementation of this API will not be added to this list. Implementations of this API can only populate Route status for the Gateways/parent resources they are responsible for. +// A maximum of 32 Gateways will be represented in this list. An empty list means the route has not been attached to any Gateway. +func (o UDPRouteStatusPtrOutput) Parents() UDPRouteStatusParentsArrayOutput { + return o.ApplyT(func(v *UDPRouteStatus) []UDPRouteStatusParents { + if v == nil { + return nil + } + return v.Parents + }).(UDPRouteStatusParentsArrayOutput) +} + +// RouteParentStatus describes the status of a route with respect to an associated Parent. +type UDPRouteStatusParents struct { + // Conditions describes the status of the route with respect to the Gateway. Note that the route's availability is also subject to the Gateway's own status conditions and listener status. + // If the Route's ParentRef specifies an existing Gateway that supports Routes of this kind AND that Gateway's controller has sufficient access, then that Gateway's controller MUST set the "Accepted" condition on the Route, to indicate whether the route has been accepted or rejected by the Gateway, and why. + // A Route MUST be considered "Accepted" if at least one of the Route's rules is implemented by the Gateway. + // There are a number of cases where the "Accepted" condition may not be set due to lack of controller visibility, that includes when: + // * The Route refers to a non-existent parent. * The Route is of a type that the controller does not support. * The Route is in a namespace the controller does not have access to. + Conditions []UDPRouteStatusParentsConditions `pulumi:"conditions"` + // ControllerName is a domain/path string that indicates the name of the controller that wrote this status. This corresponds with the controllerName field on GatewayClass. + // Example: "example.net/gateway-controller". + // The format of this field is DOMAIN "/" PATH, where DOMAIN and PATH are valid Kubernetes names (https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names). + // Controllers MUST populate this field when writing status. Controllers should ensure that entries to status populated with their ControllerName are cleaned up when they are no longer necessary. + ControllerName string `pulumi:"controllerName"` + // ParentRef corresponds with a ParentRef in the spec that this RouteParentStatus struct describes the status of. + ParentRef UDPRouteStatusParentsParentRef `pulumi:"parentRef"` +} + +// Defaults sets the appropriate defaults for UDPRouteStatusParents +func (val *UDPRouteStatusParents) Defaults() *UDPRouteStatusParents { + if val == nil { + return nil + } + tmp := *val + tmp.ParentRef = *tmp.ParentRef.Defaults() + + return &tmp +} + +// UDPRouteStatusParentsInput is an input type that accepts UDPRouteStatusParentsArgs and UDPRouteStatusParentsOutput values. +// You can construct a concrete instance of `UDPRouteStatusParentsInput` via: +// +// UDPRouteStatusParentsArgs{...} +type UDPRouteStatusParentsInput interface { + pulumi.Input + + ToUDPRouteStatusParentsOutput() UDPRouteStatusParentsOutput + ToUDPRouteStatusParentsOutputWithContext(context.Context) UDPRouteStatusParentsOutput +} + +// RouteParentStatus describes the status of a route with respect to an associated Parent. +type UDPRouteStatusParentsArgs struct { + // Conditions describes the status of the route with respect to the Gateway. Note that the route's availability is also subject to the Gateway's own status conditions and listener status. + // If the Route's ParentRef specifies an existing Gateway that supports Routes of this kind AND that Gateway's controller has sufficient access, then that Gateway's controller MUST set the "Accepted" condition on the Route, to indicate whether the route has been accepted or rejected by the Gateway, and why. + // A Route MUST be considered "Accepted" if at least one of the Route's rules is implemented by the Gateway. + // There are a number of cases where the "Accepted" condition may not be set due to lack of controller visibility, that includes when: + // * The Route refers to a non-existent parent. * The Route is of a type that the controller does not support. * The Route is in a namespace the controller does not have access to. + Conditions UDPRouteStatusParentsConditionsArrayInput `pulumi:"conditions"` + // ControllerName is a domain/path string that indicates the name of the controller that wrote this status. This corresponds with the controllerName field on GatewayClass. + // Example: "example.net/gateway-controller". + // The format of this field is DOMAIN "/" PATH, where DOMAIN and PATH are valid Kubernetes names (https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names). + // Controllers MUST populate this field when writing status. Controllers should ensure that entries to status populated with their ControllerName are cleaned up when they are no longer necessary. + ControllerName pulumi.StringInput `pulumi:"controllerName"` + // ParentRef corresponds with a ParentRef in the spec that this RouteParentStatus struct describes the status of. + ParentRef UDPRouteStatusParentsParentRefInput `pulumi:"parentRef"` +} + +// Defaults sets the appropriate defaults for UDPRouteStatusParentsArgs +func (val *UDPRouteStatusParentsArgs) Defaults() *UDPRouteStatusParentsArgs { + if val == nil { + return nil + } + tmp := *val + + return &tmp +} +func (UDPRouteStatusParentsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UDPRouteStatusParents)(nil)).Elem() +} + +func (i UDPRouteStatusParentsArgs) ToUDPRouteStatusParentsOutput() UDPRouteStatusParentsOutput { + return i.ToUDPRouteStatusParentsOutputWithContext(context.Background()) +} + +func (i UDPRouteStatusParentsArgs) ToUDPRouteStatusParentsOutputWithContext(ctx context.Context) UDPRouteStatusParentsOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteStatusParentsOutput) +} + +func (i UDPRouteStatusParentsArgs) ToOutput(ctx context.Context) pulumix.Output[UDPRouteStatusParents] { + return pulumix.Output[UDPRouteStatusParents]{ + OutputState: i.ToUDPRouteStatusParentsOutputWithContext(ctx).OutputState, + } +} + +// UDPRouteStatusParentsArrayInput is an input type that accepts UDPRouteStatusParentsArray and UDPRouteStatusParentsArrayOutput values. +// You can construct a concrete instance of `UDPRouteStatusParentsArrayInput` via: +// +// UDPRouteStatusParentsArray{ UDPRouteStatusParentsArgs{...} } +type UDPRouteStatusParentsArrayInput interface { + pulumi.Input + + ToUDPRouteStatusParentsArrayOutput() UDPRouteStatusParentsArrayOutput + ToUDPRouteStatusParentsArrayOutputWithContext(context.Context) UDPRouteStatusParentsArrayOutput +} + +type UDPRouteStatusParentsArray []UDPRouteStatusParentsInput + +func (UDPRouteStatusParentsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]UDPRouteStatusParents)(nil)).Elem() +} + +func (i UDPRouteStatusParentsArray) ToUDPRouteStatusParentsArrayOutput() UDPRouteStatusParentsArrayOutput { + return i.ToUDPRouteStatusParentsArrayOutputWithContext(context.Background()) +} + +func (i UDPRouteStatusParentsArray) ToUDPRouteStatusParentsArrayOutputWithContext(ctx context.Context) UDPRouteStatusParentsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteStatusParentsArrayOutput) +} + +func (i UDPRouteStatusParentsArray) ToOutput(ctx context.Context) pulumix.Output[[]UDPRouteStatusParents] { + return pulumix.Output[[]UDPRouteStatusParents]{ + OutputState: i.ToUDPRouteStatusParentsArrayOutputWithContext(ctx).OutputState, + } +} + +// RouteParentStatus describes the status of a route with respect to an associated Parent. +type UDPRouteStatusParentsOutput struct{ *pulumi.OutputState } + +func (UDPRouteStatusParentsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UDPRouteStatusParents)(nil)).Elem() +} + +func (o UDPRouteStatusParentsOutput) ToUDPRouteStatusParentsOutput() UDPRouteStatusParentsOutput { + return o +} + +func (o UDPRouteStatusParentsOutput) ToUDPRouteStatusParentsOutputWithContext(ctx context.Context) UDPRouteStatusParentsOutput { + return o +} + +func (o UDPRouteStatusParentsOutput) ToOutput(ctx context.Context) pulumix.Output[UDPRouteStatusParents] { + return pulumix.Output[UDPRouteStatusParents]{ + OutputState: o.OutputState, + } +} + +// Conditions describes the status of the route with respect to the Gateway. Note that the route's availability is also subject to the Gateway's own status conditions and listener status. +// +// If the Route's ParentRef specifies an existing Gateway that supports Routes of this kind AND that Gateway's controller has sufficient access, then that Gateway's controller MUST set the "Accepted" condition on the Route, to indicate whether the route has been accepted or rejected by the Gateway, and why. +// A Route MUST be considered "Accepted" if at least one of the Route's rules is implemented by the Gateway. +// There are a number of cases where the "Accepted" condition may not be set due to lack of controller visibility, that includes when: +// * The Route refers to a non-existent parent. * The Route is of a type that the controller does not support. * The Route is in a namespace the controller does not have access to. +func (o UDPRouteStatusParentsOutput) Conditions() UDPRouteStatusParentsConditionsArrayOutput { + return o.ApplyT(func(v UDPRouteStatusParents) []UDPRouteStatusParentsConditions { return v.Conditions }).(UDPRouteStatusParentsConditionsArrayOutput) +} + +// ControllerName is a domain/path string that indicates the name of the controller that wrote this status. This corresponds with the controllerName field on GatewayClass. +// +// Example: "example.net/gateway-controller". +// The format of this field is DOMAIN "/" PATH, where DOMAIN and PATH are valid Kubernetes names (https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names). +// Controllers MUST populate this field when writing status. Controllers should ensure that entries to status populated with their ControllerName are cleaned up when they are no longer necessary. +func (o UDPRouteStatusParentsOutput) ControllerName() pulumi.StringOutput { + return o.ApplyT(func(v UDPRouteStatusParents) string { return v.ControllerName }).(pulumi.StringOutput) +} + +// ParentRef corresponds with a ParentRef in the spec that this RouteParentStatus struct describes the status of. +func (o UDPRouteStatusParentsOutput) ParentRef() UDPRouteStatusParentsParentRefOutput { + return o.ApplyT(func(v UDPRouteStatusParents) UDPRouteStatusParentsParentRef { return v.ParentRef }).(UDPRouteStatusParentsParentRefOutput) +} + +type UDPRouteStatusParentsArrayOutput struct{ *pulumi.OutputState } + +func (UDPRouteStatusParentsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]UDPRouteStatusParents)(nil)).Elem() +} + +func (o UDPRouteStatusParentsArrayOutput) ToUDPRouteStatusParentsArrayOutput() UDPRouteStatusParentsArrayOutput { + return o +} + +func (o UDPRouteStatusParentsArrayOutput) ToUDPRouteStatusParentsArrayOutputWithContext(ctx context.Context) UDPRouteStatusParentsArrayOutput { + return o +} + +func (o UDPRouteStatusParentsArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]UDPRouteStatusParents] { + return pulumix.Output[[]UDPRouteStatusParents]{ + OutputState: o.OutputState, + } +} + +func (o UDPRouteStatusParentsArrayOutput) Index(i pulumi.IntInput) UDPRouteStatusParentsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) UDPRouteStatusParents { + return vs[0].([]UDPRouteStatusParents)[vs[1].(int)] + }).(UDPRouteStatusParentsOutput) +} + +// Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, +// +// type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` +// // other fields } +type UDPRouteStatusParentsConditions struct { + // lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + LastTransitionTime string `pulumi:"lastTransitionTime"` + // message is a human readable message indicating details about the transition. This may be an empty string. + Message string `pulumi:"message"` + // observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + ObservedGeneration *int `pulumi:"observedGeneration"` + // reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + Reason string `pulumi:"reason"` + // status of the condition, one of True, False, Unknown. + Status string `pulumi:"status"` + // type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + Type string `pulumi:"type"` +} + +// UDPRouteStatusParentsConditionsInput is an input type that accepts UDPRouteStatusParentsConditionsArgs and UDPRouteStatusParentsConditionsOutput values. +// You can construct a concrete instance of `UDPRouteStatusParentsConditionsInput` via: +// +// UDPRouteStatusParentsConditionsArgs{...} +type UDPRouteStatusParentsConditionsInput interface { + pulumi.Input + + ToUDPRouteStatusParentsConditionsOutput() UDPRouteStatusParentsConditionsOutput + ToUDPRouteStatusParentsConditionsOutputWithContext(context.Context) UDPRouteStatusParentsConditionsOutput +} + +// Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, +// +// type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` +// // other fields } +type UDPRouteStatusParentsConditionsArgs struct { + // lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + LastTransitionTime pulumi.StringInput `pulumi:"lastTransitionTime"` + // message is a human readable message indicating details about the transition. This may be an empty string. + Message pulumi.StringInput `pulumi:"message"` + // observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + ObservedGeneration pulumi.IntPtrInput `pulumi:"observedGeneration"` + // reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + Reason pulumi.StringInput `pulumi:"reason"` + // status of the condition, one of True, False, Unknown. + Status pulumi.StringInput `pulumi:"status"` + // type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + Type pulumi.StringInput `pulumi:"type"` +} + +func (UDPRouteStatusParentsConditionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UDPRouteStatusParentsConditions)(nil)).Elem() +} + +func (i UDPRouteStatusParentsConditionsArgs) ToUDPRouteStatusParentsConditionsOutput() UDPRouteStatusParentsConditionsOutput { + return i.ToUDPRouteStatusParentsConditionsOutputWithContext(context.Background()) +} + +func (i UDPRouteStatusParentsConditionsArgs) ToUDPRouteStatusParentsConditionsOutputWithContext(ctx context.Context) UDPRouteStatusParentsConditionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteStatusParentsConditionsOutput) +} + +func (i UDPRouteStatusParentsConditionsArgs) ToOutput(ctx context.Context) pulumix.Output[UDPRouteStatusParentsConditions] { + return pulumix.Output[UDPRouteStatusParentsConditions]{ + OutputState: i.ToUDPRouteStatusParentsConditionsOutputWithContext(ctx).OutputState, + } +} + +// UDPRouteStatusParentsConditionsArrayInput is an input type that accepts UDPRouteStatusParentsConditionsArray and UDPRouteStatusParentsConditionsArrayOutput values. +// You can construct a concrete instance of `UDPRouteStatusParentsConditionsArrayInput` via: +// +// UDPRouteStatusParentsConditionsArray{ UDPRouteStatusParentsConditionsArgs{...} } +type UDPRouteStatusParentsConditionsArrayInput interface { + pulumi.Input + + ToUDPRouteStatusParentsConditionsArrayOutput() UDPRouteStatusParentsConditionsArrayOutput + ToUDPRouteStatusParentsConditionsArrayOutputWithContext(context.Context) UDPRouteStatusParentsConditionsArrayOutput +} + +type UDPRouteStatusParentsConditionsArray []UDPRouteStatusParentsConditionsInput + +func (UDPRouteStatusParentsConditionsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]UDPRouteStatusParentsConditions)(nil)).Elem() +} + +func (i UDPRouteStatusParentsConditionsArray) ToUDPRouteStatusParentsConditionsArrayOutput() UDPRouteStatusParentsConditionsArrayOutput { + return i.ToUDPRouteStatusParentsConditionsArrayOutputWithContext(context.Background()) +} + +func (i UDPRouteStatusParentsConditionsArray) ToUDPRouteStatusParentsConditionsArrayOutputWithContext(ctx context.Context) UDPRouteStatusParentsConditionsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteStatusParentsConditionsArrayOutput) +} + +func (i UDPRouteStatusParentsConditionsArray) ToOutput(ctx context.Context) pulumix.Output[[]UDPRouteStatusParentsConditions] { + return pulumix.Output[[]UDPRouteStatusParentsConditions]{ + OutputState: i.ToUDPRouteStatusParentsConditionsArrayOutputWithContext(ctx).OutputState, + } +} + +// Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, +// +// type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` +// // other fields } +type UDPRouteStatusParentsConditionsOutput struct{ *pulumi.OutputState } + +func (UDPRouteStatusParentsConditionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UDPRouteStatusParentsConditions)(nil)).Elem() +} + +func (o UDPRouteStatusParentsConditionsOutput) ToUDPRouteStatusParentsConditionsOutput() UDPRouteStatusParentsConditionsOutput { + return o +} + +func (o UDPRouteStatusParentsConditionsOutput) ToUDPRouteStatusParentsConditionsOutputWithContext(ctx context.Context) UDPRouteStatusParentsConditionsOutput { + return o +} + +func (o UDPRouteStatusParentsConditionsOutput) ToOutput(ctx context.Context) pulumix.Output[UDPRouteStatusParentsConditions] { + return pulumix.Output[UDPRouteStatusParentsConditions]{ + OutputState: o.OutputState, + } +} + +// lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. +func (o UDPRouteStatusParentsConditionsOutput) LastTransitionTime() pulumi.StringOutput { + return o.ApplyT(func(v UDPRouteStatusParentsConditions) string { return v.LastTransitionTime }).(pulumi.StringOutput) +} + +// message is a human readable message indicating details about the transition. This may be an empty string. +func (o UDPRouteStatusParentsConditionsOutput) Message() pulumi.StringOutput { + return o.ApplyT(func(v UDPRouteStatusParentsConditions) string { return v.Message }).(pulumi.StringOutput) +} + +// observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. +func (o UDPRouteStatusParentsConditionsOutput) ObservedGeneration() pulumi.IntPtrOutput { + return o.ApplyT(func(v UDPRouteStatusParentsConditions) *int { return v.ObservedGeneration }).(pulumi.IntPtrOutput) +} + +// reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. +func (o UDPRouteStatusParentsConditionsOutput) Reason() pulumi.StringOutput { + return o.ApplyT(func(v UDPRouteStatusParentsConditions) string { return v.Reason }).(pulumi.StringOutput) +} + +// status of the condition, one of True, False, Unknown. +func (o UDPRouteStatusParentsConditionsOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v UDPRouteStatusParentsConditions) string { return v.Status }).(pulumi.StringOutput) +} + +// type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) +func (o UDPRouteStatusParentsConditionsOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v UDPRouteStatusParentsConditions) string { return v.Type }).(pulumi.StringOutput) +} + +type UDPRouteStatusParentsConditionsArrayOutput struct{ *pulumi.OutputState } + +func (UDPRouteStatusParentsConditionsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]UDPRouteStatusParentsConditions)(nil)).Elem() +} + +func (o UDPRouteStatusParentsConditionsArrayOutput) ToUDPRouteStatusParentsConditionsArrayOutput() UDPRouteStatusParentsConditionsArrayOutput { + return o +} + +func (o UDPRouteStatusParentsConditionsArrayOutput) ToUDPRouteStatusParentsConditionsArrayOutputWithContext(ctx context.Context) UDPRouteStatusParentsConditionsArrayOutput { + return o +} + +func (o UDPRouteStatusParentsConditionsArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]UDPRouteStatusParentsConditions] { + return pulumix.Output[[]UDPRouteStatusParentsConditions]{ + OutputState: o.OutputState, + } +} + +func (o UDPRouteStatusParentsConditionsArrayOutput) Index(i pulumi.IntInput) UDPRouteStatusParentsConditionsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) UDPRouteStatusParentsConditions { + return vs[0].([]UDPRouteStatusParentsConditions)[vs[1].(int)] + }).(UDPRouteStatusParentsConditionsOutput) +} + +// ParentRef corresponds with a ParentRef in the spec that this RouteParentStatus struct describes the status of. +type UDPRouteStatusParentsParentRef struct { + // Group is the group of the referent. When unspecified, "gateway.networking.k8s.io" is inferred. To set the core API group (such as for a "Service" kind referent), Group must be explicitly set to "" (empty string). + // Support: Core + Group *string `pulumi:"group"` + // Kind is kind of the referent. + // There are two kinds of parent resources with "Core" support: + // * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) + // Support for other resources is Implementation-Specific. + Kind *string `pulumi:"kind"` + // Name is the name of the referent. + // Support: Core + Name string `pulumi:"name"` + // Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. + // Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. + // ParentRefs from a Route to a Service in the same namespace are "producer" routes, which apply default routing rules to inbound connections from any namespace to the Service. + // ParentRefs from a Route to a Service in a different namespace are "consumer" routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route.\ + // Support: Core + Namespace *string `pulumi:"namespace"` + // Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. + // When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set `Port` unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. + // When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values.\ + // Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. + // For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. + // Support: Extended + Port *int `pulumi:"port"` + // SectionName is the name of a section within the target resource. In the following resources, SectionName is interpreted as the following: + // * Gateway: Listener Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. * Service: Port Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. Note that attaching Routes to Services as Parents is part of experimental Mesh support and is not supported for any other purpose. + // Implementations MAY choose to support attaching Routes to other resources. If that is the case, they MUST clearly document how SectionName is interpreted. + // When unspecified (empty string), this will reference the entire resource. For the purpose of status, an attachment is considered successful if at least one section in the parent resource accepts it. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. + // Support: Core + SectionName *string `pulumi:"sectionName"` +} + +// Defaults sets the appropriate defaults for UDPRouteStatusParentsParentRef +func (val *UDPRouteStatusParentsParentRef) Defaults() *UDPRouteStatusParentsParentRef { + if val == nil { + return nil + } + tmp := *val + if tmp.Group == nil { + group_ := "gateway.networking.k8s.io" + tmp.Group = &group_ + } + if tmp.Kind == nil { + kind_ := "Gateway" + tmp.Kind = &kind_ + } + return &tmp +} + +// UDPRouteStatusParentsParentRefInput is an input type that accepts UDPRouteStatusParentsParentRefArgs and UDPRouteStatusParentsParentRefOutput values. +// You can construct a concrete instance of `UDPRouteStatusParentsParentRefInput` via: +// +// UDPRouteStatusParentsParentRefArgs{...} +type UDPRouteStatusParentsParentRefInput interface { + pulumi.Input + + ToUDPRouteStatusParentsParentRefOutput() UDPRouteStatusParentsParentRefOutput + ToUDPRouteStatusParentsParentRefOutputWithContext(context.Context) UDPRouteStatusParentsParentRefOutput +} + +// ParentRef corresponds with a ParentRef in the spec that this RouteParentStatus struct describes the status of. +type UDPRouteStatusParentsParentRefArgs struct { + // Group is the group of the referent. When unspecified, "gateway.networking.k8s.io" is inferred. To set the core API group (such as for a "Service" kind referent), Group must be explicitly set to "" (empty string). + // Support: Core + Group pulumi.StringPtrInput `pulumi:"group"` + // Kind is kind of the referent. + // There are two kinds of parent resources with "Core" support: + // * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) + // Support for other resources is Implementation-Specific. + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Name is the name of the referent. + // Support: Core + Name pulumi.StringInput `pulumi:"name"` + // Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. + // Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. + // ParentRefs from a Route to a Service in the same namespace are "producer" routes, which apply default routing rules to inbound connections from any namespace to the Service. + // ParentRefs from a Route to a Service in a different namespace are "consumer" routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route.\ + // Support: Core + Namespace pulumi.StringPtrInput `pulumi:"namespace"` + // Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. + // When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set `Port` unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. + // When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values.\ + // Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. + // For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. + // Support: Extended + Port pulumi.IntPtrInput `pulumi:"port"` + // SectionName is the name of a section within the target resource. In the following resources, SectionName is interpreted as the following: + // * Gateway: Listener Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. * Service: Port Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. Note that attaching Routes to Services as Parents is part of experimental Mesh support and is not supported for any other purpose. + // Implementations MAY choose to support attaching Routes to other resources. If that is the case, they MUST clearly document how SectionName is interpreted. + // When unspecified (empty string), this will reference the entire resource. For the purpose of status, an attachment is considered successful if at least one section in the parent resource accepts it. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. + // Support: Core + SectionName pulumi.StringPtrInput `pulumi:"sectionName"` +} + +// Defaults sets the appropriate defaults for UDPRouteStatusParentsParentRefArgs +func (val *UDPRouteStatusParentsParentRefArgs) Defaults() *UDPRouteStatusParentsParentRefArgs { + if val == nil { + return nil + } + tmp := *val + if tmp.Group == nil { + tmp.Group = pulumi.StringPtr("gateway.networking.k8s.io") + } + if tmp.Kind == nil { + tmp.Kind = pulumi.StringPtr("Gateway") + } + return &tmp +} +func (UDPRouteStatusParentsParentRefArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UDPRouteStatusParentsParentRef)(nil)).Elem() +} + +func (i UDPRouteStatusParentsParentRefArgs) ToUDPRouteStatusParentsParentRefOutput() UDPRouteStatusParentsParentRefOutput { + return i.ToUDPRouteStatusParentsParentRefOutputWithContext(context.Background()) +} + +func (i UDPRouteStatusParentsParentRefArgs) ToUDPRouteStatusParentsParentRefOutputWithContext(ctx context.Context) UDPRouteStatusParentsParentRefOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteStatusParentsParentRefOutput) +} + +func (i UDPRouteStatusParentsParentRefArgs) ToOutput(ctx context.Context) pulumix.Output[UDPRouteStatusParentsParentRef] { + return pulumix.Output[UDPRouteStatusParentsParentRef]{ + OutputState: i.ToUDPRouteStatusParentsParentRefOutputWithContext(ctx).OutputState, + } +} + +// ParentRef corresponds with a ParentRef in the spec that this RouteParentStatus struct describes the status of. +type UDPRouteStatusParentsParentRefOutput struct{ *pulumi.OutputState } + +func (UDPRouteStatusParentsParentRefOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UDPRouteStatusParentsParentRef)(nil)).Elem() +} + +func (o UDPRouteStatusParentsParentRefOutput) ToUDPRouteStatusParentsParentRefOutput() UDPRouteStatusParentsParentRefOutput { + return o +} + +func (o UDPRouteStatusParentsParentRefOutput) ToUDPRouteStatusParentsParentRefOutputWithContext(ctx context.Context) UDPRouteStatusParentsParentRefOutput { + return o +} + +func (o UDPRouteStatusParentsParentRefOutput) ToOutput(ctx context.Context) pulumix.Output[UDPRouteStatusParentsParentRef] { + return pulumix.Output[UDPRouteStatusParentsParentRef]{ + OutputState: o.OutputState, + } +} + +// Group is the group of the referent. When unspecified, "gateway.networking.k8s.io" is inferred. To set the core API group (such as for a "Service" kind referent), Group must be explicitly set to "" (empty string). +// +// Support: Core +func (o UDPRouteStatusParentsParentRefOutput) Group() pulumi.StringPtrOutput { + return o.ApplyT(func(v UDPRouteStatusParentsParentRef) *string { return v.Group }).(pulumi.StringPtrOutput) +} + +// Kind is kind of the referent. +// +// There are two kinds of parent resources with "Core" support: +// * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) +// Support for other resources is Implementation-Specific. +func (o UDPRouteStatusParentsParentRefOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v UDPRouteStatusParentsParentRef) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Name is the name of the referent. +// +// Support: Core +func (o UDPRouteStatusParentsParentRefOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v UDPRouteStatusParentsParentRef) string { return v.Name }).(pulumi.StringOutput) +} + +// Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. +// +// Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. +// ParentRefs from a Route to a Service in the same namespace are "producer" routes, which apply default routing rules to inbound connections from any namespace to the Service. +// ParentRefs from a Route to a Service in a different namespace are "consumer" routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route.\ +// Support: Core +func (o UDPRouteStatusParentsParentRefOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v UDPRouteStatusParentsParentRef) *string { return v.Namespace }).(pulumi.StringPtrOutput) +} + +// Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. +// +// When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set `Port` unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. +// When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values.\ +// Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. +// For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. +// Support: Extended +func (o UDPRouteStatusParentsParentRefOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v UDPRouteStatusParentsParentRef) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// SectionName is the name of a section within the target resource. In the following resources, SectionName is interpreted as the following: +// - Gateway: Listener Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. * Service: Port Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. Note that attaching Routes to Services as Parents is part of experimental Mesh support and is not supported for any other purpose. +// Implementations MAY choose to support attaching Routes to other resources. If that is the case, they MUST clearly document how SectionName is interpreted. +// When unspecified (empty string), this will reference the entire resource. For the purpose of status, an attachment is considered successful if at least one section in the parent resource accepts it. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. +// Support: Core +func (o UDPRouteStatusParentsParentRefOutput) SectionName() pulumi.StringPtrOutput { + return o.ApplyT(func(v UDPRouteStatusParentsParentRef) *string { return v.SectionName }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*UDPRouteSpecInput)(nil)).Elem(), UDPRouteSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UDPRouteSpecPtrInput)(nil)).Elem(), UDPRouteSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UDPRouteSpecParentRefsInput)(nil)).Elem(), UDPRouteSpecParentRefsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UDPRouteSpecParentRefsArrayInput)(nil)).Elem(), UDPRouteSpecParentRefsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*UDPRouteSpecRulesInput)(nil)).Elem(), UDPRouteSpecRulesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UDPRouteSpecRulesArrayInput)(nil)).Elem(), UDPRouteSpecRulesArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*UDPRouteSpecRulesBackendRefsInput)(nil)).Elem(), UDPRouteSpecRulesBackendRefsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UDPRouteSpecRulesBackendRefsArrayInput)(nil)).Elem(), UDPRouteSpecRulesBackendRefsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*UDPRouteStatusInput)(nil)).Elem(), UDPRouteStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UDPRouteStatusPtrInput)(nil)).Elem(), UDPRouteStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UDPRouteStatusParentsInput)(nil)).Elem(), UDPRouteStatusParentsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UDPRouteStatusParentsArrayInput)(nil)).Elem(), UDPRouteStatusParentsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*UDPRouteStatusParentsConditionsInput)(nil)).Elem(), UDPRouteStatusParentsConditionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UDPRouteStatusParentsConditionsArrayInput)(nil)).Elem(), UDPRouteStatusParentsConditionsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*UDPRouteStatusParentsParentRefInput)(nil)).Elem(), UDPRouteStatusParentsParentRefArgs{}) + pulumi.RegisterOutputType(UDPRouteSpecOutput{}) + pulumi.RegisterOutputType(UDPRouteSpecPtrOutput{}) + pulumi.RegisterOutputType(UDPRouteSpecParentRefsOutput{}) + pulumi.RegisterOutputType(UDPRouteSpecParentRefsArrayOutput{}) + pulumi.RegisterOutputType(UDPRouteSpecRulesOutput{}) + pulumi.RegisterOutputType(UDPRouteSpecRulesArrayOutput{}) + pulumi.RegisterOutputType(UDPRouteSpecRulesBackendRefsOutput{}) + pulumi.RegisterOutputType(UDPRouteSpecRulesBackendRefsArrayOutput{}) + pulumi.RegisterOutputType(UDPRouteStatusOutput{}) + pulumi.RegisterOutputType(UDPRouteStatusPtrOutput{}) + pulumi.RegisterOutputType(UDPRouteStatusParentsOutput{}) + pulumi.RegisterOutputType(UDPRouteStatusParentsArrayOutput{}) + pulumi.RegisterOutputType(UDPRouteStatusParentsConditionsOutput{}) + pulumi.RegisterOutputType(UDPRouteStatusParentsConditionsArrayOutput{}) + pulumi.RegisterOutputType(UDPRouteStatusParentsParentRefOutput{}) +} diff --git a/crds/kubernetes/gateway/v1alpha2/udproute.go b/crds/kubernetes/gateway/v1alpha2/udproute.go new file mode 100644 index 0000000..18ff1dc --- /dev/null +++ b/crds/kubernetes/gateway/v1alpha2/udproute.go @@ -0,0 +1,165 @@ +// Code generated by crd2pulumi DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha2 + +import ( + "context" + "reflect" + + "antoine-roux.tk/projects/go/pulumi-library/crds/kubernetes/internal" + v1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// UDPRoute provides a way to route UDP traffic. When combined with a Gateway listener, it can be used to forward traffic on the port specified by the listener to a set of backends specified by the UDPRoute. +type UDPRoute struct { + pulumi.CustomResourceState + + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + Kind pulumi.StringPtrOutput `pulumi:"kind"` + Metadata v1.ObjectMetaPtrOutput `pulumi:"metadata"` + // Spec defines the desired state of UDPRoute. + Spec UDPRouteSpecOutput `pulumi:"spec"` + // Status defines the current state of UDPRoute. + Status UDPRouteStatusPtrOutput `pulumi:"status"` +} + +// NewUDPRoute registers a new resource with the given unique name, arguments, and options. +func NewUDPRoute(ctx *pulumi.Context, + name string, args *UDPRouteArgs, opts ...pulumi.ResourceOption) (*UDPRoute, error) { + if args == nil { + args = &UDPRouteArgs{} + } + + args.ApiVersion = pulumi.StringPtr("gateway.networking.k8s.io/v1alpha2") + args.Kind = pulumi.StringPtr("UDPRoute") + opts = internal.PkgResourceDefaultOpts(opts) + var resource UDPRoute + err := ctx.RegisterResource("kubernetes:gateway.networking.k8s.io/v1alpha2:UDPRoute", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetUDPRoute gets an existing UDPRoute resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetUDPRoute(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *UDPRouteState, opts ...pulumi.ResourceOption) (*UDPRoute, error) { + var resource UDPRoute + err := ctx.ReadResource("kubernetes:gateway.networking.k8s.io/v1alpha2:UDPRoute", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering UDPRoute resources. +type udprouteState struct { +} + +type UDPRouteState struct { +} + +func (UDPRouteState) ElementType() reflect.Type { + return reflect.TypeOf((*udprouteState)(nil)).Elem() +} + +type udprouteArgs struct { + ApiVersion *string `pulumi:"apiVersion"` + Kind *string `pulumi:"kind"` + Metadata *v1.ObjectMeta `pulumi:"metadata"` + // Spec defines the desired state of UDPRoute. + Spec *UDPRouteSpec `pulumi:"spec"` + // Status defines the current state of UDPRoute. + Status *UDPRouteStatus `pulumi:"status"` +} + +// The set of arguments for constructing a UDPRoute resource. +type UDPRouteArgs struct { + ApiVersion pulumi.StringPtrInput + Kind pulumi.StringPtrInput + Metadata v1.ObjectMetaPtrInput + // Spec defines the desired state of UDPRoute. + Spec UDPRouteSpecPtrInput + // Status defines the current state of UDPRoute. + Status UDPRouteStatusPtrInput +} + +func (UDPRouteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*udprouteArgs)(nil)).Elem() +} + +type UDPRouteInput interface { + pulumi.Input + + ToUDPRouteOutput() UDPRouteOutput + ToUDPRouteOutputWithContext(ctx context.Context) UDPRouteOutput +} + +func (*UDPRoute) ElementType() reflect.Type { + return reflect.TypeOf((**UDPRoute)(nil)).Elem() +} + +func (i *UDPRoute) ToUDPRouteOutput() UDPRouteOutput { + return i.ToUDPRouteOutputWithContext(context.Background()) +} + +func (i *UDPRoute) ToUDPRouteOutputWithContext(ctx context.Context) UDPRouteOutput { + return pulumi.ToOutputWithContext(ctx, i).(UDPRouteOutput) +} + +func (i *UDPRoute) ToOutput(ctx context.Context) pulumix.Output[*UDPRoute] { + return pulumix.Output[*UDPRoute]{ + OutputState: i.ToUDPRouteOutputWithContext(ctx).OutputState, + } +} + +type UDPRouteOutput struct{ *pulumi.OutputState } + +func (UDPRouteOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UDPRoute)(nil)).Elem() +} + +func (o UDPRouteOutput) ToUDPRouteOutput() UDPRouteOutput { + return o +} + +func (o UDPRouteOutput) ToUDPRouteOutputWithContext(ctx context.Context) UDPRouteOutput { + return o +} + +func (o UDPRouteOutput) ToOutput(ctx context.Context) pulumix.Output[*UDPRoute] { + return pulumix.Output[*UDPRoute]{ + OutputState: o.OutputState, + } +} + +func (o UDPRouteOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *UDPRoute) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +func (o UDPRouteOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *UDPRoute) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +func (o UDPRouteOutput) Metadata() v1.ObjectMetaPtrOutput { + return o.ApplyT(func(v *UDPRoute) v1.ObjectMetaPtrOutput { return v.Metadata }).(v1.ObjectMetaPtrOutput) +} + +// Spec defines the desired state of UDPRoute. +func (o UDPRouteOutput) Spec() UDPRouteSpecOutput { + return o.ApplyT(func(v *UDPRoute) UDPRouteSpecOutput { return v.Spec }).(UDPRouteSpecOutput) +} + +// Status defines the current state of UDPRoute. +func (o UDPRouteOutput) Status() UDPRouteStatusPtrOutput { + return o.ApplyT(func(v *UDPRoute) UDPRouteStatusPtrOutput { return v.Status }).(UDPRouteStatusPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*UDPRouteInput)(nil)).Elem(), &UDPRoute{}) + pulumi.RegisterOutputType(UDPRouteOutput{}) +} diff --git a/crds/kubernetes/hub/v1alpha1/accessControlPolicy.go b/crds/kubernetes/hub/v1alpha1/accessControlPolicy.go new file mode 100644 index 0000000..512a4a4 --- /dev/null +++ b/crds/kubernetes/hub/v1alpha1/accessControlPolicy.go @@ -0,0 +1,168 @@ +// Code generated by crd2pulumi DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha1 + +import ( + "context" + "reflect" + + "antoine-roux.tk/projects/go/pulumi-library/crds/kubernetes/internal" + v1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// AccessControlPolicy defines an access control policy. +type AccessControlPolicy struct { + pulumi.CustomResourceState + + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + Kind pulumi.StringPtrOutput `pulumi:"kind"` + Metadata v1.ObjectMetaPtrOutput `pulumi:"metadata"` + // AccessControlPolicySpec configures an access control policy. + Spec AccessControlPolicySpecPtrOutput `pulumi:"spec"` + // The current status of this access control policy. + Status AccessControlPolicyStatusPtrOutput `pulumi:"status"` +} + +// NewAccessControlPolicy registers a new resource with the given unique name, arguments, and options. +func NewAccessControlPolicy(ctx *pulumi.Context, + name string, args *AccessControlPolicyArgs, opts ...pulumi.ResourceOption) (*AccessControlPolicy, error) { + if args == nil { + args = &AccessControlPolicyArgs{} + } + + args.ApiVersion = pulumi.StringPtr("hub.traefik.io/v1alpha1") + args.Kind = pulumi.StringPtr("AccessControlPolicy") + if args.Spec != nil { + args.Spec = args.Spec.ToAccessControlPolicySpecPtrOutput().ApplyT(func(v *AccessControlPolicySpec) *AccessControlPolicySpec { return v.Defaults() }).(AccessControlPolicySpecPtrOutput) + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource AccessControlPolicy + err := ctx.RegisterResource("kubernetes:hub.traefik.io/v1alpha1:AccessControlPolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAccessControlPolicy gets an existing AccessControlPolicy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAccessControlPolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AccessControlPolicyState, opts ...pulumi.ResourceOption) (*AccessControlPolicy, error) { + var resource AccessControlPolicy + err := ctx.ReadResource("kubernetes:hub.traefik.io/v1alpha1:AccessControlPolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AccessControlPolicy resources. +type accessControlPolicyState struct { +} + +type AccessControlPolicyState struct { +} + +func (AccessControlPolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*accessControlPolicyState)(nil)).Elem() +} + +type accessControlPolicyArgs struct { + ApiVersion *string `pulumi:"apiVersion"` + Kind *string `pulumi:"kind"` + Metadata *v1.ObjectMeta `pulumi:"metadata"` + // AccessControlPolicySpec configures an access control policy. + Spec *AccessControlPolicySpec `pulumi:"spec"` + // The current status of this access control policy. + Status *AccessControlPolicyStatus `pulumi:"status"` +} + +// The set of arguments for constructing a AccessControlPolicy resource. +type AccessControlPolicyArgs struct { + ApiVersion pulumi.StringPtrInput + Kind pulumi.StringPtrInput + Metadata v1.ObjectMetaPtrInput + // AccessControlPolicySpec configures an access control policy. + Spec AccessControlPolicySpecPtrInput + // The current status of this access control policy. + Status AccessControlPolicyStatusPtrInput +} + +func (AccessControlPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*accessControlPolicyArgs)(nil)).Elem() +} + +type AccessControlPolicyInput interface { + pulumi.Input + + ToAccessControlPolicyOutput() AccessControlPolicyOutput + ToAccessControlPolicyOutputWithContext(ctx context.Context) AccessControlPolicyOutput +} + +func (*AccessControlPolicy) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicy)(nil)).Elem() +} + +func (i *AccessControlPolicy) ToAccessControlPolicyOutput() AccessControlPolicyOutput { + return i.ToAccessControlPolicyOutputWithContext(context.Background()) +} + +func (i *AccessControlPolicy) ToAccessControlPolicyOutputWithContext(ctx context.Context) AccessControlPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicyOutput) +} + +func (i *AccessControlPolicy) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicy] { + return pulumix.Output[*AccessControlPolicy]{ + OutputState: i.ToAccessControlPolicyOutputWithContext(ctx).OutputState, + } +} + +type AccessControlPolicyOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicy)(nil)).Elem() +} + +func (o AccessControlPolicyOutput) ToAccessControlPolicyOutput() AccessControlPolicyOutput { + return o +} + +func (o AccessControlPolicyOutput) ToAccessControlPolicyOutputWithContext(ctx context.Context) AccessControlPolicyOutput { + return o +} + +func (o AccessControlPolicyOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicy] { + return pulumix.Output[*AccessControlPolicy]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicyOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicy) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicyOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicy) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicyOutput) Metadata() v1.ObjectMetaPtrOutput { + return o.ApplyT(func(v *AccessControlPolicy) v1.ObjectMetaPtrOutput { return v.Metadata }).(v1.ObjectMetaPtrOutput) +} + +// AccessControlPolicySpec configures an access control policy. +func (o AccessControlPolicyOutput) Spec() AccessControlPolicySpecPtrOutput { + return o.ApplyT(func(v *AccessControlPolicy) AccessControlPolicySpecPtrOutput { return v.Spec }).(AccessControlPolicySpecPtrOutput) +} + +// The current status of this access control policy. +func (o AccessControlPolicyOutput) Status() AccessControlPolicyStatusPtrOutput { + return o.ApplyT(func(v *AccessControlPolicy) AccessControlPolicyStatusPtrOutput { return v.Status }).(AccessControlPolicyStatusPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicyInput)(nil)).Elem(), &AccessControlPolicy{}) + pulumi.RegisterOutputType(AccessControlPolicyOutput{}) +} diff --git a/crds/kubernetes/hub/v1alpha1/api.go b/crds/kubernetes/hub/v1alpha1/api.go new file mode 100644 index 0000000..89103c7 --- /dev/null +++ b/crds/kubernetes/hub/v1alpha1/api.go @@ -0,0 +1,167 @@ +// Code generated by crd2pulumi DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha1 + +import ( + "context" + "reflect" + + "antoine-roux.tk/projects/go/pulumi-library/crds/kubernetes/internal" + v1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// API defines an HTTP interface that is exposed to external clients. It specifies the supported versions +// and provides instructions for accessing its documentation. Once instantiated, an API object is associated +// with an Ingress, IngressRoute, or HTTPRoute resource, enabling the exposure of the described API to the outside world. +type API struct { + pulumi.CustomResourceState + + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + Kind pulumi.StringPtrOutput `pulumi:"kind"` + Metadata v1.ObjectMetaPtrOutput `pulumi:"metadata"` + // APISpec describes the API. + Spec APISpecPtrOutput `pulumi:"spec"` + // The current status of this API. + Status APIStatusPtrOutput `pulumi:"status"` +} + +// NewAPI registers a new resource with the given unique name, arguments, and options. +func NewAPI(ctx *pulumi.Context, + name string, args *APIArgs, opts ...pulumi.ResourceOption) (*API, error) { + if args == nil { + args = &APIArgs{} + } + + args.ApiVersion = pulumi.StringPtr("hub.traefik.io/v1alpha1") + args.Kind = pulumi.StringPtr("API") + opts = internal.PkgResourceDefaultOpts(opts) + var resource API + err := ctx.RegisterResource("kubernetes:hub.traefik.io/v1alpha1:API", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAPI gets an existing API resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAPI(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *APIState, opts ...pulumi.ResourceOption) (*API, error) { + var resource API + err := ctx.ReadResource("kubernetes:hub.traefik.io/v1alpha1:API", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering API resources. +type apiState struct { +} + +type APIState struct { +} + +func (APIState) ElementType() reflect.Type { + return reflect.TypeOf((*apiState)(nil)).Elem() +} + +type apiArgs struct { + ApiVersion *string `pulumi:"apiVersion"` + Kind *string `pulumi:"kind"` + Metadata *v1.ObjectMeta `pulumi:"metadata"` + // APISpec describes the API. + Spec *APISpec `pulumi:"spec"` + // The current status of this API. + Status *APIStatus `pulumi:"status"` +} + +// The set of arguments for constructing a API resource. +type APIArgs struct { + ApiVersion pulumi.StringPtrInput + Kind pulumi.StringPtrInput + Metadata v1.ObjectMetaPtrInput + // APISpec describes the API. + Spec APISpecPtrInput + // The current status of this API. + Status APIStatusPtrInput +} + +func (APIArgs) ElementType() reflect.Type { + return reflect.TypeOf((*apiArgs)(nil)).Elem() +} + +type APIInput interface { + pulumi.Input + + ToAPIOutput() APIOutput + ToAPIOutputWithContext(ctx context.Context) APIOutput +} + +func (*API) ElementType() reflect.Type { + return reflect.TypeOf((**API)(nil)).Elem() +} + +func (i *API) ToAPIOutput() APIOutput { + return i.ToAPIOutputWithContext(context.Background()) +} + +func (i *API) ToAPIOutputWithContext(ctx context.Context) APIOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIOutput) +} + +func (i *API) ToOutput(ctx context.Context) pulumix.Output[*API] { + return pulumix.Output[*API]{ + OutputState: i.ToAPIOutputWithContext(ctx).OutputState, + } +} + +type APIOutput struct{ *pulumi.OutputState } + +func (APIOutput) ElementType() reflect.Type { + return reflect.TypeOf((**API)(nil)).Elem() +} + +func (o APIOutput) ToAPIOutput() APIOutput { + return o +} + +func (o APIOutput) ToAPIOutputWithContext(ctx context.Context) APIOutput { + return o +} + +func (o APIOutput) ToOutput(ctx context.Context) pulumix.Output[*API] { + return pulumix.Output[*API]{ + OutputState: o.OutputState, + } +} + +func (o APIOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *API) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +func (o APIOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *API) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +func (o APIOutput) Metadata() v1.ObjectMetaPtrOutput { + return o.ApplyT(func(v *API) v1.ObjectMetaPtrOutput { return v.Metadata }).(v1.ObjectMetaPtrOutput) +} + +// APISpec describes the API. +func (o APIOutput) Spec() APISpecPtrOutput { + return o.ApplyT(func(v *API) APISpecPtrOutput { return v.Spec }).(APISpecPtrOutput) +} + +// The current status of this API. +func (o APIOutput) Status() APIStatusPtrOutput { + return o.ApplyT(func(v *API) APIStatusPtrOutput { return v.Status }).(APIStatusPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*APIInput)(nil)).Elem(), &API{}) + pulumi.RegisterOutputType(APIOutput{}) +} diff --git a/crds/kubernetes/hub/v1alpha1/apiaccess.go b/crds/kubernetes/hub/v1alpha1/apiaccess.go new file mode 100644 index 0000000..d9e7c7b --- /dev/null +++ b/crds/kubernetes/hub/v1alpha1/apiaccess.go @@ -0,0 +1,165 @@ +// Code generated by crd2pulumi DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha1 + +import ( + "context" + "reflect" + + "antoine-roux.tk/projects/go/pulumi-library/crds/kubernetes/internal" + v1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// APIAccess defines who can access to a set of APIs. +type APIAccess struct { + pulumi.CustomResourceState + + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + Kind pulumi.StringPtrOutput `pulumi:"kind"` + Metadata v1.ObjectMetaPtrOutput `pulumi:"metadata"` + // The desired behavior of this APIAccess. + Spec APIAccessSpecPtrOutput `pulumi:"spec"` + // The current status of this APIAccess. + Status APIAccessStatusPtrOutput `pulumi:"status"` +} + +// NewAPIAccess registers a new resource with the given unique name, arguments, and options. +func NewAPIAccess(ctx *pulumi.Context, + name string, args *APIAccessArgs, opts ...pulumi.ResourceOption) (*APIAccess, error) { + if args == nil { + args = &APIAccessArgs{} + } + + args.ApiVersion = pulumi.StringPtr("hub.traefik.io/v1alpha1") + args.Kind = pulumi.StringPtr("APIAccess") + opts = internal.PkgResourceDefaultOpts(opts) + var resource APIAccess + err := ctx.RegisterResource("kubernetes:hub.traefik.io/v1alpha1:APIAccess", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAPIAccess gets an existing APIAccess resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAPIAccess(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *APIAccessState, opts ...pulumi.ResourceOption) (*APIAccess, error) { + var resource APIAccess + err := ctx.ReadResource("kubernetes:hub.traefik.io/v1alpha1:APIAccess", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering APIAccess resources. +type apiaccessState struct { +} + +type APIAccessState struct { +} + +func (APIAccessState) ElementType() reflect.Type { + return reflect.TypeOf((*apiaccessState)(nil)).Elem() +} + +type apiaccessArgs struct { + ApiVersion *string `pulumi:"apiVersion"` + Kind *string `pulumi:"kind"` + Metadata *v1.ObjectMeta `pulumi:"metadata"` + // The desired behavior of this APIAccess. + Spec *APIAccessSpec `pulumi:"spec"` + // The current status of this APIAccess. + Status *APIAccessStatus `pulumi:"status"` +} + +// The set of arguments for constructing a APIAccess resource. +type APIAccessArgs struct { + ApiVersion pulumi.StringPtrInput + Kind pulumi.StringPtrInput + Metadata v1.ObjectMetaPtrInput + // The desired behavior of this APIAccess. + Spec APIAccessSpecPtrInput + // The current status of this APIAccess. + Status APIAccessStatusPtrInput +} + +func (APIAccessArgs) ElementType() reflect.Type { + return reflect.TypeOf((*apiaccessArgs)(nil)).Elem() +} + +type APIAccessInput interface { + pulumi.Input + + ToAPIAccessOutput() APIAccessOutput + ToAPIAccessOutputWithContext(ctx context.Context) APIAccessOutput +} + +func (*APIAccess) ElementType() reflect.Type { + return reflect.TypeOf((**APIAccess)(nil)).Elem() +} + +func (i *APIAccess) ToAPIAccessOutput() APIAccessOutput { + return i.ToAPIAccessOutputWithContext(context.Background()) +} + +func (i *APIAccess) ToAPIAccessOutputWithContext(ctx context.Context) APIAccessOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIAccessOutput) +} + +func (i *APIAccess) ToOutput(ctx context.Context) pulumix.Output[*APIAccess] { + return pulumix.Output[*APIAccess]{ + OutputState: i.ToAPIAccessOutputWithContext(ctx).OutputState, + } +} + +type APIAccessOutput struct{ *pulumi.OutputState } + +func (APIAccessOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIAccess)(nil)).Elem() +} + +func (o APIAccessOutput) ToAPIAccessOutput() APIAccessOutput { + return o +} + +func (o APIAccessOutput) ToAPIAccessOutputWithContext(ctx context.Context) APIAccessOutput { + return o +} + +func (o APIAccessOutput) ToOutput(ctx context.Context) pulumix.Output[*APIAccess] { + return pulumix.Output[*APIAccess]{ + OutputState: o.OutputState, + } +} + +func (o APIAccessOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIAccess) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +func (o APIAccessOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIAccess) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +func (o APIAccessOutput) Metadata() v1.ObjectMetaPtrOutput { + return o.ApplyT(func(v *APIAccess) v1.ObjectMetaPtrOutput { return v.Metadata }).(v1.ObjectMetaPtrOutput) +} + +// The desired behavior of this APIAccess. +func (o APIAccessOutput) Spec() APIAccessSpecPtrOutput { + return o.ApplyT(func(v *APIAccess) APIAccessSpecPtrOutput { return v.Spec }).(APIAccessSpecPtrOutput) +} + +// The current status of this APIAccess. +func (o APIAccessOutput) Status() APIAccessStatusPtrOutput { + return o.ApplyT(func(v *APIAccess) APIAccessStatusPtrOutput { return v.Status }).(APIAccessStatusPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*APIAccessInput)(nil)).Elem(), &APIAccess{}) + pulumi.RegisterOutputType(APIAccessOutput{}) +} diff --git a/crds/kubernetes/hub/v1alpha1/apiportal.go b/crds/kubernetes/hub/v1alpha1/apiportal.go new file mode 100644 index 0000000..6dc84c9 --- /dev/null +++ b/crds/kubernetes/hub/v1alpha1/apiportal.go @@ -0,0 +1,165 @@ +// Code generated by crd2pulumi DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha1 + +import ( + "context" + "reflect" + + "antoine-roux.tk/projects/go/pulumi-library/crds/kubernetes/internal" + v1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// APIPortal defines a developer portal for accessing the documentation of APIs. +type APIPortal struct { + pulumi.CustomResourceState + + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + Kind pulumi.StringPtrOutput `pulumi:"kind"` + Metadata v1.ObjectMetaPtrOutput `pulumi:"metadata"` + // The desired behavior of this APIPortal. + Spec APIPortalSpecPtrOutput `pulumi:"spec"` + // The current status of this APIPortal. + Status APIPortalStatusPtrOutput `pulumi:"status"` +} + +// NewAPIPortal registers a new resource with the given unique name, arguments, and options. +func NewAPIPortal(ctx *pulumi.Context, + name string, args *APIPortalArgs, opts ...pulumi.ResourceOption) (*APIPortal, error) { + if args == nil { + args = &APIPortalArgs{} + } + + args.ApiVersion = pulumi.StringPtr("hub.traefik.io/v1alpha1") + args.Kind = pulumi.StringPtr("APIPortal") + opts = internal.PkgResourceDefaultOpts(opts) + var resource APIPortal + err := ctx.RegisterResource("kubernetes:hub.traefik.io/v1alpha1:APIPortal", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAPIPortal gets an existing APIPortal resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAPIPortal(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *APIPortalState, opts ...pulumi.ResourceOption) (*APIPortal, error) { + var resource APIPortal + err := ctx.ReadResource("kubernetes:hub.traefik.io/v1alpha1:APIPortal", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering APIPortal resources. +type apiportalState struct { +} + +type APIPortalState struct { +} + +func (APIPortalState) ElementType() reflect.Type { + return reflect.TypeOf((*apiportalState)(nil)).Elem() +} + +type apiportalArgs struct { + ApiVersion *string `pulumi:"apiVersion"` + Kind *string `pulumi:"kind"` + Metadata *v1.ObjectMeta `pulumi:"metadata"` + // The desired behavior of this APIPortal. + Spec *APIPortalSpec `pulumi:"spec"` + // The current status of this APIPortal. + Status *APIPortalStatus `pulumi:"status"` +} + +// The set of arguments for constructing a APIPortal resource. +type APIPortalArgs struct { + ApiVersion pulumi.StringPtrInput + Kind pulumi.StringPtrInput + Metadata v1.ObjectMetaPtrInput + // The desired behavior of this APIPortal. + Spec APIPortalSpecPtrInput + // The current status of this APIPortal. + Status APIPortalStatusPtrInput +} + +func (APIPortalArgs) ElementType() reflect.Type { + return reflect.TypeOf((*apiportalArgs)(nil)).Elem() +} + +type APIPortalInput interface { + pulumi.Input + + ToAPIPortalOutput() APIPortalOutput + ToAPIPortalOutputWithContext(ctx context.Context) APIPortalOutput +} + +func (*APIPortal) ElementType() reflect.Type { + return reflect.TypeOf((**APIPortal)(nil)).Elem() +} + +func (i *APIPortal) ToAPIPortalOutput() APIPortalOutput { + return i.ToAPIPortalOutputWithContext(context.Background()) +} + +func (i *APIPortal) ToAPIPortalOutputWithContext(ctx context.Context) APIPortalOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIPortalOutput) +} + +func (i *APIPortal) ToOutput(ctx context.Context) pulumix.Output[*APIPortal] { + return pulumix.Output[*APIPortal]{ + OutputState: i.ToAPIPortalOutputWithContext(ctx).OutputState, + } +} + +type APIPortalOutput struct{ *pulumi.OutputState } + +func (APIPortalOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIPortal)(nil)).Elem() +} + +func (o APIPortalOutput) ToAPIPortalOutput() APIPortalOutput { + return o +} + +func (o APIPortalOutput) ToAPIPortalOutputWithContext(ctx context.Context) APIPortalOutput { + return o +} + +func (o APIPortalOutput) ToOutput(ctx context.Context) pulumix.Output[*APIPortal] { + return pulumix.Output[*APIPortal]{ + OutputState: o.OutputState, + } +} + +func (o APIPortalOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortal) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +func (o APIPortalOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortal) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +func (o APIPortalOutput) Metadata() v1.ObjectMetaPtrOutput { + return o.ApplyT(func(v *APIPortal) v1.ObjectMetaPtrOutput { return v.Metadata }).(v1.ObjectMetaPtrOutput) +} + +// The desired behavior of this APIPortal. +func (o APIPortalOutput) Spec() APIPortalSpecPtrOutput { + return o.ApplyT(func(v *APIPortal) APIPortalSpecPtrOutput { return v.Spec }).(APIPortalSpecPtrOutput) +} + +// The current status of this APIPortal. +func (o APIPortalOutput) Status() APIPortalStatusPtrOutput { + return o.ApplyT(func(v *APIPortal) APIPortalStatusPtrOutput { return v.Status }).(APIPortalStatusPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*APIPortalInput)(nil)).Elem(), &APIPortal{}) + pulumi.RegisterOutputType(APIPortalOutput{}) +} diff --git a/crds/kubernetes/hub/v1alpha1/apirateLimit.go b/crds/kubernetes/hub/v1alpha1/apirateLimit.go new file mode 100644 index 0000000..4271cfe --- /dev/null +++ b/crds/kubernetes/hub/v1alpha1/apirateLimit.go @@ -0,0 +1,165 @@ +// Code generated by crd2pulumi DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha1 + +import ( + "context" + "reflect" + + "antoine-roux.tk/projects/go/pulumi-library/crds/kubernetes/internal" + v1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// APIRateLimit defines how group of consumers are rate limited on a set of APIs. +type APIRateLimit struct { + pulumi.CustomResourceState + + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + Kind pulumi.StringPtrOutput `pulumi:"kind"` + Metadata v1.ObjectMetaPtrOutput `pulumi:"metadata"` + // The desired behavior of this APIRateLimit. + Spec APIRateLimitSpecPtrOutput `pulumi:"spec"` + // The current status of this APIRateLimit. + Status APIRateLimitStatusPtrOutput `pulumi:"status"` +} + +// NewAPIRateLimit registers a new resource with the given unique name, arguments, and options. +func NewAPIRateLimit(ctx *pulumi.Context, + name string, args *APIRateLimitArgs, opts ...pulumi.ResourceOption) (*APIRateLimit, error) { + if args == nil { + args = &APIRateLimitArgs{} + } + + args.ApiVersion = pulumi.StringPtr("hub.traefik.io/v1alpha1") + args.Kind = pulumi.StringPtr("APIRateLimit") + opts = internal.PkgResourceDefaultOpts(opts) + var resource APIRateLimit + err := ctx.RegisterResource("kubernetes:hub.traefik.io/v1alpha1:APIRateLimit", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAPIRateLimit gets an existing APIRateLimit resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAPIRateLimit(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *APIRateLimitState, opts ...pulumi.ResourceOption) (*APIRateLimit, error) { + var resource APIRateLimit + err := ctx.ReadResource("kubernetes:hub.traefik.io/v1alpha1:APIRateLimit", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering APIRateLimit resources. +type apirateLimitState struct { +} + +type APIRateLimitState struct { +} + +func (APIRateLimitState) ElementType() reflect.Type { + return reflect.TypeOf((*apirateLimitState)(nil)).Elem() +} + +type apirateLimitArgs struct { + ApiVersion *string `pulumi:"apiVersion"` + Kind *string `pulumi:"kind"` + Metadata *v1.ObjectMeta `pulumi:"metadata"` + // The desired behavior of this APIRateLimit. + Spec *APIRateLimitSpec `pulumi:"spec"` + // The current status of this APIRateLimit. + Status *APIRateLimitStatus `pulumi:"status"` +} + +// The set of arguments for constructing a APIRateLimit resource. +type APIRateLimitArgs struct { + ApiVersion pulumi.StringPtrInput + Kind pulumi.StringPtrInput + Metadata v1.ObjectMetaPtrInput + // The desired behavior of this APIRateLimit. + Spec APIRateLimitSpecPtrInput + // The current status of this APIRateLimit. + Status APIRateLimitStatusPtrInput +} + +func (APIRateLimitArgs) ElementType() reflect.Type { + return reflect.TypeOf((*apirateLimitArgs)(nil)).Elem() +} + +type APIRateLimitInput interface { + pulumi.Input + + ToAPIRateLimitOutput() APIRateLimitOutput + ToAPIRateLimitOutputWithContext(ctx context.Context) APIRateLimitOutput +} + +func (*APIRateLimit) ElementType() reflect.Type { + return reflect.TypeOf((**APIRateLimit)(nil)).Elem() +} + +func (i *APIRateLimit) ToAPIRateLimitOutput() APIRateLimitOutput { + return i.ToAPIRateLimitOutputWithContext(context.Background()) +} + +func (i *APIRateLimit) ToAPIRateLimitOutputWithContext(ctx context.Context) APIRateLimitOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIRateLimitOutput) +} + +func (i *APIRateLimit) ToOutput(ctx context.Context) pulumix.Output[*APIRateLimit] { + return pulumix.Output[*APIRateLimit]{ + OutputState: i.ToAPIRateLimitOutputWithContext(ctx).OutputState, + } +} + +type APIRateLimitOutput struct{ *pulumi.OutputState } + +func (APIRateLimitOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIRateLimit)(nil)).Elem() +} + +func (o APIRateLimitOutput) ToAPIRateLimitOutput() APIRateLimitOutput { + return o +} + +func (o APIRateLimitOutput) ToAPIRateLimitOutputWithContext(ctx context.Context) APIRateLimitOutput { + return o +} + +func (o APIRateLimitOutput) ToOutput(ctx context.Context) pulumix.Output[*APIRateLimit] { + return pulumix.Output[*APIRateLimit]{ + OutputState: o.OutputState, + } +} + +func (o APIRateLimitOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIRateLimit) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +func (o APIRateLimitOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIRateLimit) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +func (o APIRateLimitOutput) Metadata() v1.ObjectMetaPtrOutput { + return o.ApplyT(func(v *APIRateLimit) v1.ObjectMetaPtrOutput { return v.Metadata }).(v1.ObjectMetaPtrOutput) +} + +// The desired behavior of this APIRateLimit. +func (o APIRateLimitOutput) Spec() APIRateLimitSpecPtrOutput { + return o.ApplyT(func(v *APIRateLimit) APIRateLimitSpecPtrOutput { return v.Spec }).(APIRateLimitSpecPtrOutput) +} + +// The current status of this APIRateLimit. +func (o APIRateLimitOutput) Status() APIRateLimitStatusPtrOutput { + return o.ApplyT(func(v *APIRateLimit) APIRateLimitStatusPtrOutput { return v.Status }).(APIRateLimitStatusPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*APIRateLimitInput)(nil)).Elem(), &APIRateLimit{}) + pulumi.RegisterOutputType(APIRateLimitOutput{}) +} diff --git a/crds/kubernetes/hub/v1alpha1/apiversion.go b/crds/kubernetes/hub/v1alpha1/apiversion.go new file mode 100644 index 0000000..0e5f9e2 --- /dev/null +++ b/crds/kubernetes/hub/v1alpha1/apiversion.go @@ -0,0 +1,165 @@ +// Code generated by crd2pulumi DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha1 + +import ( + "context" + "reflect" + + "antoine-roux.tk/projects/go/pulumi-library/crds/kubernetes/internal" + v1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// APIVersion defines a version of an API. +type APIVersion struct { + pulumi.CustomResourceState + + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + Kind pulumi.StringPtrOutput `pulumi:"kind"` + Metadata v1.ObjectMetaPtrOutput `pulumi:"metadata"` + // The desired behavior of this APIVersion. + Spec APIVersionSpecPtrOutput `pulumi:"spec"` + // The current status of this APIVersion. + Status APIVersionStatusPtrOutput `pulumi:"status"` +} + +// NewAPIVersion registers a new resource with the given unique name, arguments, and options. +func NewAPIVersion(ctx *pulumi.Context, + name string, args *APIVersionArgs, opts ...pulumi.ResourceOption) (*APIVersion, error) { + if args == nil { + args = &APIVersionArgs{} + } + + args.ApiVersion = pulumi.StringPtr("hub.traefik.io/v1alpha1") + args.Kind = pulumi.StringPtr("APIVersion") + opts = internal.PkgResourceDefaultOpts(opts) + var resource APIVersion + err := ctx.RegisterResource("kubernetes:hub.traefik.io/v1alpha1:APIVersion", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAPIVersion gets an existing APIVersion resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAPIVersion(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *APIVersionState, opts ...pulumi.ResourceOption) (*APIVersion, error) { + var resource APIVersion + err := ctx.ReadResource("kubernetes:hub.traefik.io/v1alpha1:APIVersion", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering APIVersion resources. +type apiversionState struct { +} + +type APIVersionState struct { +} + +func (APIVersionState) ElementType() reflect.Type { + return reflect.TypeOf((*apiversionState)(nil)).Elem() +} + +type apiversionArgs struct { + ApiVersion *string `pulumi:"apiVersion"` + Kind *string `pulumi:"kind"` + Metadata *v1.ObjectMeta `pulumi:"metadata"` + // The desired behavior of this APIVersion. + Spec *APIVersionSpec `pulumi:"spec"` + // The current status of this APIVersion. + Status *APIVersionStatus `pulumi:"status"` +} + +// The set of arguments for constructing a APIVersion resource. +type APIVersionArgs struct { + ApiVersion pulumi.StringPtrInput + Kind pulumi.StringPtrInput + Metadata v1.ObjectMetaPtrInput + // The desired behavior of this APIVersion. + Spec APIVersionSpecPtrInput + // The current status of this APIVersion. + Status APIVersionStatusPtrInput +} + +func (APIVersionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*apiversionArgs)(nil)).Elem() +} + +type APIVersionInput interface { + pulumi.Input + + ToAPIVersionOutput() APIVersionOutput + ToAPIVersionOutputWithContext(ctx context.Context) APIVersionOutput +} + +func (*APIVersion) ElementType() reflect.Type { + return reflect.TypeOf((**APIVersion)(nil)).Elem() +} + +func (i *APIVersion) ToAPIVersionOutput() APIVersionOutput { + return i.ToAPIVersionOutputWithContext(context.Background()) +} + +func (i *APIVersion) ToAPIVersionOutputWithContext(ctx context.Context) APIVersionOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionOutput) +} + +func (i *APIVersion) ToOutput(ctx context.Context) pulumix.Output[*APIVersion] { + return pulumix.Output[*APIVersion]{ + OutputState: i.ToAPIVersionOutputWithContext(ctx).OutputState, + } +} + +type APIVersionOutput struct{ *pulumi.OutputState } + +func (APIVersionOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIVersion)(nil)).Elem() +} + +func (o APIVersionOutput) ToAPIVersionOutput() APIVersionOutput { + return o +} + +func (o APIVersionOutput) ToAPIVersionOutputWithContext(ctx context.Context) APIVersionOutput { + return o +} + +func (o APIVersionOutput) ToOutput(ctx context.Context) pulumix.Output[*APIVersion] { + return pulumix.Output[*APIVersion]{ + OutputState: o.OutputState, + } +} + +func (o APIVersionOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIVersion) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +func (o APIVersionOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIVersion) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +func (o APIVersionOutput) Metadata() v1.ObjectMetaPtrOutput { + return o.ApplyT(func(v *APIVersion) v1.ObjectMetaPtrOutput { return v.Metadata }).(v1.ObjectMetaPtrOutput) +} + +// The desired behavior of this APIVersion. +func (o APIVersionOutput) Spec() APIVersionSpecPtrOutput { + return o.ApplyT(func(v *APIVersion) APIVersionSpecPtrOutput { return v.Spec }).(APIVersionSpecPtrOutput) +} + +// The current status of this APIVersion. +func (o APIVersionOutput) Status() APIVersionStatusPtrOutput { + return o.ApplyT(func(v *APIVersion) APIVersionStatusPtrOutput { return v.Status }).(APIVersionStatusPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*APIVersionInput)(nil)).Elem(), &APIVersion{}) + pulumi.RegisterOutputType(APIVersionOutput{}) +} diff --git a/crds/kubernetes/hub/v1alpha1/init.go b/crds/kubernetes/hub/v1alpha1/init.go new file mode 100644 index 0000000..7a9f4ac --- /dev/null +++ b/crds/kubernetes/hub/v1alpha1/init.go @@ -0,0 +1,54 @@ +// Code generated by crd2pulumi DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha1 + +import ( + "fmt" + + "antoine-roux.tk/projects/go/pulumi-library/crds/kubernetes/internal" + "github.com/blang/semver" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "kubernetes:hub.traefik.io/v1alpha1:API": + r = &API{} + case "kubernetes:hub.traefik.io/v1alpha1:APIAccess": + r = &APIAccess{} + case "kubernetes:hub.traefik.io/v1alpha1:APIPortal": + r = &APIPortal{} + case "kubernetes:hub.traefik.io/v1alpha1:APIRateLimit": + r = &APIRateLimit{} + case "kubernetes:hub.traefik.io/v1alpha1:APIVersion": + r = &APIVersion{} + case "kubernetes:hub.traefik.io/v1alpha1:AccessControlPolicy": + r = &AccessControlPolicy{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := internal.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "crds", + "hub.traefik.io/v1alpha1", + &module{version}, + ) +} diff --git a/crds/kubernetes/hub/v1alpha1/pulumiTypes.go b/crds/kubernetes/hub/v1alpha1/pulumiTypes.go new file mode 100644 index 0000000..5fe1c44 --- /dev/null +++ b/crds/kubernetes/hub/v1alpha1/pulumiTypes.go @@ -0,0 +1,10276 @@ +// Code generated by crd2pulumi DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha1 + +import ( + "context" + "reflect" + + "antoine-roux.tk/projects/go/pulumi-library/crds/kubernetes/internal" + v1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +var _ = internal.GetEnvOrDefault + +// API defines an HTTP interface that is exposed to external clients. It specifies the supported versions +// and provides instructions for accessing its documentation. Once instantiated, an API object is associated +// with an Ingress, IngressRoute, or HTTPRoute resource, enabling the exposure of the described API to the outside world. +type APIType struct { + ApiVersion *string `pulumi:"apiVersion"` + Kind *string `pulumi:"kind"` + Metadata *v1.ObjectMeta `pulumi:"metadata"` + // APISpec describes the API. + Spec *APISpec `pulumi:"spec"` + // The current status of this API. + Status *APIStatus `pulumi:"status"` +} + +// APIAccess defines who can access to a set of APIs. +type APIAccessType struct { + ApiVersion *string `pulumi:"apiVersion"` + Kind *string `pulumi:"kind"` + Metadata *v1.ObjectMeta `pulumi:"metadata"` + // The desired behavior of this APIAccess. + Spec *APIAccessSpec `pulumi:"spec"` + // The current status of this APIAccess. + Status *APIAccessStatus `pulumi:"status"` +} + +type APIAccessMetadata struct { +} + +// The desired behavior of this APIAccess. +type APIAccessSpec struct { + // APISelector selects the APIs that will be accessible to the configured audience. + // Multiple APIAccesses can select the same set of APIs. + // This field is optional and follows standard label selector semantics. + // An empty APISelector matches any API. + ApiSelector *APIAccessSpecApiSelector `pulumi:"apiSelector"` + // APIs defines a set of APIs that will be accessible to the configured audience. + // Multiple APIAccesses can select the same APIs. + // When combined with APISelector, this set of APIs is appended to the matching APIs. + Apis []APIAccessSpecApis `pulumi:"apis"` + // Everyone indicates that all users will have access to the selected APIs. + Everyone *bool `pulumi:"everyone"` + // Groups are the consumer groups that will gain access to the selected APIs. + Groups []string `pulumi:"groups"` + // OperationFilter specifies the allowed operations on APIs and APIVersions. + // If not set, all operations are available. + // An empty OperationFilter prohibits all operations. + OperationFilter *APIAccessSpecOperationFilter `pulumi:"operationFilter"` +} + +// APIAccessSpecInput is an input type that accepts APIAccessSpecArgs and APIAccessSpecOutput values. +// You can construct a concrete instance of `APIAccessSpecInput` via: +// +// APIAccessSpecArgs{...} +type APIAccessSpecInput interface { + pulumi.Input + + ToAPIAccessSpecOutput() APIAccessSpecOutput + ToAPIAccessSpecOutputWithContext(context.Context) APIAccessSpecOutput +} + +// The desired behavior of this APIAccess. +type APIAccessSpecArgs struct { + // APISelector selects the APIs that will be accessible to the configured audience. + // Multiple APIAccesses can select the same set of APIs. + // This field is optional and follows standard label selector semantics. + // An empty APISelector matches any API. + ApiSelector APIAccessSpecApiSelectorPtrInput `pulumi:"apiSelector"` + // APIs defines a set of APIs that will be accessible to the configured audience. + // Multiple APIAccesses can select the same APIs. + // When combined with APISelector, this set of APIs is appended to the matching APIs. + Apis APIAccessSpecApisArrayInput `pulumi:"apis"` + // Everyone indicates that all users will have access to the selected APIs. + Everyone pulumi.BoolPtrInput `pulumi:"everyone"` + // Groups are the consumer groups that will gain access to the selected APIs. + Groups pulumi.StringArrayInput `pulumi:"groups"` + // OperationFilter specifies the allowed operations on APIs and APIVersions. + // If not set, all operations are available. + // An empty OperationFilter prohibits all operations. + OperationFilter APIAccessSpecOperationFilterPtrInput `pulumi:"operationFilter"` +} + +func (APIAccessSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIAccessSpec)(nil)).Elem() +} + +func (i APIAccessSpecArgs) ToAPIAccessSpecOutput() APIAccessSpecOutput { + return i.ToAPIAccessSpecOutputWithContext(context.Background()) +} + +func (i APIAccessSpecArgs) ToAPIAccessSpecOutputWithContext(ctx context.Context) APIAccessSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIAccessSpecOutput) +} + +func (i APIAccessSpecArgs) ToOutput(ctx context.Context) pulumix.Output[APIAccessSpec] { + return pulumix.Output[APIAccessSpec]{ + OutputState: i.ToAPIAccessSpecOutputWithContext(ctx).OutputState, + } +} + +func (i APIAccessSpecArgs) ToAPIAccessSpecPtrOutput() APIAccessSpecPtrOutput { + return i.ToAPIAccessSpecPtrOutputWithContext(context.Background()) +} + +func (i APIAccessSpecArgs) ToAPIAccessSpecPtrOutputWithContext(ctx context.Context) APIAccessSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIAccessSpecOutput).ToAPIAccessSpecPtrOutputWithContext(ctx) +} + +// APIAccessSpecPtrInput is an input type that accepts APIAccessSpecArgs, APIAccessSpecPtr and APIAccessSpecPtrOutput values. +// You can construct a concrete instance of `APIAccessSpecPtrInput` via: +// +// APIAccessSpecArgs{...} +// +// or: +// +// nil +type APIAccessSpecPtrInput interface { + pulumi.Input + + ToAPIAccessSpecPtrOutput() APIAccessSpecPtrOutput + ToAPIAccessSpecPtrOutputWithContext(context.Context) APIAccessSpecPtrOutput +} + +type apiaccessSpecPtrType APIAccessSpecArgs + +func APIAccessSpecPtr(v *APIAccessSpecArgs) APIAccessSpecPtrInput { + return (*apiaccessSpecPtrType)(v) +} + +func (*apiaccessSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APIAccessSpec)(nil)).Elem() +} + +func (i *apiaccessSpecPtrType) ToAPIAccessSpecPtrOutput() APIAccessSpecPtrOutput { + return i.ToAPIAccessSpecPtrOutputWithContext(context.Background()) +} + +func (i *apiaccessSpecPtrType) ToAPIAccessSpecPtrOutputWithContext(ctx context.Context) APIAccessSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIAccessSpecPtrOutput) +} + +func (i *apiaccessSpecPtrType) ToOutput(ctx context.Context) pulumix.Output[*APIAccessSpec] { + return pulumix.Output[*APIAccessSpec]{ + OutputState: i.ToAPIAccessSpecPtrOutputWithContext(ctx).OutputState, + } +} + +// The desired behavior of this APIAccess. +type APIAccessSpecOutput struct{ *pulumi.OutputState } + +func (APIAccessSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIAccessSpec)(nil)).Elem() +} + +func (o APIAccessSpecOutput) ToAPIAccessSpecOutput() APIAccessSpecOutput { + return o +} + +func (o APIAccessSpecOutput) ToAPIAccessSpecOutputWithContext(ctx context.Context) APIAccessSpecOutput { + return o +} + +func (o APIAccessSpecOutput) ToAPIAccessSpecPtrOutput() APIAccessSpecPtrOutput { + return o.ToAPIAccessSpecPtrOutputWithContext(context.Background()) +} + +func (o APIAccessSpecOutput) ToAPIAccessSpecPtrOutputWithContext(ctx context.Context) APIAccessSpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APIAccessSpec) *APIAccessSpec { + return &v + }).(APIAccessSpecPtrOutput) +} + +func (o APIAccessSpecOutput) ToOutput(ctx context.Context) pulumix.Output[APIAccessSpec] { + return pulumix.Output[APIAccessSpec]{ + OutputState: o.OutputState, + } +} + +// APISelector selects the APIs that will be accessible to the configured audience. +// Multiple APIAccesses can select the same set of APIs. +// This field is optional and follows standard label selector semantics. +// An empty APISelector matches any API. +func (o APIAccessSpecOutput) ApiSelector() APIAccessSpecApiSelectorPtrOutput { + return o.ApplyT(func(v APIAccessSpec) *APIAccessSpecApiSelector { return v.ApiSelector }).(APIAccessSpecApiSelectorPtrOutput) +} + +// APIs defines a set of APIs that will be accessible to the configured audience. +// Multiple APIAccesses can select the same APIs. +// When combined with APISelector, this set of APIs is appended to the matching APIs. +func (o APIAccessSpecOutput) Apis() APIAccessSpecApisArrayOutput { + return o.ApplyT(func(v APIAccessSpec) []APIAccessSpecApis { return v.Apis }).(APIAccessSpecApisArrayOutput) +} + +// Everyone indicates that all users will have access to the selected APIs. +func (o APIAccessSpecOutput) Everyone() pulumi.BoolPtrOutput { + return o.ApplyT(func(v APIAccessSpec) *bool { return v.Everyone }).(pulumi.BoolPtrOutput) +} + +// Groups are the consumer groups that will gain access to the selected APIs. +func (o APIAccessSpecOutput) Groups() pulumi.StringArrayOutput { + return o.ApplyT(func(v APIAccessSpec) []string { return v.Groups }).(pulumi.StringArrayOutput) +} + +// OperationFilter specifies the allowed operations on APIs and APIVersions. +// If not set, all operations are available. +// An empty OperationFilter prohibits all operations. +func (o APIAccessSpecOutput) OperationFilter() APIAccessSpecOperationFilterPtrOutput { + return o.ApplyT(func(v APIAccessSpec) *APIAccessSpecOperationFilter { return v.OperationFilter }).(APIAccessSpecOperationFilterPtrOutput) +} + +type APIAccessSpecPtrOutput struct{ *pulumi.OutputState } + +func (APIAccessSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIAccessSpec)(nil)).Elem() +} + +func (o APIAccessSpecPtrOutput) ToAPIAccessSpecPtrOutput() APIAccessSpecPtrOutput { + return o +} + +func (o APIAccessSpecPtrOutput) ToAPIAccessSpecPtrOutputWithContext(ctx context.Context) APIAccessSpecPtrOutput { + return o +} + +func (o APIAccessSpecPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APIAccessSpec] { + return pulumix.Output[*APIAccessSpec]{ + OutputState: o.OutputState, + } +} + +func (o APIAccessSpecPtrOutput) Elem() APIAccessSpecOutput { + return o.ApplyT(func(v *APIAccessSpec) APIAccessSpec { + if v != nil { + return *v + } + var ret APIAccessSpec + return ret + }).(APIAccessSpecOutput) +} + +// APISelector selects the APIs that will be accessible to the configured audience. +// Multiple APIAccesses can select the same set of APIs. +// This field is optional and follows standard label selector semantics. +// An empty APISelector matches any API. +func (o APIAccessSpecPtrOutput) ApiSelector() APIAccessSpecApiSelectorPtrOutput { + return o.ApplyT(func(v *APIAccessSpec) *APIAccessSpecApiSelector { + if v == nil { + return nil + } + return v.ApiSelector + }).(APIAccessSpecApiSelectorPtrOutput) +} + +// APIs defines a set of APIs that will be accessible to the configured audience. +// Multiple APIAccesses can select the same APIs. +// When combined with APISelector, this set of APIs is appended to the matching APIs. +func (o APIAccessSpecPtrOutput) Apis() APIAccessSpecApisArrayOutput { + return o.ApplyT(func(v *APIAccessSpec) []APIAccessSpecApis { + if v == nil { + return nil + } + return v.Apis + }).(APIAccessSpecApisArrayOutput) +} + +// Everyone indicates that all users will have access to the selected APIs. +func (o APIAccessSpecPtrOutput) Everyone() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *APIAccessSpec) *bool { + if v == nil { + return nil + } + return v.Everyone + }).(pulumi.BoolPtrOutput) +} + +// Groups are the consumer groups that will gain access to the selected APIs. +func (o APIAccessSpecPtrOutput) Groups() pulumi.StringArrayOutput { + return o.ApplyT(func(v *APIAccessSpec) []string { + if v == nil { + return nil + } + return v.Groups + }).(pulumi.StringArrayOutput) +} + +// OperationFilter specifies the allowed operations on APIs and APIVersions. +// If not set, all operations are available. +// An empty OperationFilter prohibits all operations. +func (o APIAccessSpecPtrOutput) OperationFilter() APIAccessSpecOperationFilterPtrOutput { + return o.ApplyT(func(v *APIAccessSpec) *APIAccessSpecOperationFilter { + if v == nil { + return nil + } + return v.OperationFilter + }).(APIAccessSpecOperationFilterPtrOutput) +} + +// APISelector selects the APIs that will be accessible to the configured audience. +// Multiple APIAccesses can select the same set of APIs. +// This field is optional and follows standard label selector semantics. +// An empty APISelector matches any API. +type APIAccessSpecApiSelector struct { + // matchExpressions is a list of label selector requirements. The requirements are ANDed. + MatchExpressions []APIAccessSpecApiSelectorMatchExpressions `pulumi:"matchExpressions"` + // matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + // map is equivalent to an element of matchExpressions, whose key field is "key", the + // operator is "In", and the values array contains only "value". The requirements are ANDed. + MatchLabels map[string]string `pulumi:"matchLabels"` +} + +// APIAccessSpecApiSelectorInput is an input type that accepts APIAccessSpecApiSelectorArgs and APIAccessSpecApiSelectorOutput values. +// You can construct a concrete instance of `APIAccessSpecApiSelectorInput` via: +// +// APIAccessSpecApiSelectorArgs{...} +type APIAccessSpecApiSelectorInput interface { + pulumi.Input + + ToAPIAccessSpecApiSelectorOutput() APIAccessSpecApiSelectorOutput + ToAPIAccessSpecApiSelectorOutputWithContext(context.Context) APIAccessSpecApiSelectorOutput +} + +// APISelector selects the APIs that will be accessible to the configured audience. +// Multiple APIAccesses can select the same set of APIs. +// This field is optional and follows standard label selector semantics. +// An empty APISelector matches any API. +type APIAccessSpecApiSelectorArgs struct { + // matchExpressions is a list of label selector requirements. The requirements are ANDed. + MatchExpressions APIAccessSpecApiSelectorMatchExpressionsArrayInput `pulumi:"matchExpressions"` + // matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + // map is equivalent to an element of matchExpressions, whose key field is "key", the + // operator is "In", and the values array contains only "value". The requirements are ANDed. + MatchLabels pulumi.StringMapInput `pulumi:"matchLabels"` +} + +func (APIAccessSpecApiSelectorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIAccessSpecApiSelector)(nil)).Elem() +} + +func (i APIAccessSpecApiSelectorArgs) ToAPIAccessSpecApiSelectorOutput() APIAccessSpecApiSelectorOutput { + return i.ToAPIAccessSpecApiSelectorOutputWithContext(context.Background()) +} + +func (i APIAccessSpecApiSelectorArgs) ToAPIAccessSpecApiSelectorOutputWithContext(ctx context.Context) APIAccessSpecApiSelectorOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIAccessSpecApiSelectorOutput) +} + +func (i APIAccessSpecApiSelectorArgs) ToOutput(ctx context.Context) pulumix.Output[APIAccessSpecApiSelector] { + return pulumix.Output[APIAccessSpecApiSelector]{ + OutputState: i.ToAPIAccessSpecApiSelectorOutputWithContext(ctx).OutputState, + } +} + +func (i APIAccessSpecApiSelectorArgs) ToAPIAccessSpecApiSelectorPtrOutput() APIAccessSpecApiSelectorPtrOutput { + return i.ToAPIAccessSpecApiSelectorPtrOutputWithContext(context.Background()) +} + +func (i APIAccessSpecApiSelectorArgs) ToAPIAccessSpecApiSelectorPtrOutputWithContext(ctx context.Context) APIAccessSpecApiSelectorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIAccessSpecApiSelectorOutput).ToAPIAccessSpecApiSelectorPtrOutputWithContext(ctx) +} + +// APIAccessSpecApiSelectorPtrInput is an input type that accepts APIAccessSpecApiSelectorArgs, APIAccessSpecApiSelectorPtr and APIAccessSpecApiSelectorPtrOutput values. +// You can construct a concrete instance of `APIAccessSpecApiSelectorPtrInput` via: +// +// APIAccessSpecApiSelectorArgs{...} +// +// or: +// +// nil +type APIAccessSpecApiSelectorPtrInput interface { + pulumi.Input + + ToAPIAccessSpecApiSelectorPtrOutput() APIAccessSpecApiSelectorPtrOutput + ToAPIAccessSpecApiSelectorPtrOutputWithContext(context.Context) APIAccessSpecApiSelectorPtrOutput +} + +type apiaccessSpecApiSelectorPtrType APIAccessSpecApiSelectorArgs + +func APIAccessSpecApiSelectorPtr(v *APIAccessSpecApiSelectorArgs) APIAccessSpecApiSelectorPtrInput { + return (*apiaccessSpecApiSelectorPtrType)(v) +} + +func (*apiaccessSpecApiSelectorPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APIAccessSpecApiSelector)(nil)).Elem() +} + +func (i *apiaccessSpecApiSelectorPtrType) ToAPIAccessSpecApiSelectorPtrOutput() APIAccessSpecApiSelectorPtrOutput { + return i.ToAPIAccessSpecApiSelectorPtrOutputWithContext(context.Background()) +} + +func (i *apiaccessSpecApiSelectorPtrType) ToAPIAccessSpecApiSelectorPtrOutputWithContext(ctx context.Context) APIAccessSpecApiSelectorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIAccessSpecApiSelectorPtrOutput) +} + +func (i *apiaccessSpecApiSelectorPtrType) ToOutput(ctx context.Context) pulumix.Output[*APIAccessSpecApiSelector] { + return pulumix.Output[*APIAccessSpecApiSelector]{ + OutputState: i.ToAPIAccessSpecApiSelectorPtrOutputWithContext(ctx).OutputState, + } +} + +// APISelector selects the APIs that will be accessible to the configured audience. +// Multiple APIAccesses can select the same set of APIs. +// This field is optional and follows standard label selector semantics. +// An empty APISelector matches any API. +type APIAccessSpecApiSelectorOutput struct{ *pulumi.OutputState } + +func (APIAccessSpecApiSelectorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIAccessSpecApiSelector)(nil)).Elem() +} + +func (o APIAccessSpecApiSelectorOutput) ToAPIAccessSpecApiSelectorOutput() APIAccessSpecApiSelectorOutput { + return o +} + +func (o APIAccessSpecApiSelectorOutput) ToAPIAccessSpecApiSelectorOutputWithContext(ctx context.Context) APIAccessSpecApiSelectorOutput { + return o +} + +func (o APIAccessSpecApiSelectorOutput) ToAPIAccessSpecApiSelectorPtrOutput() APIAccessSpecApiSelectorPtrOutput { + return o.ToAPIAccessSpecApiSelectorPtrOutputWithContext(context.Background()) +} + +func (o APIAccessSpecApiSelectorOutput) ToAPIAccessSpecApiSelectorPtrOutputWithContext(ctx context.Context) APIAccessSpecApiSelectorPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APIAccessSpecApiSelector) *APIAccessSpecApiSelector { + return &v + }).(APIAccessSpecApiSelectorPtrOutput) +} + +func (o APIAccessSpecApiSelectorOutput) ToOutput(ctx context.Context) pulumix.Output[APIAccessSpecApiSelector] { + return pulumix.Output[APIAccessSpecApiSelector]{ + OutputState: o.OutputState, + } +} + +// matchExpressions is a list of label selector requirements. The requirements are ANDed. +func (o APIAccessSpecApiSelectorOutput) MatchExpressions() APIAccessSpecApiSelectorMatchExpressionsArrayOutput { + return o.ApplyT(func(v APIAccessSpecApiSelector) []APIAccessSpecApiSelectorMatchExpressions { return v.MatchExpressions }).(APIAccessSpecApiSelectorMatchExpressionsArrayOutput) +} + +// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels +// map is equivalent to an element of matchExpressions, whose key field is "key", the +// operator is "In", and the values array contains only "value". The requirements are ANDed. +func (o APIAccessSpecApiSelectorOutput) MatchLabels() pulumi.StringMapOutput { + return o.ApplyT(func(v APIAccessSpecApiSelector) map[string]string { return v.MatchLabels }).(pulumi.StringMapOutput) +} + +type APIAccessSpecApiSelectorPtrOutput struct{ *pulumi.OutputState } + +func (APIAccessSpecApiSelectorPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIAccessSpecApiSelector)(nil)).Elem() +} + +func (o APIAccessSpecApiSelectorPtrOutput) ToAPIAccessSpecApiSelectorPtrOutput() APIAccessSpecApiSelectorPtrOutput { + return o +} + +func (o APIAccessSpecApiSelectorPtrOutput) ToAPIAccessSpecApiSelectorPtrOutputWithContext(ctx context.Context) APIAccessSpecApiSelectorPtrOutput { + return o +} + +func (o APIAccessSpecApiSelectorPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APIAccessSpecApiSelector] { + return pulumix.Output[*APIAccessSpecApiSelector]{ + OutputState: o.OutputState, + } +} + +func (o APIAccessSpecApiSelectorPtrOutput) Elem() APIAccessSpecApiSelectorOutput { + return o.ApplyT(func(v *APIAccessSpecApiSelector) APIAccessSpecApiSelector { + if v != nil { + return *v + } + var ret APIAccessSpecApiSelector + return ret + }).(APIAccessSpecApiSelectorOutput) +} + +// matchExpressions is a list of label selector requirements. The requirements are ANDed. +func (o APIAccessSpecApiSelectorPtrOutput) MatchExpressions() APIAccessSpecApiSelectorMatchExpressionsArrayOutput { + return o.ApplyT(func(v *APIAccessSpecApiSelector) []APIAccessSpecApiSelectorMatchExpressions { + if v == nil { + return nil + } + return v.MatchExpressions + }).(APIAccessSpecApiSelectorMatchExpressionsArrayOutput) +} + +// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels +// map is equivalent to an element of matchExpressions, whose key field is "key", the +// operator is "In", and the values array contains only "value". The requirements are ANDed. +func (o APIAccessSpecApiSelectorPtrOutput) MatchLabels() pulumi.StringMapOutput { + return o.ApplyT(func(v *APIAccessSpecApiSelector) map[string]string { + if v == nil { + return nil + } + return v.MatchLabels + }).(pulumi.StringMapOutput) +} + +// A label selector requirement is a selector that contains values, a key, and an operator that +// relates the key and values. +type APIAccessSpecApiSelectorMatchExpressions struct { + // key is the label key that the selector applies to. + Key string `pulumi:"key"` + // operator represents a key's relationship to a set of values. + // Valid operators are In, NotIn, Exists and DoesNotExist. + Operator string `pulumi:"operator"` + // values is an array of string values. If the operator is In or NotIn, + // the values array must be non-empty. If the operator is Exists or DoesNotExist, + // the values array must be empty. This array is replaced during a strategic + // merge patch. + Values []string `pulumi:"values"` +} + +// APIAccessSpecApiSelectorMatchExpressionsInput is an input type that accepts APIAccessSpecApiSelectorMatchExpressionsArgs and APIAccessSpecApiSelectorMatchExpressionsOutput values. +// You can construct a concrete instance of `APIAccessSpecApiSelectorMatchExpressionsInput` via: +// +// APIAccessSpecApiSelectorMatchExpressionsArgs{...} +type APIAccessSpecApiSelectorMatchExpressionsInput interface { + pulumi.Input + + ToAPIAccessSpecApiSelectorMatchExpressionsOutput() APIAccessSpecApiSelectorMatchExpressionsOutput + ToAPIAccessSpecApiSelectorMatchExpressionsOutputWithContext(context.Context) APIAccessSpecApiSelectorMatchExpressionsOutput +} + +// A label selector requirement is a selector that contains values, a key, and an operator that +// relates the key and values. +type APIAccessSpecApiSelectorMatchExpressionsArgs struct { + // key is the label key that the selector applies to. + Key pulumi.StringInput `pulumi:"key"` + // operator represents a key's relationship to a set of values. + // Valid operators are In, NotIn, Exists and DoesNotExist. + Operator pulumi.StringInput `pulumi:"operator"` + // values is an array of string values. If the operator is In or NotIn, + // the values array must be non-empty. If the operator is Exists or DoesNotExist, + // the values array must be empty. This array is replaced during a strategic + // merge patch. + Values pulumi.StringArrayInput `pulumi:"values"` +} + +func (APIAccessSpecApiSelectorMatchExpressionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIAccessSpecApiSelectorMatchExpressions)(nil)).Elem() +} + +func (i APIAccessSpecApiSelectorMatchExpressionsArgs) ToAPIAccessSpecApiSelectorMatchExpressionsOutput() APIAccessSpecApiSelectorMatchExpressionsOutput { + return i.ToAPIAccessSpecApiSelectorMatchExpressionsOutputWithContext(context.Background()) +} + +func (i APIAccessSpecApiSelectorMatchExpressionsArgs) ToAPIAccessSpecApiSelectorMatchExpressionsOutputWithContext(ctx context.Context) APIAccessSpecApiSelectorMatchExpressionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIAccessSpecApiSelectorMatchExpressionsOutput) +} + +func (i APIAccessSpecApiSelectorMatchExpressionsArgs) ToOutput(ctx context.Context) pulumix.Output[APIAccessSpecApiSelectorMatchExpressions] { + return pulumix.Output[APIAccessSpecApiSelectorMatchExpressions]{ + OutputState: i.ToAPIAccessSpecApiSelectorMatchExpressionsOutputWithContext(ctx).OutputState, + } +} + +// APIAccessSpecApiSelectorMatchExpressionsArrayInput is an input type that accepts APIAccessSpecApiSelectorMatchExpressionsArray and APIAccessSpecApiSelectorMatchExpressionsArrayOutput values. +// You can construct a concrete instance of `APIAccessSpecApiSelectorMatchExpressionsArrayInput` via: +// +// APIAccessSpecApiSelectorMatchExpressionsArray{ APIAccessSpecApiSelectorMatchExpressionsArgs{...} } +type APIAccessSpecApiSelectorMatchExpressionsArrayInput interface { + pulumi.Input + + ToAPIAccessSpecApiSelectorMatchExpressionsArrayOutput() APIAccessSpecApiSelectorMatchExpressionsArrayOutput + ToAPIAccessSpecApiSelectorMatchExpressionsArrayOutputWithContext(context.Context) APIAccessSpecApiSelectorMatchExpressionsArrayOutput +} + +type APIAccessSpecApiSelectorMatchExpressionsArray []APIAccessSpecApiSelectorMatchExpressionsInput + +func (APIAccessSpecApiSelectorMatchExpressionsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]APIAccessSpecApiSelectorMatchExpressions)(nil)).Elem() +} + +func (i APIAccessSpecApiSelectorMatchExpressionsArray) ToAPIAccessSpecApiSelectorMatchExpressionsArrayOutput() APIAccessSpecApiSelectorMatchExpressionsArrayOutput { + return i.ToAPIAccessSpecApiSelectorMatchExpressionsArrayOutputWithContext(context.Background()) +} + +func (i APIAccessSpecApiSelectorMatchExpressionsArray) ToAPIAccessSpecApiSelectorMatchExpressionsArrayOutputWithContext(ctx context.Context) APIAccessSpecApiSelectorMatchExpressionsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIAccessSpecApiSelectorMatchExpressionsArrayOutput) +} + +func (i APIAccessSpecApiSelectorMatchExpressionsArray) ToOutput(ctx context.Context) pulumix.Output[[]APIAccessSpecApiSelectorMatchExpressions] { + return pulumix.Output[[]APIAccessSpecApiSelectorMatchExpressions]{ + OutputState: i.ToAPIAccessSpecApiSelectorMatchExpressionsArrayOutputWithContext(ctx).OutputState, + } +} + +// A label selector requirement is a selector that contains values, a key, and an operator that +// relates the key and values. +type APIAccessSpecApiSelectorMatchExpressionsOutput struct{ *pulumi.OutputState } + +func (APIAccessSpecApiSelectorMatchExpressionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIAccessSpecApiSelectorMatchExpressions)(nil)).Elem() +} + +func (o APIAccessSpecApiSelectorMatchExpressionsOutput) ToAPIAccessSpecApiSelectorMatchExpressionsOutput() APIAccessSpecApiSelectorMatchExpressionsOutput { + return o +} + +func (o APIAccessSpecApiSelectorMatchExpressionsOutput) ToAPIAccessSpecApiSelectorMatchExpressionsOutputWithContext(ctx context.Context) APIAccessSpecApiSelectorMatchExpressionsOutput { + return o +} + +func (o APIAccessSpecApiSelectorMatchExpressionsOutput) ToOutput(ctx context.Context) pulumix.Output[APIAccessSpecApiSelectorMatchExpressions] { + return pulumix.Output[APIAccessSpecApiSelectorMatchExpressions]{ + OutputState: o.OutputState, + } +} + +// key is the label key that the selector applies to. +func (o APIAccessSpecApiSelectorMatchExpressionsOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v APIAccessSpecApiSelectorMatchExpressions) string { return v.Key }).(pulumi.StringOutput) +} + +// operator represents a key's relationship to a set of values. +// Valid operators are In, NotIn, Exists and DoesNotExist. +func (o APIAccessSpecApiSelectorMatchExpressionsOutput) Operator() pulumi.StringOutput { + return o.ApplyT(func(v APIAccessSpecApiSelectorMatchExpressions) string { return v.Operator }).(pulumi.StringOutput) +} + +// values is an array of string values. If the operator is In or NotIn, +// the values array must be non-empty. If the operator is Exists or DoesNotExist, +// the values array must be empty. This array is replaced during a strategic +// merge patch. +func (o APIAccessSpecApiSelectorMatchExpressionsOutput) Values() pulumi.StringArrayOutput { + return o.ApplyT(func(v APIAccessSpecApiSelectorMatchExpressions) []string { return v.Values }).(pulumi.StringArrayOutput) +} + +type APIAccessSpecApiSelectorMatchExpressionsArrayOutput struct{ *pulumi.OutputState } + +func (APIAccessSpecApiSelectorMatchExpressionsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]APIAccessSpecApiSelectorMatchExpressions)(nil)).Elem() +} + +func (o APIAccessSpecApiSelectorMatchExpressionsArrayOutput) ToAPIAccessSpecApiSelectorMatchExpressionsArrayOutput() APIAccessSpecApiSelectorMatchExpressionsArrayOutput { + return o +} + +func (o APIAccessSpecApiSelectorMatchExpressionsArrayOutput) ToAPIAccessSpecApiSelectorMatchExpressionsArrayOutputWithContext(ctx context.Context) APIAccessSpecApiSelectorMatchExpressionsArrayOutput { + return o +} + +func (o APIAccessSpecApiSelectorMatchExpressionsArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]APIAccessSpecApiSelectorMatchExpressions] { + return pulumix.Output[[]APIAccessSpecApiSelectorMatchExpressions]{ + OutputState: o.OutputState, + } +} + +func (o APIAccessSpecApiSelectorMatchExpressionsArrayOutput) Index(i pulumi.IntInput) APIAccessSpecApiSelectorMatchExpressionsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) APIAccessSpecApiSelectorMatchExpressions { + return vs[0].([]APIAccessSpecApiSelectorMatchExpressions)[vs[1].(int)] + }).(APIAccessSpecApiSelectorMatchExpressionsOutput) +} + +// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels +// map is equivalent to an element of matchExpressions, whose key field is "key", the +// operator is "In", and the values array contains only "value". The requirements are ANDed. +type APIAccessSpecApiSelectorMatchLabels struct { +} + +// APIReference references an API. +type APIAccessSpecApis struct { + // Name of the API. + Name string `pulumi:"name"` +} + +// APIAccessSpecApisInput is an input type that accepts APIAccessSpecApisArgs and APIAccessSpecApisOutput values. +// You can construct a concrete instance of `APIAccessSpecApisInput` via: +// +// APIAccessSpecApisArgs{...} +type APIAccessSpecApisInput interface { + pulumi.Input + + ToAPIAccessSpecApisOutput() APIAccessSpecApisOutput + ToAPIAccessSpecApisOutputWithContext(context.Context) APIAccessSpecApisOutput +} + +// APIReference references an API. +type APIAccessSpecApisArgs struct { + // Name of the API. + Name pulumi.StringInput `pulumi:"name"` +} + +func (APIAccessSpecApisArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIAccessSpecApis)(nil)).Elem() +} + +func (i APIAccessSpecApisArgs) ToAPIAccessSpecApisOutput() APIAccessSpecApisOutput { + return i.ToAPIAccessSpecApisOutputWithContext(context.Background()) +} + +func (i APIAccessSpecApisArgs) ToAPIAccessSpecApisOutputWithContext(ctx context.Context) APIAccessSpecApisOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIAccessSpecApisOutput) +} + +func (i APIAccessSpecApisArgs) ToOutput(ctx context.Context) pulumix.Output[APIAccessSpecApis] { + return pulumix.Output[APIAccessSpecApis]{ + OutputState: i.ToAPIAccessSpecApisOutputWithContext(ctx).OutputState, + } +} + +// APIAccessSpecApisArrayInput is an input type that accepts APIAccessSpecApisArray and APIAccessSpecApisArrayOutput values. +// You can construct a concrete instance of `APIAccessSpecApisArrayInput` via: +// +// APIAccessSpecApisArray{ APIAccessSpecApisArgs{...} } +type APIAccessSpecApisArrayInput interface { + pulumi.Input + + ToAPIAccessSpecApisArrayOutput() APIAccessSpecApisArrayOutput + ToAPIAccessSpecApisArrayOutputWithContext(context.Context) APIAccessSpecApisArrayOutput +} + +type APIAccessSpecApisArray []APIAccessSpecApisInput + +func (APIAccessSpecApisArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]APIAccessSpecApis)(nil)).Elem() +} + +func (i APIAccessSpecApisArray) ToAPIAccessSpecApisArrayOutput() APIAccessSpecApisArrayOutput { + return i.ToAPIAccessSpecApisArrayOutputWithContext(context.Background()) +} + +func (i APIAccessSpecApisArray) ToAPIAccessSpecApisArrayOutputWithContext(ctx context.Context) APIAccessSpecApisArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIAccessSpecApisArrayOutput) +} + +func (i APIAccessSpecApisArray) ToOutput(ctx context.Context) pulumix.Output[[]APIAccessSpecApis] { + return pulumix.Output[[]APIAccessSpecApis]{ + OutputState: i.ToAPIAccessSpecApisArrayOutputWithContext(ctx).OutputState, + } +} + +// APIReference references an API. +type APIAccessSpecApisOutput struct{ *pulumi.OutputState } + +func (APIAccessSpecApisOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIAccessSpecApis)(nil)).Elem() +} + +func (o APIAccessSpecApisOutput) ToAPIAccessSpecApisOutput() APIAccessSpecApisOutput { + return o +} + +func (o APIAccessSpecApisOutput) ToAPIAccessSpecApisOutputWithContext(ctx context.Context) APIAccessSpecApisOutput { + return o +} + +func (o APIAccessSpecApisOutput) ToOutput(ctx context.Context) pulumix.Output[APIAccessSpecApis] { + return pulumix.Output[APIAccessSpecApis]{ + OutputState: o.OutputState, + } +} + +// Name of the API. +func (o APIAccessSpecApisOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v APIAccessSpecApis) string { return v.Name }).(pulumi.StringOutput) +} + +type APIAccessSpecApisArrayOutput struct{ *pulumi.OutputState } + +func (APIAccessSpecApisArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]APIAccessSpecApis)(nil)).Elem() +} + +func (o APIAccessSpecApisArrayOutput) ToAPIAccessSpecApisArrayOutput() APIAccessSpecApisArrayOutput { + return o +} + +func (o APIAccessSpecApisArrayOutput) ToAPIAccessSpecApisArrayOutputWithContext(ctx context.Context) APIAccessSpecApisArrayOutput { + return o +} + +func (o APIAccessSpecApisArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]APIAccessSpecApis] { + return pulumix.Output[[]APIAccessSpecApis]{ + OutputState: o.OutputState, + } +} + +func (o APIAccessSpecApisArrayOutput) Index(i pulumi.IntInput) APIAccessSpecApisOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) APIAccessSpecApis { + return vs[0].([]APIAccessSpecApis)[vs[1].(int)] + }).(APIAccessSpecApisOutput) +} + +// OperationFilter specifies the allowed operations on APIs and APIVersions. +// If not set, all operations are available. +// An empty OperationFilter prohibits all operations. +type APIAccessSpecOperationFilter struct { + // Include defines the names of OperationSets that will be accessible. + Include []string `pulumi:"include"` +} + +// APIAccessSpecOperationFilterInput is an input type that accepts APIAccessSpecOperationFilterArgs and APIAccessSpecOperationFilterOutput values. +// You can construct a concrete instance of `APIAccessSpecOperationFilterInput` via: +// +// APIAccessSpecOperationFilterArgs{...} +type APIAccessSpecOperationFilterInput interface { + pulumi.Input + + ToAPIAccessSpecOperationFilterOutput() APIAccessSpecOperationFilterOutput + ToAPIAccessSpecOperationFilterOutputWithContext(context.Context) APIAccessSpecOperationFilterOutput +} + +// OperationFilter specifies the allowed operations on APIs and APIVersions. +// If not set, all operations are available. +// An empty OperationFilter prohibits all operations. +type APIAccessSpecOperationFilterArgs struct { + // Include defines the names of OperationSets that will be accessible. + Include pulumi.StringArrayInput `pulumi:"include"` +} + +func (APIAccessSpecOperationFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIAccessSpecOperationFilter)(nil)).Elem() +} + +func (i APIAccessSpecOperationFilterArgs) ToAPIAccessSpecOperationFilterOutput() APIAccessSpecOperationFilterOutput { + return i.ToAPIAccessSpecOperationFilterOutputWithContext(context.Background()) +} + +func (i APIAccessSpecOperationFilterArgs) ToAPIAccessSpecOperationFilterOutputWithContext(ctx context.Context) APIAccessSpecOperationFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIAccessSpecOperationFilterOutput) +} + +func (i APIAccessSpecOperationFilterArgs) ToOutput(ctx context.Context) pulumix.Output[APIAccessSpecOperationFilter] { + return pulumix.Output[APIAccessSpecOperationFilter]{ + OutputState: i.ToAPIAccessSpecOperationFilterOutputWithContext(ctx).OutputState, + } +} + +func (i APIAccessSpecOperationFilterArgs) ToAPIAccessSpecOperationFilterPtrOutput() APIAccessSpecOperationFilterPtrOutput { + return i.ToAPIAccessSpecOperationFilterPtrOutputWithContext(context.Background()) +} + +func (i APIAccessSpecOperationFilterArgs) ToAPIAccessSpecOperationFilterPtrOutputWithContext(ctx context.Context) APIAccessSpecOperationFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIAccessSpecOperationFilterOutput).ToAPIAccessSpecOperationFilterPtrOutputWithContext(ctx) +} + +// APIAccessSpecOperationFilterPtrInput is an input type that accepts APIAccessSpecOperationFilterArgs, APIAccessSpecOperationFilterPtr and APIAccessSpecOperationFilterPtrOutput values. +// You can construct a concrete instance of `APIAccessSpecOperationFilterPtrInput` via: +// +// APIAccessSpecOperationFilterArgs{...} +// +// or: +// +// nil +type APIAccessSpecOperationFilterPtrInput interface { + pulumi.Input + + ToAPIAccessSpecOperationFilterPtrOutput() APIAccessSpecOperationFilterPtrOutput + ToAPIAccessSpecOperationFilterPtrOutputWithContext(context.Context) APIAccessSpecOperationFilterPtrOutput +} + +type apiaccessSpecOperationFilterPtrType APIAccessSpecOperationFilterArgs + +func APIAccessSpecOperationFilterPtr(v *APIAccessSpecOperationFilterArgs) APIAccessSpecOperationFilterPtrInput { + return (*apiaccessSpecOperationFilterPtrType)(v) +} + +func (*apiaccessSpecOperationFilterPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APIAccessSpecOperationFilter)(nil)).Elem() +} + +func (i *apiaccessSpecOperationFilterPtrType) ToAPIAccessSpecOperationFilterPtrOutput() APIAccessSpecOperationFilterPtrOutput { + return i.ToAPIAccessSpecOperationFilterPtrOutputWithContext(context.Background()) +} + +func (i *apiaccessSpecOperationFilterPtrType) ToAPIAccessSpecOperationFilterPtrOutputWithContext(ctx context.Context) APIAccessSpecOperationFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIAccessSpecOperationFilterPtrOutput) +} + +func (i *apiaccessSpecOperationFilterPtrType) ToOutput(ctx context.Context) pulumix.Output[*APIAccessSpecOperationFilter] { + return pulumix.Output[*APIAccessSpecOperationFilter]{ + OutputState: i.ToAPIAccessSpecOperationFilterPtrOutputWithContext(ctx).OutputState, + } +} + +// OperationFilter specifies the allowed operations on APIs and APIVersions. +// If not set, all operations are available. +// An empty OperationFilter prohibits all operations. +type APIAccessSpecOperationFilterOutput struct{ *pulumi.OutputState } + +func (APIAccessSpecOperationFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIAccessSpecOperationFilter)(nil)).Elem() +} + +func (o APIAccessSpecOperationFilterOutput) ToAPIAccessSpecOperationFilterOutput() APIAccessSpecOperationFilterOutput { + return o +} + +func (o APIAccessSpecOperationFilterOutput) ToAPIAccessSpecOperationFilterOutputWithContext(ctx context.Context) APIAccessSpecOperationFilterOutput { + return o +} + +func (o APIAccessSpecOperationFilterOutput) ToAPIAccessSpecOperationFilterPtrOutput() APIAccessSpecOperationFilterPtrOutput { + return o.ToAPIAccessSpecOperationFilterPtrOutputWithContext(context.Background()) +} + +func (o APIAccessSpecOperationFilterOutput) ToAPIAccessSpecOperationFilterPtrOutputWithContext(ctx context.Context) APIAccessSpecOperationFilterPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APIAccessSpecOperationFilter) *APIAccessSpecOperationFilter { + return &v + }).(APIAccessSpecOperationFilterPtrOutput) +} + +func (o APIAccessSpecOperationFilterOutput) ToOutput(ctx context.Context) pulumix.Output[APIAccessSpecOperationFilter] { + return pulumix.Output[APIAccessSpecOperationFilter]{ + OutputState: o.OutputState, + } +} + +// Include defines the names of OperationSets that will be accessible. +func (o APIAccessSpecOperationFilterOutput) Include() pulumi.StringArrayOutput { + return o.ApplyT(func(v APIAccessSpecOperationFilter) []string { return v.Include }).(pulumi.StringArrayOutput) +} + +type APIAccessSpecOperationFilterPtrOutput struct{ *pulumi.OutputState } + +func (APIAccessSpecOperationFilterPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIAccessSpecOperationFilter)(nil)).Elem() +} + +func (o APIAccessSpecOperationFilterPtrOutput) ToAPIAccessSpecOperationFilterPtrOutput() APIAccessSpecOperationFilterPtrOutput { + return o +} + +func (o APIAccessSpecOperationFilterPtrOutput) ToAPIAccessSpecOperationFilterPtrOutputWithContext(ctx context.Context) APIAccessSpecOperationFilterPtrOutput { + return o +} + +func (o APIAccessSpecOperationFilterPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APIAccessSpecOperationFilter] { + return pulumix.Output[*APIAccessSpecOperationFilter]{ + OutputState: o.OutputState, + } +} + +func (o APIAccessSpecOperationFilterPtrOutput) Elem() APIAccessSpecOperationFilterOutput { + return o.ApplyT(func(v *APIAccessSpecOperationFilter) APIAccessSpecOperationFilter { + if v != nil { + return *v + } + var ret APIAccessSpecOperationFilter + return ret + }).(APIAccessSpecOperationFilterOutput) +} + +// Include defines the names of OperationSets that will be accessible. +func (o APIAccessSpecOperationFilterPtrOutput) Include() pulumi.StringArrayOutput { + return o.ApplyT(func(v *APIAccessSpecOperationFilter) []string { + if v == nil { + return nil + } + return v.Include + }).(pulumi.StringArrayOutput) +} + +// The current status of this APIAccess. +type APIAccessStatus struct { + // Hash is a hash representing the APIAccess. + Hash *string `pulumi:"hash"` + SyncedAt *string `pulumi:"syncedAt"` + Version *string `pulumi:"version"` +} + +// APIAccessStatusInput is an input type that accepts APIAccessStatusArgs and APIAccessStatusOutput values. +// You can construct a concrete instance of `APIAccessStatusInput` via: +// +// APIAccessStatusArgs{...} +type APIAccessStatusInput interface { + pulumi.Input + + ToAPIAccessStatusOutput() APIAccessStatusOutput + ToAPIAccessStatusOutputWithContext(context.Context) APIAccessStatusOutput +} + +// The current status of this APIAccess. +type APIAccessStatusArgs struct { + // Hash is a hash representing the APIAccess. + Hash pulumi.StringPtrInput `pulumi:"hash"` + SyncedAt pulumi.StringPtrInput `pulumi:"syncedAt"` + Version pulumi.StringPtrInput `pulumi:"version"` +} + +func (APIAccessStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIAccessStatus)(nil)).Elem() +} + +func (i APIAccessStatusArgs) ToAPIAccessStatusOutput() APIAccessStatusOutput { + return i.ToAPIAccessStatusOutputWithContext(context.Background()) +} + +func (i APIAccessStatusArgs) ToAPIAccessStatusOutputWithContext(ctx context.Context) APIAccessStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIAccessStatusOutput) +} + +func (i APIAccessStatusArgs) ToOutput(ctx context.Context) pulumix.Output[APIAccessStatus] { + return pulumix.Output[APIAccessStatus]{ + OutputState: i.ToAPIAccessStatusOutputWithContext(ctx).OutputState, + } +} + +func (i APIAccessStatusArgs) ToAPIAccessStatusPtrOutput() APIAccessStatusPtrOutput { + return i.ToAPIAccessStatusPtrOutputWithContext(context.Background()) +} + +func (i APIAccessStatusArgs) ToAPIAccessStatusPtrOutputWithContext(ctx context.Context) APIAccessStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIAccessStatusOutput).ToAPIAccessStatusPtrOutputWithContext(ctx) +} + +// APIAccessStatusPtrInput is an input type that accepts APIAccessStatusArgs, APIAccessStatusPtr and APIAccessStatusPtrOutput values. +// You can construct a concrete instance of `APIAccessStatusPtrInput` via: +// +// APIAccessStatusArgs{...} +// +// or: +// +// nil +type APIAccessStatusPtrInput interface { + pulumi.Input + + ToAPIAccessStatusPtrOutput() APIAccessStatusPtrOutput + ToAPIAccessStatusPtrOutputWithContext(context.Context) APIAccessStatusPtrOutput +} + +type apiaccessStatusPtrType APIAccessStatusArgs + +func APIAccessStatusPtr(v *APIAccessStatusArgs) APIAccessStatusPtrInput { + return (*apiaccessStatusPtrType)(v) +} + +func (*apiaccessStatusPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APIAccessStatus)(nil)).Elem() +} + +func (i *apiaccessStatusPtrType) ToAPIAccessStatusPtrOutput() APIAccessStatusPtrOutput { + return i.ToAPIAccessStatusPtrOutputWithContext(context.Background()) +} + +func (i *apiaccessStatusPtrType) ToAPIAccessStatusPtrOutputWithContext(ctx context.Context) APIAccessStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIAccessStatusPtrOutput) +} + +func (i *apiaccessStatusPtrType) ToOutput(ctx context.Context) pulumix.Output[*APIAccessStatus] { + return pulumix.Output[*APIAccessStatus]{ + OutputState: i.ToAPIAccessStatusPtrOutputWithContext(ctx).OutputState, + } +} + +// The current status of this APIAccess. +type APIAccessStatusOutput struct{ *pulumi.OutputState } + +func (APIAccessStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIAccessStatus)(nil)).Elem() +} + +func (o APIAccessStatusOutput) ToAPIAccessStatusOutput() APIAccessStatusOutput { + return o +} + +func (o APIAccessStatusOutput) ToAPIAccessStatusOutputWithContext(ctx context.Context) APIAccessStatusOutput { + return o +} + +func (o APIAccessStatusOutput) ToAPIAccessStatusPtrOutput() APIAccessStatusPtrOutput { + return o.ToAPIAccessStatusPtrOutputWithContext(context.Background()) +} + +func (o APIAccessStatusOutput) ToAPIAccessStatusPtrOutputWithContext(ctx context.Context) APIAccessStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APIAccessStatus) *APIAccessStatus { + return &v + }).(APIAccessStatusPtrOutput) +} + +func (o APIAccessStatusOutput) ToOutput(ctx context.Context) pulumix.Output[APIAccessStatus] { + return pulumix.Output[APIAccessStatus]{ + OutputState: o.OutputState, + } +} + +// Hash is a hash representing the APIAccess. +func (o APIAccessStatusOutput) Hash() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIAccessStatus) *string { return v.Hash }).(pulumi.StringPtrOutput) +} + +func (o APIAccessStatusOutput) SyncedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIAccessStatus) *string { return v.SyncedAt }).(pulumi.StringPtrOutput) +} + +func (o APIAccessStatusOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIAccessStatus) *string { return v.Version }).(pulumi.StringPtrOutput) +} + +type APIAccessStatusPtrOutput struct{ *pulumi.OutputState } + +func (APIAccessStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIAccessStatus)(nil)).Elem() +} + +func (o APIAccessStatusPtrOutput) ToAPIAccessStatusPtrOutput() APIAccessStatusPtrOutput { + return o +} + +func (o APIAccessStatusPtrOutput) ToAPIAccessStatusPtrOutputWithContext(ctx context.Context) APIAccessStatusPtrOutput { + return o +} + +func (o APIAccessStatusPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APIAccessStatus] { + return pulumix.Output[*APIAccessStatus]{ + OutputState: o.OutputState, + } +} + +func (o APIAccessStatusPtrOutput) Elem() APIAccessStatusOutput { + return o.ApplyT(func(v *APIAccessStatus) APIAccessStatus { + if v != nil { + return *v + } + var ret APIAccessStatus + return ret + }).(APIAccessStatusOutput) +} + +// Hash is a hash representing the APIAccess. +func (o APIAccessStatusPtrOutput) Hash() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIAccessStatus) *string { + if v == nil { + return nil + } + return v.Hash + }).(pulumi.StringPtrOutput) +} + +func (o APIAccessStatusPtrOutput) SyncedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIAccessStatus) *string { + if v == nil { + return nil + } + return v.SyncedAt + }).(pulumi.StringPtrOutput) +} + +func (o APIAccessStatusPtrOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIAccessStatus) *string { + if v == nil { + return nil + } + return v.Version + }).(pulumi.StringPtrOutput) +} + +type APIMetadata struct { +} + +// APIPortal defines a developer portal for accessing the documentation of APIs. +type APIPortalType struct { + ApiVersion *string `pulumi:"apiVersion"` + Kind *string `pulumi:"kind"` + Metadata *v1.ObjectMeta `pulumi:"metadata"` + // The desired behavior of this APIPortal. + Spec *APIPortalSpec `pulumi:"spec"` + // The current status of this APIPortal. + Status *APIPortalStatus `pulumi:"status"` +} + +type APIPortalMetadata struct { +} + +// The desired behavior of this APIPortal. +type APIPortalSpec struct { + // Description of the APIPortal. + Description *string `pulumi:"description"` + // Title is the public facing name of the APIPortal. + Title *string `pulumi:"title"` + // TrustedURLs are the urls that are trusted by the OAuth 2.0 authorization server. + TrustedUrls []string `pulumi:"trustedUrls"` + // UI holds the UI customization options. + Ui *APIPortalSpecUi `pulumi:"ui"` +} + +// APIPortalSpecInput is an input type that accepts APIPortalSpecArgs and APIPortalSpecOutput values. +// You can construct a concrete instance of `APIPortalSpecInput` via: +// +// APIPortalSpecArgs{...} +type APIPortalSpecInput interface { + pulumi.Input + + ToAPIPortalSpecOutput() APIPortalSpecOutput + ToAPIPortalSpecOutputWithContext(context.Context) APIPortalSpecOutput +} + +// The desired behavior of this APIPortal. +type APIPortalSpecArgs struct { + // Description of the APIPortal. + Description pulumi.StringPtrInput `pulumi:"description"` + // Title is the public facing name of the APIPortal. + Title pulumi.StringPtrInput `pulumi:"title"` + // TrustedURLs are the urls that are trusted by the OAuth 2.0 authorization server. + TrustedUrls pulumi.StringArrayInput `pulumi:"trustedUrls"` + // UI holds the UI customization options. + Ui APIPortalSpecUiPtrInput `pulumi:"ui"` +} + +func (APIPortalSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIPortalSpec)(nil)).Elem() +} + +func (i APIPortalSpecArgs) ToAPIPortalSpecOutput() APIPortalSpecOutput { + return i.ToAPIPortalSpecOutputWithContext(context.Background()) +} + +func (i APIPortalSpecArgs) ToAPIPortalSpecOutputWithContext(ctx context.Context) APIPortalSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIPortalSpecOutput) +} + +func (i APIPortalSpecArgs) ToOutput(ctx context.Context) pulumix.Output[APIPortalSpec] { + return pulumix.Output[APIPortalSpec]{ + OutputState: i.ToAPIPortalSpecOutputWithContext(ctx).OutputState, + } +} + +func (i APIPortalSpecArgs) ToAPIPortalSpecPtrOutput() APIPortalSpecPtrOutput { + return i.ToAPIPortalSpecPtrOutputWithContext(context.Background()) +} + +func (i APIPortalSpecArgs) ToAPIPortalSpecPtrOutputWithContext(ctx context.Context) APIPortalSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIPortalSpecOutput).ToAPIPortalSpecPtrOutputWithContext(ctx) +} + +// APIPortalSpecPtrInput is an input type that accepts APIPortalSpecArgs, APIPortalSpecPtr and APIPortalSpecPtrOutput values. +// You can construct a concrete instance of `APIPortalSpecPtrInput` via: +// +// APIPortalSpecArgs{...} +// +// or: +// +// nil +type APIPortalSpecPtrInput interface { + pulumi.Input + + ToAPIPortalSpecPtrOutput() APIPortalSpecPtrOutput + ToAPIPortalSpecPtrOutputWithContext(context.Context) APIPortalSpecPtrOutput +} + +type apiportalSpecPtrType APIPortalSpecArgs + +func APIPortalSpecPtr(v *APIPortalSpecArgs) APIPortalSpecPtrInput { + return (*apiportalSpecPtrType)(v) +} + +func (*apiportalSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APIPortalSpec)(nil)).Elem() +} + +func (i *apiportalSpecPtrType) ToAPIPortalSpecPtrOutput() APIPortalSpecPtrOutput { + return i.ToAPIPortalSpecPtrOutputWithContext(context.Background()) +} + +func (i *apiportalSpecPtrType) ToAPIPortalSpecPtrOutputWithContext(ctx context.Context) APIPortalSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIPortalSpecPtrOutput) +} + +func (i *apiportalSpecPtrType) ToOutput(ctx context.Context) pulumix.Output[*APIPortalSpec] { + return pulumix.Output[*APIPortalSpec]{ + OutputState: i.ToAPIPortalSpecPtrOutputWithContext(ctx).OutputState, + } +} + +// The desired behavior of this APIPortal. +type APIPortalSpecOutput struct{ *pulumi.OutputState } + +func (APIPortalSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIPortalSpec)(nil)).Elem() +} + +func (o APIPortalSpecOutput) ToAPIPortalSpecOutput() APIPortalSpecOutput { + return o +} + +func (o APIPortalSpecOutput) ToAPIPortalSpecOutputWithContext(ctx context.Context) APIPortalSpecOutput { + return o +} + +func (o APIPortalSpecOutput) ToAPIPortalSpecPtrOutput() APIPortalSpecPtrOutput { + return o.ToAPIPortalSpecPtrOutputWithContext(context.Background()) +} + +func (o APIPortalSpecOutput) ToAPIPortalSpecPtrOutputWithContext(ctx context.Context) APIPortalSpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APIPortalSpec) *APIPortalSpec { + return &v + }).(APIPortalSpecPtrOutput) +} + +func (o APIPortalSpecOutput) ToOutput(ctx context.Context) pulumix.Output[APIPortalSpec] { + return pulumix.Output[APIPortalSpec]{ + OutputState: o.OutputState, + } +} + +// Description of the APIPortal. +func (o APIPortalSpecOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIPortalSpec) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// Title is the public facing name of the APIPortal. +func (o APIPortalSpecOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIPortalSpec) *string { return v.Title }).(pulumi.StringPtrOutput) +} + +// TrustedURLs are the urls that are trusted by the OAuth 2.0 authorization server. +func (o APIPortalSpecOutput) TrustedUrls() pulumi.StringArrayOutput { + return o.ApplyT(func(v APIPortalSpec) []string { return v.TrustedUrls }).(pulumi.StringArrayOutput) +} + +// UI holds the UI customization options. +func (o APIPortalSpecOutput) Ui() APIPortalSpecUiPtrOutput { + return o.ApplyT(func(v APIPortalSpec) *APIPortalSpecUi { return v.Ui }).(APIPortalSpecUiPtrOutput) +} + +type APIPortalSpecPtrOutput struct{ *pulumi.OutputState } + +func (APIPortalSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIPortalSpec)(nil)).Elem() +} + +func (o APIPortalSpecPtrOutput) ToAPIPortalSpecPtrOutput() APIPortalSpecPtrOutput { + return o +} + +func (o APIPortalSpecPtrOutput) ToAPIPortalSpecPtrOutputWithContext(ctx context.Context) APIPortalSpecPtrOutput { + return o +} + +func (o APIPortalSpecPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APIPortalSpec] { + return pulumix.Output[*APIPortalSpec]{ + OutputState: o.OutputState, + } +} + +func (o APIPortalSpecPtrOutput) Elem() APIPortalSpecOutput { + return o.ApplyT(func(v *APIPortalSpec) APIPortalSpec { + if v != nil { + return *v + } + var ret APIPortalSpec + return ret + }).(APIPortalSpecOutput) +} + +// Description of the APIPortal. +func (o APIPortalSpecPtrOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortalSpec) *string { + if v == nil { + return nil + } + return v.Description + }).(pulumi.StringPtrOutput) +} + +// Title is the public facing name of the APIPortal. +func (o APIPortalSpecPtrOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortalSpec) *string { + if v == nil { + return nil + } + return v.Title + }).(pulumi.StringPtrOutput) +} + +// TrustedURLs are the urls that are trusted by the OAuth 2.0 authorization server. +func (o APIPortalSpecPtrOutput) TrustedUrls() pulumi.StringArrayOutput { + return o.ApplyT(func(v *APIPortalSpec) []string { + if v == nil { + return nil + } + return v.TrustedUrls + }).(pulumi.StringArrayOutput) +} + +// UI holds the UI customization options. +func (o APIPortalSpecPtrOutput) Ui() APIPortalSpecUiPtrOutput { + return o.ApplyT(func(v *APIPortalSpec) *APIPortalSpecUi { + if v == nil { + return nil + } + return v.Ui + }).(APIPortalSpecUiPtrOutput) +} + +// UI holds the UI customization options. +type APIPortalSpecUi struct { + // LogoURL is the public URL of the logo. + LogoUrl *string `pulumi:"logoUrl"` +} + +// APIPortalSpecUiInput is an input type that accepts APIPortalSpecUiArgs and APIPortalSpecUiOutput values. +// You can construct a concrete instance of `APIPortalSpecUiInput` via: +// +// APIPortalSpecUiArgs{...} +type APIPortalSpecUiInput interface { + pulumi.Input + + ToAPIPortalSpecUiOutput() APIPortalSpecUiOutput + ToAPIPortalSpecUiOutputWithContext(context.Context) APIPortalSpecUiOutput +} + +// UI holds the UI customization options. +type APIPortalSpecUiArgs struct { + // LogoURL is the public URL of the logo. + LogoUrl pulumi.StringPtrInput `pulumi:"logoUrl"` +} + +func (APIPortalSpecUiArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIPortalSpecUi)(nil)).Elem() +} + +func (i APIPortalSpecUiArgs) ToAPIPortalSpecUiOutput() APIPortalSpecUiOutput { + return i.ToAPIPortalSpecUiOutputWithContext(context.Background()) +} + +func (i APIPortalSpecUiArgs) ToAPIPortalSpecUiOutputWithContext(ctx context.Context) APIPortalSpecUiOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIPortalSpecUiOutput) +} + +func (i APIPortalSpecUiArgs) ToOutput(ctx context.Context) pulumix.Output[APIPortalSpecUi] { + return pulumix.Output[APIPortalSpecUi]{ + OutputState: i.ToAPIPortalSpecUiOutputWithContext(ctx).OutputState, + } +} + +func (i APIPortalSpecUiArgs) ToAPIPortalSpecUiPtrOutput() APIPortalSpecUiPtrOutput { + return i.ToAPIPortalSpecUiPtrOutputWithContext(context.Background()) +} + +func (i APIPortalSpecUiArgs) ToAPIPortalSpecUiPtrOutputWithContext(ctx context.Context) APIPortalSpecUiPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIPortalSpecUiOutput).ToAPIPortalSpecUiPtrOutputWithContext(ctx) +} + +// APIPortalSpecUiPtrInput is an input type that accepts APIPortalSpecUiArgs, APIPortalSpecUiPtr and APIPortalSpecUiPtrOutput values. +// You can construct a concrete instance of `APIPortalSpecUiPtrInput` via: +// +// APIPortalSpecUiArgs{...} +// +// or: +// +// nil +type APIPortalSpecUiPtrInput interface { + pulumi.Input + + ToAPIPortalSpecUiPtrOutput() APIPortalSpecUiPtrOutput + ToAPIPortalSpecUiPtrOutputWithContext(context.Context) APIPortalSpecUiPtrOutput +} + +type apiportalSpecUiPtrType APIPortalSpecUiArgs + +func APIPortalSpecUiPtr(v *APIPortalSpecUiArgs) APIPortalSpecUiPtrInput { + return (*apiportalSpecUiPtrType)(v) +} + +func (*apiportalSpecUiPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APIPortalSpecUi)(nil)).Elem() +} + +func (i *apiportalSpecUiPtrType) ToAPIPortalSpecUiPtrOutput() APIPortalSpecUiPtrOutput { + return i.ToAPIPortalSpecUiPtrOutputWithContext(context.Background()) +} + +func (i *apiportalSpecUiPtrType) ToAPIPortalSpecUiPtrOutputWithContext(ctx context.Context) APIPortalSpecUiPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIPortalSpecUiPtrOutput) +} + +func (i *apiportalSpecUiPtrType) ToOutput(ctx context.Context) pulumix.Output[*APIPortalSpecUi] { + return pulumix.Output[*APIPortalSpecUi]{ + OutputState: i.ToAPIPortalSpecUiPtrOutputWithContext(ctx).OutputState, + } +} + +// UI holds the UI customization options. +type APIPortalSpecUiOutput struct{ *pulumi.OutputState } + +func (APIPortalSpecUiOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIPortalSpecUi)(nil)).Elem() +} + +func (o APIPortalSpecUiOutput) ToAPIPortalSpecUiOutput() APIPortalSpecUiOutput { + return o +} + +func (o APIPortalSpecUiOutput) ToAPIPortalSpecUiOutputWithContext(ctx context.Context) APIPortalSpecUiOutput { + return o +} + +func (o APIPortalSpecUiOutput) ToAPIPortalSpecUiPtrOutput() APIPortalSpecUiPtrOutput { + return o.ToAPIPortalSpecUiPtrOutputWithContext(context.Background()) +} + +func (o APIPortalSpecUiOutput) ToAPIPortalSpecUiPtrOutputWithContext(ctx context.Context) APIPortalSpecUiPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APIPortalSpecUi) *APIPortalSpecUi { + return &v + }).(APIPortalSpecUiPtrOutput) +} + +func (o APIPortalSpecUiOutput) ToOutput(ctx context.Context) pulumix.Output[APIPortalSpecUi] { + return pulumix.Output[APIPortalSpecUi]{ + OutputState: o.OutputState, + } +} + +// LogoURL is the public URL of the logo. +func (o APIPortalSpecUiOutput) LogoUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIPortalSpecUi) *string { return v.LogoUrl }).(pulumi.StringPtrOutput) +} + +type APIPortalSpecUiPtrOutput struct{ *pulumi.OutputState } + +func (APIPortalSpecUiPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIPortalSpecUi)(nil)).Elem() +} + +func (o APIPortalSpecUiPtrOutput) ToAPIPortalSpecUiPtrOutput() APIPortalSpecUiPtrOutput { + return o +} + +func (o APIPortalSpecUiPtrOutput) ToAPIPortalSpecUiPtrOutputWithContext(ctx context.Context) APIPortalSpecUiPtrOutput { + return o +} + +func (o APIPortalSpecUiPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APIPortalSpecUi] { + return pulumix.Output[*APIPortalSpecUi]{ + OutputState: o.OutputState, + } +} + +func (o APIPortalSpecUiPtrOutput) Elem() APIPortalSpecUiOutput { + return o.ApplyT(func(v *APIPortalSpecUi) APIPortalSpecUi { + if v != nil { + return *v + } + var ret APIPortalSpecUi + return ret + }).(APIPortalSpecUiOutput) +} + +// LogoURL is the public URL of the logo. +func (o APIPortalSpecUiPtrOutput) LogoUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortalSpecUi) *string { + if v == nil { + return nil + } + return v.LogoUrl + }).(pulumi.StringPtrOutput) +} + +// The current status of this APIPortal. +type APIPortalStatus struct { + // Hash is a hash representing the APIPortal. + Hash *string `pulumi:"hash"` + // OIDC is the OIDC configuration for accessing the exposed APIPortal WebUI. + Oidc *APIPortalStatusOidc `pulumi:"oidc"` + SyncedAt *string `pulumi:"syncedAt"` + Version *string `pulumi:"version"` +} + +// APIPortalStatusInput is an input type that accepts APIPortalStatusArgs and APIPortalStatusOutput values. +// You can construct a concrete instance of `APIPortalStatusInput` via: +// +// APIPortalStatusArgs{...} +type APIPortalStatusInput interface { + pulumi.Input + + ToAPIPortalStatusOutput() APIPortalStatusOutput + ToAPIPortalStatusOutputWithContext(context.Context) APIPortalStatusOutput +} + +// The current status of this APIPortal. +type APIPortalStatusArgs struct { + // Hash is a hash representing the APIPortal. + Hash pulumi.StringPtrInput `pulumi:"hash"` + // OIDC is the OIDC configuration for accessing the exposed APIPortal WebUI. + Oidc APIPortalStatusOidcPtrInput `pulumi:"oidc"` + SyncedAt pulumi.StringPtrInput `pulumi:"syncedAt"` + Version pulumi.StringPtrInput `pulumi:"version"` +} + +func (APIPortalStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIPortalStatus)(nil)).Elem() +} + +func (i APIPortalStatusArgs) ToAPIPortalStatusOutput() APIPortalStatusOutput { + return i.ToAPIPortalStatusOutputWithContext(context.Background()) +} + +func (i APIPortalStatusArgs) ToAPIPortalStatusOutputWithContext(ctx context.Context) APIPortalStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIPortalStatusOutput) +} + +func (i APIPortalStatusArgs) ToOutput(ctx context.Context) pulumix.Output[APIPortalStatus] { + return pulumix.Output[APIPortalStatus]{ + OutputState: i.ToAPIPortalStatusOutputWithContext(ctx).OutputState, + } +} + +func (i APIPortalStatusArgs) ToAPIPortalStatusPtrOutput() APIPortalStatusPtrOutput { + return i.ToAPIPortalStatusPtrOutputWithContext(context.Background()) +} + +func (i APIPortalStatusArgs) ToAPIPortalStatusPtrOutputWithContext(ctx context.Context) APIPortalStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIPortalStatusOutput).ToAPIPortalStatusPtrOutputWithContext(ctx) +} + +// APIPortalStatusPtrInput is an input type that accepts APIPortalStatusArgs, APIPortalStatusPtr and APIPortalStatusPtrOutput values. +// You can construct a concrete instance of `APIPortalStatusPtrInput` via: +// +// APIPortalStatusArgs{...} +// +// or: +// +// nil +type APIPortalStatusPtrInput interface { + pulumi.Input + + ToAPIPortalStatusPtrOutput() APIPortalStatusPtrOutput + ToAPIPortalStatusPtrOutputWithContext(context.Context) APIPortalStatusPtrOutput +} + +type apiportalStatusPtrType APIPortalStatusArgs + +func APIPortalStatusPtr(v *APIPortalStatusArgs) APIPortalStatusPtrInput { + return (*apiportalStatusPtrType)(v) +} + +func (*apiportalStatusPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APIPortalStatus)(nil)).Elem() +} + +func (i *apiportalStatusPtrType) ToAPIPortalStatusPtrOutput() APIPortalStatusPtrOutput { + return i.ToAPIPortalStatusPtrOutputWithContext(context.Background()) +} + +func (i *apiportalStatusPtrType) ToAPIPortalStatusPtrOutputWithContext(ctx context.Context) APIPortalStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIPortalStatusPtrOutput) +} + +func (i *apiportalStatusPtrType) ToOutput(ctx context.Context) pulumix.Output[*APIPortalStatus] { + return pulumix.Output[*APIPortalStatus]{ + OutputState: i.ToAPIPortalStatusPtrOutputWithContext(ctx).OutputState, + } +} + +// The current status of this APIPortal. +type APIPortalStatusOutput struct{ *pulumi.OutputState } + +func (APIPortalStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIPortalStatus)(nil)).Elem() +} + +func (o APIPortalStatusOutput) ToAPIPortalStatusOutput() APIPortalStatusOutput { + return o +} + +func (o APIPortalStatusOutput) ToAPIPortalStatusOutputWithContext(ctx context.Context) APIPortalStatusOutput { + return o +} + +func (o APIPortalStatusOutput) ToAPIPortalStatusPtrOutput() APIPortalStatusPtrOutput { + return o.ToAPIPortalStatusPtrOutputWithContext(context.Background()) +} + +func (o APIPortalStatusOutput) ToAPIPortalStatusPtrOutputWithContext(ctx context.Context) APIPortalStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APIPortalStatus) *APIPortalStatus { + return &v + }).(APIPortalStatusPtrOutput) +} + +func (o APIPortalStatusOutput) ToOutput(ctx context.Context) pulumix.Output[APIPortalStatus] { + return pulumix.Output[APIPortalStatus]{ + OutputState: o.OutputState, + } +} + +// Hash is a hash representing the APIPortal. +func (o APIPortalStatusOutput) Hash() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIPortalStatus) *string { return v.Hash }).(pulumi.StringPtrOutput) +} + +// OIDC is the OIDC configuration for accessing the exposed APIPortal WebUI. +func (o APIPortalStatusOutput) Oidc() APIPortalStatusOidcPtrOutput { + return o.ApplyT(func(v APIPortalStatus) *APIPortalStatusOidc { return v.Oidc }).(APIPortalStatusOidcPtrOutput) +} + +func (o APIPortalStatusOutput) SyncedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIPortalStatus) *string { return v.SyncedAt }).(pulumi.StringPtrOutput) +} + +func (o APIPortalStatusOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIPortalStatus) *string { return v.Version }).(pulumi.StringPtrOutput) +} + +type APIPortalStatusPtrOutput struct{ *pulumi.OutputState } + +func (APIPortalStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIPortalStatus)(nil)).Elem() +} + +func (o APIPortalStatusPtrOutput) ToAPIPortalStatusPtrOutput() APIPortalStatusPtrOutput { + return o +} + +func (o APIPortalStatusPtrOutput) ToAPIPortalStatusPtrOutputWithContext(ctx context.Context) APIPortalStatusPtrOutput { + return o +} + +func (o APIPortalStatusPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APIPortalStatus] { + return pulumix.Output[*APIPortalStatus]{ + OutputState: o.OutputState, + } +} + +func (o APIPortalStatusPtrOutput) Elem() APIPortalStatusOutput { + return o.ApplyT(func(v *APIPortalStatus) APIPortalStatus { + if v != nil { + return *v + } + var ret APIPortalStatus + return ret + }).(APIPortalStatusOutput) +} + +// Hash is a hash representing the APIPortal. +func (o APIPortalStatusPtrOutput) Hash() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortalStatus) *string { + if v == nil { + return nil + } + return v.Hash + }).(pulumi.StringPtrOutput) +} + +// OIDC is the OIDC configuration for accessing the exposed APIPortal WebUI. +func (o APIPortalStatusPtrOutput) Oidc() APIPortalStatusOidcPtrOutput { + return o.ApplyT(func(v *APIPortalStatus) *APIPortalStatusOidc { + if v == nil { + return nil + } + return v.Oidc + }).(APIPortalStatusOidcPtrOutput) +} + +func (o APIPortalStatusPtrOutput) SyncedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortalStatus) *string { + if v == nil { + return nil + } + return v.SyncedAt + }).(pulumi.StringPtrOutput) +} + +func (o APIPortalStatusPtrOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortalStatus) *string { + if v == nil { + return nil + } + return v.Version + }).(pulumi.StringPtrOutput) +} + +// OIDC is the OIDC configuration for accessing the exposed APIPortal WebUI. +type APIPortalStatusOidc struct { + // ClientID is the OIDC ClientID for accessing the exposed APIPortal WebUI. + ClientId *string `pulumi:"clientId"` + // CompanyClaim is the name of the JWT claim containing the user company. + CompanyClaim *string `pulumi:"companyClaim"` + // EmailClaim is the name of the JWT claim containing the user email. + EmailClaim *string `pulumi:"emailClaim"` + // FirstnameClaim is the name of the JWT claim containing the user firstname. + FirstnameClaim *string `pulumi:"firstnameClaim"` + // Generic indicates whether or not the APIPortal authentication relies on Generic OIDC. + Generic *bool `pulumi:"generic"` + // GroupsClaim is the name of the JWT claim containing the user groups. + GroupsClaim *string `pulumi:"groupsClaim"` + // Issuer is the OIDC issuer for accessing the exposed APIPortal WebUI. + Issuer *string `pulumi:"issuer"` + // LastnameClaim is the name of the JWT claim containing the user lastname. + LastnameClaim *string `pulumi:"lastnameClaim"` + // Scopes is the OIDC scopes for getting user attributes during the authentication to the exposed APIPortal WebUI. + Scopes *string `pulumi:"scopes"` + // SecretName is the name of the secret containing the OIDC ClientSecret for accessing the exposed APIPortal WebUI. + SecretName *string `pulumi:"secretName"` + // SyncedAttributes configure the user attributes to sync. + SyncedAttributes []string `pulumi:"syncedAttributes"` + // UserIDClaim is the name of the JWT claim containing the user ID. + UserIdClaim *string `pulumi:"userIdClaim"` +} + +// APIPortalStatusOidcInput is an input type that accepts APIPortalStatusOidcArgs and APIPortalStatusOidcOutput values. +// You can construct a concrete instance of `APIPortalStatusOidcInput` via: +// +// APIPortalStatusOidcArgs{...} +type APIPortalStatusOidcInput interface { + pulumi.Input + + ToAPIPortalStatusOidcOutput() APIPortalStatusOidcOutput + ToAPIPortalStatusOidcOutputWithContext(context.Context) APIPortalStatusOidcOutput +} + +// OIDC is the OIDC configuration for accessing the exposed APIPortal WebUI. +type APIPortalStatusOidcArgs struct { + // ClientID is the OIDC ClientID for accessing the exposed APIPortal WebUI. + ClientId pulumi.StringPtrInput `pulumi:"clientId"` + // CompanyClaim is the name of the JWT claim containing the user company. + CompanyClaim pulumi.StringPtrInput `pulumi:"companyClaim"` + // EmailClaim is the name of the JWT claim containing the user email. + EmailClaim pulumi.StringPtrInput `pulumi:"emailClaim"` + // FirstnameClaim is the name of the JWT claim containing the user firstname. + FirstnameClaim pulumi.StringPtrInput `pulumi:"firstnameClaim"` + // Generic indicates whether or not the APIPortal authentication relies on Generic OIDC. + Generic pulumi.BoolPtrInput `pulumi:"generic"` + // GroupsClaim is the name of the JWT claim containing the user groups. + GroupsClaim pulumi.StringPtrInput `pulumi:"groupsClaim"` + // Issuer is the OIDC issuer for accessing the exposed APIPortal WebUI. + Issuer pulumi.StringPtrInput `pulumi:"issuer"` + // LastnameClaim is the name of the JWT claim containing the user lastname. + LastnameClaim pulumi.StringPtrInput `pulumi:"lastnameClaim"` + // Scopes is the OIDC scopes for getting user attributes during the authentication to the exposed APIPortal WebUI. + Scopes pulumi.StringPtrInput `pulumi:"scopes"` + // SecretName is the name of the secret containing the OIDC ClientSecret for accessing the exposed APIPortal WebUI. + SecretName pulumi.StringPtrInput `pulumi:"secretName"` + // SyncedAttributes configure the user attributes to sync. + SyncedAttributes pulumi.StringArrayInput `pulumi:"syncedAttributes"` + // UserIDClaim is the name of the JWT claim containing the user ID. + UserIdClaim pulumi.StringPtrInput `pulumi:"userIdClaim"` +} + +func (APIPortalStatusOidcArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIPortalStatusOidc)(nil)).Elem() +} + +func (i APIPortalStatusOidcArgs) ToAPIPortalStatusOidcOutput() APIPortalStatusOidcOutput { + return i.ToAPIPortalStatusOidcOutputWithContext(context.Background()) +} + +func (i APIPortalStatusOidcArgs) ToAPIPortalStatusOidcOutputWithContext(ctx context.Context) APIPortalStatusOidcOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIPortalStatusOidcOutput) +} + +func (i APIPortalStatusOidcArgs) ToOutput(ctx context.Context) pulumix.Output[APIPortalStatusOidc] { + return pulumix.Output[APIPortalStatusOidc]{ + OutputState: i.ToAPIPortalStatusOidcOutputWithContext(ctx).OutputState, + } +} + +func (i APIPortalStatusOidcArgs) ToAPIPortalStatusOidcPtrOutput() APIPortalStatusOidcPtrOutput { + return i.ToAPIPortalStatusOidcPtrOutputWithContext(context.Background()) +} + +func (i APIPortalStatusOidcArgs) ToAPIPortalStatusOidcPtrOutputWithContext(ctx context.Context) APIPortalStatusOidcPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIPortalStatusOidcOutput).ToAPIPortalStatusOidcPtrOutputWithContext(ctx) +} + +// APIPortalStatusOidcPtrInput is an input type that accepts APIPortalStatusOidcArgs, APIPortalStatusOidcPtr and APIPortalStatusOidcPtrOutput values. +// You can construct a concrete instance of `APIPortalStatusOidcPtrInput` via: +// +// APIPortalStatusOidcArgs{...} +// +// or: +// +// nil +type APIPortalStatusOidcPtrInput interface { + pulumi.Input + + ToAPIPortalStatusOidcPtrOutput() APIPortalStatusOidcPtrOutput + ToAPIPortalStatusOidcPtrOutputWithContext(context.Context) APIPortalStatusOidcPtrOutput +} + +type apiportalStatusOidcPtrType APIPortalStatusOidcArgs + +func APIPortalStatusOidcPtr(v *APIPortalStatusOidcArgs) APIPortalStatusOidcPtrInput { + return (*apiportalStatusOidcPtrType)(v) +} + +func (*apiportalStatusOidcPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APIPortalStatusOidc)(nil)).Elem() +} + +func (i *apiportalStatusOidcPtrType) ToAPIPortalStatusOidcPtrOutput() APIPortalStatusOidcPtrOutput { + return i.ToAPIPortalStatusOidcPtrOutputWithContext(context.Background()) +} + +func (i *apiportalStatusOidcPtrType) ToAPIPortalStatusOidcPtrOutputWithContext(ctx context.Context) APIPortalStatusOidcPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIPortalStatusOidcPtrOutput) +} + +func (i *apiportalStatusOidcPtrType) ToOutput(ctx context.Context) pulumix.Output[*APIPortalStatusOidc] { + return pulumix.Output[*APIPortalStatusOidc]{ + OutputState: i.ToAPIPortalStatusOidcPtrOutputWithContext(ctx).OutputState, + } +} + +// OIDC is the OIDC configuration for accessing the exposed APIPortal WebUI. +type APIPortalStatusOidcOutput struct{ *pulumi.OutputState } + +func (APIPortalStatusOidcOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIPortalStatusOidc)(nil)).Elem() +} + +func (o APIPortalStatusOidcOutput) ToAPIPortalStatusOidcOutput() APIPortalStatusOidcOutput { + return o +} + +func (o APIPortalStatusOidcOutput) ToAPIPortalStatusOidcOutputWithContext(ctx context.Context) APIPortalStatusOidcOutput { + return o +} + +func (o APIPortalStatusOidcOutput) ToAPIPortalStatusOidcPtrOutput() APIPortalStatusOidcPtrOutput { + return o.ToAPIPortalStatusOidcPtrOutputWithContext(context.Background()) +} + +func (o APIPortalStatusOidcOutput) ToAPIPortalStatusOidcPtrOutputWithContext(ctx context.Context) APIPortalStatusOidcPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APIPortalStatusOidc) *APIPortalStatusOidc { + return &v + }).(APIPortalStatusOidcPtrOutput) +} + +func (o APIPortalStatusOidcOutput) ToOutput(ctx context.Context) pulumix.Output[APIPortalStatusOidc] { + return pulumix.Output[APIPortalStatusOidc]{ + OutputState: o.OutputState, + } +} + +// ClientID is the OIDC ClientID for accessing the exposed APIPortal WebUI. +func (o APIPortalStatusOidcOutput) ClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIPortalStatusOidc) *string { return v.ClientId }).(pulumi.StringPtrOutput) +} + +// CompanyClaim is the name of the JWT claim containing the user company. +func (o APIPortalStatusOidcOutput) CompanyClaim() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIPortalStatusOidc) *string { return v.CompanyClaim }).(pulumi.StringPtrOutput) +} + +// EmailClaim is the name of the JWT claim containing the user email. +func (o APIPortalStatusOidcOutput) EmailClaim() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIPortalStatusOidc) *string { return v.EmailClaim }).(pulumi.StringPtrOutput) +} + +// FirstnameClaim is the name of the JWT claim containing the user firstname. +func (o APIPortalStatusOidcOutput) FirstnameClaim() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIPortalStatusOidc) *string { return v.FirstnameClaim }).(pulumi.StringPtrOutput) +} + +// Generic indicates whether or not the APIPortal authentication relies on Generic OIDC. +func (o APIPortalStatusOidcOutput) Generic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v APIPortalStatusOidc) *bool { return v.Generic }).(pulumi.BoolPtrOutput) +} + +// GroupsClaim is the name of the JWT claim containing the user groups. +func (o APIPortalStatusOidcOutput) GroupsClaim() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIPortalStatusOidc) *string { return v.GroupsClaim }).(pulumi.StringPtrOutput) +} + +// Issuer is the OIDC issuer for accessing the exposed APIPortal WebUI. +func (o APIPortalStatusOidcOutput) Issuer() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIPortalStatusOidc) *string { return v.Issuer }).(pulumi.StringPtrOutput) +} + +// LastnameClaim is the name of the JWT claim containing the user lastname. +func (o APIPortalStatusOidcOutput) LastnameClaim() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIPortalStatusOidc) *string { return v.LastnameClaim }).(pulumi.StringPtrOutput) +} + +// Scopes is the OIDC scopes for getting user attributes during the authentication to the exposed APIPortal WebUI. +func (o APIPortalStatusOidcOutput) Scopes() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIPortalStatusOidc) *string { return v.Scopes }).(pulumi.StringPtrOutput) +} + +// SecretName is the name of the secret containing the OIDC ClientSecret for accessing the exposed APIPortal WebUI. +func (o APIPortalStatusOidcOutput) SecretName() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIPortalStatusOidc) *string { return v.SecretName }).(pulumi.StringPtrOutput) +} + +// SyncedAttributes configure the user attributes to sync. +func (o APIPortalStatusOidcOutput) SyncedAttributes() pulumi.StringArrayOutput { + return o.ApplyT(func(v APIPortalStatusOidc) []string { return v.SyncedAttributes }).(pulumi.StringArrayOutput) +} + +// UserIDClaim is the name of the JWT claim containing the user ID. +func (o APIPortalStatusOidcOutput) UserIdClaim() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIPortalStatusOidc) *string { return v.UserIdClaim }).(pulumi.StringPtrOutput) +} + +type APIPortalStatusOidcPtrOutput struct{ *pulumi.OutputState } + +func (APIPortalStatusOidcPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIPortalStatusOidc)(nil)).Elem() +} + +func (o APIPortalStatusOidcPtrOutput) ToAPIPortalStatusOidcPtrOutput() APIPortalStatusOidcPtrOutput { + return o +} + +func (o APIPortalStatusOidcPtrOutput) ToAPIPortalStatusOidcPtrOutputWithContext(ctx context.Context) APIPortalStatusOidcPtrOutput { + return o +} + +func (o APIPortalStatusOidcPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APIPortalStatusOidc] { + return pulumix.Output[*APIPortalStatusOidc]{ + OutputState: o.OutputState, + } +} + +func (o APIPortalStatusOidcPtrOutput) Elem() APIPortalStatusOidcOutput { + return o.ApplyT(func(v *APIPortalStatusOidc) APIPortalStatusOidc { + if v != nil { + return *v + } + var ret APIPortalStatusOidc + return ret + }).(APIPortalStatusOidcOutput) +} + +// ClientID is the OIDC ClientID for accessing the exposed APIPortal WebUI. +func (o APIPortalStatusOidcPtrOutput) ClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortalStatusOidc) *string { + if v == nil { + return nil + } + return v.ClientId + }).(pulumi.StringPtrOutput) +} + +// CompanyClaim is the name of the JWT claim containing the user company. +func (o APIPortalStatusOidcPtrOutput) CompanyClaim() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortalStatusOidc) *string { + if v == nil { + return nil + } + return v.CompanyClaim + }).(pulumi.StringPtrOutput) +} + +// EmailClaim is the name of the JWT claim containing the user email. +func (o APIPortalStatusOidcPtrOutput) EmailClaim() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortalStatusOidc) *string { + if v == nil { + return nil + } + return v.EmailClaim + }).(pulumi.StringPtrOutput) +} + +// FirstnameClaim is the name of the JWT claim containing the user firstname. +func (o APIPortalStatusOidcPtrOutput) FirstnameClaim() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortalStatusOidc) *string { + if v == nil { + return nil + } + return v.FirstnameClaim + }).(pulumi.StringPtrOutput) +} + +// Generic indicates whether or not the APIPortal authentication relies on Generic OIDC. +func (o APIPortalStatusOidcPtrOutput) Generic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *APIPortalStatusOidc) *bool { + if v == nil { + return nil + } + return v.Generic + }).(pulumi.BoolPtrOutput) +} + +// GroupsClaim is the name of the JWT claim containing the user groups. +func (o APIPortalStatusOidcPtrOutput) GroupsClaim() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortalStatusOidc) *string { + if v == nil { + return nil + } + return v.GroupsClaim + }).(pulumi.StringPtrOutput) +} + +// Issuer is the OIDC issuer for accessing the exposed APIPortal WebUI. +func (o APIPortalStatusOidcPtrOutput) Issuer() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortalStatusOidc) *string { + if v == nil { + return nil + } + return v.Issuer + }).(pulumi.StringPtrOutput) +} + +// LastnameClaim is the name of the JWT claim containing the user lastname. +func (o APIPortalStatusOidcPtrOutput) LastnameClaim() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortalStatusOidc) *string { + if v == nil { + return nil + } + return v.LastnameClaim + }).(pulumi.StringPtrOutput) +} + +// Scopes is the OIDC scopes for getting user attributes during the authentication to the exposed APIPortal WebUI. +func (o APIPortalStatusOidcPtrOutput) Scopes() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortalStatusOidc) *string { + if v == nil { + return nil + } + return v.Scopes + }).(pulumi.StringPtrOutput) +} + +// SecretName is the name of the secret containing the OIDC ClientSecret for accessing the exposed APIPortal WebUI. +func (o APIPortalStatusOidcPtrOutput) SecretName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortalStatusOidc) *string { + if v == nil { + return nil + } + return v.SecretName + }).(pulumi.StringPtrOutput) +} + +// SyncedAttributes configure the user attributes to sync. +func (o APIPortalStatusOidcPtrOutput) SyncedAttributes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *APIPortalStatusOidc) []string { + if v == nil { + return nil + } + return v.SyncedAttributes + }).(pulumi.StringArrayOutput) +} + +// UserIDClaim is the name of the JWT claim containing the user ID. +func (o APIPortalStatusOidcPtrOutput) UserIdClaim() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIPortalStatusOidc) *string { + if v == nil { + return nil + } + return v.UserIdClaim + }).(pulumi.StringPtrOutput) +} + +// APIRateLimit defines how group of consumers are rate limited on a set of APIs. +type APIRateLimitType struct { + ApiVersion *string `pulumi:"apiVersion"` + Kind *string `pulumi:"kind"` + Metadata *v1.ObjectMeta `pulumi:"metadata"` + // The desired behavior of this APIRateLimit. + Spec *APIRateLimitSpec `pulumi:"spec"` + // The current status of this APIRateLimit. + Status *APIRateLimitStatus `pulumi:"status"` +} + +type APIRateLimitMetadata struct { +} + +// The desired behavior of this APIRateLimit. +type APIRateLimitSpec struct { + // APISelector selects the APIs that will be rate limited. + // Multiple APIRateLimits can select the same set of APIs. + // This field is optional and follows standard label selector semantics. + // An empty APISelector matches any API. + ApiSelector *APIRateLimitSpecApiSelector `pulumi:"apiSelector"` + // APIs defines a set of APIs that will be rate limited. + // Multiple APIRateLimits can select the same APIs. + // When combined with APISelector, this set of APIs is appended to the matching APIs. + Apis []APIRateLimitSpecApis `pulumi:"apis"` + // Everyone indicates that all users will, by default, be rate limited with this configuration. + // If an APIRateLimit explicitly target a group, the default rate limit will be ignored. + Everyone *bool `pulumi:"everyone"` + // Groups are the consumer groups that will be rate limited. + // Multiple APIRateLimits can target the same set of consumer groups, the most restrictive one applies. + // When a consumer belongs to multiple groups, the least restrictive APIRateLimit applies. + Groups []string `pulumi:"groups"` + // Limit is the maximum number of token in the bucket. + Limit int `pulumi:"limit"` + // Period is the unit of time for the Limit. + Period *string `pulumi:"period"` + // Strategy defines how the bucket state will be synchronized between the different Traefik Hub instances. + // It can be, either "local" or "distributed". + Strategy *string `pulumi:"strategy"` +} + +// APIRateLimitSpecInput is an input type that accepts APIRateLimitSpecArgs and APIRateLimitSpecOutput values. +// You can construct a concrete instance of `APIRateLimitSpecInput` via: +// +// APIRateLimitSpecArgs{...} +type APIRateLimitSpecInput interface { + pulumi.Input + + ToAPIRateLimitSpecOutput() APIRateLimitSpecOutput + ToAPIRateLimitSpecOutputWithContext(context.Context) APIRateLimitSpecOutput +} + +// The desired behavior of this APIRateLimit. +type APIRateLimitSpecArgs struct { + // APISelector selects the APIs that will be rate limited. + // Multiple APIRateLimits can select the same set of APIs. + // This field is optional and follows standard label selector semantics. + // An empty APISelector matches any API. + ApiSelector APIRateLimitSpecApiSelectorPtrInput `pulumi:"apiSelector"` + // APIs defines a set of APIs that will be rate limited. + // Multiple APIRateLimits can select the same APIs. + // When combined with APISelector, this set of APIs is appended to the matching APIs. + Apis APIRateLimitSpecApisArrayInput `pulumi:"apis"` + // Everyone indicates that all users will, by default, be rate limited with this configuration. + // If an APIRateLimit explicitly target a group, the default rate limit will be ignored. + Everyone pulumi.BoolPtrInput `pulumi:"everyone"` + // Groups are the consumer groups that will be rate limited. + // Multiple APIRateLimits can target the same set of consumer groups, the most restrictive one applies. + // When a consumer belongs to multiple groups, the least restrictive APIRateLimit applies. + Groups pulumi.StringArrayInput `pulumi:"groups"` + // Limit is the maximum number of token in the bucket. + Limit pulumi.IntInput `pulumi:"limit"` + // Period is the unit of time for the Limit. + Period pulumi.StringPtrInput `pulumi:"period"` + // Strategy defines how the bucket state will be synchronized between the different Traefik Hub instances. + // It can be, either "local" or "distributed". + Strategy pulumi.StringPtrInput `pulumi:"strategy"` +} + +func (APIRateLimitSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIRateLimitSpec)(nil)).Elem() +} + +func (i APIRateLimitSpecArgs) ToAPIRateLimitSpecOutput() APIRateLimitSpecOutput { + return i.ToAPIRateLimitSpecOutputWithContext(context.Background()) +} + +func (i APIRateLimitSpecArgs) ToAPIRateLimitSpecOutputWithContext(ctx context.Context) APIRateLimitSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIRateLimitSpecOutput) +} + +func (i APIRateLimitSpecArgs) ToOutput(ctx context.Context) pulumix.Output[APIRateLimitSpec] { + return pulumix.Output[APIRateLimitSpec]{ + OutputState: i.ToAPIRateLimitSpecOutputWithContext(ctx).OutputState, + } +} + +func (i APIRateLimitSpecArgs) ToAPIRateLimitSpecPtrOutput() APIRateLimitSpecPtrOutput { + return i.ToAPIRateLimitSpecPtrOutputWithContext(context.Background()) +} + +func (i APIRateLimitSpecArgs) ToAPIRateLimitSpecPtrOutputWithContext(ctx context.Context) APIRateLimitSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIRateLimitSpecOutput).ToAPIRateLimitSpecPtrOutputWithContext(ctx) +} + +// APIRateLimitSpecPtrInput is an input type that accepts APIRateLimitSpecArgs, APIRateLimitSpecPtr and APIRateLimitSpecPtrOutput values. +// You can construct a concrete instance of `APIRateLimitSpecPtrInput` via: +// +// APIRateLimitSpecArgs{...} +// +// or: +// +// nil +type APIRateLimitSpecPtrInput interface { + pulumi.Input + + ToAPIRateLimitSpecPtrOutput() APIRateLimitSpecPtrOutput + ToAPIRateLimitSpecPtrOutputWithContext(context.Context) APIRateLimitSpecPtrOutput +} + +type apirateLimitSpecPtrType APIRateLimitSpecArgs + +func APIRateLimitSpecPtr(v *APIRateLimitSpecArgs) APIRateLimitSpecPtrInput { + return (*apirateLimitSpecPtrType)(v) +} + +func (*apirateLimitSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APIRateLimitSpec)(nil)).Elem() +} + +func (i *apirateLimitSpecPtrType) ToAPIRateLimitSpecPtrOutput() APIRateLimitSpecPtrOutput { + return i.ToAPIRateLimitSpecPtrOutputWithContext(context.Background()) +} + +func (i *apirateLimitSpecPtrType) ToAPIRateLimitSpecPtrOutputWithContext(ctx context.Context) APIRateLimitSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIRateLimitSpecPtrOutput) +} + +func (i *apirateLimitSpecPtrType) ToOutput(ctx context.Context) pulumix.Output[*APIRateLimitSpec] { + return pulumix.Output[*APIRateLimitSpec]{ + OutputState: i.ToAPIRateLimitSpecPtrOutputWithContext(ctx).OutputState, + } +} + +// The desired behavior of this APIRateLimit. +type APIRateLimitSpecOutput struct{ *pulumi.OutputState } + +func (APIRateLimitSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIRateLimitSpec)(nil)).Elem() +} + +func (o APIRateLimitSpecOutput) ToAPIRateLimitSpecOutput() APIRateLimitSpecOutput { + return o +} + +func (o APIRateLimitSpecOutput) ToAPIRateLimitSpecOutputWithContext(ctx context.Context) APIRateLimitSpecOutput { + return o +} + +func (o APIRateLimitSpecOutput) ToAPIRateLimitSpecPtrOutput() APIRateLimitSpecPtrOutput { + return o.ToAPIRateLimitSpecPtrOutputWithContext(context.Background()) +} + +func (o APIRateLimitSpecOutput) ToAPIRateLimitSpecPtrOutputWithContext(ctx context.Context) APIRateLimitSpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APIRateLimitSpec) *APIRateLimitSpec { + return &v + }).(APIRateLimitSpecPtrOutput) +} + +func (o APIRateLimitSpecOutput) ToOutput(ctx context.Context) pulumix.Output[APIRateLimitSpec] { + return pulumix.Output[APIRateLimitSpec]{ + OutputState: o.OutputState, + } +} + +// APISelector selects the APIs that will be rate limited. +// Multiple APIRateLimits can select the same set of APIs. +// This field is optional and follows standard label selector semantics. +// An empty APISelector matches any API. +func (o APIRateLimitSpecOutput) ApiSelector() APIRateLimitSpecApiSelectorPtrOutput { + return o.ApplyT(func(v APIRateLimitSpec) *APIRateLimitSpecApiSelector { return v.ApiSelector }).(APIRateLimitSpecApiSelectorPtrOutput) +} + +// APIs defines a set of APIs that will be rate limited. +// Multiple APIRateLimits can select the same APIs. +// When combined with APISelector, this set of APIs is appended to the matching APIs. +func (o APIRateLimitSpecOutput) Apis() APIRateLimitSpecApisArrayOutput { + return o.ApplyT(func(v APIRateLimitSpec) []APIRateLimitSpecApis { return v.Apis }).(APIRateLimitSpecApisArrayOutput) +} + +// Everyone indicates that all users will, by default, be rate limited with this configuration. +// If an APIRateLimit explicitly target a group, the default rate limit will be ignored. +func (o APIRateLimitSpecOutput) Everyone() pulumi.BoolPtrOutput { + return o.ApplyT(func(v APIRateLimitSpec) *bool { return v.Everyone }).(pulumi.BoolPtrOutput) +} + +// Groups are the consumer groups that will be rate limited. +// Multiple APIRateLimits can target the same set of consumer groups, the most restrictive one applies. +// When a consumer belongs to multiple groups, the least restrictive APIRateLimit applies. +func (o APIRateLimitSpecOutput) Groups() pulumi.StringArrayOutput { + return o.ApplyT(func(v APIRateLimitSpec) []string { return v.Groups }).(pulumi.StringArrayOutput) +} + +// Limit is the maximum number of token in the bucket. +func (o APIRateLimitSpecOutput) Limit() pulumi.IntOutput { + return o.ApplyT(func(v APIRateLimitSpec) int { return v.Limit }).(pulumi.IntOutput) +} + +// Period is the unit of time for the Limit. +func (o APIRateLimitSpecOutput) Period() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIRateLimitSpec) *string { return v.Period }).(pulumi.StringPtrOutput) +} + +// Strategy defines how the bucket state will be synchronized between the different Traefik Hub instances. +// It can be, either "local" or "distributed". +func (o APIRateLimitSpecOutput) Strategy() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIRateLimitSpec) *string { return v.Strategy }).(pulumi.StringPtrOutput) +} + +type APIRateLimitSpecPtrOutput struct{ *pulumi.OutputState } + +func (APIRateLimitSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIRateLimitSpec)(nil)).Elem() +} + +func (o APIRateLimitSpecPtrOutput) ToAPIRateLimitSpecPtrOutput() APIRateLimitSpecPtrOutput { + return o +} + +func (o APIRateLimitSpecPtrOutput) ToAPIRateLimitSpecPtrOutputWithContext(ctx context.Context) APIRateLimitSpecPtrOutput { + return o +} + +func (o APIRateLimitSpecPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APIRateLimitSpec] { + return pulumix.Output[*APIRateLimitSpec]{ + OutputState: o.OutputState, + } +} + +func (o APIRateLimitSpecPtrOutput) Elem() APIRateLimitSpecOutput { + return o.ApplyT(func(v *APIRateLimitSpec) APIRateLimitSpec { + if v != nil { + return *v + } + var ret APIRateLimitSpec + return ret + }).(APIRateLimitSpecOutput) +} + +// APISelector selects the APIs that will be rate limited. +// Multiple APIRateLimits can select the same set of APIs. +// This field is optional and follows standard label selector semantics. +// An empty APISelector matches any API. +func (o APIRateLimitSpecPtrOutput) ApiSelector() APIRateLimitSpecApiSelectorPtrOutput { + return o.ApplyT(func(v *APIRateLimitSpec) *APIRateLimitSpecApiSelector { + if v == nil { + return nil + } + return v.ApiSelector + }).(APIRateLimitSpecApiSelectorPtrOutput) +} + +// APIs defines a set of APIs that will be rate limited. +// Multiple APIRateLimits can select the same APIs. +// When combined with APISelector, this set of APIs is appended to the matching APIs. +func (o APIRateLimitSpecPtrOutput) Apis() APIRateLimitSpecApisArrayOutput { + return o.ApplyT(func(v *APIRateLimitSpec) []APIRateLimitSpecApis { + if v == nil { + return nil + } + return v.Apis + }).(APIRateLimitSpecApisArrayOutput) +} + +// Everyone indicates that all users will, by default, be rate limited with this configuration. +// If an APIRateLimit explicitly target a group, the default rate limit will be ignored. +func (o APIRateLimitSpecPtrOutput) Everyone() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *APIRateLimitSpec) *bool { + if v == nil { + return nil + } + return v.Everyone + }).(pulumi.BoolPtrOutput) +} + +// Groups are the consumer groups that will be rate limited. +// Multiple APIRateLimits can target the same set of consumer groups, the most restrictive one applies. +// When a consumer belongs to multiple groups, the least restrictive APIRateLimit applies. +func (o APIRateLimitSpecPtrOutput) Groups() pulumi.StringArrayOutput { + return o.ApplyT(func(v *APIRateLimitSpec) []string { + if v == nil { + return nil + } + return v.Groups + }).(pulumi.StringArrayOutput) +} + +// Limit is the maximum number of token in the bucket. +func (o APIRateLimitSpecPtrOutput) Limit() pulumi.IntPtrOutput { + return o.ApplyT(func(v *APIRateLimitSpec) *int { + if v == nil { + return nil + } + return &v.Limit + }).(pulumi.IntPtrOutput) +} + +// Period is the unit of time for the Limit. +func (o APIRateLimitSpecPtrOutput) Period() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIRateLimitSpec) *string { + if v == nil { + return nil + } + return v.Period + }).(pulumi.StringPtrOutput) +} + +// Strategy defines how the bucket state will be synchronized between the different Traefik Hub instances. +// It can be, either "local" or "distributed". +func (o APIRateLimitSpecPtrOutput) Strategy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIRateLimitSpec) *string { + if v == nil { + return nil + } + return v.Strategy + }).(pulumi.StringPtrOutput) +} + +// APISelector selects the APIs that will be rate limited. +// Multiple APIRateLimits can select the same set of APIs. +// This field is optional and follows standard label selector semantics. +// An empty APISelector matches any API. +type APIRateLimitSpecApiSelector struct { + // matchExpressions is a list of label selector requirements. The requirements are ANDed. + MatchExpressions []APIRateLimitSpecApiSelectorMatchExpressions `pulumi:"matchExpressions"` + // matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + // map is equivalent to an element of matchExpressions, whose key field is "key", the + // operator is "In", and the values array contains only "value". The requirements are ANDed. + MatchLabels map[string]string `pulumi:"matchLabels"` +} + +// APIRateLimitSpecApiSelectorInput is an input type that accepts APIRateLimitSpecApiSelectorArgs and APIRateLimitSpecApiSelectorOutput values. +// You can construct a concrete instance of `APIRateLimitSpecApiSelectorInput` via: +// +// APIRateLimitSpecApiSelectorArgs{...} +type APIRateLimitSpecApiSelectorInput interface { + pulumi.Input + + ToAPIRateLimitSpecApiSelectorOutput() APIRateLimitSpecApiSelectorOutput + ToAPIRateLimitSpecApiSelectorOutputWithContext(context.Context) APIRateLimitSpecApiSelectorOutput +} + +// APISelector selects the APIs that will be rate limited. +// Multiple APIRateLimits can select the same set of APIs. +// This field is optional and follows standard label selector semantics. +// An empty APISelector matches any API. +type APIRateLimitSpecApiSelectorArgs struct { + // matchExpressions is a list of label selector requirements. The requirements are ANDed. + MatchExpressions APIRateLimitSpecApiSelectorMatchExpressionsArrayInput `pulumi:"matchExpressions"` + // matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + // map is equivalent to an element of matchExpressions, whose key field is "key", the + // operator is "In", and the values array contains only "value". The requirements are ANDed. + MatchLabels pulumi.StringMapInput `pulumi:"matchLabels"` +} + +func (APIRateLimitSpecApiSelectorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIRateLimitSpecApiSelector)(nil)).Elem() +} + +func (i APIRateLimitSpecApiSelectorArgs) ToAPIRateLimitSpecApiSelectorOutput() APIRateLimitSpecApiSelectorOutput { + return i.ToAPIRateLimitSpecApiSelectorOutputWithContext(context.Background()) +} + +func (i APIRateLimitSpecApiSelectorArgs) ToAPIRateLimitSpecApiSelectorOutputWithContext(ctx context.Context) APIRateLimitSpecApiSelectorOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIRateLimitSpecApiSelectorOutput) +} + +func (i APIRateLimitSpecApiSelectorArgs) ToOutput(ctx context.Context) pulumix.Output[APIRateLimitSpecApiSelector] { + return pulumix.Output[APIRateLimitSpecApiSelector]{ + OutputState: i.ToAPIRateLimitSpecApiSelectorOutputWithContext(ctx).OutputState, + } +} + +func (i APIRateLimitSpecApiSelectorArgs) ToAPIRateLimitSpecApiSelectorPtrOutput() APIRateLimitSpecApiSelectorPtrOutput { + return i.ToAPIRateLimitSpecApiSelectorPtrOutputWithContext(context.Background()) +} + +func (i APIRateLimitSpecApiSelectorArgs) ToAPIRateLimitSpecApiSelectorPtrOutputWithContext(ctx context.Context) APIRateLimitSpecApiSelectorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIRateLimitSpecApiSelectorOutput).ToAPIRateLimitSpecApiSelectorPtrOutputWithContext(ctx) +} + +// APIRateLimitSpecApiSelectorPtrInput is an input type that accepts APIRateLimitSpecApiSelectorArgs, APIRateLimitSpecApiSelectorPtr and APIRateLimitSpecApiSelectorPtrOutput values. +// You can construct a concrete instance of `APIRateLimitSpecApiSelectorPtrInput` via: +// +// APIRateLimitSpecApiSelectorArgs{...} +// +// or: +// +// nil +type APIRateLimitSpecApiSelectorPtrInput interface { + pulumi.Input + + ToAPIRateLimitSpecApiSelectorPtrOutput() APIRateLimitSpecApiSelectorPtrOutput + ToAPIRateLimitSpecApiSelectorPtrOutputWithContext(context.Context) APIRateLimitSpecApiSelectorPtrOutput +} + +type apirateLimitSpecApiSelectorPtrType APIRateLimitSpecApiSelectorArgs + +func APIRateLimitSpecApiSelectorPtr(v *APIRateLimitSpecApiSelectorArgs) APIRateLimitSpecApiSelectorPtrInput { + return (*apirateLimitSpecApiSelectorPtrType)(v) +} + +func (*apirateLimitSpecApiSelectorPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APIRateLimitSpecApiSelector)(nil)).Elem() +} + +func (i *apirateLimitSpecApiSelectorPtrType) ToAPIRateLimitSpecApiSelectorPtrOutput() APIRateLimitSpecApiSelectorPtrOutput { + return i.ToAPIRateLimitSpecApiSelectorPtrOutputWithContext(context.Background()) +} + +func (i *apirateLimitSpecApiSelectorPtrType) ToAPIRateLimitSpecApiSelectorPtrOutputWithContext(ctx context.Context) APIRateLimitSpecApiSelectorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIRateLimitSpecApiSelectorPtrOutput) +} + +func (i *apirateLimitSpecApiSelectorPtrType) ToOutput(ctx context.Context) pulumix.Output[*APIRateLimitSpecApiSelector] { + return pulumix.Output[*APIRateLimitSpecApiSelector]{ + OutputState: i.ToAPIRateLimitSpecApiSelectorPtrOutputWithContext(ctx).OutputState, + } +} + +// APISelector selects the APIs that will be rate limited. +// Multiple APIRateLimits can select the same set of APIs. +// This field is optional and follows standard label selector semantics. +// An empty APISelector matches any API. +type APIRateLimitSpecApiSelectorOutput struct{ *pulumi.OutputState } + +func (APIRateLimitSpecApiSelectorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIRateLimitSpecApiSelector)(nil)).Elem() +} + +func (o APIRateLimitSpecApiSelectorOutput) ToAPIRateLimitSpecApiSelectorOutput() APIRateLimitSpecApiSelectorOutput { + return o +} + +func (o APIRateLimitSpecApiSelectorOutput) ToAPIRateLimitSpecApiSelectorOutputWithContext(ctx context.Context) APIRateLimitSpecApiSelectorOutput { + return o +} + +func (o APIRateLimitSpecApiSelectorOutput) ToAPIRateLimitSpecApiSelectorPtrOutput() APIRateLimitSpecApiSelectorPtrOutput { + return o.ToAPIRateLimitSpecApiSelectorPtrOutputWithContext(context.Background()) +} + +func (o APIRateLimitSpecApiSelectorOutput) ToAPIRateLimitSpecApiSelectorPtrOutputWithContext(ctx context.Context) APIRateLimitSpecApiSelectorPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APIRateLimitSpecApiSelector) *APIRateLimitSpecApiSelector { + return &v + }).(APIRateLimitSpecApiSelectorPtrOutput) +} + +func (o APIRateLimitSpecApiSelectorOutput) ToOutput(ctx context.Context) pulumix.Output[APIRateLimitSpecApiSelector] { + return pulumix.Output[APIRateLimitSpecApiSelector]{ + OutputState: o.OutputState, + } +} + +// matchExpressions is a list of label selector requirements. The requirements are ANDed. +func (o APIRateLimitSpecApiSelectorOutput) MatchExpressions() APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput { + return o.ApplyT(func(v APIRateLimitSpecApiSelector) []APIRateLimitSpecApiSelectorMatchExpressions { + return v.MatchExpressions + }).(APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput) +} + +// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels +// map is equivalent to an element of matchExpressions, whose key field is "key", the +// operator is "In", and the values array contains only "value". The requirements are ANDed. +func (o APIRateLimitSpecApiSelectorOutput) MatchLabels() pulumi.StringMapOutput { + return o.ApplyT(func(v APIRateLimitSpecApiSelector) map[string]string { return v.MatchLabels }).(pulumi.StringMapOutput) +} + +type APIRateLimitSpecApiSelectorPtrOutput struct{ *pulumi.OutputState } + +func (APIRateLimitSpecApiSelectorPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIRateLimitSpecApiSelector)(nil)).Elem() +} + +func (o APIRateLimitSpecApiSelectorPtrOutput) ToAPIRateLimitSpecApiSelectorPtrOutput() APIRateLimitSpecApiSelectorPtrOutput { + return o +} + +func (o APIRateLimitSpecApiSelectorPtrOutput) ToAPIRateLimitSpecApiSelectorPtrOutputWithContext(ctx context.Context) APIRateLimitSpecApiSelectorPtrOutput { + return o +} + +func (o APIRateLimitSpecApiSelectorPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APIRateLimitSpecApiSelector] { + return pulumix.Output[*APIRateLimitSpecApiSelector]{ + OutputState: o.OutputState, + } +} + +func (o APIRateLimitSpecApiSelectorPtrOutput) Elem() APIRateLimitSpecApiSelectorOutput { + return o.ApplyT(func(v *APIRateLimitSpecApiSelector) APIRateLimitSpecApiSelector { + if v != nil { + return *v + } + var ret APIRateLimitSpecApiSelector + return ret + }).(APIRateLimitSpecApiSelectorOutput) +} + +// matchExpressions is a list of label selector requirements. The requirements are ANDed. +func (o APIRateLimitSpecApiSelectorPtrOutput) MatchExpressions() APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput { + return o.ApplyT(func(v *APIRateLimitSpecApiSelector) []APIRateLimitSpecApiSelectorMatchExpressions { + if v == nil { + return nil + } + return v.MatchExpressions + }).(APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput) +} + +// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels +// map is equivalent to an element of matchExpressions, whose key field is "key", the +// operator is "In", and the values array contains only "value". The requirements are ANDed. +func (o APIRateLimitSpecApiSelectorPtrOutput) MatchLabels() pulumi.StringMapOutput { + return o.ApplyT(func(v *APIRateLimitSpecApiSelector) map[string]string { + if v == nil { + return nil + } + return v.MatchLabels + }).(pulumi.StringMapOutput) +} + +// A label selector requirement is a selector that contains values, a key, and an operator that +// relates the key and values. +type APIRateLimitSpecApiSelectorMatchExpressions struct { + // key is the label key that the selector applies to. + Key string `pulumi:"key"` + // operator represents a key's relationship to a set of values. + // Valid operators are In, NotIn, Exists and DoesNotExist. + Operator string `pulumi:"operator"` + // values is an array of string values. If the operator is In or NotIn, + // the values array must be non-empty. If the operator is Exists or DoesNotExist, + // the values array must be empty. This array is replaced during a strategic + // merge patch. + Values []string `pulumi:"values"` +} + +// APIRateLimitSpecApiSelectorMatchExpressionsInput is an input type that accepts APIRateLimitSpecApiSelectorMatchExpressionsArgs and APIRateLimitSpecApiSelectorMatchExpressionsOutput values. +// You can construct a concrete instance of `APIRateLimitSpecApiSelectorMatchExpressionsInput` via: +// +// APIRateLimitSpecApiSelectorMatchExpressionsArgs{...} +type APIRateLimitSpecApiSelectorMatchExpressionsInput interface { + pulumi.Input + + ToAPIRateLimitSpecApiSelectorMatchExpressionsOutput() APIRateLimitSpecApiSelectorMatchExpressionsOutput + ToAPIRateLimitSpecApiSelectorMatchExpressionsOutputWithContext(context.Context) APIRateLimitSpecApiSelectorMatchExpressionsOutput +} + +// A label selector requirement is a selector that contains values, a key, and an operator that +// relates the key and values. +type APIRateLimitSpecApiSelectorMatchExpressionsArgs struct { + // key is the label key that the selector applies to. + Key pulumi.StringInput `pulumi:"key"` + // operator represents a key's relationship to a set of values. + // Valid operators are In, NotIn, Exists and DoesNotExist. + Operator pulumi.StringInput `pulumi:"operator"` + // values is an array of string values. If the operator is In or NotIn, + // the values array must be non-empty. If the operator is Exists or DoesNotExist, + // the values array must be empty. This array is replaced during a strategic + // merge patch. + Values pulumi.StringArrayInput `pulumi:"values"` +} + +func (APIRateLimitSpecApiSelectorMatchExpressionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIRateLimitSpecApiSelectorMatchExpressions)(nil)).Elem() +} + +func (i APIRateLimitSpecApiSelectorMatchExpressionsArgs) ToAPIRateLimitSpecApiSelectorMatchExpressionsOutput() APIRateLimitSpecApiSelectorMatchExpressionsOutput { + return i.ToAPIRateLimitSpecApiSelectorMatchExpressionsOutputWithContext(context.Background()) +} + +func (i APIRateLimitSpecApiSelectorMatchExpressionsArgs) ToAPIRateLimitSpecApiSelectorMatchExpressionsOutputWithContext(ctx context.Context) APIRateLimitSpecApiSelectorMatchExpressionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIRateLimitSpecApiSelectorMatchExpressionsOutput) +} + +func (i APIRateLimitSpecApiSelectorMatchExpressionsArgs) ToOutput(ctx context.Context) pulumix.Output[APIRateLimitSpecApiSelectorMatchExpressions] { + return pulumix.Output[APIRateLimitSpecApiSelectorMatchExpressions]{ + OutputState: i.ToAPIRateLimitSpecApiSelectorMatchExpressionsOutputWithContext(ctx).OutputState, + } +} + +// APIRateLimitSpecApiSelectorMatchExpressionsArrayInput is an input type that accepts APIRateLimitSpecApiSelectorMatchExpressionsArray and APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput values. +// You can construct a concrete instance of `APIRateLimitSpecApiSelectorMatchExpressionsArrayInput` via: +// +// APIRateLimitSpecApiSelectorMatchExpressionsArray{ APIRateLimitSpecApiSelectorMatchExpressionsArgs{...} } +type APIRateLimitSpecApiSelectorMatchExpressionsArrayInput interface { + pulumi.Input + + ToAPIRateLimitSpecApiSelectorMatchExpressionsArrayOutput() APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput + ToAPIRateLimitSpecApiSelectorMatchExpressionsArrayOutputWithContext(context.Context) APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput +} + +type APIRateLimitSpecApiSelectorMatchExpressionsArray []APIRateLimitSpecApiSelectorMatchExpressionsInput + +func (APIRateLimitSpecApiSelectorMatchExpressionsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]APIRateLimitSpecApiSelectorMatchExpressions)(nil)).Elem() +} + +func (i APIRateLimitSpecApiSelectorMatchExpressionsArray) ToAPIRateLimitSpecApiSelectorMatchExpressionsArrayOutput() APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput { + return i.ToAPIRateLimitSpecApiSelectorMatchExpressionsArrayOutputWithContext(context.Background()) +} + +func (i APIRateLimitSpecApiSelectorMatchExpressionsArray) ToAPIRateLimitSpecApiSelectorMatchExpressionsArrayOutputWithContext(ctx context.Context) APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput) +} + +func (i APIRateLimitSpecApiSelectorMatchExpressionsArray) ToOutput(ctx context.Context) pulumix.Output[[]APIRateLimitSpecApiSelectorMatchExpressions] { + return pulumix.Output[[]APIRateLimitSpecApiSelectorMatchExpressions]{ + OutputState: i.ToAPIRateLimitSpecApiSelectorMatchExpressionsArrayOutputWithContext(ctx).OutputState, + } +} + +// A label selector requirement is a selector that contains values, a key, and an operator that +// relates the key and values. +type APIRateLimitSpecApiSelectorMatchExpressionsOutput struct{ *pulumi.OutputState } + +func (APIRateLimitSpecApiSelectorMatchExpressionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIRateLimitSpecApiSelectorMatchExpressions)(nil)).Elem() +} + +func (o APIRateLimitSpecApiSelectorMatchExpressionsOutput) ToAPIRateLimitSpecApiSelectorMatchExpressionsOutput() APIRateLimitSpecApiSelectorMatchExpressionsOutput { + return o +} + +func (o APIRateLimitSpecApiSelectorMatchExpressionsOutput) ToAPIRateLimitSpecApiSelectorMatchExpressionsOutputWithContext(ctx context.Context) APIRateLimitSpecApiSelectorMatchExpressionsOutput { + return o +} + +func (o APIRateLimitSpecApiSelectorMatchExpressionsOutput) ToOutput(ctx context.Context) pulumix.Output[APIRateLimitSpecApiSelectorMatchExpressions] { + return pulumix.Output[APIRateLimitSpecApiSelectorMatchExpressions]{ + OutputState: o.OutputState, + } +} + +// key is the label key that the selector applies to. +func (o APIRateLimitSpecApiSelectorMatchExpressionsOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v APIRateLimitSpecApiSelectorMatchExpressions) string { return v.Key }).(pulumi.StringOutput) +} + +// operator represents a key's relationship to a set of values. +// Valid operators are In, NotIn, Exists and DoesNotExist. +func (o APIRateLimitSpecApiSelectorMatchExpressionsOutput) Operator() pulumi.StringOutput { + return o.ApplyT(func(v APIRateLimitSpecApiSelectorMatchExpressions) string { return v.Operator }).(pulumi.StringOutput) +} + +// values is an array of string values. If the operator is In or NotIn, +// the values array must be non-empty. If the operator is Exists or DoesNotExist, +// the values array must be empty. This array is replaced during a strategic +// merge patch. +func (o APIRateLimitSpecApiSelectorMatchExpressionsOutput) Values() pulumi.StringArrayOutput { + return o.ApplyT(func(v APIRateLimitSpecApiSelectorMatchExpressions) []string { return v.Values }).(pulumi.StringArrayOutput) +} + +type APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput struct{ *pulumi.OutputState } + +func (APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]APIRateLimitSpecApiSelectorMatchExpressions)(nil)).Elem() +} + +func (o APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput) ToAPIRateLimitSpecApiSelectorMatchExpressionsArrayOutput() APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput { + return o +} + +func (o APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput) ToAPIRateLimitSpecApiSelectorMatchExpressionsArrayOutputWithContext(ctx context.Context) APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput { + return o +} + +func (o APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]APIRateLimitSpecApiSelectorMatchExpressions] { + return pulumix.Output[[]APIRateLimitSpecApiSelectorMatchExpressions]{ + OutputState: o.OutputState, + } +} + +func (o APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput) Index(i pulumi.IntInput) APIRateLimitSpecApiSelectorMatchExpressionsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) APIRateLimitSpecApiSelectorMatchExpressions { + return vs[0].([]APIRateLimitSpecApiSelectorMatchExpressions)[vs[1].(int)] + }).(APIRateLimitSpecApiSelectorMatchExpressionsOutput) +} + +// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels +// map is equivalent to an element of matchExpressions, whose key field is "key", the +// operator is "In", and the values array contains only "value". The requirements are ANDed. +type APIRateLimitSpecApiSelectorMatchLabels struct { +} + +// APIReference references an API. +type APIRateLimitSpecApis struct { + // Name of the API. + Name string `pulumi:"name"` +} + +// APIRateLimitSpecApisInput is an input type that accepts APIRateLimitSpecApisArgs and APIRateLimitSpecApisOutput values. +// You can construct a concrete instance of `APIRateLimitSpecApisInput` via: +// +// APIRateLimitSpecApisArgs{...} +type APIRateLimitSpecApisInput interface { + pulumi.Input + + ToAPIRateLimitSpecApisOutput() APIRateLimitSpecApisOutput + ToAPIRateLimitSpecApisOutputWithContext(context.Context) APIRateLimitSpecApisOutput +} + +// APIReference references an API. +type APIRateLimitSpecApisArgs struct { + // Name of the API. + Name pulumi.StringInput `pulumi:"name"` +} + +func (APIRateLimitSpecApisArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIRateLimitSpecApis)(nil)).Elem() +} + +func (i APIRateLimitSpecApisArgs) ToAPIRateLimitSpecApisOutput() APIRateLimitSpecApisOutput { + return i.ToAPIRateLimitSpecApisOutputWithContext(context.Background()) +} + +func (i APIRateLimitSpecApisArgs) ToAPIRateLimitSpecApisOutputWithContext(ctx context.Context) APIRateLimitSpecApisOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIRateLimitSpecApisOutput) +} + +func (i APIRateLimitSpecApisArgs) ToOutput(ctx context.Context) pulumix.Output[APIRateLimitSpecApis] { + return pulumix.Output[APIRateLimitSpecApis]{ + OutputState: i.ToAPIRateLimitSpecApisOutputWithContext(ctx).OutputState, + } +} + +// APIRateLimitSpecApisArrayInput is an input type that accepts APIRateLimitSpecApisArray and APIRateLimitSpecApisArrayOutput values. +// You can construct a concrete instance of `APIRateLimitSpecApisArrayInput` via: +// +// APIRateLimitSpecApisArray{ APIRateLimitSpecApisArgs{...} } +type APIRateLimitSpecApisArrayInput interface { + pulumi.Input + + ToAPIRateLimitSpecApisArrayOutput() APIRateLimitSpecApisArrayOutput + ToAPIRateLimitSpecApisArrayOutputWithContext(context.Context) APIRateLimitSpecApisArrayOutput +} + +type APIRateLimitSpecApisArray []APIRateLimitSpecApisInput + +func (APIRateLimitSpecApisArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]APIRateLimitSpecApis)(nil)).Elem() +} + +func (i APIRateLimitSpecApisArray) ToAPIRateLimitSpecApisArrayOutput() APIRateLimitSpecApisArrayOutput { + return i.ToAPIRateLimitSpecApisArrayOutputWithContext(context.Background()) +} + +func (i APIRateLimitSpecApisArray) ToAPIRateLimitSpecApisArrayOutputWithContext(ctx context.Context) APIRateLimitSpecApisArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIRateLimitSpecApisArrayOutput) +} + +func (i APIRateLimitSpecApisArray) ToOutput(ctx context.Context) pulumix.Output[[]APIRateLimitSpecApis] { + return pulumix.Output[[]APIRateLimitSpecApis]{ + OutputState: i.ToAPIRateLimitSpecApisArrayOutputWithContext(ctx).OutputState, + } +} + +// APIReference references an API. +type APIRateLimitSpecApisOutput struct{ *pulumi.OutputState } + +func (APIRateLimitSpecApisOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIRateLimitSpecApis)(nil)).Elem() +} + +func (o APIRateLimitSpecApisOutput) ToAPIRateLimitSpecApisOutput() APIRateLimitSpecApisOutput { + return o +} + +func (o APIRateLimitSpecApisOutput) ToAPIRateLimitSpecApisOutputWithContext(ctx context.Context) APIRateLimitSpecApisOutput { + return o +} + +func (o APIRateLimitSpecApisOutput) ToOutput(ctx context.Context) pulumix.Output[APIRateLimitSpecApis] { + return pulumix.Output[APIRateLimitSpecApis]{ + OutputState: o.OutputState, + } +} + +// Name of the API. +func (o APIRateLimitSpecApisOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v APIRateLimitSpecApis) string { return v.Name }).(pulumi.StringOutput) +} + +type APIRateLimitSpecApisArrayOutput struct{ *pulumi.OutputState } + +func (APIRateLimitSpecApisArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]APIRateLimitSpecApis)(nil)).Elem() +} + +func (o APIRateLimitSpecApisArrayOutput) ToAPIRateLimitSpecApisArrayOutput() APIRateLimitSpecApisArrayOutput { + return o +} + +func (o APIRateLimitSpecApisArrayOutput) ToAPIRateLimitSpecApisArrayOutputWithContext(ctx context.Context) APIRateLimitSpecApisArrayOutput { + return o +} + +func (o APIRateLimitSpecApisArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]APIRateLimitSpecApis] { + return pulumix.Output[[]APIRateLimitSpecApis]{ + OutputState: o.OutputState, + } +} + +func (o APIRateLimitSpecApisArrayOutput) Index(i pulumi.IntInput) APIRateLimitSpecApisOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) APIRateLimitSpecApis { + return vs[0].([]APIRateLimitSpecApis)[vs[1].(int)] + }).(APIRateLimitSpecApisOutput) +} + +// The current status of this APIRateLimit. +type APIRateLimitStatus struct { + // Hash is a hash representing the APIRateLimit. + Hash *string `pulumi:"hash"` + SyncedAt *string `pulumi:"syncedAt"` + Version *string `pulumi:"version"` +} + +// APIRateLimitStatusInput is an input type that accepts APIRateLimitStatusArgs and APIRateLimitStatusOutput values. +// You can construct a concrete instance of `APIRateLimitStatusInput` via: +// +// APIRateLimitStatusArgs{...} +type APIRateLimitStatusInput interface { + pulumi.Input + + ToAPIRateLimitStatusOutput() APIRateLimitStatusOutput + ToAPIRateLimitStatusOutputWithContext(context.Context) APIRateLimitStatusOutput +} + +// The current status of this APIRateLimit. +type APIRateLimitStatusArgs struct { + // Hash is a hash representing the APIRateLimit. + Hash pulumi.StringPtrInput `pulumi:"hash"` + SyncedAt pulumi.StringPtrInput `pulumi:"syncedAt"` + Version pulumi.StringPtrInput `pulumi:"version"` +} + +func (APIRateLimitStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIRateLimitStatus)(nil)).Elem() +} + +func (i APIRateLimitStatusArgs) ToAPIRateLimitStatusOutput() APIRateLimitStatusOutput { + return i.ToAPIRateLimitStatusOutputWithContext(context.Background()) +} + +func (i APIRateLimitStatusArgs) ToAPIRateLimitStatusOutputWithContext(ctx context.Context) APIRateLimitStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIRateLimitStatusOutput) +} + +func (i APIRateLimitStatusArgs) ToOutput(ctx context.Context) pulumix.Output[APIRateLimitStatus] { + return pulumix.Output[APIRateLimitStatus]{ + OutputState: i.ToAPIRateLimitStatusOutputWithContext(ctx).OutputState, + } +} + +func (i APIRateLimitStatusArgs) ToAPIRateLimitStatusPtrOutput() APIRateLimitStatusPtrOutput { + return i.ToAPIRateLimitStatusPtrOutputWithContext(context.Background()) +} + +func (i APIRateLimitStatusArgs) ToAPIRateLimitStatusPtrOutputWithContext(ctx context.Context) APIRateLimitStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIRateLimitStatusOutput).ToAPIRateLimitStatusPtrOutputWithContext(ctx) +} + +// APIRateLimitStatusPtrInput is an input type that accepts APIRateLimitStatusArgs, APIRateLimitStatusPtr and APIRateLimitStatusPtrOutput values. +// You can construct a concrete instance of `APIRateLimitStatusPtrInput` via: +// +// APIRateLimitStatusArgs{...} +// +// or: +// +// nil +type APIRateLimitStatusPtrInput interface { + pulumi.Input + + ToAPIRateLimitStatusPtrOutput() APIRateLimitStatusPtrOutput + ToAPIRateLimitStatusPtrOutputWithContext(context.Context) APIRateLimitStatusPtrOutput +} + +type apirateLimitStatusPtrType APIRateLimitStatusArgs + +func APIRateLimitStatusPtr(v *APIRateLimitStatusArgs) APIRateLimitStatusPtrInput { + return (*apirateLimitStatusPtrType)(v) +} + +func (*apirateLimitStatusPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APIRateLimitStatus)(nil)).Elem() +} + +func (i *apirateLimitStatusPtrType) ToAPIRateLimitStatusPtrOutput() APIRateLimitStatusPtrOutput { + return i.ToAPIRateLimitStatusPtrOutputWithContext(context.Background()) +} + +func (i *apirateLimitStatusPtrType) ToAPIRateLimitStatusPtrOutputWithContext(ctx context.Context) APIRateLimitStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIRateLimitStatusPtrOutput) +} + +func (i *apirateLimitStatusPtrType) ToOutput(ctx context.Context) pulumix.Output[*APIRateLimitStatus] { + return pulumix.Output[*APIRateLimitStatus]{ + OutputState: i.ToAPIRateLimitStatusPtrOutputWithContext(ctx).OutputState, + } +} + +// The current status of this APIRateLimit. +type APIRateLimitStatusOutput struct{ *pulumi.OutputState } + +func (APIRateLimitStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIRateLimitStatus)(nil)).Elem() +} + +func (o APIRateLimitStatusOutput) ToAPIRateLimitStatusOutput() APIRateLimitStatusOutput { + return o +} + +func (o APIRateLimitStatusOutput) ToAPIRateLimitStatusOutputWithContext(ctx context.Context) APIRateLimitStatusOutput { + return o +} + +func (o APIRateLimitStatusOutput) ToAPIRateLimitStatusPtrOutput() APIRateLimitStatusPtrOutput { + return o.ToAPIRateLimitStatusPtrOutputWithContext(context.Background()) +} + +func (o APIRateLimitStatusOutput) ToAPIRateLimitStatusPtrOutputWithContext(ctx context.Context) APIRateLimitStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APIRateLimitStatus) *APIRateLimitStatus { + return &v + }).(APIRateLimitStatusPtrOutput) +} + +func (o APIRateLimitStatusOutput) ToOutput(ctx context.Context) pulumix.Output[APIRateLimitStatus] { + return pulumix.Output[APIRateLimitStatus]{ + OutputState: o.OutputState, + } +} + +// Hash is a hash representing the APIRateLimit. +func (o APIRateLimitStatusOutput) Hash() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIRateLimitStatus) *string { return v.Hash }).(pulumi.StringPtrOutput) +} + +func (o APIRateLimitStatusOutput) SyncedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIRateLimitStatus) *string { return v.SyncedAt }).(pulumi.StringPtrOutput) +} + +func (o APIRateLimitStatusOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIRateLimitStatus) *string { return v.Version }).(pulumi.StringPtrOutput) +} + +type APIRateLimitStatusPtrOutput struct{ *pulumi.OutputState } + +func (APIRateLimitStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIRateLimitStatus)(nil)).Elem() +} + +func (o APIRateLimitStatusPtrOutput) ToAPIRateLimitStatusPtrOutput() APIRateLimitStatusPtrOutput { + return o +} + +func (o APIRateLimitStatusPtrOutput) ToAPIRateLimitStatusPtrOutputWithContext(ctx context.Context) APIRateLimitStatusPtrOutput { + return o +} + +func (o APIRateLimitStatusPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APIRateLimitStatus] { + return pulumix.Output[*APIRateLimitStatus]{ + OutputState: o.OutputState, + } +} + +func (o APIRateLimitStatusPtrOutput) Elem() APIRateLimitStatusOutput { + return o.ApplyT(func(v *APIRateLimitStatus) APIRateLimitStatus { + if v != nil { + return *v + } + var ret APIRateLimitStatus + return ret + }).(APIRateLimitStatusOutput) +} + +// Hash is a hash representing the APIRateLimit. +func (o APIRateLimitStatusPtrOutput) Hash() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIRateLimitStatus) *string { + if v == nil { + return nil + } + return v.Hash + }).(pulumi.StringPtrOutput) +} + +func (o APIRateLimitStatusPtrOutput) SyncedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIRateLimitStatus) *string { + if v == nil { + return nil + } + return v.SyncedAt + }).(pulumi.StringPtrOutput) +} + +func (o APIRateLimitStatusPtrOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIRateLimitStatus) *string { + if v == nil { + return nil + } + return v.Version + }).(pulumi.StringPtrOutput) +} + +// APISpec describes the API. +type APISpec struct { + // OpenAPISpec defines the API contract as an OpenAPI specification. + OpenApiSpec *APISpecOpenApiSpec `pulumi:"openApiSpec"` + // Versions are the different APIVersions available. + Versions []APISpecVersions `pulumi:"versions"` +} + +// APISpecInput is an input type that accepts APISpecArgs and APISpecOutput values. +// You can construct a concrete instance of `APISpecInput` via: +// +// APISpecArgs{...} +type APISpecInput interface { + pulumi.Input + + ToAPISpecOutput() APISpecOutput + ToAPISpecOutputWithContext(context.Context) APISpecOutput +} + +// APISpec describes the API. +type APISpecArgs struct { + // OpenAPISpec defines the API contract as an OpenAPI specification. + OpenApiSpec APISpecOpenApiSpecPtrInput `pulumi:"openApiSpec"` + // Versions are the different APIVersions available. + Versions APISpecVersionsArrayInput `pulumi:"versions"` +} + +func (APISpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APISpec)(nil)).Elem() +} + +func (i APISpecArgs) ToAPISpecOutput() APISpecOutput { + return i.ToAPISpecOutputWithContext(context.Background()) +} + +func (i APISpecArgs) ToAPISpecOutputWithContext(ctx context.Context) APISpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(APISpecOutput) +} + +func (i APISpecArgs) ToOutput(ctx context.Context) pulumix.Output[APISpec] { + return pulumix.Output[APISpec]{ + OutputState: i.ToAPISpecOutputWithContext(ctx).OutputState, + } +} + +func (i APISpecArgs) ToAPISpecPtrOutput() APISpecPtrOutput { + return i.ToAPISpecPtrOutputWithContext(context.Background()) +} + +func (i APISpecArgs) ToAPISpecPtrOutputWithContext(ctx context.Context) APISpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APISpecOutput).ToAPISpecPtrOutputWithContext(ctx) +} + +// APISpecPtrInput is an input type that accepts APISpecArgs, APISpecPtr and APISpecPtrOutput values. +// You can construct a concrete instance of `APISpecPtrInput` via: +// +// APISpecArgs{...} +// +// or: +// +// nil +type APISpecPtrInput interface { + pulumi.Input + + ToAPISpecPtrOutput() APISpecPtrOutput + ToAPISpecPtrOutputWithContext(context.Context) APISpecPtrOutput +} + +type apispecPtrType APISpecArgs + +func APISpecPtr(v *APISpecArgs) APISpecPtrInput { + return (*apispecPtrType)(v) +} + +func (*apispecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APISpec)(nil)).Elem() +} + +func (i *apispecPtrType) ToAPISpecPtrOutput() APISpecPtrOutput { + return i.ToAPISpecPtrOutputWithContext(context.Background()) +} + +func (i *apispecPtrType) ToAPISpecPtrOutputWithContext(ctx context.Context) APISpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APISpecPtrOutput) +} + +func (i *apispecPtrType) ToOutput(ctx context.Context) pulumix.Output[*APISpec] { + return pulumix.Output[*APISpec]{ + OutputState: i.ToAPISpecPtrOutputWithContext(ctx).OutputState, + } +} + +// APISpec describes the API. +type APISpecOutput struct{ *pulumi.OutputState } + +func (APISpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APISpec)(nil)).Elem() +} + +func (o APISpecOutput) ToAPISpecOutput() APISpecOutput { + return o +} + +func (o APISpecOutput) ToAPISpecOutputWithContext(ctx context.Context) APISpecOutput { + return o +} + +func (o APISpecOutput) ToAPISpecPtrOutput() APISpecPtrOutput { + return o.ToAPISpecPtrOutputWithContext(context.Background()) +} + +func (o APISpecOutput) ToAPISpecPtrOutputWithContext(ctx context.Context) APISpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APISpec) *APISpec { + return &v + }).(APISpecPtrOutput) +} + +func (o APISpecOutput) ToOutput(ctx context.Context) pulumix.Output[APISpec] { + return pulumix.Output[APISpec]{ + OutputState: o.OutputState, + } +} + +// OpenAPISpec defines the API contract as an OpenAPI specification. +func (o APISpecOutput) OpenApiSpec() APISpecOpenApiSpecPtrOutput { + return o.ApplyT(func(v APISpec) *APISpecOpenApiSpec { return v.OpenApiSpec }).(APISpecOpenApiSpecPtrOutput) +} + +// Versions are the different APIVersions available. +func (o APISpecOutput) Versions() APISpecVersionsArrayOutput { + return o.ApplyT(func(v APISpec) []APISpecVersions { return v.Versions }).(APISpecVersionsArrayOutput) +} + +type APISpecPtrOutput struct{ *pulumi.OutputState } + +func (APISpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APISpec)(nil)).Elem() +} + +func (o APISpecPtrOutput) ToAPISpecPtrOutput() APISpecPtrOutput { + return o +} + +func (o APISpecPtrOutput) ToAPISpecPtrOutputWithContext(ctx context.Context) APISpecPtrOutput { + return o +} + +func (o APISpecPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APISpec] { + return pulumix.Output[*APISpec]{ + OutputState: o.OutputState, + } +} + +func (o APISpecPtrOutput) Elem() APISpecOutput { + return o.ApplyT(func(v *APISpec) APISpec { + if v != nil { + return *v + } + var ret APISpec + return ret + }).(APISpecOutput) +} + +// OpenAPISpec defines the API contract as an OpenAPI specification. +func (o APISpecPtrOutput) OpenApiSpec() APISpecOpenApiSpecPtrOutput { + return o.ApplyT(func(v *APISpec) *APISpecOpenApiSpec { + if v == nil { + return nil + } + return v.OpenApiSpec + }).(APISpecOpenApiSpecPtrOutput) +} + +// Versions are the different APIVersions available. +func (o APISpecPtrOutput) Versions() APISpecVersionsArrayOutput { + return o.ApplyT(func(v *APISpec) []APISpecVersions { + if v == nil { + return nil + } + return v.Versions + }).(APISpecVersionsArrayOutput) +} + +// OpenAPISpec defines the API contract as an OpenAPI specification. +type APISpecOpenApiSpec struct { + // OperationSets defines the sets of operations to be referenced for granular filtering in APIAccesses. + OperationSets []APISpecOpenApiSpecOperationSets `pulumi:"operationSets"` + // Override holds data used to override OpenAPI specification. + Override *APISpecOpenApiSpecOverride `pulumi:"override"` + // Path specifies the endpoint path within the Kubernetes Service where the OpenAPI specification can be obtained. + // The Service queried is determined by the associated Ingress, IngressRoute, or HTTPRoute resource to which the API is attached. + // It's important to note that this option is incompatible if the Ingress or IngressRoute specifies multiple backend services. + // The Path must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. + Path *string `pulumi:"path"` + // URL is a Traefik Hub agent accessible URL for obtaining the OpenAPI specification. + // The URL must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. + Url *string `pulumi:"url"` +} + +// APISpecOpenApiSpecInput is an input type that accepts APISpecOpenApiSpecArgs and APISpecOpenApiSpecOutput values. +// You can construct a concrete instance of `APISpecOpenApiSpecInput` via: +// +// APISpecOpenApiSpecArgs{...} +type APISpecOpenApiSpecInput interface { + pulumi.Input + + ToAPISpecOpenApiSpecOutput() APISpecOpenApiSpecOutput + ToAPISpecOpenApiSpecOutputWithContext(context.Context) APISpecOpenApiSpecOutput +} + +// OpenAPISpec defines the API contract as an OpenAPI specification. +type APISpecOpenApiSpecArgs struct { + // OperationSets defines the sets of operations to be referenced for granular filtering in APIAccesses. + OperationSets APISpecOpenApiSpecOperationSetsArrayInput `pulumi:"operationSets"` + // Override holds data used to override OpenAPI specification. + Override APISpecOpenApiSpecOverridePtrInput `pulumi:"override"` + // Path specifies the endpoint path within the Kubernetes Service where the OpenAPI specification can be obtained. + // The Service queried is determined by the associated Ingress, IngressRoute, or HTTPRoute resource to which the API is attached. + // It's important to note that this option is incompatible if the Ingress or IngressRoute specifies multiple backend services. + // The Path must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. + Path pulumi.StringPtrInput `pulumi:"path"` + // URL is a Traefik Hub agent accessible URL for obtaining the OpenAPI specification. + // The URL must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. + Url pulumi.StringPtrInput `pulumi:"url"` +} + +func (APISpecOpenApiSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APISpecOpenApiSpec)(nil)).Elem() +} + +func (i APISpecOpenApiSpecArgs) ToAPISpecOpenApiSpecOutput() APISpecOpenApiSpecOutput { + return i.ToAPISpecOpenApiSpecOutputWithContext(context.Background()) +} + +func (i APISpecOpenApiSpecArgs) ToAPISpecOpenApiSpecOutputWithContext(ctx context.Context) APISpecOpenApiSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(APISpecOpenApiSpecOutput) +} + +func (i APISpecOpenApiSpecArgs) ToOutput(ctx context.Context) pulumix.Output[APISpecOpenApiSpec] { + return pulumix.Output[APISpecOpenApiSpec]{ + OutputState: i.ToAPISpecOpenApiSpecOutputWithContext(ctx).OutputState, + } +} + +func (i APISpecOpenApiSpecArgs) ToAPISpecOpenApiSpecPtrOutput() APISpecOpenApiSpecPtrOutput { + return i.ToAPISpecOpenApiSpecPtrOutputWithContext(context.Background()) +} + +func (i APISpecOpenApiSpecArgs) ToAPISpecOpenApiSpecPtrOutputWithContext(ctx context.Context) APISpecOpenApiSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APISpecOpenApiSpecOutput).ToAPISpecOpenApiSpecPtrOutputWithContext(ctx) +} + +// APISpecOpenApiSpecPtrInput is an input type that accepts APISpecOpenApiSpecArgs, APISpecOpenApiSpecPtr and APISpecOpenApiSpecPtrOutput values. +// You can construct a concrete instance of `APISpecOpenApiSpecPtrInput` via: +// +// APISpecOpenApiSpecArgs{...} +// +// or: +// +// nil +type APISpecOpenApiSpecPtrInput interface { + pulumi.Input + + ToAPISpecOpenApiSpecPtrOutput() APISpecOpenApiSpecPtrOutput + ToAPISpecOpenApiSpecPtrOutputWithContext(context.Context) APISpecOpenApiSpecPtrOutput +} + +type apispecOpenApiSpecPtrType APISpecOpenApiSpecArgs + +func APISpecOpenApiSpecPtr(v *APISpecOpenApiSpecArgs) APISpecOpenApiSpecPtrInput { + return (*apispecOpenApiSpecPtrType)(v) +} + +func (*apispecOpenApiSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APISpecOpenApiSpec)(nil)).Elem() +} + +func (i *apispecOpenApiSpecPtrType) ToAPISpecOpenApiSpecPtrOutput() APISpecOpenApiSpecPtrOutput { + return i.ToAPISpecOpenApiSpecPtrOutputWithContext(context.Background()) +} + +func (i *apispecOpenApiSpecPtrType) ToAPISpecOpenApiSpecPtrOutputWithContext(ctx context.Context) APISpecOpenApiSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APISpecOpenApiSpecPtrOutput) +} + +func (i *apispecOpenApiSpecPtrType) ToOutput(ctx context.Context) pulumix.Output[*APISpecOpenApiSpec] { + return pulumix.Output[*APISpecOpenApiSpec]{ + OutputState: i.ToAPISpecOpenApiSpecPtrOutputWithContext(ctx).OutputState, + } +} + +// OpenAPISpec defines the API contract as an OpenAPI specification. +type APISpecOpenApiSpecOutput struct{ *pulumi.OutputState } + +func (APISpecOpenApiSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APISpecOpenApiSpec)(nil)).Elem() +} + +func (o APISpecOpenApiSpecOutput) ToAPISpecOpenApiSpecOutput() APISpecOpenApiSpecOutput { + return o +} + +func (o APISpecOpenApiSpecOutput) ToAPISpecOpenApiSpecOutputWithContext(ctx context.Context) APISpecOpenApiSpecOutput { + return o +} + +func (o APISpecOpenApiSpecOutput) ToAPISpecOpenApiSpecPtrOutput() APISpecOpenApiSpecPtrOutput { + return o.ToAPISpecOpenApiSpecPtrOutputWithContext(context.Background()) +} + +func (o APISpecOpenApiSpecOutput) ToAPISpecOpenApiSpecPtrOutputWithContext(ctx context.Context) APISpecOpenApiSpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APISpecOpenApiSpec) *APISpecOpenApiSpec { + return &v + }).(APISpecOpenApiSpecPtrOutput) +} + +func (o APISpecOpenApiSpecOutput) ToOutput(ctx context.Context) pulumix.Output[APISpecOpenApiSpec] { + return pulumix.Output[APISpecOpenApiSpec]{ + OutputState: o.OutputState, + } +} + +// OperationSets defines the sets of operations to be referenced for granular filtering in APIAccesses. +func (o APISpecOpenApiSpecOutput) OperationSets() APISpecOpenApiSpecOperationSetsArrayOutput { + return o.ApplyT(func(v APISpecOpenApiSpec) []APISpecOpenApiSpecOperationSets { return v.OperationSets }).(APISpecOpenApiSpecOperationSetsArrayOutput) +} + +// Override holds data used to override OpenAPI specification. +func (o APISpecOpenApiSpecOutput) Override() APISpecOpenApiSpecOverridePtrOutput { + return o.ApplyT(func(v APISpecOpenApiSpec) *APISpecOpenApiSpecOverride { return v.Override }).(APISpecOpenApiSpecOverridePtrOutput) +} + +// Path specifies the endpoint path within the Kubernetes Service where the OpenAPI specification can be obtained. +// The Service queried is determined by the associated Ingress, IngressRoute, or HTTPRoute resource to which the API is attached. +// It's important to note that this option is incompatible if the Ingress or IngressRoute specifies multiple backend services. +// The Path must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. +func (o APISpecOpenApiSpecOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v APISpecOpenApiSpec) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +// URL is a Traefik Hub agent accessible URL for obtaining the OpenAPI specification. +// The URL must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. +func (o APISpecOpenApiSpecOutput) Url() pulumi.StringPtrOutput { + return o.ApplyT(func(v APISpecOpenApiSpec) *string { return v.Url }).(pulumi.StringPtrOutput) +} + +type APISpecOpenApiSpecPtrOutput struct{ *pulumi.OutputState } + +func (APISpecOpenApiSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APISpecOpenApiSpec)(nil)).Elem() +} + +func (o APISpecOpenApiSpecPtrOutput) ToAPISpecOpenApiSpecPtrOutput() APISpecOpenApiSpecPtrOutput { + return o +} + +func (o APISpecOpenApiSpecPtrOutput) ToAPISpecOpenApiSpecPtrOutputWithContext(ctx context.Context) APISpecOpenApiSpecPtrOutput { + return o +} + +func (o APISpecOpenApiSpecPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APISpecOpenApiSpec] { + return pulumix.Output[*APISpecOpenApiSpec]{ + OutputState: o.OutputState, + } +} + +func (o APISpecOpenApiSpecPtrOutput) Elem() APISpecOpenApiSpecOutput { + return o.ApplyT(func(v *APISpecOpenApiSpec) APISpecOpenApiSpec { + if v != nil { + return *v + } + var ret APISpecOpenApiSpec + return ret + }).(APISpecOpenApiSpecOutput) +} + +// OperationSets defines the sets of operations to be referenced for granular filtering in APIAccesses. +func (o APISpecOpenApiSpecPtrOutput) OperationSets() APISpecOpenApiSpecOperationSetsArrayOutput { + return o.ApplyT(func(v *APISpecOpenApiSpec) []APISpecOpenApiSpecOperationSets { + if v == nil { + return nil + } + return v.OperationSets + }).(APISpecOpenApiSpecOperationSetsArrayOutput) +} + +// Override holds data used to override OpenAPI specification. +func (o APISpecOpenApiSpecPtrOutput) Override() APISpecOpenApiSpecOverridePtrOutput { + return o.ApplyT(func(v *APISpecOpenApiSpec) *APISpecOpenApiSpecOverride { + if v == nil { + return nil + } + return v.Override + }).(APISpecOpenApiSpecOverridePtrOutput) +} + +// Path specifies the endpoint path within the Kubernetes Service where the OpenAPI specification can be obtained. +// The Service queried is determined by the associated Ingress, IngressRoute, or HTTPRoute resource to which the API is attached. +// It's important to note that this option is incompatible if the Ingress or IngressRoute specifies multiple backend services. +// The Path must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. +func (o APISpecOpenApiSpecPtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APISpecOpenApiSpec) *string { + if v == nil { + return nil + } + return v.Path + }).(pulumi.StringPtrOutput) +} + +// URL is a Traefik Hub agent accessible URL for obtaining the OpenAPI specification. +// The URL must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. +func (o APISpecOpenApiSpecPtrOutput) Url() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APISpecOpenApiSpec) *string { + if v == nil { + return nil + } + return v.Url + }).(pulumi.StringPtrOutput) +} + +// OperationSet gives a name to a set of matching OpenAPI operations. +// This set of operations can then be referenced for granular filtering in APIAccesses. +type APISpecOpenApiSpecOperationSets struct { + // Matchers defines a list of alternative rules for matching OpenAPI operations. + Matchers []APISpecOpenApiSpecOperationSetsMatchers `pulumi:"matchers"` + // Name is the name of the OperationSet to reference in APIAccesses. + Name string `pulumi:"name"` +} + +// APISpecOpenApiSpecOperationSetsInput is an input type that accepts APISpecOpenApiSpecOperationSetsArgs and APISpecOpenApiSpecOperationSetsOutput values. +// You can construct a concrete instance of `APISpecOpenApiSpecOperationSetsInput` via: +// +// APISpecOpenApiSpecOperationSetsArgs{...} +type APISpecOpenApiSpecOperationSetsInput interface { + pulumi.Input + + ToAPISpecOpenApiSpecOperationSetsOutput() APISpecOpenApiSpecOperationSetsOutput + ToAPISpecOpenApiSpecOperationSetsOutputWithContext(context.Context) APISpecOpenApiSpecOperationSetsOutput +} + +// OperationSet gives a name to a set of matching OpenAPI operations. +// This set of operations can then be referenced for granular filtering in APIAccesses. +type APISpecOpenApiSpecOperationSetsArgs struct { + // Matchers defines a list of alternative rules for matching OpenAPI operations. + Matchers APISpecOpenApiSpecOperationSetsMatchersArrayInput `pulumi:"matchers"` + // Name is the name of the OperationSet to reference in APIAccesses. + Name pulumi.StringInput `pulumi:"name"` +} + +func (APISpecOpenApiSpecOperationSetsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APISpecOpenApiSpecOperationSets)(nil)).Elem() +} + +func (i APISpecOpenApiSpecOperationSetsArgs) ToAPISpecOpenApiSpecOperationSetsOutput() APISpecOpenApiSpecOperationSetsOutput { + return i.ToAPISpecOpenApiSpecOperationSetsOutputWithContext(context.Background()) +} + +func (i APISpecOpenApiSpecOperationSetsArgs) ToAPISpecOpenApiSpecOperationSetsOutputWithContext(ctx context.Context) APISpecOpenApiSpecOperationSetsOutput { + return pulumi.ToOutputWithContext(ctx, i).(APISpecOpenApiSpecOperationSetsOutput) +} + +func (i APISpecOpenApiSpecOperationSetsArgs) ToOutput(ctx context.Context) pulumix.Output[APISpecOpenApiSpecOperationSets] { + return pulumix.Output[APISpecOpenApiSpecOperationSets]{ + OutputState: i.ToAPISpecOpenApiSpecOperationSetsOutputWithContext(ctx).OutputState, + } +} + +// APISpecOpenApiSpecOperationSetsArrayInput is an input type that accepts APISpecOpenApiSpecOperationSetsArray and APISpecOpenApiSpecOperationSetsArrayOutput values. +// You can construct a concrete instance of `APISpecOpenApiSpecOperationSetsArrayInput` via: +// +// APISpecOpenApiSpecOperationSetsArray{ APISpecOpenApiSpecOperationSetsArgs{...} } +type APISpecOpenApiSpecOperationSetsArrayInput interface { + pulumi.Input + + ToAPISpecOpenApiSpecOperationSetsArrayOutput() APISpecOpenApiSpecOperationSetsArrayOutput + ToAPISpecOpenApiSpecOperationSetsArrayOutputWithContext(context.Context) APISpecOpenApiSpecOperationSetsArrayOutput +} + +type APISpecOpenApiSpecOperationSetsArray []APISpecOpenApiSpecOperationSetsInput + +func (APISpecOpenApiSpecOperationSetsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]APISpecOpenApiSpecOperationSets)(nil)).Elem() +} + +func (i APISpecOpenApiSpecOperationSetsArray) ToAPISpecOpenApiSpecOperationSetsArrayOutput() APISpecOpenApiSpecOperationSetsArrayOutput { + return i.ToAPISpecOpenApiSpecOperationSetsArrayOutputWithContext(context.Background()) +} + +func (i APISpecOpenApiSpecOperationSetsArray) ToAPISpecOpenApiSpecOperationSetsArrayOutputWithContext(ctx context.Context) APISpecOpenApiSpecOperationSetsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(APISpecOpenApiSpecOperationSetsArrayOutput) +} + +func (i APISpecOpenApiSpecOperationSetsArray) ToOutput(ctx context.Context) pulumix.Output[[]APISpecOpenApiSpecOperationSets] { + return pulumix.Output[[]APISpecOpenApiSpecOperationSets]{ + OutputState: i.ToAPISpecOpenApiSpecOperationSetsArrayOutputWithContext(ctx).OutputState, + } +} + +// OperationSet gives a name to a set of matching OpenAPI operations. +// This set of operations can then be referenced for granular filtering in APIAccesses. +type APISpecOpenApiSpecOperationSetsOutput struct{ *pulumi.OutputState } + +func (APISpecOpenApiSpecOperationSetsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APISpecOpenApiSpecOperationSets)(nil)).Elem() +} + +func (o APISpecOpenApiSpecOperationSetsOutput) ToAPISpecOpenApiSpecOperationSetsOutput() APISpecOpenApiSpecOperationSetsOutput { + return o +} + +func (o APISpecOpenApiSpecOperationSetsOutput) ToAPISpecOpenApiSpecOperationSetsOutputWithContext(ctx context.Context) APISpecOpenApiSpecOperationSetsOutput { + return o +} + +func (o APISpecOpenApiSpecOperationSetsOutput) ToOutput(ctx context.Context) pulumix.Output[APISpecOpenApiSpecOperationSets] { + return pulumix.Output[APISpecOpenApiSpecOperationSets]{ + OutputState: o.OutputState, + } +} + +// Matchers defines a list of alternative rules for matching OpenAPI operations. +func (o APISpecOpenApiSpecOperationSetsOutput) Matchers() APISpecOpenApiSpecOperationSetsMatchersArrayOutput { + return o.ApplyT(func(v APISpecOpenApiSpecOperationSets) []APISpecOpenApiSpecOperationSetsMatchers { return v.Matchers }).(APISpecOpenApiSpecOperationSetsMatchersArrayOutput) +} + +// Name is the name of the OperationSet to reference in APIAccesses. +func (o APISpecOpenApiSpecOperationSetsOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v APISpecOpenApiSpecOperationSets) string { return v.Name }).(pulumi.StringOutput) +} + +type APISpecOpenApiSpecOperationSetsArrayOutput struct{ *pulumi.OutputState } + +func (APISpecOpenApiSpecOperationSetsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]APISpecOpenApiSpecOperationSets)(nil)).Elem() +} + +func (o APISpecOpenApiSpecOperationSetsArrayOutput) ToAPISpecOpenApiSpecOperationSetsArrayOutput() APISpecOpenApiSpecOperationSetsArrayOutput { + return o +} + +func (o APISpecOpenApiSpecOperationSetsArrayOutput) ToAPISpecOpenApiSpecOperationSetsArrayOutputWithContext(ctx context.Context) APISpecOpenApiSpecOperationSetsArrayOutput { + return o +} + +func (o APISpecOpenApiSpecOperationSetsArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]APISpecOpenApiSpecOperationSets] { + return pulumix.Output[[]APISpecOpenApiSpecOperationSets]{ + OutputState: o.OutputState, + } +} + +func (o APISpecOpenApiSpecOperationSetsArrayOutput) Index(i pulumi.IntInput) APISpecOpenApiSpecOperationSetsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) APISpecOpenApiSpecOperationSets { + return vs[0].([]APISpecOpenApiSpecOperationSets)[vs[1].(int)] + }).(APISpecOpenApiSpecOperationSetsOutput) +} + +// OperationMatcher defines criteria for matching an OpenAPI operation. +type APISpecOpenApiSpecOperationSetsMatchers struct { + // Methods specifies the HTTP methods to be included for selection. + Methods []string `pulumi:"methods"` + // Path specifies the exact path of the operations to select. + Path *string `pulumi:"path"` + // PathPrefix specifies the path prefix of the operations to select. + PathPrefix *string `pulumi:"pathPrefix"` + // PathRegex specifies a regular expression pattern for matching operations based on their paths. + PathRegex *string `pulumi:"pathRegex"` +} + +// APISpecOpenApiSpecOperationSetsMatchersInput is an input type that accepts APISpecOpenApiSpecOperationSetsMatchersArgs and APISpecOpenApiSpecOperationSetsMatchersOutput values. +// You can construct a concrete instance of `APISpecOpenApiSpecOperationSetsMatchersInput` via: +// +// APISpecOpenApiSpecOperationSetsMatchersArgs{...} +type APISpecOpenApiSpecOperationSetsMatchersInput interface { + pulumi.Input + + ToAPISpecOpenApiSpecOperationSetsMatchersOutput() APISpecOpenApiSpecOperationSetsMatchersOutput + ToAPISpecOpenApiSpecOperationSetsMatchersOutputWithContext(context.Context) APISpecOpenApiSpecOperationSetsMatchersOutput +} + +// OperationMatcher defines criteria for matching an OpenAPI operation. +type APISpecOpenApiSpecOperationSetsMatchersArgs struct { + // Methods specifies the HTTP methods to be included for selection. + Methods pulumi.StringArrayInput `pulumi:"methods"` + // Path specifies the exact path of the operations to select. + Path pulumi.StringPtrInput `pulumi:"path"` + // PathPrefix specifies the path prefix of the operations to select. + PathPrefix pulumi.StringPtrInput `pulumi:"pathPrefix"` + // PathRegex specifies a regular expression pattern for matching operations based on their paths. + PathRegex pulumi.StringPtrInput `pulumi:"pathRegex"` +} + +func (APISpecOpenApiSpecOperationSetsMatchersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APISpecOpenApiSpecOperationSetsMatchers)(nil)).Elem() +} + +func (i APISpecOpenApiSpecOperationSetsMatchersArgs) ToAPISpecOpenApiSpecOperationSetsMatchersOutput() APISpecOpenApiSpecOperationSetsMatchersOutput { + return i.ToAPISpecOpenApiSpecOperationSetsMatchersOutputWithContext(context.Background()) +} + +func (i APISpecOpenApiSpecOperationSetsMatchersArgs) ToAPISpecOpenApiSpecOperationSetsMatchersOutputWithContext(ctx context.Context) APISpecOpenApiSpecOperationSetsMatchersOutput { + return pulumi.ToOutputWithContext(ctx, i).(APISpecOpenApiSpecOperationSetsMatchersOutput) +} + +func (i APISpecOpenApiSpecOperationSetsMatchersArgs) ToOutput(ctx context.Context) pulumix.Output[APISpecOpenApiSpecOperationSetsMatchers] { + return pulumix.Output[APISpecOpenApiSpecOperationSetsMatchers]{ + OutputState: i.ToAPISpecOpenApiSpecOperationSetsMatchersOutputWithContext(ctx).OutputState, + } +} + +// APISpecOpenApiSpecOperationSetsMatchersArrayInput is an input type that accepts APISpecOpenApiSpecOperationSetsMatchersArray and APISpecOpenApiSpecOperationSetsMatchersArrayOutput values. +// You can construct a concrete instance of `APISpecOpenApiSpecOperationSetsMatchersArrayInput` via: +// +// APISpecOpenApiSpecOperationSetsMatchersArray{ APISpecOpenApiSpecOperationSetsMatchersArgs{...} } +type APISpecOpenApiSpecOperationSetsMatchersArrayInput interface { + pulumi.Input + + ToAPISpecOpenApiSpecOperationSetsMatchersArrayOutput() APISpecOpenApiSpecOperationSetsMatchersArrayOutput + ToAPISpecOpenApiSpecOperationSetsMatchersArrayOutputWithContext(context.Context) APISpecOpenApiSpecOperationSetsMatchersArrayOutput +} + +type APISpecOpenApiSpecOperationSetsMatchersArray []APISpecOpenApiSpecOperationSetsMatchersInput + +func (APISpecOpenApiSpecOperationSetsMatchersArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]APISpecOpenApiSpecOperationSetsMatchers)(nil)).Elem() +} + +func (i APISpecOpenApiSpecOperationSetsMatchersArray) ToAPISpecOpenApiSpecOperationSetsMatchersArrayOutput() APISpecOpenApiSpecOperationSetsMatchersArrayOutput { + return i.ToAPISpecOpenApiSpecOperationSetsMatchersArrayOutputWithContext(context.Background()) +} + +func (i APISpecOpenApiSpecOperationSetsMatchersArray) ToAPISpecOpenApiSpecOperationSetsMatchersArrayOutputWithContext(ctx context.Context) APISpecOpenApiSpecOperationSetsMatchersArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(APISpecOpenApiSpecOperationSetsMatchersArrayOutput) +} + +func (i APISpecOpenApiSpecOperationSetsMatchersArray) ToOutput(ctx context.Context) pulumix.Output[[]APISpecOpenApiSpecOperationSetsMatchers] { + return pulumix.Output[[]APISpecOpenApiSpecOperationSetsMatchers]{ + OutputState: i.ToAPISpecOpenApiSpecOperationSetsMatchersArrayOutputWithContext(ctx).OutputState, + } +} + +// OperationMatcher defines criteria for matching an OpenAPI operation. +type APISpecOpenApiSpecOperationSetsMatchersOutput struct{ *pulumi.OutputState } + +func (APISpecOpenApiSpecOperationSetsMatchersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APISpecOpenApiSpecOperationSetsMatchers)(nil)).Elem() +} + +func (o APISpecOpenApiSpecOperationSetsMatchersOutput) ToAPISpecOpenApiSpecOperationSetsMatchersOutput() APISpecOpenApiSpecOperationSetsMatchersOutput { + return o +} + +func (o APISpecOpenApiSpecOperationSetsMatchersOutput) ToAPISpecOpenApiSpecOperationSetsMatchersOutputWithContext(ctx context.Context) APISpecOpenApiSpecOperationSetsMatchersOutput { + return o +} + +func (o APISpecOpenApiSpecOperationSetsMatchersOutput) ToOutput(ctx context.Context) pulumix.Output[APISpecOpenApiSpecOperationSetsMatchers] { + return pulumix.Output[APISpecOpenApiSpecOperationSetsMatchers]{ + OutputState: o.OutputState, + } +} + +// Methods specifies the HTTP methods to be included for selection. +func (o APISpecOpenApiSpecOperationSetsMatchersOutput) Methods() pulumi.StringArrayOutput { + return o.ApplyT(func(v APISpecOpenApiSpecOperationSetsMatchers) []string { return v.Methods }).(pulumi.StringArrayOutput) +} + +// Path specifies the exact path of the operations to select. +func (o APISpecOpenApiSpecOperationSetsMatchersOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v APISpecOpenApiSpecOperationSetsMatchers) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +// PathPrefix specifies the path prefix of the operations to select. +func (o APISpecOpenApiSpecOperationSetsMatchersOutput) PathPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v APISpecOpenApiSpecOperationSetsMatchers) *string { return v.PathPrefix }).(pulumi.StringPtrOutput) +} + +// PathRegex specifies a regular expression pattern for matching operations based on their paths. +func (o APISpecOpenApiSpecOperationSetsMatchersOutput) PathRegex() pulumi.StringPtrOutput { + return o.ApplyT(func(v APISpecOpenApiSpecOperationSetsMatchers) *string { return v.PathRegex }).(pulumi.StringPtrOutput) +} + +type APISpecOpenApiSpecOperationSetsMatchersArrayOutput struct{ *pulumi.OutputState } + +func (APISpecOpenApiSpecOperationSetsMatchersArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]APISpecOpenApiSpecOperationSetsMatchers)(nil)).Elem() +} + +func (o APISpecOpenApiSpecOperationSetsMatchersArrayOutput) ToAPISpecOpenApiSpecOperationSetsMatchersArrayOutput() APISpecOpenApiSpecOperationSetsMatchersArrayOutput { + return o +} + +func (o APISpecOpenApiSpecOperationSetsMatchersArrayOutput) ToAPISpecOpenApiSpecOperationSetsMatchersArrayOutputWithContext(ctx context.Context) APISpecOpenApiSpecOperationSetsMatchersArrayOutput { + return o +} + +func (o APISpecOpenApiSpecOperationSetsMatchersArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]APISpecOpenApiSpecOperationSetsMatchers] { + return pulumix.Output[[]APISpecOpenApiSpecOperationSetsMatchers]{ + OutputState: o.OutputState, + } +} + +func (o APISpecOpenApiSpecOperationSetsMatchersArrayOutput) Index(i pulumi.IntInput) APISpecOpenApiSpecOperationSetsMatchersOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) APISpecOpenApiSpecOperationSetsMatchers { + return vs[0].([]APISpecOpenApiSpecOperationSetsMatchers)[vs[1].(int)] + }).(APISpecOpenApiSpecOperationSetsMatchersOutput) +} + +// Override holds data used to override OpenAPI specification. +type APISpecOpenApiSpecOverride struct { + Servers []APISpecOpenApiSpecOverrideServers `pulumi:"servers"` +} + +// APISpecOpenApiSpecOverrideInput is an input type that accepts APISpecOpenApiSpecOverrideArgs and APISpecOpenApiSpecOverrideOutput values. +// You can construct a concrete instance of `APISpecOpenApiSpecOverrideInput` via: +// +// APISpecOpenApiSpecOverrideArgs{...} +type APISpecOpenApiSpecOverrideInput interface { + pulumi.Input + + ToAPISpecOpenApiSpecOverrideOutput() APISpecOpenApiSpecOverrideOutput + ToAPISpecOpenApiSpecOverrideOutputWithContext(context.Context) APISpecOpenApiSpecOverrideOutput +} + +// Override holds data used to override OpenAPI specification. +type APISpecOpenApiSpecOverrideArgs struct { + Servers APISpecOpenApiSpecOverrideServersArrayInput `pulumi:"servers"` +} + +func (APISpecOpenApiSpecOverrideArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APISpecOpenApiSpecOverride)(nil)).Elem() +} + +func (i APISpecOpenApiSpecOverrideArgs) ToAPISpecOpenApiSpecOverrideOutput() APISpecOpenApiSpecOverrideOutput { + return i.ToAPISpecOpenApiSpecOverrideOutputWithContext(context.Background()) +} + +func (i APISpecOpenApiSpecOverrideArgs) ToAPISpecOpenApiSpecOverrideOutputWithContext(ctx context.Context) APISpecOpenApiSpecOverrideOutput { + return pulumi.ToOutputWithContext(ctx, i).(APISpecOpenApiSpecOverrideOutput) +} + +func (i APISpecOpenApiSpecOverrideArgs) ToOutput(ctx context.Context) pulumix.Output[APISpecOpenApiSpecOverride] { + return pulumix.Output[APISpecOpenApiSpecOverride]{ + OutputState: i.ToAPISpecOpenApiSpecOverrideOutputWithContext(ctx).OutputState, + } +} + +func (i APISpecOpenApiSpecOverrideArgs) ToAPISpecOpenApiSpecOverridePtrOutput() APISpecOpenApiSpecOverridePtrOutput { + return i.ToAPISpecOpenApiSpecOverridePtrOutputWithContext(context.Background()) +} + +func (i APISpecOpenApiSpecOverrideArgs) ToAPISpecOpenApiSpecOverridePtrOutputWithContext(ctx context.Context) APISpecOpenApiSpecOverridePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APISpecOpenApiSpecOverrideOutput).ToAPISpecOpenApiSpecOverridePtrOutputWithContext(ctx) +} + +// APISpecOpenApiSpecOverridePtrInput is an input type that accepts APISpecOpenApiSpecOverrideArgs, APISpecOpenApiSpecOverridePtr and APISpecOpenApiSpecOverridePtrOutput values. +// You can construct a concrete instance of `APISpecOpenApiSpecOverridePtrInput` via: +// +// APISpecOpenApiSpecOverrideArgs{...} +// +// or: +// +// nil +type APISpecOpenApiSpecOverridePtrInput interface { + pulumi.Input + + ToAPISpecOpenApiSpecOverridePtrOutput() APISpecOpenApiSpecOverridePtrOutput + ToAPISpecOpenApiSpecOverridePtrOutputWithContext(context.Context) APISpecOpenApiSpecOverridePtrOutput +} + +type apispecOpenApiSpecOverridePtrType APISpecOpenApiSpecOverrideArgs + +func APISpecOpenApiSpecOverridePtr(v *APISpecOpenApiSpecOverrideArgs) APISpecOpenApiSpecOverridePtrInput { + return (*apispecOpenApiSpecOverridePtrType)(v) +} + +func (*apispecOpenApiSpecOverridePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APISpecOpenApiSpecOverride)(nil)).Elem() +} + +func (i *apispecOpenApiSpecOverridePtrType) ToAPISpecOpenApiSpecOverridePtrOutput() APISpecOpenApiSpecOverridePtrOutput { + return i.ToAPISpecOpenApiSpecOverridePtrOutputWithContext(context.Background()) +} + +func (i *apispecOpenApiSpecOverridePtrType) ToAPISpecOpenApiSpecOverridePtrOutputWithContext(ctx context.Context) APISpecOpenApiSpecOverridePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APISpecOpenApiSpecOverridePtrOutput) +} + +func (i *apispecOpenApiSpecOverridePtrType) ToOutput(ctx context.Context) pulumix.Output[*APISpecOpenApiSpecOverride] { + return pulumix.Output[*APISpecOpenApiSpecOverride]{ + OutputState: i.ToAPISpecOpenApiSpecOverridePtrOutputWithContext(ctx).OutputState, + } +} + +// Override holds data used to override OpenAPI specification. +type APISpecOpenApiSpecOverrideOutput struct{ *pulumi.OutputState } + +func (APISpecOpenApiSpecOverrideOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APISpecOpenApiSpecOverride)(nil)).Elem() +} + +func (o APISpecOpenApiSpecOverrideOutput) ToAPISpecOpenApiSpecOverrideOutput() APISpecOpenApiSpecOverrideOutput { + return o +} + +func (o APISpecOpenApiSpecOverrideOutput) ToAPISpecOpenApiSpecOverrideOutputWithContext(ctx context.Context) APISpecOpenApiSpecOverrideOutput { + return o +} + +func (o APISpecOpenApiSpecOverrideOutput) ToAPISpecOpenApiSpecOverridePtrOutput() APISpecOpenApiSpecOverridePtrOutput { + return o.ToAPISpecOpenApiSpecOverridePtrOutputWithContext(context.Background()) +} + +func (o APISpecOpenApiSpecOverrideOutput) ToAPISpecOpenApiSpecOverridePtrOutputWithContext(ctx context.Context) APISpecOpenApiSpecOverridePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APISpecOpenApiSpecOverride) *APISpecOpenApiSpecOverride { + return &v + }).(APISpecOpenApiSpecOverridePtrOutput) +} + +func (o APISpecOpenApiSpecOverrideOutput) ToOutput(ctx context.Context) pulumix.Output[APISpecOpenApiSpecOverride] { + return pulumix.Output[APISpecOpenApiSpecOverride]{ + OutputState: o.OutputState, + } +} + +func (o APISpecOpenApiSpecOverrideOutput) Servers() APISpecOpenApiSpecOverrideServersArrayOutput { + return o.ApplyT(func(v APISpecOpenApiSpecOverride) []APISpecOpenApiSpecOverrideServers { return v.Servers }).(APISpecOpenApiSpecOverrideServersArrayOutput) +} + +type APISpecOpenApiSpecOverridePtrOutput struct{ *pulumi.OutputState } + +func (APISpecOpenApiSpecOverridePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APISpecOpenApiSpecOverride)(nil)).Elem() +} + +func (o APISpecOpenApiSpecOverridePtrOutput) ToAPISpecOpenApiSpecOverridePtrOutput() APISpecOpenApiSpecOverridePtrOutput { + return o +} + +func (o APISpecOpenApiSpecOverridePtrOutput) ToAPISpecOpenApiSpecOverridePtrOutputWithContext(ctx context.Context) APISpecOpenApiSpecOverridePtrOutput { + return o +} + +func (o APISpecOpenApiSpecOverridePtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APISpecOpenApiSpecOverride] { + return pulumix.Output[*APISpecOpenApiSpecOverride]{ + OutputState: o.OutputState, + } +} + +func (o APISpecOpenApiSpecOverridePtrOutput) Elem() APISpecOpenApiSpecOverrideOutput { + return o.ApplyT(func(v *APISpecOpenApiSpecOverride) APISpecOpenApiSpecOverride { + if v != nil { + return *v + } + var ret APISpecOpenApiSpecOverride + return ret + }).(APISpecOpenApiSpecOverrideOutput) +} + +func (o APISpecOpenApiSpecOverridePtrOutput) Servers() APISpecOpenApiSpecOverrideServersArrayOutput { + return o.ApplyT(func(v *APISpecOpenApiSpecOverride) []APISpecOpenApiSpecOverrideServers { + if v == nil { + return nil + } + return v.Servers + }).(APISpecOpenApiSpecOverrideServersArrayOutput) +} + +type APISpecOpenApiSpecOverrideServers struct { + Url string `pulumi:"url"` +} + +// APISpecOpenApiSpecOverrideServersInput is an input type that accepts APISpecOpenApiSpecOverrideServersArgs and APISpecOpenApiSpecOverrideServersOutput values. +// You can construct a concrete instance of `APISpecOpenApiSpecOverrideServersInput` via: +// +// APISpecOpenApiSpecOverrideServersArgs{...} +type APISpecOpenApiSpecOverrideServersInput interface { + pulumi.Input + + ToAPISpecOpenApiSpecOverrideServersOutput() APISpecOpenApiSpecOverrideServersOutput + ToAPISpecOpenApiSpecOverrideServersOutputWithContext(context.Context) APISpecOpenApiSpecOverrideServersOutput +} + +type APISpecOpenApiSpecOverrideServersArgs struct { + Url pulumi.StringInput `pulumi:"url"` +} + +func (APISpecOpenApiSpecOverrideServersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APISpecOpenApiSpecOverrideServers)(nil)).Elem() +} + +func (i APISpecOpenApiSpecOverrideServersArgs) ToAPISpecOpenApiSpecOverrideServersOutput() APISpecOpenApiSpecOverrideServersOutput { + return i.ToAPISpecOpenApiSpecOverrideServersOutputWithContext(context.Background()) +} + +func (i APISpecOpenApiSpecOverrideServersArgs) ToAPISpecOpenApiSpecOverrideServersOutputWithContext(ctx context.Context) APISpecOpenApiSpecOverrideServersOutput { + return pulumi.ToOutputWithContext(ctx, i).(APISpecOpenApiSpecOverrideServersOutput) +} + +func (i APISpecOpenApiSpecOverrideServersArgs) ToOutput(ctx context.Context) pulumix.Output[APISpecOpenApiSpecOverrideServers] { + return pulumix.Output[APISpecOpenApiSpecOverrideServers]{ + OutputState: i.ToAPISpecOpenApiSpecOverrideServersOutputWithContext(ctx).OutputState, + } +} + +// APISpecOpenApiSpecOverrideServersArrayInput is an input type that accepts APISpecOpenApiSpecOverrideServersArray and APISpecOpenApiSpecOverrideServersArrayOutput values. +// You can construct a concrete instance of `APISpecOpenApiSpecOverrideServersArrayInput` via: +// +// APISpecOpenApiSpecOverrideServersArray{ APISpecOpenApiSpecOverrideServersArgs{...} } +type APISpecOpenApiSpecOverrideServersArrayInput interface { + pulumi.Input + + ToAPISpecOpenApiSpecOverrideServersArrayOutput() APISpecOpenApiSpecOverrideServersArrayOutput + ToAPISpecOpenApiSpecOverrideServersArrayOutputWithContext(context.Context) APISpecOpenApiSpecOverrideServersArrayOutput +} + +type APISpecOpenApiSpecOverrideServersArray []APISpecOpenApiSpecOverrideServersInput + +func (APISpecOpenApiSpecOverrideServersArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]APISpecOpenApiSpecOverrideServers)(nil)).Elem() +} + +func (i APISpecOpenApiSpecOverrideServersArray) ToAPISpecOpenApiSpecOverrideServersArrayOutput() APISpecOpenApiSpecOverrideServersArrayOutput { + return i.ToAPISpecOpenApiSpecOverrideServersArrayOutputWithContext(context.Background()) +} + +func (i APISpecOpenApiSpecOverrideServersArray) ToAPISpecOpenApiSpecOverrideServersArrayOutputWithContext(ctx context.Context) APISpecOpenApiSpecOverrideServersArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(APISpecOpenApiSpecOverrideServersArrayOutput) +} + +func (i APISpecOpenApiSpecOverrideServersArray) ToOutput(ctx context.Context) pulumix.Output[[]APISpecOpenApiSpecOverrideServers] { + return pulumix.Output[[]APISpecOpenApiSpecOverrideServers]{ + OutputState: i.ToAPISpecOpenApiSpecOverrideServersArrayOutputWithContext(ctx).OutputState, + } +} + +type APISpecOpenApiSpecOverrideServersOutput struct{ *pulumi.OutputState } + +func (APISpecOpenApiSpecOverrideServersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APISpecOpenApiSpecOverrideServers)(nil)).Elem() +} + +func (o APISpecOpenApiSpecOverrideServersOutput) ToAPISpecOpenApiSpecOverrideServersOutput() APISpecOpenApiSpecOverrideServersOutput { + return o +} + +func (o APISpecOpenApiSpecOverrideServersOutput) ToAPISpecOpenApiSpecOverrideServersOutputWithContext(ctx context.Context) APISpecOpenApiSpecOverrideServersOutput { + return o +} + +func (o APISpecOpenApiSpecOverrideServersOutput) ToOutput(ctx context.Context) pulumix.Output[APISpecOpenApiSpecOverrideServers] { + return pulumix.Output[APISpecOpenApiSpecOverrideServers]{ + OutputState: o.OutputState, + } +} + +func (o APISpecOpenApiSpecOverrideServersOutput) Url() pulumi.StringOutput { + return o.ApplyT(func(v APISpecOpenApiSpecOverrideServers) string { return v.Url }).(pulumi.StringOutput) +} + +type APISpecOpenApiSpecOverrideServersArrayOutput struct{ *pulumi.OutputState } + +func (APISpecOpenApiSpecOverrideServersArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]APISpecOpenApiSpecOverrideServers)(nil)).Elem() +} + +func (o APISpecOpenApiSpecOverrideServersArrayOutput) ToAPISpecOpenApiSpecOverrideServersArrayOutput() APISpecOpenApiSpecOverrideServersArrayOutput { + return o +} + +func (o APISpecOpenApiSpecOverrideServersArrayOutput) ToAPISpecOpenApiSpecOverrideServersArrayOutputWithContext(ctx context.Context) APISpecOpenApiSpecOverrideServersArrayOutput { + return o +} + +func (o APISpecOpenApiSpecOverrideServersArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]APISpecOpenApiSpecOverrideServers] { + return pulumix.Output[[]APISpecOpenApiSpecOverrideServers]{ + OutputState: o.OutputState, + } +} + +func (o APISpecOpenApiSpecOverrideServersArrayOutput) Index(i pulumi.IntInput) APISpecOpenApiSpecOverrideServersOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) APISpecOpenApiSpecOverrideServers { + return vs[0].([]APISpecOpenApiSpecOverrideServers)[vs[1].(int)] + }).(APISpecOpenApiSpecOverrideServersOutput) +} + +// APIVersionRef references an APIVersion. +type APISpecVersions struct { + // Name of the APIVersion. + Name string `pulumi:"name"` +} + +// APISpecVersionsInput is an input type that accepts APISpecVersionsArgs and APISpecVersionsOutput values. +// You can construct a concrete instance of `APISpecVersionsInput` via: +// +// APISpecVersionsArgs{...} +type APISpecVersionsInput interface { + pulumi.Input + + ToAPISpecVersionsOutput() APISpecVersionsOutput + ToAPISpecVersionsOutputWithContext(context.Context) APISpecVersionsOutput +} + +// APIVersionRef references an APIVersion. +type APISpecVersionsArgs struct { + // Name of the APIVersion. + Name pulumi.StringInput `pulumi:"name"` +} + +func (APISpecVersionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APISpecVersions)(nil)).Elem() +} + +func (i APISpecVersionsArgs) ToAPISpecVersionsOutput() APISpecVersionsOutput { + return i.ToAPISpecVersionsOutputWithContext(context.Background()) +} + +func (i APISpecVersionsArgs) ToAPISpecVersionsOutputWithContext(ctx context.Context) APISpecVersionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(APISpecVersionsOutput) +} + +func (i APISpecVersionsArgs) ToOutput(ctx context.Context) pulumix.Output[APISpecVersions] { + return pulumix.Output[APISpecVersions]{ + OutputState: i.ToAPISpecVersionsOutputWithContext(ctx).OutputState, + } +} + +// APISpecVersionsArrayInput is an input type that accepts APISpecVersionsArray and APISpecVersionsArrayOutput values. +// You can construct a concrete instance of `APISpecVersionsArrayInput` via: +// +// APISpecVersionsArray{ APISpecVersionsArgs{...} } +type APISpecVersionsArrayInput interface { + pulumi.Input + + ToAPISpecVersionsArrayOutput() APISpecVersionsArrayOutput + ToAPISpecVersionsArrayOutputWithContext(context.Context) APISpecVersionsArrayOutput +} + +type APISpecVersionsArray []APISpecVersionsInput + +func (APISpecVersionsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]APISpecVersions)(nil)).Elem() +} + +func (i APISpecVersionsArray) ToAPISpecVersionsArrayOutput() APISpecVersionsArrayOutput { + return i.ToAPISpecVersionsArrayOutputWithContext(context.Background()) +} + +func (i APISpecVersionsArray) ToAPISpecVersionsArrayOutputWithContext(ctx context.Context) APISpecVersionsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(APISpecVersionsArrayOutput) +} + +func (i APISpecVersionsArray) ToOutput(ctx context.Context) pulumix.Output[[]APISpecVersions] { + return pulumix.Output[[]APISpecVersions]{ + OutputState: i.ToAPISpecVersionsArrayOutputWithContext(ctx).OutputState, + } +} + +// APIVersionRef references an APIVersion. +type APISpecVersionsOutput struct{ *pulumi.OutputState } + +func (APISpecVersionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APISpecVersions)(nil)).Elem() +} + +func (o APISpecVersionsOutput) ToAPISpecVersionsOutput() APISpecVersionsOutput { + return o +} + +func (o APISpecVersionsOutput) ToAPISpecVersionsOutputWithContext(ctx context.Context) APISpecVersionsOutput { + return o +} + +func (o APISpecVersionsOutput) ToOutput(ctx context.Context) pulumix.Output[APISpecVersions] { + return pulumix.Output[APISpecVersions]{ + OutputState: o.OutputState, + } +} + +// Name of the APIVersion. +func (o APISpecVersionsOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v APISpecVersions) string { return v.Name }).(pulumi.StringOutput) +} + +type APISpecVersionsArrayOutput struct{ *pulumi.OutputState } + +func (APISpecVersionsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]APISpecVersions)(nil)).Elem() +} + +func (o APISpecVersionsArrayOutput) ToAPISpecVersionsArrayOutput() APISpecVersionsArrayOutput { + return o +} + +func (o APISpecVersionsArrayOutput) ToAPISpecVersionsArrayOutputWithContext(ctx context.Context) APISpecVersionsArrayOutput { + return o +} + +func (o APISpecVersionsArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]APISpecVersions] { + return pulumix.Output[[]APISpecVersions]{ + OutputState: o.OutputState, + } +} + +func (o APISpecVersionsArrayOutput) Index(i pulumi.IntInput) APISpecVersionsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) APISpecVersions { + return vs[0].([]APISpecVersions)[vs[1].(int)] + }).(APISpecVersionsOutput) +} + +// The current status of this API. +type APIStatus struct { + // Hash is a hash representing the API. + Hash *string `pulumi:"hash"` + SyncedAt *string `pulumi:"syncedAt"` + Version *string `pulumi:"version"` +} + +// APIStatusInput is an input type that accepts APIStatusArgs and APIStatusOutput values. +// You can construct a concrete instance of `APIStatusInput` via: +// +// APIStatusArgs{...} +type APIStatusInput interface { + pulumi.Input + + ToAPIStatusOutput() APIStatusOutput + ToAPIStatusOutputWithContext(context.Context) APIStatusOutput +} + +// The current status of this API. +type APIStatusArgs struct { + // Hash is a hash representing the API. + Hash pulumi.StringPtrInput `pulumi:"hash"` + SyncedAt pulumi.StringPtrInput `pulumi:"syncedAt"` + Version pulumi.StringPtrInput `pulumi:"version"` +} + +func (APIStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIStatus)(nil)).Elem() +} + +func (i APIStatusArgs) ToAPIStatusOutput() APIStatusOutput { + return i.ToAPIStatusOutputWithContext(context.Background()) +} + +func (i APIStatusArgs) ToAPIStatusOutputWithContext(ctx context.Context) APIStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIStatusOutput) +} + +func (i APIStatusArgs) ToOutput(ctx context.Context) pulumix.Output[APIStatus] { + return pulumix.Output[APIStatus]{ + OutputState: i.ToAPIStatusOutputWithContext(ctx).OutputState, + } +} + +func (i APIStatusArgs) ToAPIStatusPtrOutput() APIStatusPtrOutput { + return i.ToAPIStatusPtrOutputWithContext(context.Background()) +} + +func (i APIStatusArgs) ToAPIStatusPtrOutputWithContext(ctx context.Context) APIStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIStatusOutput).ToAPIStatusPtrOutputWithContext(ctx) +} + +// APIStatusPtrInput is an input type that accepts APIStatusArgs, APIStatusPtr and APIStatusPtrOutput values. +// You can construct a concrete instance of `APIStatusPtrInput` via: +// +// APIStatusArgs{...} +// +// or: +// +// nil +type APIStatusPtrInput interface { + pulumi.Input + + ToAPIStatusPtrOutput() APIStatusPtrOutput + ToAPIStatusPtrOutputWithContext(context.Context) APIStatusPtrOutput +} + +type apistatusPtrType APIStatusArgs + +func APIStatusPtr(v *APIStatusArgs) APIStatusPtrInput { + return (*apistatusPtrType)(v) +} + +func (*apistatusPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APIStatus)(nil)).Elem() +} + +func (i *apistatusPtrType) ToAPIStatusPtrOutput() APIStatusPtrOutput { + return i.ToAPIStatusPtrOutputWithContext(context.Background()) +} + +func (i *apistatusPtrType) ToAPIStatusPtrOutputWithContext(ctx context.Context) APIStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIStatusPtrOutput) +} + +func (i *apistatusPtrType) ToOutput(ctx context.Context) pulumix.Output[*APIStatus] { + return pulumix.Output[*APIStatus]{ + OutputState: i.ToAPIStatusPtrOutputWithContext(ctx).OutputState, + } +} + +// The current status of this API. +type APIStatusOutput struct{ *pulumi.OutputState } + +func (APIStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIStatus)(nil)).Elem() +} + +func (o APIStatusOutput) ToAPIStatusOutput() APIStatusOutput { + return o +} + +func (o APIStatusOutput) ToAPIStatusOutputWithContext(ctx context.Context) APIStatusOutput { + return o +} + +func (o APIStatusOutput) ToAPIStatusPtrOutput() APIStatusPtrOutput { + return o.ToAPIStatusPtrOutputWithContext(context.Background()) +} + +func (o APIStatusOutput) ToAPIStatusPtrOutputWithContext(ctx context.Context) APIStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APIStatus) *APIStatus { + return &v + }).(APIStatusPtrOutput) +} + +func (o APIStatusOutput) ToOutput(ctx context.Context) pulumix.Output[APIStatus] { + return pulumix.Output[APIStatus]{ + OutputState: o.OutputState, + } +} + +// Hash is a hash representing the API. +func (o APIStatusOutput) Hash() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIStatus) *string { return v.Hash }).(pulumi.StringPtrOutput) +} + +func (o APIStatusOutput) SyncedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIStatus) *string { return v.SyncedAt }).(pulumi.StringPtrOutput) +} + +func (o APIStatusOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIStatus) *string { return v.Version }).(pulumi.StringPtrOutput) +} + +type APIStatusPtrOutput struct{ *pulumi.OutputState } + +func (APIStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIStatus)(nil)).Elem() +} + +func (o APIStatusPtrOutput) ToAPIStatusPtrOutput() APIStatusPtrOutput { + return o +} + +func (o APIStatusPtrOutput) ToAPIStatusPtrOutputWithContext(ctx context.Context) APIStatusPtrOutput { + return o +} + +func (o APIStatusPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APIStatus] { + return pulumix.Output[*APIStatus]{ + OutputState: o.OutputState, + } +} + +func (o APIStatusPtrOutput) Elem() APIStatusOutput { + return o.ApplyT(func(v *APIStatus) APIStatus { + if v != nil { + return *v + } + var ret APIStatus + return ret + }).(APIStatusOutput) +} + +// Hash is a hash representing the API. +func (o APIStatusPtrOutput) Hash() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIStatus) *string { + if v == nil { + return nil + } + return v.Hash + }).(pulumi.StringPtrOutput) +} + +func (o APIStatusPtrOutput) SyncedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIStatus) *string { + if v == nil { + return nil + } + return v.SyncedAt + }).(pulumi.StringPtrOutput) +} + +func (o APIStatusPtrOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIStatus) *string { + if v == nil { + return nil + } + return v.Version + }).(pulumi.StringPtrOutput) +} + +// APIVersion defines a version of an API. +type APIVersionType struct { + ApiVersion *string `pulumi:"apiVersion"` + Kind *string `pulumi:"kind"` + Metadata *v1.ObjectMeta `pulumi:"metadata"` + // The desired behavior of this APIVersion. + Spec *APIVersionSpec `pulumi:"spec"` + // The current status of this APIVersion. + Status *APIVersionStatus `pulumi:"status"` +} + +type APIVersionMetadata struct { +} + +// The desired behavior of this APIVersion. +type APIVersionSpec struct { + // OpenAPISpec defines the API contract as an OpenAPI specification. + OpenApiSpec *APIVersionSpecOpenApiSpec `pulumi:"openApiSpec"` + // Release is the version number of the API. + // This value must follow the SemVer format: https://semver.org/ + Release string `pulumi:"release"` + // Title is the public facing name of the APIVersion. + Title *string `pulumi:"title"` +} + +// APIVersionSpecInput is an input type that accepts APIVersionSpecArgs and APIVersionSpecOutput values. +// You can construct a concrete instance of `APIVersionSpecInput` via: +// +// APIVersionSpecArgs{...} +type APIVersionSpecInput interface { + pulumi.Input + + ToAPIVersionSpecOutput() APIVersionSpecOutput + ToAPIVersionSpecOutputWithContext(context.Context) APIVersionSpecOutput +} + +// The desired behavior of this APIVersion. +type APIVersionSpecArgs struct { + // OpenAPISpec defines the API contract as an OpenAPI specification. + OpenApiSpec APIVersionSpecOpenApiSpecPtrInput `pulumi:"openApiSpec"` + // Release is the version number of the API. + // This value must follow the SemVer format: https://semver.org/ + Release pulumi.StringInput `pulumi:"release"` + // Title is the public facing name of the APIVersion. + Title pulumi.StringPtrInput `pulumi:"title"` +} + +func (APIVersionSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIVersionSpec)(nil)).Elem() +} + +func (i APIVersionSpecArgs) ToAPIVersionSpecOutput() APIVersionSpecOutput { + return i.ToAPIVersionSpecOutputWithContext(context.Background()) +} + +func (i APIVersionSpecArgs) ToAPIVersionSpecOutputWithContext(ctx context.Context) APIVersionSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionSpecOutput) +} + +func (i APIVersionSpecArgs) ToOutput(ctx context.Context) pulumix.Output[APIVersionSpec] { + return pulumix.Output[APIVersionSpec]{ + OutputState: i.ToAPIVersionSpecOutputWithContext(ctx).OutputState, + } +} + +func (i APIVersionSpecArgs) ToAPIVersionSpecPtrOutput() APIVersionSpecPtrOutput { + return i.ToAPIVersionSpecPtrOutputWithContext(context.Background()) +} + +func (i APIVersionSpecArgs) ToAPIVersionSpecPtrOutputWithContext(ctx context.Context) APIVersionSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionSpecOutput).ToAPIVersionSpecPtrOutputWithContext(ctx) +} + +// APIVersionSpecPtrInput is an input type that accepts APIVersionSpecArgs, APIVersionSpecPtr and APIVersionSpecPtrOutput values. +// You can construct a concrete instance of `APIVersionSpecPtrInput` via: +// +// APIVersionSpecArgs{...} +// +// or: +// +// nil +type APIVersionSpecPtrInput interface { + pulumi.Input + + ToAPIVersionSpecPtrOutput() APIVersionSpecPtrOutput + ToAPIVersionSpecPtrOutputWithContext(context.Context) APIVersionSpecPtrOutput +} + +type apiversionSpecPtrType APIVersionSpecArgs + +func APIVersionSpecPtr(v *APIVersionSpecArgs) APIVersionSpecPtrInput { + return (*apiversionSpecPtrType)(v) +} + +func (*apiversionSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APIVersionSpec)(nil)).Elem() +} + +func (i *apiversionSpecPtrType) ToAPIVersionSpecPtrOutput() APIVersionSpecPtrOutput { + return i.ToAPIVersionSpecPtrOutputWithContext(context.Background()) +} + +func (i *apiversionSpecPtrType) ToAPIVersionSpecPtrOutputWithContext(ctx context.Context) APIVersionSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionSpecPtrOutput) +} + +func (i *apiversionSpecPtrType) ToOutput(ctx context.Context) pulumix.Output[*APIVersionSpec] { + return pulumix.Output[*APIVersionSpec]{ + OutputState: i.ToAPIVersionSpecPtrOutputWithContext(ctx).OutputState, + } +} + +// The desired behavior of this APIVersion. +type APIVersionSpecOutput struct{ *pulumi.OutputState } + +func (APIVersionSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIVersionSpec)(nil)).Elem() +} + +func (o APIVersionSpecOutput) ToAPIVersionSpecOutput() APIVersionSpecOutput { + return o +} + +func (o APIVersionSpecOutput) ToAPIVersionSpecOutputWithContext(ctx context.Context) APIVersionSpecOutput { + return o +} + +func (o APIVersionSpecOutput) ToAPIVersionSpecPtrOutput() APIVersionSpecPtrOutput { + return o.ToAPIVersionSpecPtrOutputWithContext(context.Background()) +} + +func (o APIVersionSpecOutput) ToAPIVersionSpecPtrOutputWithContext(ctx context.Context) APIVersionSpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APIVersionSpec) *APIVersionSpec { + return &v + }).(APIVersionSpecPtrOutput) +} + +func (o APIVersionSpecOutput) ToOutput(ctx context.Context) pulumix.Output[APIVersionSpec] { + return pulumix.Output[APIVersionSpec]{ + OutputState: o.OutputState, + } +} + +// OpenAPISpec defines the API contract as an OpenAPI specification. +func (o APIVersionSpecOutput) OpenApiSpec() APIVersionSpecOpenApiSpecPtrOutput { + return o.ApplyT(func(v APIVersionSpec) *APIVersionSpecOpenApiSpec { return v.OpenApiSpec }).(APIVersionSpecOpenApiSpecPtrOutput) +} + +// Release is the version number of the API. +// This value must follow the SemVer format: https://semver.org/ +func (o APIVersionSpecOutput) Release() pulumi.StringOutput { + return o.ApplyT(func(v APIVersionSpec) string { return v.Release }).(pulumi.StringOutput) +} + +// Title is the public facing name of the APIVersion. +func (o APIVersionSpecOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIVersionSpec) *string { return v.Title }).(pulumi.StringPtrOutput) +} + +type APIVersionSpecPtrOutput struct{ *pulumi.OutputState } + +func (APIVersionSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIVersionSpec)(nil)).Elem() +} + +func (o APIVersionSpecPtrOutput) ToAPIVersionSpecPtrOutput() APIVersionSpecPtrOutput { + return o +} + +func (o APIVersionSpecPtrOutput) ToAPIVersionSpecPtrOutputWithContext(ctx context.Context) APIVersionSpecPtrOutput { + return o +} + +func (o APIVersionSpecPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APIVersionSpec] { + return pulumix.Output[*APIVersionSpec]{ + OutputState: o.OutputState, + } +} + +func (o APIVersionSpecPtrOutput) Elem() APIVersionSpecOutput { + return o.ApplyT(func(v *APIVersionSpec) APIVersionSpec { + if v != nil { + return *v + } + var ret APIVersionSpec + return ret + }).(APIVersionSpecOutput) +} + +// OpenAPISpec defines the API contract as an OpenAPI specification. +func (o APIVersionSpecPtrOutput) OpenApiSpec() APIVersionSpecOpenApiSpecPtrOutput { + return o.ApplyT(func(v *APIVersionSpec) *APIVersionSpecOpenApiSpec { + if v == nil { + return nil + } + return v.OpenApiSpec + }).(APIVersionSpecOpenApiSpecPtrOutput) +} + +// Release is the version number of the API. +// This value must follow the SemVer format: https://semver.org/ +func (o APIVersionSpecPtrOutput) Release() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIVersionSpec) *string { + if v == nil { + return nil + } + return &v.Release + }).(pulumi.StringPtrOutput) +} + +// Title is the public facing name of the APIVersion. +func (o APIVersionSpecPtrOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIVersionSpec) *string { + if v == nil { + return nil + } + return v.Title + }).(pulumi.StringPtrOutput) +} + +// OpenAPISpec defines the API contract as an OpenAPI specification. +type APIVersionSpecOpenApiSpec struct { + // OperationSets defines the sets of operations to be referenced for granular filtering in APIAccesses. + OperationSets []APIVersionSpecOpenApiSpecOperationSets `pulumi:"operationSets"` + // Override holds data used to override OpenAPI specification. + Override *APIVersionSpecOpenApiSpecOverride `pulumi:"override"` + // Path specifies the endpoint path within the Kubernetes Service where the OpenAPI specification can be obtained. + // The Service queried is determined by the associated Ingress, IngressRoute, or HTTPRoute resource to which the API is attached. + // It's important to note that this option is incompatible if the Ingress or IngressRoute specifies multiple backend services. + // The Path must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. + Path *string `pulumi:"path"` + // URL is a Traefik Hub agent accessible URL for obtaining the OpenAPI specification. + // The URL must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. + Url *string `pulumi:"url"` +} + +// APIVersionSpecOpenApiSpecInput is an input type that accepts APIVersionSpecOpenApiSpecArgs and APIVersionSpecOpenApiSpecOutput values. +// You can construct a concrete instance of `APIVersionSpecOpenApiSpecInput` via: +// +// APIVersionSpecOpenApiSpecArgs{...} +type APIVersionSpecOpenApiSpecInput interface { + pulumi.Input + + ToAPIVersionSpecOpenApiSpecOutput() APIVersionSpecOpenApiSpecOutput + ToAPIVersionSpecOpenApiSpecOutputWithContext(context.Context) APIVersionSpecOpenApiSpecOutput +} + +// OpenAPISpec defines the API contract as an OpenAPI specification. +type APIVersionSpecOpenApiSpecArgs struct { + // OperationSets defines the sets of operations to be referenced for granular filtering in APIAccesses. + OperationSets APIVersionSpecOpenApiSpecOperationSetsArrayInput `pulumi:"operationSets"` + // Override holds data used to override OpenAPI specification. + Override APIVersionSpecOpenApiSpecOverridePtrInput `pulumi:"override"` + // Path specifies the endpoint path within the Kubernetes Service where the OpenAPI specification can be obtained. + // The Service queried is determined by the associated Ingress, IngressRoute, or HTTPRoute resource to which the API is attached. + // It's important to note that this option is incompatible if the Ingress or IngressRoute specifies multiple backend services. + // The Path must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. + Path pulumi.StringPtrInput `pulumi:"path"` + // URL is a Traefik Hub agent accessible URL for obtaining the OpenAPI specification. + // The URL must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. + Url pulumi.StringPtrInput `pulumi:"url"` +} + +func (APIVersionSpecOpenApiSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIVersionSpecOpenApiSpec)(nil)).Elem() +} + +func (i APIVersionSpecOpenApiSpecArgs) ToAPIVersionSpecOpenApiSpecOutput() APIVersionSpecOpenApiSpecOutput { + return i.ToAPIVersionSpecOpenApiSpecOutputWithContext(context.Background()) +} + +func (i APIVersionSpecOpenApiSpecArgs) ToAPIVersionSpecOpenApiSpecOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionSpecOpenApiSpecOutput) +} + +func (i APIVersionSpecOpenApiSpecArgs) ToOutput(ctx context.Context) pulumix.Output[APIVersionSpecOpenApiSpec] { + return pulumix.Output[APIVersionSpecOpenApiSpec]{ + OutputState: i.ToAPIVersionSpecOpenApiSpecOutputWithContext(ctx).OutputState, + } +} + +func (i APIVersionSpecOpenApiSpecArgs) ToAPIVersionSpecOpenApiSpecPtrOutput() APIVersionSpecOpenApiSpecPtrOutput { + return i.ToAPIVersionSpecOpenApiSpecPtrOutputWithContext(context.Background()) +} + +func (i APIVersionSpecOpenApiSpecArgs) ToAPIVersionSpecOpenApiSpecPtrOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionSpecOpenApiSpecOutput).ToAPIVersionSpecOpenApiSpecPtrOutputWithContext(ctx) +} + +// APIVersionSpecOpenApiSpecPtrInput is an input type that accepts APIVersionSpecOpenApiSpecArgs, APIVersionSpecOpenApiSpecPtr and APIVersionSpecOpenApiSpecPtrOutput values. +// You can construct a concrete instance of `APIVersionSpecOpenApiSpecPtrInput` via: +// +// APIVersionSpecOpenApiSpecArgs{...} +// +// or: +// +// nil +type APIVersionSpecOpenApiSpecPtrInput interface { + pulumi.Input + + ToAPIVersionSpecOpenApiSpecPtrOutput() APIVersionSpecOpenApiSpecPtrOutput + ToAPIVersionSpecOpenApiSpecPtrOutputWithContext(context.Context) APIVersionSpecOpenApiSpecPtrOutput +} + +type apiversionSpecOpenApiSpecPtrType APIVersionSpecOpenApiSpecArgs + +func APIVersionSpecOpenApiSpecPtr(v *APIVersionSpecOpenApiSpecArgs) APIVersionSpecOpenApiSpecPtrInput { + return (*apiversionSpecOpenApiSpecPtrType)(v) +} + +func (*apiversionSpecOpenApiSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APIVersionSpecOpenApiSpec)(nil)).Elem() +} + +func (i *apiversionSpecOpenApiSpecPtrType) ToAPIVersionSpecOpenApiSpecPtrOutput() APIVersionSpecOpenApiSpecPtrOutput { + return i.ToAPIVersionSpecOpenApiSpecPtrOutputWithContext(context.Background()) +} + +func (i *apiversionSpecOpenApiSpecPtrType) ToAPIVersionSpecOpenApiSpecPtrOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionSpecOpenApiSpecPtrOutput) +} + +func (i *apiversionSpecOpenApiSpecPtrType) ToOutput(ctx context.Context) pulumix.Output[*APIVersionSpecOpenApiSpec] { + return pulumix.Output[*APIVersionSpecOpenApiSpec]{ + OutputState: i.ToAPIVersionSpecOpenApiSpecPtrOutputWithContext(ctx).OutputState, + } +} + +// OpenAPISpec defines the API contract as an OpenAPI specification. +type APIVersionSpecOpenApiSpecOutput struct{ *pulumi.OutputState } + +func (APIVersionSpecOpenApiSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIVersionSpecOpenApiSpec)(nil)).Elem() +} + +func (o APIVersionSpecOpenApiSpecOutput) ToAPIVersionSpecOpenApiSpecOutput() APIVersionSpecOpenApiSpecOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOutput) ToAPIVersionSpecOpenApiSpecOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOutput) ToAPIVersionSpecOpenApiSpecPtrOutput() APIVersionSpecOpenApiSpecPtrOutput { + return o.ToAPIVersionSpecOpenApiSpecPtrOutputWithContext(context.Background()) +} + +func (o APIVersionSpecOpenApiSpecOutput) ToAPIVersionSpecOpenApiSpecPtrOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APIVersionSpecOpenApiSpec) *APIVersionSpecOpenApiSpec { + return &v + }).(APIVersionSpecOpenApiSpecPtrOutput) +} + +func (o APIVersionSpecOpenApiSpecOutput) ToOutput(ctx context.Context) pulumix.Output[APIVersionSpecOpenApiSpec] { + return pulumix.Output[APIVersionSpecOpenApiSpec]{ + OutputState: o.OutputState, + } +} + +// OperationSets defines the sets of operations to be referenced for granular filtering in APIAccesses. +func (o APIVersionSpecOpenApiSpecOutput) OperationSets() APIVersionSpecOpenApiSpecOperationSetsArrayOutput { + return o.ApplyT(func(v APIVersionSpecOpenApiSpec) []APIVersionSpecOpenApiSpecOperationSets { return v.OperationSets }).(APIVersionSpecOpenApiSpecOperationSetsArrayOutput) +} + +// Override holds data used to override OpenAPI specification. +func (o APIVersionSpecOpenApiSpecOutput) Override() APIVersionSpecOpenApiSpecOverridePtrOutput { + return o.ApplyT(func(v APIVersionSpecOpenApiSpec) *APIVersionSpecOpenApiSpecOverride { return v.Override }).(APIVersionSpecOpenApiSpecOverridePtrOutput) +} + +// Path specifies the endpoint path within the Kubernetes Service where the OpenAPI specification can be obtained. +// The Service queried is determined by the associated Ingress, IngressRoute, or HTTPRoute resource to which the API is attached. +// It's important to note that this option is incompatible if the Ingress or IngressRoute specifies multiple backend services. +// The Path must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. +func (o APIVersionSpecOpenApiSpecOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIVersionSpecOpenApiSpec) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +// URL is a Traefik Hub agent accessible URL for obtaining the OpenAPI specification. +// The URL must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. +func (o APIVersionSpecOpenApiSpecOutput) Url() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIVersionSpecOpenApiSpec) *string { return v.Url }).(pulumi.StringPtrOutput) +} + +type APIVersionSpecOpenApiSpecPtrOutput struct{ *pulumi.OutputState } + +func (APIVersionSpecOpenApiSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIVersionSpecOpenApiSpec)(nil)).Elem() +} + +func (o APIVersionSpecOpenApiSpecPtrOutput) ToAPIVersionSpecOpenApiSpecPtrOutput() APIVersionSpecOpenApiSpecPtrOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecPtrOutput) ToAPIVersionSpecOpenApiSpecPtrOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecPtrOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APIVersionSpecOpenApiSpec] { + return pulumix.Output[*APIVersionSpecOpenApiSpec]{ + OutputState: o.OutputState, + } +} + +func (o APIVersionSpecOpenApiSpecPtrOutput) Elem() APIVersionSpecOpenApiSpecOutput { + return o.ApplyT(func(v *APIVersionSpecOpenApiSpec) APIVersionSpecOpenApiSpec { + if v != nil { + return *v + } + var ret APIVersionSpecOpenApiSpec + return ret + }).(APIVersionSpecOpenApiSpecOutput) +} + +// OperationSets defines the sets of operations to be referenced for granular filtering in APIAccesses. +func (o APIVersionSpecOpenApiSpecPtrOutput) OperationSets() APIVersionSpecOpenApiSpecOperationSetsArrayOutput { + return o.ApplyT(func(v *APIVersionSpecOpenApiSpec) []APIVersionSpecOpenApiSpecOperationSets { + if v == nil { + return nil + } + return v.OperationSets + }).(APIVersionSpecOpenApiSpecOperationSetsArrayOutput) +} + +// Override holds data used to override OpenAPI specification. +func (o APIVersionSpecOpenApiSpecPtrOutput) Override() APIVersionSpecOpenApiSpecOverridePtrOutput { + return o.ApplyT(func(v *APIVersionSpecOpenApiSpec) *APIVersionSpecOpenApiSpecOverride { + if v == nil { + return nil + } + return v.Override + }).(APIVersionSpecOpenApiSpecOverridePtrOutput) +} + +// Path specifies the endpoint path within the Kubernetes Service where the OpenAPI specification can be obtained. +// The Service queried is determined by the associated Ingress, IngressRoute, or HTTPRoute resource to which the API is attached. +// It's important to note that this option is incompatible if the Ingress or IngressRoute specifies multiple backend services. +// The Path must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. +func (o APIVersionSpecOpenApiSpecPtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIVersionSpecOpenApiSpec) *string { + if v == nil { + return nil + } + return v.Path + }).(pulumi.StringPtrOutput) +} + +// URL is a Traefik Hub agent accessible URL for obtaining the OpenAPI specification. +// The URL must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. +func (o APIVersionSpecOpenApiSpecPtrOutput) Url() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIVersionSpecOpenApiSpec) *string { + if v == nil { + return nil + } + return v.Url + }).(pulumi.StringPtrOutput) +} + +// OperationSet gives a name to a set of matching OpenAPI operations. +// This set of operations can then be referenced for granular filtering in APIAccesses. +type APIVersionSpecOpenApiSpecOperationSets struct { + // Matchers defines a list of alternative rules for matching OpenAPI operations. + Matchers []APIVersionSpecOpenApiSpecOperationSetsMatchers `pulumi:"matchers"` + // Name is the name of the OperationSet to reference in APIAccesses. + Name string `pulumi:"name"` +} + +// APIVersionSpecOpenApiSpecOperationSetsInput is an input type that accepts APIVersionSpecOpenApiSpecOperationSetsArgs and APIVersionSpecOpenApiSpecOperationSetsOutput values. +// You can construct a concrete instance of `APIVersionSpecOpenApiSpecOperationSetsInput` via: +// +// APIVersionSpecOpenApiSpecOperationSetsArgs{...} +type APIVersionSpecOpenApiSpecOperationSetsInput interface { + pulumi.Input + + ToAPIVersionSpecOpenApiSpecOperationSetsOutput() APIVersionSpecOpenApiSpecOperationSetsOutput + ToAPIVersionSpecOpenApiSpecOperationSetsOutputWithContext(context.Context) APIVersionSpecOpenApiSpecOperationSetsOutput +} + +// OperationSet gives a name to a set of matching OpenAPI operations. +// This set of operations can then be referenced for granular filtering in APIAccesses. +type APIVersionSpecOpenApiSpecOperationSetsArgs struct { + // Matchers defines a list of alternative rules for matching OpenAPI operations. + Matchers APIVersionSpecOpenApiSpecOperationSetsMatchersArrayInput `pulumi:"matchers"` + // Name is the name of the OperationSet to reference in APIAccesses. + Name pulumi.StringInput `pulumi:"name"` +} + +func (APIVersionSpecOpenApiSpecOperationSetsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIVersionSpecOpenApiSpecOperationSets)(nil)).Elem() +} + +func (i APIVersionSpecOpenApiSpecOperationSetsArgs) ToAPIVersionSpecOpenApiSpecOperationSetsOutput() APIVersionSpecOpenApiSpecOperationSetsOutput { + return i.ToAPIVersionSpecOpenApiSpecOperationSetsOutputWithContext(context.Background()) +} + +func (i APIVersionSpecOpenApiSpecOperationSetsArgs) ToAPIVersionSpecOpenApiSpecOperationSetsOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOperationSetsOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionSpecOpenApiSpecOperationSetsOutput) +} + +func (i APIVersionSpecOpenApiSpecOperationSetsArgs) ToOutput(ctx context.Context) pulumix.Output[APIVersionSpecOpenApiSpecOperationSets] { + return pulumix.Output[APIVersionSpecOpenApiSpecOperationSets]{ + OutputState: i.ToAPIVersionSpecOpenApiSpecOperationSetsOutputWithContext(ctx).OutputState, + } +} + +// APIVersionSpecOpenApiSpecOperationSetsArrayInput is an input type that accepts APIVersionSpecOpenApiSpecOperationSetsArray and APIVersionSpecOpenApiSpecOperationSetsArrayOutput values. +// You can construct a concrete instance of `APIVersionSpecOpenApiSpecOperationSetsArrayInput` via: +// +// APIVersionSpecOpenApiSpecOperationSetsArray{ APIVersionSpecOpenApiSpecOperationSetsArgs{...} } +type APIVersionSpecOpenApiSpecOperationSetsArrayInput interface { + pulumi.Input + + ToAPIVersionSpecOpenApiSpecOperationSetsArrayOutput() APIVersionSpecOpenApiSpecOperationSetsArrayOutput + ToAPIVersionSpecOpenApiSpecOperationSetsArrayOutputWithContext(context.Context) APIVersionSpecOpenApiSpecOperationSetsArrayOutput +} + +type APIVersionSpecOpenApiSpecOperationSetsArray []APIVersionSpecOpenApiSpecOperationSetsInput + +func (APIVersionSpecOpenApiSpecOperationSetsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]APIVersionSpecOpenApiSpecOperationSets)(nil)).Elem() +} + +func (i APIVersionSpecOpenApiSpecOperationSetsArray) ToAPIVersionSpecOpenApiSpecOperationSetsArrayOutput() APIVersionSpecOpenApiSpecOperationSetsArrayOutput { + return i.ToAPIVersionSpecOpenApiSpecOperationSetsArrayOutputWithContext(context.Background()) +} + +func (i APIVersionSpecOpenApiSpecOperationSetsArray) ToAPIVersionSpecOpenApiSpecOperationSetsArrayOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOperationSetsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionSpecOpenApiSpecOperationSetsArrayOutput) +} + +func (i APIVersionSpecOpenApiSpecOperationSetsArray) ToOutput(ctx context.Context) pulumix.Output[[]APIVersionSpecOpenApiSpecOperationSets] { + return pulumix.Output[[]APIVersionSpecOpenApiSpecOperationSets]{ + OutputState: i.ToAPIVersionSpecOpenApiSpecOperationSetsArrayOutputWithContext(ctx).OutputState, + } +} + +// OperationSet gives a name to a set of matching OpenAPI operations. +// This set of operations can then be referenced for granular filtering in APIAccesses. +type APIVersionSpecOpenApiSpecOperationSetsOutput struct{ *pulumi.OutputState } + +func (APIVersionSpecOpenApiSpecOperationSetsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIVersionSpecOpenApiSpecOperationSets)(nil)).Elem() +} + +func (o APIVersionSpecOpenApiSpecOperationSetsOutput) ToAPIVersionSpecOpenApiSpecOperationSetsOutput() APIVersionSpecOpenApiSpecOperationSetsOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOperationSetsOutput) ToAPIVersionSpecOpenApiSpecOperationSetsOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOperationSetsOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOperationSetsOutput) ToOutput(ctx context.Context) pulumix.Output[APIVersionSpecOpenApiSpecOperationSets] { + return pulumix.Output[APIVersionSpecOpenApiSpecOperationSets]{ + OutputState: o.OutputState, + } +} + +// Matchers defines a list of alternative rules for matching OpenAPI operations. +func (o APIVersionSpecOpenApiSpecOperationSetsOutput) Matchers() APIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput { + return o.ApplyT(func(v APIVersionSpecOpenApiSpecOperationSets) []APIVersionSpecOpenApiSpecOperationSetsMatchers { + return v.Matchers + }).(APIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput) +} + +// Name is the name of the OperationSet to reference in APIAccesses. +func (o APIVersionSpecOpenApiSpecOperationSetsOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v APIVersionSpecOpenApiSpecOperationSets) string { return v.Name }).(pulumi.StringOutput) +} + +type APIVersionSpecOpenApiSpecOperationSetsArrayOutput struct{ *pulumi.OutputState } + +func (APIVersionSpecOpenApiSpecOperationSetsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]APIVersionSpecOpenApiSpecOperationSets)(nil)).Elem() +} + +func (o APIVersionSpecOpenApiSpecOperationSetsArrayOutput) ToAPIVersionSpecOpenApiSpecOperationSetsArrayOutput() APIVersionSpecOpenApiSpecOperationSetsArrayOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOperationSetsArrayOutput) ToAPIVersionSpecOpenApiSpecOperationSetsArrayOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOperationSetsArrayOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOperationSetsArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]APIVersionSpecOpenApiSpecOperationSets] { + return pulumix.Output[[]APIVersionSpecOpenApiSpecOperationSets]{ + OutputState: o.OutputState, + } +} + +func (o APIVersionSpecOpenApiSpecOperationSetsArrayOutput) Index(i pulumi.IntInput) APIVersionSpecOpenApiSpecOperationSetsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) APIVersionSpecOpenApiSpecOperationSets { + return vs[0].([]APIVersionSpecOpenApiSpecOperationSets)[vs[1].(int)] + }).(APIVersionSpecOpenApiSpecOperationSetsOutput) +} + +// OperationMatcher defines criteria for matching an OpenAPI operation. +type APIVersionSpecOpenApiSpecOperationSetsMatchers struct { + // Methods specifies the HTTP methods to be included for selection. + Methods []string `pulumi:"methods"` + // Path specifies the exact path of the operations to select. + Path *string `pulumi:"path"` + // PathPrefix specifies the path prefix of the operations to select. + PathPrefix *string `pulumi:"pathPrefix"` + // PathRegex specifies a regular expression pattern for matching operations based on their paths. + PathRegex *string `pulumi:"pathRegex"` +} + +// APIVersionSpecOpenApiSpecOperationSetsMatchersInput is an input type that accepts APIVersionSpecOpenApiSpecOperationSetsMatchersArgs and APIVersionSpecOpenApiSpecOperationSetsMatchersOutput values. +// You can construct a concrete instance of `APIVersionSpecOpenApiSpecOperationSetsMatchersInput` via: +// +// APIVersionSpecOpenApiSpecOperationSetsMatchersArgs{...} +type APIVersionSpecOpenApiSpecOperationSetsMatchersInput interface { + pulumi.Input + + ToAPIVersionSpecOpenApiSpecOperationSetsMatchersOutput() APIVersionSpecOpenApiSpecOperationSetsMatchersOutput + ToAPIVersionSpecOpenApiSpecOperationSetsMatchersOutputWithContext(context.Context) APIVersionSpecOpenApiSpecOperationSetsMatchersOutput +} + +// OperationMatcher defines criteria for matching an OpenAPI operation. +type APIVersionSpecOpenApiSpecOperationSetsMatchersArgs struct { + // Methods specifies the HTTP methods to be included for selection. + Methods pulumi.StringArrayInput `pulumi:"methods"` + // Path specifies the exact path of the operations to select. + Path pulumi.StringPtrInput `pulumi:"path"` + // PathPrefix specifies the path prefix of the operations to select. + PathPrefix pulumi.StringPtrInput `pulumi:"pathPrefix"` + // PathRegex specifies a regular expression pattern for matching operations based on their paths. + PathRegex pulumi.StringPtrInput `pulumi:"pathRegex"` +} + +func (APIVersionSpecOpenApiSpecOperationSetsMatchersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIVersionSpecOpenApiSpecOperationSetsMatchers)(nil)).Elem() +} + +func (i APIVersionSpecOpenApiSpecOperationSetsMatchersArgs) ToAPIVersionSpecOpenApiSpecOperationSetsMatchersOutput() APIVersionSpecOpenApiSpecOperationSetsMatchersOutput { + return i.ToAPIVersionSpecOpenApiSpecOperationSetsMatchersOutputWithContext(context.Background()) +} + +func (i APIVersionSpecOpenApiSpecOperationSetsMatchersArgs) ToAPIVersionSpecOpenApiSpecOperationSetsMatchersOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOperationSetsMatchersOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionSpecOpenApiSpecOperationSetsMatchersOutput) +} + +func (i APIVersionSpecOpenApiSpecOperationSetsMatchersArgs) ToOutput(ctx context.Context) pulumix.Output[APIVersionSpecOpenApiSpecOperationSetsMatchers] { + return pulumix.Output[APIVersionSpecOpenApiSpecOperationSetsMatchers]{ + OutputState: i.ToAPIVersionSpecOpenApiSpecOperationSetsMatchersOutputWithContext(ctx).OutputState, + } +} + +// APIVersionSpecOpenApiSpecOperationSetsMatchersArrayInput is an input type that accepts APIVersionSpecOpenApiSpecOperationSetsMatchersArray and APIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput values. +// You can construct a concrete instance of `APIVersionSpecOpenApiSpecOperationSetsMatchersArrayInput` via: +// +// APIVersionSpecOpenApiSpecOperationSetsMatchersArray{ APIVersionSpecOpenApiSpecOperationSetsMatchersArgs{...} } +type APIVersionSpecOpenApiSpecOperationSetsMatchersArrayInput interface { + pulumi.Input + + ToAPIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput() APIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput + ToAPIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutputWithContext(context.Context) APIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput +} + +type APIVersionSpecOpenApiSpecOperationSetsMatchersArray []APIVersionSpecOpenApiSpecOperationSetsMatchersInput + +func (APIVersionSpecOpenApiSpecOperationSetsMatchersArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]APIVersionSpecOpenApiSpecOperationSetsMatchers)(nil)).Elem() +} + +func (i APIVersionSpecOpenApiSpecOperationSetsMatchersArray) ToAPIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput() APIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput { + return i.ToAPIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutputWithContext(context.Background()) +} + +func (i APIVersionSpecOpenApiSpecOperationSetsMatchersArray) ToAPIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput) +} + +func (i APIVersionSpecOpenApiSpecOperationSetsMatchersArray) ToOutput(ctx context.Context) pulumix.Output[[]APIVersionSpecOpenApiSpecOperationSetsMatchers] { + return pulumix.Output[[]APIVersionSpecOpenApiSpecOperationSetsMatchers]{ + OutputState: i.ToAPIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutputWithContext(ctx).OutputState, + } +} + +// OperationMatcher defines criteria for matching an OpenAPI operation. +type APIVersionSpecOpenApiSpecOperationSetsMatchersOutput struct{ *pulumi.OutputState } + +func (APIVersionSpecOpenApiSpecOperationSetsMatchersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIVersionSpecOpenApiSpecOperationSetsMatchers)(nil)).Elem() +} + +func (o APIVersionSpecOpenApiSpecOperationSetsMatchersOutput) ToAPIVersionSpecOpenApiSpecOperationSetsMatchersOutput() APIVersionSpecOpenApiSpecOperationSetsMatchersOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOperationSetsMatchersOutput) ToAPIVersionSpecOpenApiSpecOperationSetsMatchersOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOperationSetsMatchersOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOperationSetsMatchersOutput) ToOutput(ctx context.Context) pulumix.Output[APIVersionSpecOpenApiSpecOperationSetsMatchers] { + return pulumix.Output[APIVersionSpecOpenApiSpecOperationSetsMatchers]{ + OutputState: o.OutputState, + } +} + +// Methods specifies the HTTP methods to be included for selection. +func (o APIVersionSpecOpenApiSpecOperationSetsMatchersOutput) Methods() pulumi.StringArrayOutput { + return o.ApplyT(func(v APIVersionSpecOpenApiSpecOperationSetsMatchers) []string { return v.Methods }).(pulumi.StringArrayOutput) +} + +// Path specifies the exact path of the operations to select. +func (o APIVersionSpecOpenApiSpecOperationSetsMatchersOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIVersionSpecOpenApiSpecOperationSetsMatchers) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +// PathPrefix specifies the path prefix of the operations to select. +func (o APIVersionSpecOpenApiSpecOperationSetsMatchersOutput) PathPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIVersionSpecOpenApiSpecOperationSetsMatchers) *string { return v.PathPrefix }).(pulumi.StringPtrOutput) +} + +// PathRegex specifies a regular expression pattern for matching operations based on their paths. +func (o APIVersionSpecOpenApiSpecOperationSetsMatchersOutput) PathRegex() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIVersionSpecOpenApiSpecOperationSetsMatchers) *string { return v.PathRegex }).(pulumi.StringPtrOutput) +} + +type APIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput struct{ *pulumi.OutputState } + +func (APIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]APIVersionSpecOpenApiSpecOperationSetsMatchers)(nil)).Elem() +} + +func (o APIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput) ToAPIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput() APIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput) ToAPIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]APIVersionSpecOpenApiSpecOperationSetsMatchers] { + return pulumix.Output[[]APIVersionSpecOpenApiSpecOperationSetsMatchers]{ + OutputState: o.OutputState, + } +} + +func (o APIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput) Index(i pulumi.IntInput) APIVersionSpecOpenApiSpecOperationSetsMatchersOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) APIVersionSpecOpenApiSpecOperationSetsMatchers { + return vs[0].([]APIVersionSpecOpenApiSpecOperationSetsMatchers)[vs[1].(int)] + }).(APIVersionSpecOpenApiSpecOperationSetsMatchersOutput) +} + +// Override holds data used to override OpenAPI specification. +type APIVersionSpecOpenApiSpecOverride struct { + Servers []APIVersionSpecOpenApiSpecOverrideServers `pulumi:"servers"` +} + +// APIVersionSpecOpenApiSpecOverrideInput is an input type that accepts APIVersionSpecOpenApiSpecOverrideArgs and APIVersionSpecOpenApiSpecOverrideOutput values. +// You can construct a concrete instance of `APIVersionSpecOpenApiSpecOverrideInput` via: +// +// APIVersionSpecOpenApiSpecOverrideArgs{...} +type APIVersionSpecOpenApiSpecOverrideInput interface { + pulumi.Input + + ToAPIVersionSpecOpenApiSpecOverrideOutput() APIVersionSpecOpenApiSpecOverrideOutput + ToAPIVersionSpecOpenApiSpecOverrideOutputWithContext(context.Context) APIVersionSpecOpenApiSpecOverrideOutput +} + +// Override holds data used to override OpenAPI specification. +type APIVersionSpecOpenApiSpecOverrideArgs struct { + Servers APIVersionSpecOpenApiSpecOverrideServersArrayInput `pulumi:"servers"` +} + +func (APIVersionSpecOpenApiSpecOverrideArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIVersionSpecOpenApiSpecOverride)(nil)).Elem() +} + +func (i APIVersionSpecOpenApiSpecOverrideArgs) ToAPIVersionSpecOpenApiSpecOverrideOutput() APIVersionSpecOpenApiSpecOverrideOutput { + return i.ToAPIVersionSpecOpenApiSpecOverrideOutputWithContext(context.Background()) +} + +func (i APIVersionSpecOpenApiSpecOverrideArgs) ToAPIVersionSpecOpenApiSpecOverrideOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOverrideOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionSpecOpenApiSpecOverrideOutput) +} + +func (i APIVersionSpecOpenApiSpecOverrideArgs) ToOutput(ctx context.Context) pulumix.Output[APIVersionSpecOpenApiSpecOverride] { + return pulumix.Output[APIVersionSpecOpenApiSpecOverride]{ + OutputState: i.ToAPIVersionSpecOpenApiSpecOverrideOutputWithContext(ctx).OutputState, + } +} + +func (i APIVersionSpecOpenApiSpecOverrideArgs) ToAPIVersionSpecOpenApiSpecOverridePtrOutput() APIVersionSpecOpenApiSpecOverridePtrOutput { + return i.ToAPIVersionSpecOpenApiSpecOverridePtrOutputWithContext(context.Background()) +} + +func (i APIVersionSpecOpenApiSpecOverrideArgs) ToAPIVersionSpecOpenApiSpecOverridePtrOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOverridePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionSpecOpenApiSpecOverrideOutput).ToAPIVersionSpecOpenApiSpecOverridePtrOutputWithContext(ctx) +} + +// APIVersionSpecOpenApiSpecOverridePtrInput is an input type that accepts APIVersionSpecOpenApiSpecOverrideArgs, APIVersionSpecOpenApiSpecOverridePtr and APIVersionSpecOpenApiSpecOverridePtrOutput values. +// You can construct a concrete instance of `APIVersionSpecOpenApiSpecOverridePtrInput` via: +// +// APIVersionSpecOpenApiSpecOverrideArgs{...} +// +// or: +// +// nil +type APIVersionSpecOpenApiSpecOverridePtrInput interface { + pulumi.Input + + ToAPIVersionSpecOpenApiSpecOverridePtrOutput() APIVersionSpecOpenApiSpecOverridePtrOutput + ToAPIVersionSpecOpenApiSpecOverridePtrOutputWithContext(context.Context) APIVersionSpecOpenApiSpecOverridePtrOutput +} + +type apiversionSpecOpenApiSpecOverridePtrType APIVersionSpecOpenApiSpecOverrideArgs + +func APIVersionSpecOpenApiSpecOverridePtr(v *APIVersionSpecOpenApiSpecOverrideArgs) APIVersionSpecOpenApiSpecOverridePtrInput { + return (*apiversionSpecOpenApiSpecOverridePtrType)(v) +} + +func (*apiversionSpecOpenApiSpecOverridePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APIVersionSpecOpenApiSpecOverride)(nil)).Elem() +} + +func (i *apiversionSpecOpenApiSpecOverridePtrType) ToAPIVersionSpecOpenApiSpecOverridePtrOutput() APIVersionSpecOpenApiSpecOverridePtrOutput { + return i.ToAPIVersionSpecOpenApiSpecOverridePtrOutputWithContext(context.Background()) +} + +func (i *apiversionSpecOpenApiSpecOverridePtrType) ToAPIVersionSpecOpenApiSpecOverridePtrOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOverridePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionSpecOpenApiSpecOverridePtrOutput) +} + +func (i *apiversionSpecOpenApiSpecOverridePtrType) ToOutput(ctx context.Context) pulumix.Output[*APIVersionSpecOpenApiSpecOverride] { + return pulumix.Output[*APIVersionSpecOpenApiSpecOverride]{ + OutputState: i.ToAPIVersionSpecOpenApiSpecOverridePtrOutputWithContext(ctx).OutputState, + } +} + +// Override holds data used to override OpenAPI specification. +type APIVersionSpecOpenApiSpecOverrideOutput struct{ *pulumi.OutputState } + +func (APIVersionSpecOpenApiSpecOverrideOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIVersionSpecOpenApiSpecOverride)(nil)).Elem() +} + +func (o APIVersionSpecOpenApiSpecOverrideOutput) ToAPIVersionSpecOpenApiSpecOverrideOutput() APIVersionSpecOpenApiSpecOverrideOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOverrideOutput) ToAPIVersionSpecOpenApiSpecOverrideOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOverrideOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOverrideOutput) ToAPIVersionSpecOpenApiSpecOverridePtrOutput() APIVersionSpecOpenApiSpecOverridePtrOutput { + return o.ToAPIVersionSpecOpenApiSpecOverridePtrOutputWithContext(context.Background()) +} + +func (o APIVersionSpecOpenApiSpecOverrideOutput) ToAPIVersionSpecOpenApiSpecOverridePtrOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOverridePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APIVersionSpecOpenApiSpecOverride) *APIVersionSpecOpenApiSpecOverride { + return &v + }).(APIVersionSpecOpenApiSpecOverridePtrOutput) +} + +func (o APIVersionSpecOpenApiSpecOverrideOutput) ToOutput(ctx context.Context) pulumix.Output[APIVersionSpecOpenApiSpecOverride] { + return pulumix.Output[APIVersionSpecOpenApiSpecOverride]{ + OutputState: o.OutputState, + } +} + +func (o APIVersionSpecOpenApiSpecOverrideOutput) Servers() APIVersionSpecOpenApiSpecOverrideServersArrayOutput { + return o.ApplyT(func(v APIVersionSpecOpenApiSpecOverride) []APIVersionSpecOpenApiSpecOverrideServers { return v.Servers }).(APIVersionSpecOpenApiSpecOverrideServersArrayOutput) +} + +type APIVersionSpecOpenApiSpecOverridePtrOutput struct{ *pulumi.OutputState } + +func (APIVersionSpecOpenApiSpecOverridePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIVersionSpecOpenApiSpecOverride)(nil)).Elem() +} + +func (o APIVersionSpecOpenApiSpecOverridePtrOutput) ToAPIVersionSpecOpenApiSpecOverridePtrOutput() APIVersionSpecOpenApiSpecOverridePtrOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOverridePtrOutput) ToAPIVersionSpecOpenApiSpecOverridePtrOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOverridePtrOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOverridePtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APIVersionSpecOpenApiSpecOverride] { + return pulumix.Output[*APIVersionSpecOpenApiSpecOverride]{ + OutputState: o.OutputState, + } +} + +func (o APIVersionSpecOpenApiSpecOverridePtrOutput) Elem() APIVersionSpecOpenApiSpecOverrideOutput { + return o.ApplyT(func(v *APIVersionSpecOpenApiSpecOverride) APIVersionSpecOpenApiSpecOverride { + if v != nil { + return *v + } + var ret APIVersionSpecOpenApiSpecOverride + return ret + }).(APIVersionSpecOpenApiSpecOverrideOutput) +} + +func (o APIVersionSpecOpenApiSpecOverridePtrOutput) Servers() APIVersionSpecOpenApiSpecOverrideServersArrayOutput { + return o.ApplyT(func(v *APIVersionSpecOpenApiSpecOverride) []APIVersionSpecOpenApiSpecOverrideServers { + if v == nil { + return nil + } + return v.Servers + }).(APIVersionSpecOpenApiSpecOverrideServersArrayOutput) +} + +type APIVersionSpecOpenApiSpecOverrideServers struct { + Url string `pulumi:"url"` +} + +// APIVersionSpecOpenApiSpecOverrideServersInput is an input type that accepts APIVersionSpecOpenApiSpecOverrideServersArgs and APIVersionSpecOpenApiSpecOverrideServersOutput values. +// You can construct a concrete instance of `APIVersionSpecOpenApiSpecOverrideServersInput` via: +// +// APIVersionSpecOpenApiSpecOverrideServersArgs{...} +type APIVersionSpecOpenApiSpecOverrideServersInput interface { + pulumi.Input + + ToAPIVersionSpecOpenApiSpecOverrideServersOutput() APIVersionSpecOpenApiSpecOverrideServersOutput + ToAPIVersionSpecOpenApiSpecOverrideServersOutputWithContext(context.Context) APIVersionSpecOpenApiSpecOverrideServersOutput +} + +type APIVersionSpecOpenApiSpecOverrideServersArgs struct { + Url pulumi.StringInput `pulumi:"url"` +} + +func (APIVersionSpecOpenApiSpecOverrideServersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIVersionSpecOpenApiSpecOverrideServers)(nil)).Elem() +} + +func (i APIVersionSpecOpenApiSpecOverrideServersArgs) ToAPIVersionSpecOpenApiSpecOverrideServersOutput() APIVersionSpecOpenApiSpecOverrideServersOutput { + return i.ToAPIVersionSpecOpenApiSpecOverrideServersOutputWithContext(context.Background()) +} + +func (i APIVersionSpecOpenApiSpecOverrideServersArgs) ToAPIVersionSpecOpenApiSpecOverrideServersOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOverrideServersOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionSpecOpenApiSpecOverrideServersOutput) +} + +func (i APIVersionSpecOpenApiSpecOverrideServersArgs) ToOutput(ctx context.Context) pulumix.Output[APIVersionSpecOpenApiSpecOverrideServers] { + return pulumix.Output[APIVersionSpecOpenApiSpecOverrideServers]{ + OutputState: i.ToAPIVersionSpecOpenApiSpecOverrideServersOutputWithContext(ctx).OutputState, + } +} + +// APIVersionSpecOpenApiSpecOverrideServersArrayInput is an input type that accepts APIVersionSpecOpenApiSpecOverrideServersArray and APIVersionSpecOpenApiSpecOverrideServersArrayOutput values. +// You can construct a concrete instance of `APIVersionSpecOpenApiSpecOverrideServersArrayInput` via: +// +// APIVersionSpecOpenApiSpecOverrideServersArray{ APIVersionSpecOpenApiSpecOverrideServersArgs{...} } +type APIVersionSpecOpenApiSpecOverrideServersArrayInput interface { + pulumi.Input + + ToAPIVersionSpecOpenApiSpecOverrideServersArrayOutput() APIVersionSpecOpenApiSpecOverrideServersArrayOutput + ToAPIVersionSpecOpenApiSpecOverrideServersArrayOutputWithContext(context.Context) APIVersionSpecOpenApiSpecOverrideServersArrayOutput +} + +type APIVersionSpecOpenApiSpecOverrideServersArray []APIVersionSpecOpenApiSpecOverrideServersInput + +func (APIVersionSpecOpenApiSpecOverrideServersArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]APIVersionSpecOpenApiSpecOverrideServers)(nil)).Elem() +} + +func (i APIVersionSpecOpenApiSpecOverrideServersArray) ToAPIVersionSpecOpenApiSpecOverrideServersArrayOutput() APIVersionSpecOpenApiSpecOverrideServersArrayOutput { + return i.ToAPIVersionSpecOpenApiSpecOverrideServersArrayOutputWithContext(context.Background()) +} + +func (i APIVersionSpecOpenApiSpecOverrideServersArray) ToAPIVersionSpecOpenApiSpecOverrideServersArrayOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOverrideServersArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionSpecOpenApiSpecOverrideServersArrayOutput) +} + +func (i APIVersionSpecOpenApiSpecOverrideServersArray) ToOutput(ctx context.Context) pulumix.Output[[]APIVersionSpecOpenApiSpecOverrideServers] { + return pulumix.Output[[]APIVersionSpecOpenApiSpecOverrideServers]{ + OutputState: i.ToAPIVersionSpecOpenApiSpecOverrideServersArrayOutputWithContext(ctx).OutputState, + } +} + +type APIVersionSpecOpenApiSpecOverrideServersOutput struct{ *pulumi.OutputState } + +func (APIVersionSpecOpenApiSpecOverrideServersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIVersionSpecOpenApiSpecOverrideServers)(nil)).Elem() +} + +func (o APIVersionSpecOpenApiSpecOverrideServersOutput) ToAPIVersionSpecOpenApiSpecOverrideServersOutput() APIVersionSpecOpenApiSpecOverrideServersOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOverrideServersOutput) ToAPIVersionSpecOpenApiSpecOverrideServersOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOverrideServersOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOverrideServersOutput) ToOutput(ctx context.Context) pulumix.Output[APIVersionSpecOpenApiSpecOverrideServers] { + return pulumix.Output[APIVersionSpecOpenApiSpecOverrideServers]{ + OutputState: o.OutputState, + } +} + +func (o APIVersionSpecOpenApiSpecOverrideServersOutput) Url() pulumi.StringOutput { + return o.ApplyT(func(v APIVersionSpecOpenApiSpecOverrideServers) string { return v.Url }).(pulumi.StringOutput) +} + +type APIVersionSpecOpenApiSpecOverrideServersArrayOutput struct{ *pulumi.OutputState } + +func (APIVersionSpecOpenApiSpecOverrideServersArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]APIVersionSpecOpenApiSpecOverrideServers)(nil)).Elem() +} + +func (o APIVersionSpecOpenApiSpecOverrideServersArrayOutput) ToAPIVersionSpecOpenApiSpecOverrideServersArrayOutput() APIVersionSpecOpenApiSpecOverrideServersArrayOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOverrideServersArrayOutput) ToAPIVersionSpecOpenApiSpecOverrideServersArrayOutputWithContext(ctx context.Context) APIVersionSpecOpenApiSpecOverrideServersArrayOutput { + return o +} + +func (o APIVersionSpecOpenApiSpecOverrideServersArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]APIVersionSpecOpenApiSpecOverrideServers] { + return pulumix.Output[[]APIVersionSpecOpenApiSpecOverrideServers]{ + OutputState: o.OutputState, + } +} + +func (o APIVersionSpecOpenApiSpecOverrideServersArrayOutput) Index(i pulumi.IntInput) APIVersionSpecOpenApiSpecOverrideServersOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) APIVersionSpecOpenApiSpecOverrideServers { + return vs[0].([]APIVersionSpecOpenApiSpecOverrideServers)[vs[1].(int)] + }).(APIVersionSpecOpenApiSpecOverrideServersOutput) +} + +// The current status of this APIVersion. +type APIVersionStatus struct { + // Hash is a hash representing the APIVersion. + Hash *string `pulumi:"hash"` + SyncedAt *string `pulumi:"syncedAt"` + Version *string `pulumi:"version"` +} + +// APIVersionStatusInput is an input type that accepts APIVersionStatusArgs and APIVersionStatusOutput values. +// You can construct a concrete instance of `APIVersionStatusInput` via: +// +// APIVersionStatusArgs{...} +type APIVersionStatusInput interface { + pulumi.Input + + ToAPIVersionStatusOutput() APIVersionStatusOutput + ToAPIVersionStatusOutputWithContext(context.Context) APIVersionStatusOutput +} + +// The current status of this APIVersion. +type APIVersionStatusArgs struct { + // Hash is a hash representing the APIVersion. + Hash pulumi.StringPtrInput `pulumi:"hash"` + SyncedAt pulumi.StringPtrInput `pulumi:"syncedAt"` + Version pulumi.StringPtrInput `pulumi:"version"` +} + +func (APIVersionStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*APIVersionStatus)(nil)).Elem() +} + +func (i APIVersionStatusArgs) ToAPIVersionStatusOutput() APIVersionStatusOutput { + return i.ToAPIVersionStatusOutputWithContext(context.Background()) +} + +func (i APIVersionStatusArgs) ToAPIVersionStatusOutputWithContext(ctx context.Context) APIVersionStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionStatusOutput) +} + +func (i APIVersionStatusArgs) ToOutput(ctx context.Context) pulumix.Output[APIVersionStatus] { + return pulumix.Output[APIVersionStatus]{ + OutputState: i.ToAPIVersionStatusOutputWithContext(ctx).OutputState, + } +} + +func (i APIVersionStatusArgs) ToAPIVersionStatusPtrOutput() APIVersionStatusPtrOutput { + return i.ToAPIVersionStatusPtrOutputWithContext(context.Background()) +} + +func (i APIVersionStatusArgs) ToAPIVersionStatusPtrOutputWithContext(ctx context.Context) APIVersionStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionStatusOutput).ToAPIVersionStatusPtrOutputWithContext(ctx) +} + +// APIVersionStatusPtrInput is an input type that accepts APIVersionStatusArgs, APIVersionStatusPtr and APIVersionStatusPtrOutput values. +// You can construct a concrete instance of `APIVersionStatusPtrInput` via: +// +// APIVersionStatusArgs{...} +// +// or: +// +// nil +type APIVersionStatusPtrInput interface { + pulumi.Input + + ToAPIVersionStatusPtrOutput() APIVersionStatusPtrOutput + ToAPIVersionStatusPtrOutputWithContext(context.Context) APIVersionStatusPtrOutput +} + +type apiversionStatusPtrType APIVersionStatusArgs + +func APIVersionStatusPtr(v *APIVersionStatusArgs) APIVersionStatusPtrInput { + return (*apiversionStatusPtrType)(v) +} + +func (*apiversionStatusPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**APIVersionStatus)(nil)).Elem() +} + +func (i *apiversionStatusPtrType) ToAPIVersionStatusPtrOutput() APIVersionStatusPtrOutput { + return i.ToAPIVersionStatusPtrOutputWithContext(context.Background()) +} + +func (i *apiversionStatusPtrType) ToAPIVersionStatusPtrOutputWithContext(ctx context.Context) APIVersionStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(APIVersionStatusPtrOutput) +} + +func (i *apiversionStatusPtrType) ToOutput(ctx context.Context) pulumix.Output[*APIVersionStatus] { + return pulumix.Output[*APIVersionStatus]{ + OutputState: i.ToAPIVersionStatusPtrOutputWithContext(ctx).OutputState, + } +} + +// The current status of this APIVersion. +type APIVersionStatusOutput struct{ *pulumi.OutputState } + +func (APIVersionStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*APIVersionStatus)(nil)).Elem() +} + +func (o APIVersionStatusOutput) ToAPIVersionStatusOutput() APIVersionStatusOutput { + return o +} + +func (o APIVersionStatusOutput) ToAPIVersionStatusOutputWithContext(ctx context.Context) APIVersionStatusOutput { + return o +} + +func (o APIVersionStatusOutput) ToAPIVersionStatusPtrOutput() APIVersionStatusPtrOutput { + return o.ToAPIVersionStatusPtrOutputWithContext(context.Background()) +} + +func (o APIVersionStatusOutput) ToAPIVersionStatusPtrOutputWithContext(ctx context.Context) APIVersionStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v APIVersionStatus) *APIVersionStatus { + return &v + }).(APIVersionStatusPtrOutput) +} + +func (o APIVersionStatusOutput) ToOutput(ctx context.Context) pulumix.Output[APIVersionStatus] { + return pulumix.Output[APIVersionStatus]{ + OutputState: o.OutputState, + } +} + +// Hash is a hash representing the APIVersion. +func (o APIVersionStatusOutput) Hash() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIVersionStatus) *string { return v.Hash }).(pulumi.StringPtrOutput) +} + +func (o APIVersionStatusOutput) SyncedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIVersionStatus) *string { return v.SyncedAt }).(pulumi.StringPtrOutput) +} + +func (o APIVersionStatusOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v APIVersionStatus) *string { return v.Version }).(pulumi.StringPtrOutput) +} + +type APIVersionStatusPtrOutput struct{ *pulumi.OutputState } + +func (APIVersionStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**APIVersionStatus)(nil)).Elem() +} + +func (o APIVersionStatusPtrOutput) ToAPIVersionStatusPtrOutput() APIVersionStatusPtrOutput { + return o +} + +func (o APIVersionStatusPtrOutput) ToAPIVersionStatusPtrOutputWithContext(ctx context.Context) APIVersionStatusPtrOutput { + return o +} + +func (o APIVersionStatusPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*APIVersionStatus] { + return pulumix.Output[*APIVersionStatus]{ + OutputState: o.OutputState, + } +} + +func (o APIVersionStatusPtrOutput) Elem() APIVersionStatusOutput { + return o.ApplyT(func(v *APIVersionStatus) APIVersionStatus { + if v != nil { + return *v + } + var ret APIVersionStatus + return ret + }).(APIVersionStatusOutput) +} + +// Hash is a hash representing the APIVersion. +func (o APIVersionStatusPtrOutput) Hash() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIVersionStatus) *string { + if v == nil { + return nil + } + return v.Hash + }).(pulumi.StringPtrOutput) +} + +func (o APIVersionStatusPtrOutput) SyncedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIVersionStatus) *string { + if v == nil { + return nil + } + return v.SyncedAt + }).(pulumi.StringPtrOutput) +} + +func (o APIVersionStatusPtrOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v *APIVersionStatus) *string { + if v == nil { + return nil + } + return v.Version + }).(pulumi.StringPtrOutput) +} + +// AccessControlPolicy defines an access control policy. +type AccessControlPolicyType struct { + ApiVersion *string `pulumi:"apiVersion"` + Kind *string `pulumi:"kind"` + Metadata *v1.ObjectMeta `pulumi:"metadata"` + // AccessControlPolicySpec configures an access control policy. + Spec *AccessControlPolicySpec `pulumi:"spec"` + // The current status of this access control policy. + Status *AccessControlPolicyStatus `pulumi:"status"` +} + +// Defaults sets the appropriate defaults for AccessControlPolicyType +func (val *AccessControlPolicyType) Defaults() *AccessControlPolicyType { + if val == nil { + return nil + } + tmp := *val + tmp.Spec = tmp.Spec.Defaults() + + return &tmp +} + +type AccessControlPolicyMetadata struct { +} + +// AccessControlPolicySpec configures an access control policy. +type AccessControlPolicySpec struct { + // AccessControlPolicyAPIKey configure an APIKey control policy. + ApiKey *AccessControlPolicySpecApiKey `pulumi:"apiKey"` + // AccessControlPolicyBasicAuth holds the HTTP basic authentication configuration. + BasicAuth *AccessControlPolicySpecBasicAuth `pulumi:"basicAuth"` + // AccessControlPolicyJWT configures a JWT access control policy. + Jwt *AccessControlPolicySpecJwt `pulumi:"jwt"` + // AccessControlOAuthIntro configures an OAuth 2.0 Token Introspection access control policy. + OAuthIntro *AccessControlPolicySpecOAuthIntro `pulumi:"oAuthIntro"` + // AccessControlPolicyOIDC holds the OIDC authentication configuration. + Oidc *AccessControlPolicySpecOidc `pulumi:"oidc"` + // AccessControlPolicyOIDCGoogle holds the Google OIDC authentication configuration. + OidcGoogle *AccessControlPolicySpecOidcGoogle `pulumi:"oidcGoogle"` +} + +// Defaults sets the appropriate defaults for AccessControlPolicySpec +func (val *AccessControlPolicySpec) Defaults() *AccessControlPolicySpec { + if val == nil { + return nil + } + tmp := *val + tmp.OAuthIntro = tmp.OAuthIntro.Defaults() + + return &tmp +} + +// AccessControlPolicySpecInput is an input type that accepts AccessControlPolicySpecArgs and AccessControlPolicySpecOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecInput` via: +// +// AccessControlPolicySpecArgs{...} +type AccessControlPolicySpecInput interface { + pulumi.Input + + ToAccessControlPolicySpecOutput() AccessControlPolicySpecOutput + ToAccessControlPolicySpecOutputWithContext(context.Context) AccessControlPolicySpecOutput +} + +// AccessControlPolicySpec configures an access control policy. +type AccessControlPolicySpecArgs struct { + // AccessControlPolicyAPIKey configure an APIKey control policy. + ApiKey AccessControlPolicySpecApiKeyPtrInput `pulumi:"apiKey"` + // AccessControlPolicyBasicAuth holds the HTTP basic authentication configuration. + BasicAuth AccessControlPolicySpecBasicAuthPtrInput `pulumi:"basicAuth"` + // AccessControlPolicyJWT configures a JWT access control policy. + Jwt AccessControlPolicySpecJwtPtrInput `pulumi:"jwt"` + // AccessControlOAuthIntro configures an OAuth 2.0 Token Introspection access control policy. + OAuthIntro AccessControlPolicySpecOAuthIntroPtrInput `pulumi:"oAuthIntro"` + // AccessControlPolicyOIDC holds the OIDC authentication configuration. + Oidc AccessControlPolicySpecOidcPtrInput `pulumi:"oidc"` + // AccessControlPolicyOIDCGoogle holds the Google OIDC authentication configuration. + OidcGoogle AccessControlPolicySpecOidcGooglePtrInput `pulumi:"oidcGoogle"` +} + +// Defaults sets the appropriate defaults for AccessControlPolicySpecArgs +func (val *AccessControlPolicySpecArgs) Defaults() *AccessControlPolicySpecArgs { + if val == nil { + return nil + } + tmp := *val + + return &tmp +} +func (AccessControlPolicySpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpec)(nil)).Elem() +} + +func (i AccessControlPolicySpecArgs) ToAccessControlPolicySpecOutput() AccessControlPolicySpecOutput { + return i.ToAccessControlPolicySpecOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecArgs) ToAccessControlPolicySpecOutputWithContext(ctx context.Context) AccessControlPolicySpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOutput) +} + +func (i AccessControlPolicySpecArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpec] { + return pulumix.Output[AccessControlPolicySpec]{ + OutputState: i.ToAccessControlPolicySpecOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicySpecArgs) ToAccessControlPolicySpecPtrOutput() AccessControlPolicySpecPtrOutput { + return i.ToAccessControlPolicySpecPtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecArgs) ToAccessControlPolicySpecPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOutput).ToAccessControlPolicySpecPtrOutputWithContext(ctx) +} + +// AccessControlPolicySpecPtrInput is an input type that accepts AccessControlPolicySpecArgs, AccessControlPolicySpecPtr and AccessControlPolicySpecPtrOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecPtrInput` via: +// +// AccessControlPolicySpecArgs{...} +// +// or: +// +// nil +type AccessControlPolicySpecPtrInput interface { + pulumi.Input + + ToAccessControlPolicySpecPtrOutput() AccessControlPolicySpecPtrOutput + ToAccessControlPolicySpecPtrOutputWithContext(context.Context) AccessControlPolicySpecPtrOutput +} + +type accessControlPolicySpecPtrType AccessControlPolicySpecArgs + +func AccessControlPolicySpecPtr(v *AccessControlPolicySpecArgs) AccessControlPolicySpecPtrInput { + return (*accessControlPolicySpecPtrType)(v) +} + +func (*accessControlPolicySpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpec)(nil)).Elem() +} + +func (i *accessControlPolicySpecPtrType) ToAccessControlPolicySpecPtrOutput() AccessControlPolicySpecPtrOutput { + return i.ToAccessControlPolicySpecPtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicySpecPtrType) ToAccessControlPolicySpecPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecPtrOutput) +} + +func (i *accessControlPolicySpecPtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpec] { + return pulumix.Output[*AccessControlPolicySpec]{ + OutputState: i.ToAccessControlPolicySpecPtrOutputWithContext(ctx).OutputState, + } +} + +// AccessControlPolicySpec configures an access control policy. +type AccessControlPolicySpecOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpec)(nil)).Elem() +} + +func (o AccessControlPolicySpecOutput) ToAccessControlPolicySpecOutput() AccessControlPolicySpecOutput { + return o +} + +func (o AccessControlPolicySpecOutput) ToAccessControlPolicySpecOutputWithContext(ctx context.Context) AccessControlPolicySpecOutput { + return o +} + +func (o AccessControlPolicySpecOutput) ToAccessControlPolicySpecPtrOutput() AccessControlPolicySpecPtrOutput { + return o.ToAccessControlPolicySpecPtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicySpecOutput) ToAccessControlPolicySpecPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicySpec) *AccessControlPolicySpec { + return &v + }).(AccessControlPolicySpecPtrOutput) +} + +func (o AccessControlPolicySpecOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpec] { + return pulumix.Output[AccessControlPolicySpec]{ + OutputState: o.OutputState, + } +} + +// AccessControlPolicyAPIKey configure an APIKey control policy. +func (o AccessControlPolicySpecOutput) ApiKey() AccessControlPolicySpecApiKeyPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpec) *AccessControlPolicySpecApiKey { return v.ApiKey }).(AccessControlPolicySpecApiKeyPtrOutput) +} + +// AccessControlPolicyBasicAuth holds the HTTP basic authentication configuration. +func (o AccessControlPolicySpecOutput) BasicAuth() AccessControlPolicySpecBasicAuthPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpec) *AccessControlPolicySpecBasicAuth { return v.BasicAuth }).(AccessControlPolicySpecBasicAuthPtrOutput) +} + +// AccessControlPolicyJWT configures a JWT access control policy. +func (o AccessControlPolicySpecOutput) Jwt() AccessControlPolicySpecJwtPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpec) *AccessControlPolicySpecJwt { return v.Jwt }).(AccessControlPolicySpecJwtPtrOutput) +} + +// AccessControlOAuthIntro configures an OAuth 2.0 Token Introspection access control policy. +func (o AccessControlPolicySpecOutput) OAuthIntro() AccessControlPolicySpecOAuthIntroPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpec) *AccessControlPolicySpecOAuthIntro { return v.OAuthIntro }).(AccessControlPolicySpecOAuthIntroPtrOutput) +} + +// AccessControlPolicyOIDC holds the OIDC authentication configuration. +func (o AccessControlPolicySpecOutput) Oidc() AccessControlPolicySpecOidcPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpec) *AccessControlPolicySpecOidc { return v.Oidc }).(AccessControlPolicySpecOidcPtrOutput) +} + +// AccessControlPolicyOIDCGoogle holds the Google OIDC authentication configuration. +func (o AccessControlPolicySpecOutput) OidcGoogle() AccessControlPolicySpecOidcGooglePtrOutput { + return o.ApplyT(func(v AccessControlPolicySpec) *AccessControlPolicySpecOidcGoogle { return v.OidcGoogle }).(AccessControlPolicySpecOidcGooglePtrOutput) +} + +type AccessControlPolicySpecPtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpec)(nil)).Elem() +} + +func (o AccessControlPolicySpecPtrOutput) ToAccessControlPolicySpecPtrOutput() AccessControlPolicySpecPtrOutput { + return o +} + +func (o AccessControlPolicySpecPtrOutput) ToAccessControlPolicySpecPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecPtrOutput { + return o +} + +func (o AccessControlPolicySpecPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpec] { + return pulumix.Output[*AccessControlPolicySpec]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecPtrOutput) Elem() AccessControlPolicySpecOutput { + return o.ApplyT(func(v *AccessControlPolicySpec) AccessControlPolicySpec { + if v != nil { + return *v + } + var ret AccessControlPolicySpec + return ret + }).(AccessControlPolicySpecOutput) +} + +// AccessControlPolicyAPIKey configure an APIKey control policy. +func (o AccessControlPolicySpecPtrOutput) ApiKey() AccessControlPolicySpecApiKeyPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpec) *AccessControlPolicySpecApiKey { + if v == nil { + return nil + } + return v.ApiKey + }).(AccessControlPolicySpecApiKeyPtrOutput) +} + +// AccessControlPolicyBasicAuth holds the HTTP basic authentication configuration. +func (o AccessControlPolicySpecPtrOutput) BasicAuth() AccessControlPolicySpecBasicAuthPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpec) *AccessControlPolicySpecBasicAuth { + if v == nil { + return nil + } + return v.BasicAuth + }).(AccessControlPolicySpecBasicAuthPtrOutput) +} + +// AccessControlPolicyJWT configures a JWT access control policy. +func (o AccessControlPolicySpecPtrOutput) Jwt() AccessControlPolicySpecJwtPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpec) *AccessControlPolicySpecJwt { + if v == nil { + return nil + } + return v.Jwt + }).(AccessControlPolicySpecJwtPtrOutput) +} + +// AccessControlOAuthIntro configures an OAuth 2.0 Token Introspection access control policy. +func (o AccessControlPolicySpecPtrOutput) OAuthIntro() AccessControlPolicySpecOAuthIntroPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpec) *AccessControlPolicySpecOAuthIntro { + if v == nil { + return nil + } + return v.OAuthIntro + }).(AccessControlPolicySpecOAuthIntroPtrOutput) +} + +// AccessControlPolicyOIDC holds the OIDC authentication configuration. +func (o AccessControlPolicySpecPtrOutput) Oidc() AccessControlPolicySpecOidcPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpec) *AccessControlPolicySpecOidc { + if v == nil { + return nil + } + return v.Oidc + }).(AccessControlPolicySpecOidcPtrOutput) +} + +// AccessControlPolicyOIDCGoogle holds the Google OIDC authentication configuration. +func (o AccessControlPolicySpecPtrOutput) OidcGoogle() AccessControlPolicySpecOidcGooglePtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpec) *AccessControlPolicySpecOidcGoogle { + if v == nil { + return nil + } + return v.OidcGoogle + }).(AccessControlPolicySpecOidcGooglePtrOutput) +} + +// AccessControlPolicyAPIKey configure an APIKey control policy. +type AccessControlPolicySpecApiKey struct { + // ForwardHeaders instructs the middleware to forward key metadata as header values upon successful authentication. + ForwardHeaders map[string]string `pulumi:"forwardHeaders"` + // KeySource defines how to extract API keys from requests. + KeySource AccessControlPolicySpecApiKeyKeySource `pulumi:"keySource"` + // Keys define the set of authorized keys to access a protected resource. + Keys []AccessControlPolicySpecApiKeyKeys `pulumi:"keys"` +} + +// AccessControlPolicySpecApiKeyInput is an input type that accepts AccessControlPolicySpecApiKeyArgs and AccessControlPolicySpecApiKeyOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecApiKeyInput` via: +// +// AccessControlPolicySpecApiKeyArgs{...} +type AccessControlPolicySpecApiKeyInput interface { + pulumi.Input + + ToAccessControlPolicySpecApiKeyOutput() AccessControlPolicySpecApiKeyOutput + ToAccessControlPolicySpecApiKeyOutputWithContext(context.Context) AccessControlPolicySpecApiKeyOutput +} + +// AccessControlPolicyAPIKey configure an APIKey control policy. +type AccessControlPolicySpecApiKeyArgs struct { + // ForwardHeaders instructs the middleware to forward key metadata as header values upon successful authentication. + ForwardHeaders pulumi.StringMapInput `pulumi:"forwardHeaders"` + // KeySource defines how to extract API keys from requests. + KeySource AccessControlPolicySpecApiKeyKeySourceInput `pulumi:"keySource"` + // Keys define the set of authorized keys to access a protected resource. + Keys AccessControlPolicySpecApiKeyKeysArrayInput `pulumi:"keys"` +} + +func (AccessControlPolicySpecApiKeyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecApiKey)(nil)).Elem() +} + +func (i AccessControlPolicySpecApiKeyArgs) ToAccessControlPolicySpecApiKeyOutput() AccessControlPolicySpecApiKeyOutput { + return i.ToAccessControlPolicySpecApiKeyOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecApiKeyArgs) ToAccessControlPolicySpecApiKeyOutputWithContext(ctx context.Context) AccessControlPolicySpecApiKeyOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecApiKeyOutput) +} + +func (i AccessControlPolicySpecApiKeyArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecApiKey] { + return pulumix.Output[AccessControlPolicySpecApiKey]{ + OutputState: i.ToAccessControlPolicySpecApiKeyOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicySpecApiKeyArgs) ToAccessControlPolicySpecApiKeyPtrOutput() AccessControlPolicySpecApiKeyPtrOutput { + return i.ToAccessControlPolicySpecApiKeyPtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecApiKeyArgs) ToAccessControlPolicySpecApiKeyPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecApiKeyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecApiKeyOutput).ToAccessControlPolicySpecApiKeyPtrOutputWithContext(ctx) +} + +// AccessControlPolicySpecApiKeyPtrInput is an input type that accepts AccessControlPolicySpecApiKeyArgs, AccessControlPolicySpecApiKeyPtr and AccessControlPolicySpecApiKeyPtrOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecApiKeyPtrInput` via: +// +// AccessControlPolicySpecApiKeyArgs{...} +// +// or: +// +// nil +type AccessControlPolicySpecApiKeyPtrInput interface { + pulumi.Input + + ToAccessControlPolicySpecApiKeyPtrOutput() AccessControlPolicySpecApiKeyPtrOutput + ToAccessControlPolicySpecApiKeyPtrOutputWithContext(context.Context) AccessControlPolicySpecApiKeyPtrOutput +} + +type accessControlPolicySpecApiKeyPtrType AccessControlPolicySpecApiKeyArgs + +func AccessControlPolicySpecApiKeyPtr(v *AccessControlPolicySpecApiKeyArgs) AccessControlPolicySpecApiKeyPtrInput { + return (*accessControlPolicySpecApiKeyPtrType)(v) +} + +func (*accessControlPolicySpecApiKeyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecApiKey)(nil)).Elem() +} + +func (i *accessControlPolicySpecApiKeyPtrType) ToAccessControlPolicySpecApiKeyPtrOutput() AccessControlPolicySpecApiKeyPtrOutput { + return i.ToAccessControlPolicySpecApiKeyPtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicySpecApiKeyPtrType) ToAccessControlPolicySpecApiKeyPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecApiKeyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecApiKeyPtrOutput) +} + +func (i *accessControlPolicySpecApiKeyPtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecApiKey] { + return pulumix.Output[*AccessControlPolicySpecApiKey]{ + OutputState: i.ToAccessControlPolicySpecApiKeyPtrOutputWithContext(ctx).OutputState, + } +} + +// AccessControlPolicyAPIKey configure an APIKey control policy. +type AccessControlPolicySpecApiKeyOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecApiKeyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecApiKey)(nil)).Elem() +} + +func (o AccessControlPolicySpecApiKeyOutput) ToAccessControlPolicySpecApiKeyOutput() AccessControlPolicySpecApiKeyOutput { + return o +} + +func (o AccessControlPolicySpecApiKeyOutput) ToAccessControlPolicySpecApiKeyOutputWithContext(ctx context.Context) AccessControlPolicySpecApiKeyOutput { + return o +} + +func (o AccessControlPolicySpecApiKeyOutput) ToAccessControlPolicySpecApiKeyPtrOutput() AccessControlPolicySpecApiKeyPtrOutput { + return o.ToAccessControlPolicySpecApiKeyPtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicySpecApiKeyOutput) ToAccessControlPolicySpecApiKeyPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecApiKeyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicySpecApiKey) *AccessControlPolicySpecApiKey { + return &v + }).(AccessControlPolicySpecApiKeyPtrOutput) +} + +func (o AccessControlPolicySpecApiKeyOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecApiKey] { + return pulumix.Output[AccessControlPolicySpecApiKey]{ + OutputState: o.OutputState, + } +} + +// ForwardHeaders instructs the middleware to forward key metadata as header values upon successful authentication. +func (o AccessControlPolicySpecApiKeyOutput) ForwardHeaders() pulumi.StringMapOutput { + return o.ApplyT(func(v AccessControlPolicySpecApiKey) map[string]string { return v.ForwardHeaders }).(pulumi.StringMapOutput) +} + +// KeySource defines how to extract API keys from requests. +func (o AccessControlPolicySpecApiKeyOutput) KeySource() AccessControlPolicySpecApiKeyKeySourceOutput { + return o.ApplyT(func(v AccessControlPolicySpecApiKey) AccessControlPolicySpecApiKeyKeySource { return v.KeySource }).(AccessControlPolicySpecApiKeyKeySourceOutput) +} + +// Keys define the set of authorized keys to access a protected resource. +func (o AccessControlPolicySpecApiKeyOutput) Keys() AccessControlPolicySpecApiKeyKeysArrayOutput { + return o.ApplyT(func(v AccessControlPolicySpecApiKey) []AccessControlPolicySpecApiKeyKeys { return v.Keys }).(AccessControlPolicySpecApiKeyKeysArrayOutput) +} + +type AccessControlPolicySpecApiKeyPtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecApiKeyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecApiKey)(nil)).Elem() +} + +func (o AccessControlPolicySpecApiKeyPtrOutput) ToAccessControlPolicySpecApiKeyPtrOutput() AccessControlPolicySpecApiKeyPtrOutput { + return o +} + +func (o AccessControlPolicySpecApiKeyPtrOutput) ToAccessControlPolicySpecApiKeyPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecApiKeyPtrOutput { + return o +} + +func (o AccessControlPolicySpecApiKeyPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecApiKey] { + return pulumix.Output[*AccessControlPolicySpecApiKey]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecApiKeyPtrOutput) Elem() AccessControlPolicySpecApiKeyOutput { + return o.ApplyT(func(v *AccessControlPolicySpecApiKey) AccessControlPolicySpecApiKey { + if v != nil { + return *v + } + var ret AccessControlPolicySpecApiKey + return ret + }).(AccessControlPolicySpecApiKeyOutput) +} + +// ForwardHeaders instructs the middleware to forward key metadata as header values upon successful authentication. +func (o AccessControlPolicySpecApiKeyPtrOutput) ForwardHeaders() pulumi.StringMapOutput { + return o.ApplyT(func(v *AccessControlPolicySpecApiKey) map[string]string { + if v == nil { + return nil + } + return v.ForwardHeaders + }).(pulumi.StringMapOutput) +} + +// KeySource defines how to extract API keys from requests. +func (o AccessControlPolicySpecApiKeyPtrOutput) KeySource() AccessControlPolicySpecApiKeyKeySourcePtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecApiKey) *AccessControlPolicySpecApiKeyKeySource { + if v == nil { + return nil + } + return &v.KeySource + }).(AccessControlPolicySpecApiKeyKeySourcePtrOutput) +} + +// Keys define the set of authorized keys to access a protected resource. +func (o AccessControlPolicySpecApiKeyPtrOutput) Keys() AccessControlPolicySpecApiKeyKeysArrayOutput { + return o.ApplyT(func(v *AccessControlPolicySpecApiKey) []AccessControlPolicySpecApiKeyKeys { + if v == nil { + return nil + } + return v.Keys + }).(AccessControlPolicySpecApiKeyKeysArrayOutput) +} + +// ForwardHeaders instructs the middleware to forward key metadata as header values upon successful authentication. +type AccessControlPolicySpecApiKeyForwardHeaders struct { +} + +// KeySource defines how to extract API keys from requests. +type AccessControlPolicySpecApiKeyKeySource struct { + // Cookie is the name of a cookie. + Cookie *string `pulumi:"cookie"` + // Header is the name of a header. + Header *string `pulumi:"header"` + // HeaderAuthScheme sets an optional auth scheme when Header is set to "Authorization". + // If set, this scheme is removed from the token, and all requests not including it are dropped. + HeaderAuthScheme *string `pulumi:"headerAuthScheme"` + // Query is the name of a query parameter. + Query *string `pulumi:"query"` +} + +// AccessControlPolicySpecApiKeyKeySourceInput is an input type that accepts AccessControlPolicySpecApiKeyKeySourceArgs and AccessControlPolicySpecApiKeyKeySourceOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecApiKeyKeySourceInput` via: +// +// AccessControlPolicySpecApiKeyKeySourceArgs{...} +type AccessControlPolicySpecApiKeyKeySourceInput interface { + pulumi.Input + + ToAccessControlPolicySpecApiKeyKeySourceOutput() AccessControlPolicySpecApiKeyKeySourceOutput + ToAccessControlPolicySpecApiKeyKeySourceOutputWithContext(context.Context) AccessControlPolicySpecApiKeyKeySourceOutput +} + +// KeySource defines how to extract API keys from requests. +type AccessControlPolicySpecApiKeyKeySourceArgs struct { + // Cookie is the name of a cookie. + Cookie pulumi.StringPtrInput `pulumi:"cookie"` + // Header is the name of a header. + Header pulumi.StringPtrInput `pulumi:"header"` + // HeaderAuthScheme sets an optional auth scheme when Header is set to "Authorization". + // If set, this scheme is removed from the token, and all requests not including it are dropped. + HeaderAuthScheme pulumi.StringPtrInput `pulumi:"headerAuthScheme"` + // Query is the name of a query parameter. + Query pulumi.StringPtrInput `pulumi:"query"` +} + +func (AccessControlPolicySpecApiKeyKeySourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecApiKeyKeySource)(nil)).Elem() +} + +func (i AccessControlPolicySpecApiKeyKeySourceArgs) ToAccessControlPolicySpecApiKeyKeySourceOutput() AccessControlPolicySpecApiKeyKeySourceOutput { + return i.ToAccessControlPolicySpecApiKeyKeySourceOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecApiKeyKeySourceArgs) ToAccessControlPolicySpecApiKeyKeySourceOutputWithContext(ctx context.Context) AccessControlPolicySpecApiKeyKeySourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecApiKeyKeySourceOutput) +} + +func (i AccessControlPolicySpecApiKeyKeySourceArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecApiKeyKeySource] { + return pulumix.Output[AccessControlPolicySpecApiKeyKeySource]{ + OutputState: i.ToAccessControlPolicySpecApiKeyKeySourceOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicySpecApiKeyKeySourceArgs) ToAccessControlPolicySpecApiKeyKeySourcePtrOutput() AccessControlPolicySpecApiKeyKeySourcePtrOutput { + return i.ToAccessControlPolicySpecApiKeyKeySourcePtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecApiKeyKeySourceArgs) ToAccessControlPolicySpecApiKeyKeySourcePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecApiKeyKeySourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecApiKeyKeySourceOutput).ToAccessControlPolicySpecApiKeyKeySourcePtrOutputWithContext(ctx) +} + +// AccessControlPolicySpecApiKeyKeySourcePtrInput is an input type that accepts AccessControlPolicySpecApiKeyKeySourceArgs, AccessControlPolicySpecApiKeyKeySourcePtr and AccessControlPolicySpecApiKeyKeySourcePtrOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecApiKeyKeySourcePtrInput` via: +// +// AccessControlPolicySpecApiKeyKeySourceArgs{...} +// +// or: +// +// nil +type AccessControlPolicySpecApiKeyKeySourcePtrInput interface { + pulumi.Input + + ToAccessControlPolicySpecApiKeyKeySourcePtrOutput() AccessControlPolicySpecApiKeyKeySourcePtrOutput + ToAccessControlPolicySpecApiKeyKeySourcePtrOutputWithContext(context.Context) AccessControlPolicySpecApiKeyKeySourcePtrOutput +} + +type accessControlPolicySpecApiKeyKeySourcePtrType AccessControlPolicySpecApiKeyKeySourceArgs + +func AccessControlPolicySpecApiKeyKeySourcePtr(v *AccessControlPolicySpecApiKeyKeySourceArgs) AccessControlPolicySpecApiKeyKeySourcePtrInput { + return (*accessControlPolicySpecApiKeyKeySourcePtrType)(v) +} + +func (*accessControlPolicySpecApiKeyKeySourcePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecApiKeyKeySource)(nil)).Elem() +} + +func (i *accessControlPolicySpecApiKeyKeySourcePtrType) ToAccessControlPolicySpecApiKeyKeySourcePtrOutput() AccessControlPolicySpecApiKeyKeySourcePtrOutput { + return i.ToAccessControlPolicySpecApiKeyKeySourcePtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicySpecApiKeyKeySourcePtrType) ToAccessControlPolicySpecApiKeyKeySourcePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecApiKeyKeySourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecApiKeyKeySourcePtrOutput) +} + +func (i *accessControlPolicySpecApiKeyKeySourcePtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecApiKeyKeySource] { + return pulumix.Output[*AccessControlPolicySpecApiKeyKeySource]{ + OutputState: i.ToAccessControlPolicySpecApiKeyKeySourcePtrOutputWithContext(ctx).OutputState, + } +} + +// KeySource defines how to extract API keys from requests. +type AccessControlPolicySpecApiKeyKeySourceOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecApiKeyKeySourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecApiKeyKeySource)(nil)).Elem() +} + +func (o AccessControlPolicySpecApiKeyKeySourceOutput) ToAccessControlPolicySpecApiKeyKeySourceOutput() AccessControlPolicySpecApiKeyKeySourceOutput { + return o +} + +func (o AccessControlPolicySpecApiKeyKeySourceOutput) ToAccessControlPolicySpecApiKeyKeySourceOutputWithContext(ctx context.Context) AccessControlPolicySpecApiKeyKeySourceOutput { + return o +} + +func (o AccessControlPolicySpecApiKeyKeySourceOutput) ToAccessControlPolicySpecApiKeyKeySourcePtrOutput() AccessControlPolicySpecApiKeyKeySourcePtrOutput { + return o.ToAccessControlPolicySpecApiKeyKeySourcePtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicySpecApiKeyKeySourceOutput) ToAccessControlPolicySpecApiKeyKeySourcePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecApiKeyKeySourcePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicySpecApiKeyKeySource) *AccessControlPolicySpecApiKeyKeySource { + return &v + }).(AccessControlPolicySpecApiKeyKeySourcePtrOutput) +} + +func (o AccessControlPolicySpecApiKeyKeySourceOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecApiKeyKeySource] { + return pulumix.Output[AccessControlPolicySpecApiKeyKeySource]{ + OutputState: o.OutputState, + } +} + +// Cookie is the name of a cookie. +func (o AccessControlPolicySpecApiKeyKeySourceOutput) Cookie() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecApiKeyKeySource) *string { return v.Cookie }).(pulumi.StringPtrOutput) +} + +// Header is the name of a header. +func (o AccessControlPolicySpecApiKeyKeySourceOutput) Header() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecApiKeyKeySource) *string { return v.Header }).(pulumi.StringPtrOutput) +} + +// HeaderAuthScheme sets an optional auth scheme when Header is set to "Authorization". +// If set, this scheme is removed from the token, and all requests not including it are dropped. +func (o AccessControlPolicySpecApiKeyKeySourceOutput) HeaderAuthScheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecApiKeyKeySource) *string { return v.HeaderAuthScheme }).(pulumi.StringPtrOutput) +} + +// Query is the name of a query parameter. +func (o AccessControlPolicySpecApiKeyKeySourceOutput) Query() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecApiKeyKeySource) *string { return v.Query }).(pulumi.StringPtrOutput) +} + +type AccessControlPolicySpecApiKeyKeySourcePtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecApiKeyKeySourcePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecApiKeyKeySource)(nil)).Elem() +} + +func (o AccessControlPolicySpecApiKeyKeySourcePtrOutput) ToAccessControlPolicySpecApiKeyKeySourcePtrOutput() AccessControlPolicySpecApiKeyKeySourcePtrOutput { + return o +} + +func (o AccessControlPolicySpecApiKeyKeySourcePtrOutput) ToAccessControlPolicySpecApiKeyKeySourcePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecApiKeyKeySourcePtrOutput { + return o +} + +func (o AccessControlPolicySpecApiKeyKeySourcePtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecApiKeyKeySource] { + return pulumix.Output[*AccessControlPolicySpecApiKeyKeySource]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecApiKeyKeySourcePtrOutput) Elem() AccessControlPolicySpecApiKeyKeySourceOutput { + return o.ApplyT(func(v *AccessControlPolicySpecApiKeyKeySource) AccessControlPolicySpecApiKeyKeySource { + if v != nil { + return *v + } + var ret AccessControlPolicySpecApiKeyKeySource + return ret + }).(AccessControlPolicySpecApiKeyKeySourceOutput) +} + +// Cookie is the name of a cookie. +func (o AccessControlPolicySpecApiKeyKeySourcePtrOutput) Cookie() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecApiKeyKeySource) *string { + if v == nil { + return nil + } + return v.Cookie + }).(pulumi.StringPtrOutput) +} + +// Header is the name of a header. +func (o AccessControlPolicySpecApiKeyKeySourcePtrOutput) Header() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecApiKeyKeySource) *string { + if v == nil { + return nil + } + return v.Header + }).(pulumi.StringPtrOutput) +} + +// HeaderAuthScheme sets an optional auth scheme when Header is set to "Authorization". +// If set, this scheme is removed from the token, and all requests not including it are dropped. +func (o AccessControlPolicySpecApiKeyKeySourcePtrOutput) HeaderAuthScheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecApiKeyKeySource) *string { + if v == nil { + return nil + } + return v.HeaderAuthScheme + }).(pulumi.StringPtrOutput) +} + +// Query is the name of a query parameter. +func (o AccessControlPolicySpecApiKeyKeySourcePtrOutput) Query() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecApiKeyKeySource) *string { + if v == nil { + return nil + } + return v.Query + }).(pulumi.StringPtrOutput) +} + +// AccessControlPolicyAPIKeyKey defines an API key. +type AccessControlPolicySpecApiKeyKeys struct { + // ID is the unique identifier of the key. + Id string `pulumi:"id"` + // Metadata holds arbitrary metadata for this key, can be used by ForwardHeaders. + Metadata map[string]string `pulumi:"metadata"` + // Value is the SHAKE-256 hash (using 64 bytes) of the API key. + Value string `pulumi:"value"` +} + +// AccessControlPolicySpecApiKeyKeysInput is an input type that accepts AccessControlPolicySpecApiKeyKeysArgs and AccessControlPolicySpecApiKeyKeysOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecApiKeyKeysInput` via: +// +// AccessControlPolicySpecApiKeyKeysArgs{...} +type AccessControlPolicySpecApiKeyKeysInput interface { + pulumi.Input + + ToAccessControlPolicySpecApiKeyKeysOutput() AccessControlPolicySpecApiKeyKeysOutput + ToAccessControlPolicySpecApiKeyKeysOutputWithContext(context.Context) AccessControlPolicySpecApiKeyKeysOutput +} + +// AccessControlPolicyAPIKeyKey defines an API key. +type AccessControlPolicySpecApiKeyKeysArgs struct { + // ID is the unique identifier of the key. + Id pulumi.StringInput `pulumi:"id"` + // Metadata holds arbitrary metadata for this key, can be used by ForwardHeaders. + Metadata pulumi.StringMapInput `pulumi:"metadata"` + // Value is the SHAKE-256 hash (using 64 bytes) of the API key. + Value pulumi.StringInput `pulumi:"value"` +} + +func (AccessControlPolicySpecApiKeyKeysArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecApiKeyKeys)(nil)).Elem() +} + +func (i AccessControlPolicySpecApiKeyKeysArgs) ToAccessControlPolicySpecApiKeyKeysOutput() AccessControlPolicySpecApiKeyKeysOutput { + return i.ToAccessControlPolicySpecApiKeyKeysOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecApiKeyKeysArgs) ToAccessControlPolicySpecApiKeyKeysOutputWithContext(ctx context.Context) AccessControlPolicySpecApiKeyKeysOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecApiKeyKeysOutput) +} + +func (i AccessControlPolicySpecApiKeyKeysArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecApiKeyKeys] { + return pulumix.Output[AccessControlPolicySpecApiKeyKeys]{ + OutputState: i.ToAccessControlPolicySpecApiKeyKeysOutputWithContext(ctx).OutputState, + } +} + +// AccessControlPolicySpecApiKeyKeysArrayInput is an input type that accepts AccessControlPolicySpecApiKeyKeysArray and AccessControlPolicySpecApiKeyKeysArrayOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecApiKeyKeysArrayInput` via: +// +// AccessControlPolicySpecApiKeyKeysArray{ AccessControlPolicySpecApiKeyKeysArgs{...} } +type AccessControlPolicySpecApiKeyKeysArrayInput interface { + pulumi.Input + + ToAccessControlPolicySpecApiKeyKeysArrayOutput() AccessControlPolicySpecApiKeyKeysArrayOutput + ToAccessControlPolicySpecApiKeyKeysArrayOutputWithContext(context.Context) AccessControlPolicySpecApiKeyKeysArrayOutput +} + +type AccessControlPolicySpecApiKeyKeysArray []AccessControlPolicySpecApiKeyKeysInput + +func (AccessControlPolicySpecApiKeyKeysArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AccessControlPolicySpecApiKeyKeys)(nil)).Elem() +} + +func (i AccessControlPolicySpecApiKeyKeysArray) ToAccessControlPolicySpecApiKeyKeysArrayOutput() AccessControlPolicySpecApiKeyKeysArrayOutput { + return i.ToAccessControlPolicySpecApiKeyKeysArrayOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecApiKeyKeysArray) ToAccessControlPolicySpecApiKeyKeysArrayOutputWithContext(ctx context.Context) AccessControlPolicySpecApiKeyKeysArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecApiKeyKeysArrayOutput) +} + +func (i AccessControlPolicySpecApiKeyKeysArray) ToOutput(ctx context.Context) pulumix.Output[[]AccessControlPolicySpecApiKeyKeys] { + return pulumix.Output[[]AccessControlPolicySpecApiKeyKeys]{ + OutputState: i.ToAccessControlPolicySpecApiKeyKeysArrayOutputWithContext(ctx).OutputState, + } +} + +// AccessControlPolicyAPIKeyKey defines an API key. +type AccessControlPolicySpecApiKeyKeysOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecApiKeyKeysOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecApiKeyKeys)(nil)).Elem() +} + +func (o AccessControlPolicySpecApiKeyKeysOutput) ToAccessControlPolicySpecApiKeyKeysOutput() AccessControlPolicySpecApiKeyKeysOutput { + return o +} + +func (o AccessControlPolicySpecApiKeyKeysOutput) ToAccessControlPolicySpecApiKeyKeysOutputWithContext(ctx context.Context) AccessControlPolicySpecApiKeyKeysOutput { + return o +} + +func (o AccessControlPolicySpecApiKeyKeysOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecApiKeyKeys] { + return pulumix.Output[AccessControlPolicySpecApiKeyKeys]{ + OutputState: o.OutputState, + } +} + +// ID is the unique identifier of the key. +func (o AccessControlPolicySpecApiKeyKeysOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v AccessControlPolicySpecApiKeyKeys) string { return v.Id }).(pulumi.StringOutput) +} + +// Metadata holds arbitrary metadata for this key, can be used by ForwardHeaders. +func (o AccessControlPolicySpecApiKeyKeysOutput) Metadata() pulumi.StringMapOutput { + return o.ApplyT(func(v AccessControlPolicySpecApiKeyKeys) map[string]string { return v.Metadata }).(pulumi.StringMapOutput) +} + +// Value is the SHAKE-256 hash (using 64 bytes) of the API key. +func (o AccessControlPolicySpecApiKeyKeysOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v AccessControlPolicySpecApiKeyKeys) string { return v.Value }).(pulumi.StringOutput) +} + +type AccessControlPolicySpecApiKeyKeysArrayOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecApiKeyKeysArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AccessControlPolicySpecApiKeyKeys)(nil)).Elem() +} + +func (o AccessControlPolicySpecApiKeyKeysArrayOutput) ToAccessControlPolicySpecApiKeyKeysArrayOutput() AccessControlPolicySpecApiKeyKeysArrayOutput { + return o +} + +func (o AccessControlPolicySpecApiKeyKeysArrayOutput) ToAccessControlPolicySpecApiKeyKeysArrayOutputWithContext(ctx context.Context) AccessControlPolicySpecApiKeyKeysArrayOutput { + return o +} + +func (o AccessControlPolicySpecApiKeyKeysArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]AccessControlPolicySpecApiKeyKeys] { + return pulumix.Output[[]AccessControlPolicySpecApiKeyKeys]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecApiKeyKeysArrayOutput) Index(i pulumi.IntInput) AccessControlPolicySpecApiKeyKeysOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AccessControlPolicySpecApiKeyKeys { + return vs[0].([]AccessControlPolicySpecApiKeyKeys)[vs[1].(int)] + }).(AccessControlPolicySpecApiKeyKeysOutput) +} + +// Metadata holds arbitrary metadata for this key, can be used by ForwardHeaders. +type AccessControlPolicySpecApiKeyKeysMetadata struct { +} + +// AccessControlPolicyBasicAuth holds the HTTP basic authentication configuration. +type AccessControlPolicySpecBasicAuth struct { + ForwardUsernameHeader *string `pulumi:"forwardUsernameHeader"` + Realm *string `pulumi:"realm"` + StripAuthorizationHeader *bool `pulumi:"stripAuthorizationHeader"` + Users []string `pulumi:"users"` +} + +// AccessControlPolicySpecBasicAuthInput is an input type that accepts AccessControlPolicySpecBasicAuthArgs and AccessControlPolicySpecBasicAuthOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecBasicAuthInput` via: +// +// AccessControlPolicySpecBasicAuthArgs{...} +type AccessControlPolicySpecBasicAuthInput interface { + pulumi.Input + + ToAccessControlPolicySpecBasicAuthOutput() AccessControlPolicySpecBasicAuthOutput + ToAccessControlPolicySpecBasicAuthOutputWithContext(context.Context) AccessControlPolicySpecBasicAuthOutput +} + +// AccessControlPolicyBasicAuth holds the HTTP basic authentication configuration. +type AccessControlPolicySpecBasicAuthArgs struct { + ForwardUsernameHeader pulumi.StringPtrInput `pulumi:"forwardUsernameHeader"` + Realm pulumi.StringPtrInput `pulumi:"realm"` + StripAuthorizationHeader pulumi.BoolPtrInput `pulumi:"stripAuthorizationHeader"` + Users pulumi.StringArrayInput `pulumi:"users"` +} + +func (AccessControlPolicySpecBasicAuthArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecBasicAuth)(nil)).Elem() +} + +func (i AccessControlPolicySpecBasicAuthArgs) ToAccessControlPolicySpecBasicAuthOutput() AccessControlPolicySpecBasicAuthOutput { + return i.ToAccessControlPolicySpecBasicAuthOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecBasicAuthArgs) ToAccessControlPolicySpecBasicAuthOutputWithContext(ctx context.Context) AccessControlPolicySpecBasicAuthOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecBasicAuthOutput) +} + +func (i AccessControlPolicySpecBasicAuthArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecBasicAuth] { + return pulumix.Output[AccessControlPolicySpecBasicAuth]{ + OutputState: i.ToAccessControlPolicySpecBasicAuthOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicySpecBasicAuthArgs) ToAccessControlPolicySpecBasicAuthPtrOutput() AccessControlPolicySpecBasicAuthPtrOutput { + return i.ToAccessControlPolicySpecBasicAuthPtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecBasicAuthArgs) ToAccessControlPolicySpecBasicAuthPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecBasicAuthPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecBasicAuthOutput).ToAccessControlPolicySpecBasicAuthPtrOutputWithContext(ctx) +} + +// AccessControlPolicySpecBasicAuthPtrInput is an input type that accepts AccessControlPolicySpecBasicAuthArgs, AccessControlPolicySpecBasicAuthPtr and AccessControlPolicySpecBasicAuthPtrOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecBasicAuthPtrInput` via: +// +// AccessControlPolicySpecBasicAuthArgs{...} +// +// or: +// +// nil +type AccessControlPolicySpecBasicAuthPtrInput interface { + pulumi.Input + + ToAccessControlPolicySpecBasicAuthPtrOutput() AccessControlPolicySpecBasicAuthPtrOutput + ToAccessControlPolicySpecBasicAuthPtrOutputWithContext(context.Context) AccessControlPolicySpecBasicAuthPtrOutput +} + +type accessControlPolicySpecBasicAuthPtrType AccessControlPolicySpecBasicAuthArgs + +func AccessControlPolicySpecBasicAuthPtr(v *AccessControlPolicySpecBasicAuthArgs) AccessControlPolicySpecBasicAuthPtrInput { + return (*accessControlPolicySpecBasicAuthPtrType)(v) +} + +func (*accessControlPolicySpecBasicAuthPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecBasicAuth)(nil)).Elem() +} + +func (i *accessControlPolicySpecBasicAuthPtrType) ToAccessControlPolicySpecBasicAuthPtrOutput() AccessControlPolicySpecBasicAuthPtrOutput { + return i.ToAccessControlPolicySpecBasicAuthPtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicySpecBasicAuthPtrType) ToAccessControlPolicySpecBasicAuthPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecBasicAuthPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecBasicAuthPtrOutput) +} + +func (i *accessControlPolicySpecBasicAuthPtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecBasicAuth] { + return pulumix.Output[*AccessControlPolicySpecBasicAuth]{ + OutputState: i.ToAccessControlPolicySpecBasicAuthPtrOutputWithContext(ctx).OutputState, + } +} + +// AccessControlPolicyBasicAuth holds the HTTP basic authentication configuration. +type AccessControlPolicySpecBasicAuthOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecBasicAuthOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecBasicAuth)(nil)).Elem() +} + +func (o AccessControlPolicySpecBasicAuthOutput) ToAccessControlPolicySpecBasicAuthOutput() AccessControlPolicySpecBasicAuthOutput { + return o +} + +func (o AccessControlPolicySpecBasicAuthOutput) ToAccessControlPolicySpecBasicAuthOutputWithContext(ctx context.Context) AccessControlPolicySpecBasicAuthOutput { + return o +} + +func (o AccessControlPolicySpecBasicAuthOutput) ToAccessControlPolicySpecBasicAuthPtrOutput() AccessControlPolicySpecBasicAuthPtrOutput { + return o.ToAccessControlPolicySpecBasicAuthPtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicySpecBasicAuthOutput) ToAccessControlPolicySpecBasicAuthPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecBasicAuthPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicySpecBasicAuth) *AccessControlPolicySpecBasicAuth { + return &v + }).(AccessControlPolicySpecBasicAuthPtrOutput) +} + +func (o AccessControlPolicySpecBasicAuthOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecBasicAuth] { + return pulumix.Output[AccessControlPolicySpecBasicAuth]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecBasicAuthOutput) ForwardUsernameHeader() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecBasicAuth) *string { return v.ForwardUsernameHeader }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecBasicAuthOutput) Realm() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecBasicAuth) *string { return v.Realm }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecBasicAuthOutput) StripAuthorizationHeader() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecBasicAuth) *bool { return v.StripAuthorizationHeader }).(pulumi.BoolPtrOutput) +} + +func (o AccessControlPolicySpecBasicAuthOutput) Users() pulumi.StringArrayOutput { + return o.ApplyT(func(v AccessControlPolicySpecBasicAuth) []string { return v.Users }).(pulumi.StringArrayOutput) +} + +type AccessControlPolicySpecBasicAuthPtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecBasicAuthPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecBasicAuth)(nil)).Elem() +} + +func (o AccessControlPolicySpecBasicAuthPtrOutput) ToAccessControlPolicySpecBasicAuthPtrOutput() AccessControlPolicySpecBasicAuthPtrOutput { + return o +} + +func (o AccessControlPolicySpecBasicAuthPtrOutput) ToAccessControlPolicySpecBasicAuthPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecBasicAuthPtrOutput { + return o +} + +func (o AccessControlPolicySpecBasicAuthPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecBasicAuth] { + return pulumix.Output[*AccessControlPolicySpecBasicAuth]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecBasicAuthPtrOutput) Elem() AccessControlPolicySpecBasicAuthOutput { + return o.ApplyT(func(v *AccessControlPolicySpecBasicAuth) AccessControlPolicySpecBasicAuth { + if v != nil { + return *v + } + var ret AccessControlPolicySpecBasicAuth + return ret + }).(AccessControlPolicySpecBasicAuthOutput) +} + +func (o AccessControlPolicySpecBasicAuthPtrOutput) ForwardUsernameHeader() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecBasicAuth) *string { + if v == nil { + return nil + } + return v.ForwardUsernameHeader + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecBasicAuthPtrOutput) Realm() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecBasicAuth) *string { + if v == nil { + return nil + } + return v.Realm + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecBasicAuthPtrOutput) StripAuthorizationHeader() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecBasicAuth) *bool { + if v == nil { + return nil + } + return v.StripAuthorizationHeader + }).(pulumi.BoolPtrOutput) +} + +func (o AccessControlPolicySpecBasicAuthPtrOutput) Users() pulumi.StringArrayOutput { + return o.ApplyT(func(v *AccessControlPolicySpecBasicAuth) []string { + if v == nil { + return nil + } + return v.Users + }).(pulumi.StringArrayOutput) +} + +// AccessControlPolicyJWT configures a JWT access control policy. +type AccessControlPolicySpecJwt struct { + Claims *string `pulumi:"claims"` + ForwardHeaders map[string]string `pulumi:"forwardHeaders"` + JwksFile *string `pulumi:"jwksFile"` + JwksUrl *string `pulumi:"jwksUrl"` + PublicKey *string `pulumi:"publicKey"` + SigningSecret *string `pulumi:"signingSecret"` + SigningSecretBase64Encoded *bool `pulumi:"signingSecretBase64Encoded"` + StripAuthorizationHeader *bool `pulumi:"stripAuthorizationHeader"` + TokenQueryKey *string `pulumi:"tokenQueryKey"` +} + +// AccessControlPolicySpecJwtInput is an input type that accepts AccessControlPolicySpecJwtArgs and AccessControlPolicySpecJwtOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecJwtInput` via: +// +// AccessControlPolicySpecJwtArgs{...} +type AccessControlPolicySpecJwtInput interface { + pulumi.Input + + ToAccessControlPolicySpecJwtOutput() AccessControlPolicySpecJwtOutput + ToAccessControlPolicySpecJwtOutputWithContext(context.Context) AccessControlPolicySpecJwtOutput +} + +// AccessControlPolicyJWT configures a JWT access control policy. +type AccessControlPolicySpecJwtArgs struct { + Claims pulumi.StringPtrInput `pulumi:"claims"` + ForwardHeaders pulumi.StringMapInput `pulumi:"forwardHeaders"` + JwksFile pulumi.StringPtrInput `pulumi:"jwksFile"` + JwksUrl pulumi.StringPtrInput `pulumi:"jwksUrl"` + PublicKey pulumi.StringPtrInput `pulumi:"publicKey"` + SigningSecret pulumi.StringPtrInput `pulumi:"signingSecret"` + SigningSecretBase64Encoded pulumi.BoolPtrInput `pulumi:"signingSecretBase64Encoded"` + StripAuthorizationHeader pulumi.BoolPtrInput `pulumi:"stripAuthorizationHeader"` + TokenQueryKey pulumi.StringPtrInput `pulumi:"tokenQueryKey"` +} + +func (AccessControlPolicySpecJwtArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecJwt)(nil)).Elem() +} + +func (i AccessControlPolicySpecJwtArgs) ToAccessControlPolicySpecJwtOutput() AccessControlPolicySpecJwtOutput { + return i.ToAccessControlPolicySpecJwtOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecJwtArgs) ToAccessControlPolicySpecJwtOutputWithContext(ctx context.Context) AccessControlPolicySpecJwtOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecJwtOutput) +} + +func (i AccessControlPolicySpecJwtArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecJwt] { + return pulumix.Output[AccessControlPolicySpecJwt]{ + OutputState: i.ToAccessControlPolicySpecJwtOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicySpecJwtArgs) ToAccessControlPolicySpecJwtPtrOutput() AccessControlPolicySpecJwtPtrOutput { + return i.ToAccessControlPolicySpecJwtPtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecJwtArgs) ToAccessControlPolicySpecJwtPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecJwtPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecJwtOutput).ToAccessControlPolicySpecJwtPtrOutputWithContext(ctx) +} + +// AccessControlPolicySpecJwtPtrInput is an input type that accepts AccessControlPolicySpecJwtArgs, AccessControlPolicySpecJwtPtr and AccessControlPolicySpecJwtPtrOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecJwtPtrInput` via: +// +// AccessControlPolicySpecJwtArgs{...} +// +// or: +// +// nil +type AccessControlPolicySpecJwtPtrInput interface { + pulumi.Input + + ToAccessControlPolicySpecJwtPtrOutput() AccessControlPolicySpecJwtPtrOutput + ToAccessControlPolicySpecJwtPtrOutputWithContext(context.Context) AccessControlPolicySpecJwtPtrOutput +} + +type accessControlPolicySpecJwtPtrType AccessControlPolicySpecJwtArgs + +func AccessControlPolicySpecJwtPtr(v *AccessControlPolicySpecJwtArgs) AccessControlPolicySpecJwtPtrInput { + return (*accessControlPolicySpecJwtPtrType)(v) +} + +func (*accessControlPolicySpecJwtPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecJwt)(nil)).Elem() +} + +func (i *accessControlPolicySpecJwtPtrType) ToAccessControlPolicySpecJwtPtrOutput() AccessControlPolicySpecJwtPtrOutput { + return i.ToAccessControlPolicySpecJwtPtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicySpecJwtPtrType) ToAccessControlPolicySpecJwtPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecJwtPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecJwtPtrOutput) +} + +func (i *accessControlPolicySpecJwtPtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecJwt] { + return pulumix.Output[*AccessControlPolicySpecJwt]{ + OutputState: i.ToAccessControlPolicySpecJwtPtrOutputWithContext(ctx).OutputState, + } +} + +// AccessControlPolicyJWT configures a JWT access control policy. +type AccessControlPolicySpecJwtOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecJwtOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecJwt)(nil)).Elem() +} + +func (o AccessControlPolicySpecJwtOutput) ToAccessControlPolicySpecJwtOutput() AccessControlPolicySpecJwtOutput { + return o +} + +func (o AccessControlPolicySpecJwtOutput) ToAccessControlPolicySpecJwtOutputWithContext(ctx context.Context) AccessControlPolicySpecJwtOutput { + return o +} + +func (o AccessControlPolicySpecJwtOutput) ToAccessControlPolicySpecJwtPtrOutput() AccessControlPolicySpecJwtPtrOutput { + return o.ToAccessControlPolicySpecJwtPtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicySpecJwtOutput) ToAccessControlPolicySpecJwtPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecJwtPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicySpecJwt) *AccessControlPolicySpecJwt { + return &v + }).(AccessControlPolicySpecJwtPtrOutput) +} + +func (o AccessControlPolicySpecJwtOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecJwt] { + return pulumix.Output[AccessControlPolicySpecJwt]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecJwtOutput) Claims() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecJwt) *string { return v.Claims }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecJwtOutput) ForwardHeaders() pulumi.StringMapOutput { + return o.ApplyT(func(v AccessControlPolicySpecJwt) map[string]string { return v.ForwardHeaders }).(pulumi.StringMapOutput) +} + +func (o AccessControlPolicySpecJwtOutput) JwksFile() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecJwt) *string { return v.JwksFile }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecJwtOutput) JwksUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecJwt) *string { return v.JwksUrl }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecJwtOutput) PublicKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecJwt) *string { return v.PublicKey }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecJwtOutput) SigningSecret() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecJwt) *string { return v.SigningSecret }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecJwtOutput) SigningSecretBase64Encoded() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecJwt) *bool { return v.SigningSecretBase64Encoded }).(pulumi.BoolPtrOutput) +} + +func (o AccessControlPolicySpecJwtOutput) StripAuthorizationHeader() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecJwt) *bool { return v.StripAuthorizationHeader }).(pulumi.BoolPtrOutput) +} + +func (o AccessControlPolicySpecJwtOutput) TokenQueryKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecJwt) *string { return v.TokenQueryKey }).(pulumi.StringPtrOutput) +} + +type AccessControlPolicySpecJwtPtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecJwtPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecJwt)(nil)).Elem() +} + +func (o AccessControlPolicySpecJwtPtrOutput) ToAccessControlPolicySpecJwtPtrOutput() AccessControlPolicySpecJwtPtrOutput { + return o +} + +func (o AccessControlPolicySpecJwtPtrOutput) ToAccessControlPolicySpecJwtPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecJwtPtrOutput { + return o +} + +func (o AccessControlPolicySpecJwtPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecJwt] { + return pulumix.Output[*AccessControlPolicySpecJwt]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecJwtPtrOutput) Elem() AccessControlPolicySpecJwtOutput { + return o.ApplyT(func(v *AccessControlPolicySpecJwt) AccessControlPolicySpecJwt { + if v != nil { + return *v + } + var ret AccessControlPolicySpecJwt + return ret + }).(AccessControlPolicySpecJwtOutput) +} + +func (o AccessControlPolicySpecJwtPtrOutput) Claims() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecJwt) *string { + if v == nil { + return nil + } + return v.Claims + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecJwtPtrOutput) ForwardHeaders() pulumi.StringMapOutput { + return o.ApplyT(func(v *AccessControlPolicySpecJwt) map[string]string { + if v == nil { + return nil + } + return v.ForwardHeaders + }).(pulumi.StringMapOutput) +} + +func (o AccessControlPolicySpecJwtPtrOutput) JwksFile() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecJwt) *string { + if v == nil { + return nil + } + return v.JwksFile + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecJwtPtrOutput) JwksUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecJwt) *string { + if v == nil { + return nil + } + return v.JwksUrl + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecJwtPtrOutput) PublicKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecJwt) *string { + if v == nil { + return nil + } + return v.PublicKey + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecJwtPtrOutput) SigningSecret() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecJwt) *string { + if v == nil { + return nil + } + return v.SigningSecret + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecJwtPtrOutput) SigningSecretBase64Encoded() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecJwt) *bool { + if v == nil { + return nil + } + return v.SigningSecretBase64Encoded + }).(pulumi.BoolPtrOutput) +} + +func (o AccessControlPolicySpecJwtPtrOutput) StripAuthorizationHeader() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecJwt) *bool { + if v == nil { + return nil + } + return v.StripAuthorizationHeader + }).(pulumi.BoolPtrOutput) +} + +func (o AccessControlPolicySpecJwtPtrOutput) TokenQueryKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecJwt) *string { + if v == nil { + return nil + } + return v.TokenQueryKey + }).(pulumi.StringPtrOutput) +} + +type AccessControlPolicySpecJwtForwardHeaders struct { +} + +// AccessControlOAuthIntro configures an OAuth 2.0 Token Introspection access control policy. +type AccessControlPolicySpecOAuthIntro struct { + Claims *string `pulumi:"claims"` + // AccessControlOAuthIntroClientConfig configures the OAuth 2.0 client for issuing token introspection requests. + ClientConfig AccessControlPolicySpecOAuthIntroClientConfig `pulumi:"clientConfig"` + ForwardHeaders map[string]string `pulumi:"forwardHeaders"` + // TokenSource describes how to extract tokens from HTTP requests. + // If multiple sources are set, the order is the following: header > query > cookie. + TokenSource AccessControlPolicySpecOAuthIntroTokenSource `pulumi:"tokenSource"` +} + +// Defaults sets the appropriate defaults for AccessControlPolicySpecOAuthIntro +func (val *AccessControlPolicySpecOAuthIntro) Defaults() *AccessControlPolicySpecOAuthIntro { + if val == nil { + return nil + } + tmp := *val + tmp.ClientConfig = *tmp.ClientConfig.Defaults() + + return &tmp +} + +// AccessControlPolicySpecOAuthIntroInput is an input type that accepts AccessControlPolicySpecOAuthIntroArgs and AccessControlPolicySpecOAuthIntroOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOAuthIntroInput` via: +// +// AccessControlPolicySpecOAuthIntroArgs{...} +type AccessControlPolicySpecOAuthIntroInput interface { + pulumi.Input + + ToAccessControlPolicySpecOAuthIntroOutput() AccessControlPolicySpecOAuthIntroOutput + ToAccessControlPolicySpecOAuthIntroOutputWithContext(context.Context) AccessControlPolicySpecOAuthIntroOutput +} + +// AccessControlOAuthIntro configures an OAuth 2.0 Token Introspection access control policy. +type AccessControlPolicySpecOAuthIntroArgs struct { + Claims pulumi.StringPtrInput `pulumi:"claims"` + // AccessControlOAuthIntroClientConfig configures the OAuth 2.0 client for issuing token introspection requests. + ClientConfig AccessControlPolicySpecOAuthIntroClientConfigInput `pulumi:"clientConfig"` + ForwardHeaders pulumi.StringMapInput `pulumi:"forwardHeaders"` + // TokenSource describes how to extract tokens from HTTP requests. + // If multiple sources are set, the order is the following: header > query > cookie. + TokenSource AccessControlPolicySpecOAuthIntroTokenSourceInput `pulumi:"tokenSource"` +} + +// Defaults sets the appropriate defaults for AccessControlPolicySpecOAuthIntroArgs +func (val *AccessControlPolicySpecOAuthIntroArgs) Defaults() *AccessControlPolicySpecOAuthIntroArgs { + if val == nil { + return nil + } + tmp := *val + + return &tmp +} +func (AccessControlPolicySpecOAuthIntroArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOAuthIntro)(nil)).Elem() +} + +func (i AccessControlPolicySpecOAuthIntroArgs) ToAccessControlPolicySpecOAuthIntroOutput() AccessControlPolicySpecOAuthIntroOutput { + return i.ToAccessControlPolicySpecOAuthIntroOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOAuthIntroArgs) ToAccessControlPolicySpecOAuthIntroOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOAuthIntroOutput) +} + +func (i AccessControlPolicySpecOAuthIntroArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOAuthIntro] { + return pulumix.Output[AccessControlPolicySpecOAuthIntro]{ + OutputState: i.ToAccessControlPolicySpecOAuthIntroOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicySpecOAuthIntroArgs) ToAccessControlPolicySpecOAuthIntroPtrOutput() AccessControlPolicySpecOAuthIntroPtrOutput { + return i.ToAccessControlPolicySpecOAuthIntroPtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOAuthIntroArgs) ToAccessControlPolicySpecOAuthIntroPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOAuthIntroOutput).ToAccessControlPolicySpecOAuthIntroPtrOutputWithContext(ctx) +} + +// AccessControlPolicySpecOAuthIntroPtrInput is an input type that accepts AccessControlPolicySpecOAuthIntroArgs, AccessControlPolicySpecOAuthIntroPtr and AccessControlPolicySpecOAuthIntroPtrOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOAuthIntroPtrInput` via: +// +// AccessControlPolicySpecOAuthIntroArgs{...} +// +// or: +// +// nil +type AccessControlPolicySpecOAuthIntroPtrInput interface { + pulumi.Input + + ToAccessControlPolicySpecOAuthIntroPtrOutput() AccessControlPolicySpecOAuthIntroPtrOutput + ToAccessControlPolicySpecOAuthIntroPtrOutputWithContext(context.Context) AccessControlPolicySpecOAuthIntroPtrOutput +} + +type accessControlPolicySpecOAuthIntroPtrType AccessControlPolicySpecOAuthIntroArgs + +func AccessControlPolicySpecOAuthIntroPtr(v *AccessControlPolicySpecOAuthIntroArgs) AccessControlPolicySpecOAuthIntroPtrInput { + return (*accessControlPolicySpecOAuthIntroPtrType)(v) +} + +func (*accessControlPolicySpecOAuthIntroPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOAuthIntro)(nil)).Elem() +} + +func (i *accessControlPolicySpecOAuthIntroPtrType) ToAccessControlPolicySpecOAuthIntroPtrOutput() AccessControlPolicySpecOAuthIntroPtrOutput { + return i.ToAccessControlPolicySpecOAuthIntroPtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicySpecOAuthIntroPtrType) ToAccessControlPolicySpecOAuthIntroPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOAuthIntroPtrOutput) +} + +func (i *accessControlPolicySpecOAuthIntroPtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOAuthIntro] { + return pulumix.Output[*AccessControlPolicySpecOAuthIntro]{ + OutputState: i.ToAccessControlPolicySpecOAuthIntroPtrOutputWithContext(ctx).OutputState, + } +} + +// AccessControlOAuthIntro configures an OAuth 2.0 Token Introspection access control policy. +type AccessControlPolicySpecOAuthIntroOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOAuthIntroOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOAuthIntro)(nil)).Elem() +} + +func (o AccessControlPolicySpecOAuthIntroOutput) ToAccessControlPolicySpecOAuthIntroOutput() AccessControlPolicySpecOAuthIntroOutput { + return o +} + +func (o AccessControlPolicySpecOAuthIntroOutput) ToAccessControlPolicySpecOAuthIntroOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroOutput { + return o +} + +func (o AccessControlPolicySpecOAuthIntroOutput) ToAccessControlPolicySpecOAuthIntroPtrOutput() AccessControlPolicySpecOAuthIntroPtrOutput { + return o.ToAccessControlPolicySpecOAuthIntroPtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicySpecOAuthIntroOutput) ToAccessControlPolicySpecOAuthIntroPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicySpecOAuthIntro) *AccessControlPolicySpecOAuthIntro { + return &v + }).(AccessControlPolicySpecOAuthIntroPtrOutput) +} + +func (o AccessControlPolicySpecOAuthIntroOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOAuthIntro] { + return pulumix.Output[AccessControlPolicySpecOAuthIntro]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOAuthIntroOutput) Claims() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOAuthIntro) *string { return v.Claims }).(pulumi.StringPtrOutput) +} + +// AccessControlOAuthIntroClientConfig configures the OAuth 2.0 client for issuing token introspection requests. +func (o AccessControlPolicySpecOAuthIntroOutput) ClientConfig() AccessControlPolicySpecOAuthIntroClientConfigOutput { + return o.ApplyT(func(v AccessControlPolicySpecOAuthIntro) AccessControlPolicySpecOAuthIntroClientConfig { + return v.ClientConfig + }).(AccessControlPolicySpecOAuthIntroClientConfigOutput) +} + +func (o AccessControlPolicySpecOAuthIntroOutput) ForwardHeaders() pulumi.StringMapOutput { + return o.ApplyT(func(v AccessControlPolicySpecOAuthIntro) map[string]string { return v.ForwardHeaders }).(pulumi.StringMapOutput) +} + +// TokenSource describes how to extract tokens from HTTP requests. +// If multiple sources are set, the order is the following: header > query > cookie. +func (o AccessControlPolicySpecOAuthIntroOutput) TokenSource() AccessControlPolicySpecOAuthIntroTokenSourceOutput { + return o.ApplyT(func(v AccessControlPolicySpecOAuthIntro) AccessControlPolicySpecOAuthIntroTokenSource { + return v.TokenSource + }).(AccessControlPolicySpecOAuthIntroTokenSourceOutput) +} + +type AccessControlPolicySpecOAuthIntroPtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOAuthIntroPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOAuthIntro)(nil)).Elem() +} + +func (o AccessControlPolicySpecOAuthIntroPtrOutput) ToAccessControlPolicySpecOAuthIntroPtrOutput() AccessControlPolicySpecOAuthIntroPtrOutput { + return o +} + +func (o AccessControlPolicySpecOAuthIntroPtrOutput) ToAccessControlPolicySpecOAuthIntroPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroPtrOutput { + return o +} + +func (o AccessControlPolicySpecOAuthIntroPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOAuthIntro] { + return pulumix.Output[*AccessControlPolicySpecOAuthIntro]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOAuthIntroPtrOutput) Elem() AccessControlPolicySpecOAuthIntroOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntro) AccessControlPolicySpecOAuthIntro { + if v != nil { + return *v + } + var ret AccessControlPolicySpecOAuthIntro + return ret + }).(AccessControlPolicySpecOAuthIntroOutput) +} + +func (o AccessControlPolicySpecOAuthIntroPtrOutput) Claims() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntro) *string { + if v == nil { + return nil + } + return v.Claims + }).(pulumi.StringPtrOutput) +} + +// AccessControlOAuthIntroClientConfig configures the OAuth 2.0 client for issuing token introspection requests. +func (o AccessControlPolicySpecOAuthIntroPtrOutput) ClientConfig() AccessControlPolicySpecOAuthIntroClientConfigPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntro) *AccessControlPolicySpecOAuthIntroClientConfig { + if v == nil { + return nil + } + return &v.ClientConfig + }).(AccessControlPolicySpecOAuthIntroClientConfigPtrOutput) +} + +func (o AccessControlPolicySpecOAuthIntroPtrOutput) ForwardHeaders() pulumi.StringMapOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntro) map[string]string { + if v == nil { + return nil + } + return v.ForwardHeaders + }).(pulumi.StringMapOutput) +} + +// TokenSource describes how to extract tokens from HTTP requests. +// If multiple sources are set, the order is the following: header > query > cookie. +func (o AccessControlPolicySpecOAuthIntroPtrOutput) TokenSource() AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntro) *AccessControlPolicySpecOAuthIntroTokenSource { + if v == nil { + return nil + } + return &v.TokenSource + }).(AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput) +} + +// AccessControlOAuthIntroClientConfig configures the OAuth 2.0 client for issuing token introspection requests. +type AccessControlPolicySpecOAuthIntroClientConfig struct { + // Headers to set when sending requests to the Authorization Server. + Headers map[string]string `pulumi:"headers"` + // MaxRetries defines the number of retries for introspection requests. + MaxRetries *int `pulumi:"maxRetries"` + // TimeoutSeconds configures the maximum amount of seconds to wait before giving up on requests. + TimeoutSeconds *int `pulumi:"timeoutSeconds"` + // TLS configures TLS communication with the Authorization Server. + Tls *AccessControlPolicySpecOAuthIntroClientConfigTls `pulumi:"tls"` + // TokenTypeHint is a hint to pass to the Authorization Server. + // See https://tools.ietf.org/html/rfc7662#section-2.1 for more information. + TokenTypeHint *string `pulumi:"tokenTypeHint"` + // URL of the Authorization Server. + Url string `pulumi:"url"` +} + +// Defaults sets the appropriate defaults for AccessControlPolicySpecOAuthIntroClientConfig +func (val *AccessControlPolicySpecOAuthIntroClientConfig) Defaults() *AccessControlPolicySpecOAuthIntroClientConfig { + if val == nil { + return nil + } + tmp := *val + if tmp.MaxRetries == nil { + maxRetries_ := 3 + tmp.MaxRetries = &maxRetries_ + } + if tmp.TimeoutSeconds == nil { + timeoutSeconds_ := 5 + tmp.TimeoutSeconds = &timeoutSeconds_ + } + return &tmp +} + +// AccessControlPolicySpecOAuthIntroClientConfigInput is an input type that accepts AccessControlPolicySpecOAuthIntroClientConfigArgs and AccessControlPolicySpecOAuthIntroClientConfigOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOAuthIntroClientConfigInput` via: +// +// AccessControlPolicySpecOAuthIntroClientConfigArgs{...} +type AccessControlPolicySpecOAuthIntroClientConfigInput interface { + pulumi.Input + + ToAccessControlPolicySpecOAuthIntroClientConfigOutput() AccessControlPolicySpecOAuthIntroClientConfigOutput + ToAccessControlPolicySpecOAuthIntroClientConfigOutputWithContext(context.Context) AccessControlPolicySpecOAuthIntroClientConfigOutput +} + +// AccessControlOAuthIntroClientConfig configures the OAuth 2.0 client for issuing token introspection requests. +type AccessControlPolicySpecOAuthIntroClientConfigArgs struct { + // Headers to set when sending requests to the Authorization Server. + Headers pulumi.StringMapInput `pulumi:"headers"` + // MaxRetries defines the number of retries for introspection requests. + MaxRetries pulumi.IntPtrInput `pulumi:"maxRetries"` + // TimeoutSeconds configures the maximum amount of seconds to wait before giving up on requests. + TimeoutSeconds pulumi.IntPtrInput `pulumi:"timeoutSeconds"` + // TLS configures TLS communication with the Authorization Server. + Tls AccessControlPolicySpecOAuthIntroClientConfigTlsPtrInput `pulumi:"tls"` + // TokenTypeHint is a hint to pass to the Authorization Server. + // See https://tools.ietf.org/html/rfc7662#section-2.1 for more information. + TokenTypeHint pulumi.StringPtrInput `pulumi:"tokenTypeHint"` + // URL of the Authorization Server. + Url pulumi.StringInput `pulumi:"url"` +} + +// Defaults sets the appropriate defaults for AccessControlPolicySpecOAuthIntroClientConfigArgs +func (val *AccessControlPolicySpecOAuthIntroClientConfigArgs) Defaults() *AccessControlPolicySpecOAuthIntroClientConfigArgs { + if val == nil { + return nil + } + tmp := *val + if tmp.MaxRetries == nil { + tmp.MaxRetries = pulumi.IntPtr(3) + } + if tmp.TimeoutSeconds == nil { + tmp.TimeoutSeconds = pulumi.IntPtr(5) + } + return &tmp +} +func (AccessControlPolicySpecOAuthIntroClientConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOAuthIntroClientConfig)(nil)).Elem() +} + +func (i AccessControlPolicySpecOAuthIntroClientConfigArgs) ToAccessControlPolicySpecOAuthIntroClientConfigOutput() AccessControlPolicySpecOAuthIntroClientConfigOutput { + return i.ToAccessControlPolicySpecOAuthIntroClientConfigOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOAuthIntroClientConfigArgs) ToAccessControlPolicySpecOAuthIntroClientConfigOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroClientConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOAuthIntroClientConfigOutput) +} + +func (i AccessControlPolicySpecOAuthIntroClientConfigArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOAuthIntroClientConfig] { + return pulumix.Output[AccessControlPolicySpecOAuthIntroClientConfig]{ + OutputState: i.ToAccessControlPolicySpecOAuthIntroClientConfigOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicySpecOAuthIntroClientConfigArgs) ToAccessControlPolicySpecOAuthIntroClientConfigPtrOutput() AccessControlPolicySpecOAuthIntroClientConfigPtrOutput { + return i.ToAccessControlPolicySpecOAuthIntroClientConfigPtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOAuthIntroClientConfigArgs) ToAccessControlPolicySpecOAuthIntroClientConfigPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroClientConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOAuthIntroClientConfigOutput).ToAccessControlPolicySpecOAuthIntroClientConfigPtrOutputWithContext(ctx) +} + +// AccessControlPolicySpecOAuthIntroClientConfigPtrInput is an input type that accepts AccessControlPolicySpecOAuthIntroClientConfigArgs, AccessControlPolicySpecOAuthIntroClientConfigPtr and AccessControlPolicySpecOAuthIntroClientConfigPtrOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOAuthIntroClientConfigPtrInput` via: +// +// AccessControlPolicySpecOAuthIntroClientConfigArgs{...} +// +// or: +// +// nil +type AccessControlPolicySpecOAuthIntroClientConfigPtrInput interface { + pulumi.Input + + ToAccessControlPolicySpecOAuthIntroClientConfigPtrOutput() AccessControlPolicySpecOAuthIntroClientConfigPtrOutput + ToAccessControlPolicySpecOAuthIntroClientConfigPtrOutputWithContext(context.Context) AccessControlPolicySpecOAuthIntroClientConfigPtrOutput +} + +type accessControlPolicySpecOAuthIntroClientConfigPtrType AccessControlPolicySpecOAuthIntroClientConfigArgs + +func AccessControlPolicySpecOAuthIntroClientConfigPtr(v *AccessControlPolicySpecOAuthIntroClientConfigArgs) AccessControlPolicySpecOAuthIntroClientConfigPtrInput { + return (*accessControlPolicySpecOAuthIntroClientConfigPtrType)(v) +} + +func (*accessControlPolicySpecOAuthIntroClientConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOAuthIntroClientConfig)(nil)).Elem() +} + +func (i *accessControlPolicySpecOAuthIntroClientConfigPtrType) ToAccessControlPolicySpecOAuthIntroClientConfigPtrOutput() AccessControlPolicySpecOAuthIntroClientConfigPtrOutput { + return i.ToAccessControlPolicySpecOAuthIntroClientConfigPtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicySpecOAuthIntroClientConfigPtrType) ToAccessControlPolicySpecOAuthIntroClientConfigPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroClientConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOAuthIntroClientConfigPtrOutput) +} + +func (i *accessControlPolicySpecOAuthIntroClientConfigPtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOAuthIntroClientConfig] { + return pulumix.Output[*AccessControlPolicySpecOAuthIntroClientConfig]{ + OutputState: i.ToAccessControlPolicySpecOAuthIntroClientConfigPtrOutputWithContext(ctx).OutputState, + } +} + +// AccessControlOAuthIntroClientConfig configures the OAuth 2.0 client for issuing token introspection requests. +type AccessControlPolicySpecOAuthIntroClientConfigOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOAuthIntroClientConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOAuthIntroClientConfig)(nil)).Elem() +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigOutput) ToAccessControlPolicySpecOAuthIntroClientConfigOutput() AccessControlPolicySpecOAuthIntroClientConfigOutput { + return o +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigOutput) ToAccessControlPolicySpecOAuthIntroClientConfigOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroClientConfigOutput { + return o +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigOutput) ToAccessControlPolicySpecOAuthIntroClientConfigPtrOutput() AccessControlPolicySpecOAuthIntroClientConfigPtrOutput { + return o.ToAccessControlPolicySpecOAuthIntroClientConfigPtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigOutput) ToAccessControlPolicySpecOAuthIntroClientConfigPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroClientConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicySpecOAuthIntroClientConfig) *AccessControlPolicySpecOAuthIntroClientConfig { + return &v + }).(AccessControlPolicySpecOAuthIntroClientConfigPtrOutput) +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOAuthIntroClientConfig] { + return pulumix.Output[AccessControlPolicySpecOAuthIntroClientConfig]{ + OutputState: o.OutputState, + } +} + +// Headers to set when sending requests to the Authorization Server. +func (o AccessControlPolicySpecOAuthIntroClientConfigOutput) Headers() pulumi.StringMapOutput { + return o.ApplyT(func(v AccessControlPolicySpecOAuthIntroClientConfig) map[string]string { return v.Headers }).(pulumi.StringMapOutput) +} + +// MaxRetries defines the number of retries for introspection requests. +func (o AccessControlPolicySpecOAuthIntroClientConfigOutput) MaxRetries() pulumi.IntPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOAuthIntroClientConfig) *int { return v.MaxRetries }).(pulumi.IntPtrOutput) +} + +// TimeoutSeconds configures the maximum amount of seconds to wait before giving up on requests. +func (o AccessControlPolicySpecOAuthIntroClientConfigOutput) TimeoutSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOAuthIntroClientConfig) *int { return v.TimeoutSeconds }).(pulumi.IntPtrOutput) +} + +// TLS configures TLS communication with the Authorization Server. +func (o AccessControlPolicySpecOAuthIntroClientConfigOutput) Tls() AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOAuthIntroClientConfig) *AccessControlPolicySpecOAuthIntroClientConfigTls { + return v.Tls + }).(AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput) +} + +// TokenTypeHint is a hint to pass to the Authorization Server. +// See https://tools.ietf.org/html/rfc7662#section-2.1 for more information. +func (o AccessControlPolicySpecOAuthIntroClientConfigOutput) TokenTypeHint() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOAuthIntroClientConfig) *string { return v.TokenTypeHint }).(pulumi.StringPtrOutput) +} + +// URL of the Authorization Server. +func (o AccessControlPolicySpecOAuthIntroClientConfigOutput) Url() pulumi.StringOutput { + return o.ApplyT(func(v AccessControlPolicySpecOAuthIntroClientConfig) string { return v.Url }).(pulumi.StringOutput) +} + +type AccessControlPolicySpecOAuthIntroClientConfigPtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOAuthIntroClientConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOAuthIntroClientConfig)(nil)).Elem() +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigPtrOutput) ToAccessControlPolicySpecOAuthIntroClientConfigPtrOutput() AccessControlPolicySpecOAuthIntroClientConfigPtrOutput { + return o +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigPtrOutput) ToAccessControlPolicySpecOAuthIntroClientConfigPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroClientConfigPtrOutput { + return o +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOAuthIntroClientConfig] { + return pulumix.Output[*AccessControlPolicySpecOAuthIntroClientConfig]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigPtrOutput) Elem() AccessControlPolicySpecOAuthIntroClientConfigOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntroClientConfig) AccessControlPolicySpecOAuthIntroClientConfig { + if v != nil { + return *v + } + var ret AccessControlPolicySpecOAuthIntroClientConfig + return ret + }).(AccessControlPolicySpecOAuthIntroClientConfigOutput) +} + +// Headers to set when sending requests to the Authorization Server. +func (o AccessControlPolicySpecOAuthIntroClientConfigPtrOutput) Headers() pulumi.StringMapOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntroClientConfig) map[string]string { + if v == nil { + return nil + } + return v.Headers + }).(pulumi.StringMapOutput) +} + +// MaxRetries defines the number of retries for introspection requests. +func (o AccessControlPolicySpecOAuthIntroClientConfigPtrOutput) MaxRetries() pulumi.IntPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntroClientConfig) *int { + if v == nil { + return nil + } + return v.MaxRetries + }).(pulumi.IntPtrOutput) +} + +// TimeoutSeconds configures the maximum amount of seconds to wait before giving up on requests. +func (o AccessControlPolicySpecOAuthIntroClientConfigPtrOutput) TimeoutSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntroClientConfig) *int { + if v == nil { + return nil + } + return v.TimeoutSeconds + }).(pulumi.IntPtrOutput) +} + +// TLS configures TLS communication with the Authorization Server. +func (o AccessControlPolicySpecOAuthIntroClientConfigPtrOutput) Tls() AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntroClientConfig) *AccessControlPolicySpecOAuthIntroClientConfigTls { + if v == nil { + return nil + } + return v.Tls + }).(AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput) +} + +// TokenTypeHint is a hint to pass to the Authorization Server. +// See https://tools.ietf.org/html/rfc7662#section-2.1 for more information. +func (o AccessControlPolicySpecOAuthIntroClientConfigPtrOutput) TokenTypeHint() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntroClientConfig) *string { + if v == nil { + return nil + } + return v.TokenTypeHint + }).(pulumi.StringPtrOutput) +} + +// URL of the Authorization Server. +func (o AccessControlPolicySpecOAuthIntroClientConfigPtrOutput) Url() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntroClientConfig) *string { + if v == nil { + return nil + } + return &v.Url + }).(pulumi.StringPtrOutput) +} + +// Headers to set when sending requests to the Authorization Server. +type AccessControlPolicySpecOAuthIntroClientConfigHeaders struct { +} + +// TLS configures TLS communication with the Authorization Server. +type AccessControlPolicySpecOAuthIntroClientConfigTls struct { + // CA sets the CA bundle used to sign the Authorization Server certificate. + Ca *string `pulumi:"ca"` + // InsecureSkipVerify skips the Authorization Server certificate validation. + // For testing purposes only, do not use in production. + InsecureSkipVerify *bool `pulumi:"insecureSkipVerify"` +} + +// AccessControlPolicySpecOAuthIntroClientConfigTlsInput is an input type that accepts AccessControlPolicySpecOAuthIntroClientConfigTlsArgs and AccessControlPolicySpecOAuthIntroClientConfigTlsOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOAuthIntroClientConfigTlsInput` via: +// +// AccessControlPolicySpecOAuthIntroClientConfigTlsArgs{...} +type AccessControlPolicySpecOAuthIntroClientConfigTlsInput interface { + pulumi.Input + + ToAccessControlPolicySpecOAuthIntroClientConfigTlsOutput() AccessControlPolicySpecOAuthIntroClientConfigTlsOutput + ToAccessControlPolicySpecOAuthIntroClientConfigTlsOutputWithContext(context.Context) AccessControlPolicySpecOAuthIntroClientConfigTlsOutput +} + +// TLS configures TLS communication with the Authorization Server. +type AccessControlPolicySpecOAuthIntroClientConfigTlsArgs struct { + // CA sets the CA bundle used to sign the Authorization Server certificate. + Ca pulumi.StringPtrInput `pulumi:"ca"` + // InsecureSkipVerify skips the Authorization Server certificate validation. + // For testing purposes only, do not use in production. + InsecureSkipVerify pulumi.BoolPtrInput `pulumi:"insecureSkipVerify"` +} + +func (AccessControlPolicySpecOAuthIntroClientConfigTlsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOAuthIntroClientConfigTls)(nil)).Elem() +} + +func (i AccessControlPolicySpecOAuthIntroClientConfigTlsArgs) ToAccessControlPolicySpecOAuthIntroClientConfigTlsOutput() AccessControlPolicySpecOAuthIntroClientConfigTlsOutput { + return i.ToAccessControlPolicySpecOAuthIntroClientConfigTlsOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOAuthIntroClientConfigTlsArgs) ToAccessControlPolicySpecOAuthIntroClientConfigTlsOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroClientConfigTlsOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOAuthIntroClientConfigTlsOutput) +} + +func (i AccessControlPolicySpecOAuthIntroClientConfigTlsArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOAuthIntroClientConfigTls] { + return pulumix.Output[AccessControlPolicySpecOAuthIntroClientConfigTls]{ + OutputState: i.ToAccessControlPolicySpecOAuthIntroClientConfigTlsOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicySpecOAuthIntroClientConfigTlsArgs) ToAccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput() AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput { + return i.ToAccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOAuthIntroClientConfigTlsArgs) ToAccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOAuthIntroClientConfigTlsOutput).ToAccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutputWithContext(ctx) +} + +// AccessControlPolicySpecOAuthIntroClientConfigTlsPtrInput is an input type that accepts AccessControlPolicySpecOAuthIntroClientConfigTlsArgs, AccessControlPolicySpecOAuthIntroClientConfigTlsPtr and AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOAuthIntroClientConfigTlsPtrInput` via: +// +// AccessControlPolicySpecOAuthIntroClientConfigTlsArgs{...} +// +// or: +// +// nil +type AccessControlPolicySpecOAuthIntroClientConfigTlsPtrInput interface { + pulumi.Input + + ToAccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput() AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput + ToAccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutputWithContext(context.Context) AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput +} + +type accessControlPolicySpecOAuthIntroClientConfigTlsPtrType AccessControlPolicySpecOAuthIntroClientConfigTlsArgs + +func AccessControlPolicySpecOAuthIntroClientConfigTlsPtr(v *AccessControlPolicySpecOAuthIntroClientConfigTlsArgs) AccessControlPolicySpecOAuthIntroClientConfigTlsPtrInput { + return (*accessControlPolicySpecOAuthIntroClientConfigTlsPtrType)(v) +} + +func (*accessControlPolicySpecOAuthIntroClientConfigTlsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOAuthIntroClientConfigTls)(nil)).Elem() +} + +func (i *accessControlPolicySpecOAuthIntroClientConfigTlsPtrType) ToAccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput() AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput { + return i.ToAccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicySpecOAuthIntroClientConfigTlsPtrType) ToAccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput) +} + +func (i *accessControlPolicySpecOAuthIntroClientConfigTlsPtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOAuthIntroClientConfigTls] { + return pulumix.Output[*AccessControlPolicySpecOAuthIntroClientConfigTls]{ + OutputState: i.ToAccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutputWithContext(ctx).OutputState, + } +} + +// TLS configures TLS communication with the Authorization Server. +type AccessControlPolicySpecOAuthIntroClientConfigTlsOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOAuthIntroClientConfigTlsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOAuthIntroClientConfigTls)(nil)).Elem() +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigTlsOutput) ToAccessControlPolicySpecOAuthIntroClientConfigTlsOutput() AccessControlPolicySpecOAuthIntroClientConfigTlsOutput { + return o +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigTlsOutput) ToAccessControlPolicySpecOAuthIntroClientConfigTlsOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroClientConfigTlsOutput { + return o +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigTlsOutput) ToAccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput() AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput { + return o.ToAccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigTlsOutput) ToAccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicySpecOAuthIntroClientConfigTls) *AccessControlPolicySpecOAuthIntroClientConfigTls { + return &v + }).(AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput) +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigTlsOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOAuthIntroClientConfigTls] { + return pulumix.Output[AccessControlPolicySpecOAuthIntroClientConfigTls]{ + OutputState: o.OutputState, + } +} + +// CA sets the CA bundle used to sign the Authorization Server certificate. +func (o AccessControlPolicySpecOAuthIntroClientConfigTlsOutput) Ca() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOAuthIntroClientConfigTls) *string { return v.Ca }).(pulumi.StringPtrOutput) +} + +// InsecureSkipVerify skips the Authorization Server certificate validation. +// For testing purposes only, do not use in production. +func (o AccessControlPolicySpecOAuthIntroClientConfigTlsOutput) InsecureSkipVerify() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOAuthIntroClientConfigTls) *bool { return v.InsecureSkipVerify }).(pulumi.BoolPtrOutput) +} + +type AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOAuthIntroClientConfigTls)(nil)).Elem() +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput) ToAccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput() AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput { + return o +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput) ToAccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput { + return o +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOAuthIntroClientConfigTls] { + return pulumix.Output[*AccessControlPolicySpecOAuthIntroClientConfigTls]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput) Elem() AccessControlPolicySpecOAuthIntroClientConfigTlsOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntroClientConfigTls) AccessControlPolicySpecOAuthIntroClientConfigTls { + if v != nil { + return *v + } + var ret AccessControlPolicySpecOAuthIntroClientConfigTls + return ret + }).(AccessControlPolicySpecOAuthIntroClientConfigTlsOutput) +} + +// CA sets the CA bundle used to sign the Authorization Server certificate. +func (o AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput) Ca() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntroClientConfigTls) *string { + if v == nil { + return nil + } + return v.Ca + }).(pulumi.StringPtrOutput) +} + +// InsecureSkipVerify skips the Authorization Server certificate validation. +// For testing purposes only, do not use in production. +func (o AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput) InsecureSkipVerify() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntroClientConfigTls) *bool { + if v == nil { + return nil + } + return v.InsecureSkipVerify + }).(pulumi.BoolPtrOutput) +} + +type AccessControlPolicySpecOAuthIntroForwardHeaders struct { +} + +// TokenSource describes how to extract tokens from HTTP requests. +// If multiple sources are set, the order is the following: header > query > cookie. +type AccessControlPolicySpecOAuthIntroTokenSource struct { + // Cookie is the name of a cookie. + Cookie *string `pulumi:"cookie"` + // Header is the name of a header. + Header *string `pulumi:"header"` + // HeaderAuthScheme sets an optional auth scheme when Header is set to "Authorization". + // If set, this scheme is removed from the token, and all requests not including it are dropped. + HeaderAuthScheme *string `pulumi:"headerAuthScheme"` + // Query is the name of a query parameter. + Query *string `pulumi:"query"` +} + +// AccessControlPolicySpecOAuthIntroTokenSourceInput is an input type that accepts AccessControlPolicySpecOAuthIntroTokenSourceArgs and AccessControlPolicySpecOAuthIntroTokenSourceOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOAuthIntroTokenSourceInput` via: +// +// AccessControlPolicySpecOAuthIntroTokenSourceArgs{...} +type AccessControlPolicySpecOAuthIntroTokenSourceInput interface { + pulumi.Input + + ToAccessControlPolicySpecOAuthIntroTokenSourceOutput() AccessControlPolicySpecOAuthIntroTokenSourceOutput + ToAccessControlPolicySpecOAuthIntroTokenSourceOutputWithContext(context.Context) AccessControlPolicySpecOAuthIntroTokenSourceOutput +} + +// TokenSource describes how to extract tokens from HTTP requests. +// If multiple sources are set, the order is the following: header > query > cookie. +type AccessControlPolicySpecOAuthIntroTokenSourceArgs struct { + // Cookie is the name of a cookie. + Cookie pulumi.StringPtrInput `pulumi:"cookie"` + // Header is the name of a header. + Header pulumi.StringPtrInput `pulumi:"header"` + // HeaderAuthScheme sets an optional auth scheme when Header is set to "Authorization". + // If set, this scheme is removed from the token, and all requests not including it are dropped. + HeaderAuthScheme pulumi.StringPtrInput `pulumi:"headerAuthScheme"` + // Query is the name of a query parameter. + Query pulumi.StringPtrInput `pulumi:"query"` +} + +func (AccessControlPolicySpecOAuthIntroTokenSourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOAuthIntroTokenSource)(nil)).Elem() +} + +func (i AccessControlPolicySpecOAuthIntroTokenSourceArgs) ToAccessControlPolicySpecOAuthIntroTokenSourceOutput() AccessControlPolicySpecOAuthIntroTokenSourceOutput { + return i.ToAccessControlPolicySpecOAuthIntroTokenSourceOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOAuthIntroTokenSourceArgs) ToAccessControlPolicySpecOAuthIntroTokenSourceOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroTokenSourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOAuthIntroTokenSourceOutput) +} + +func (i AccessControlPolicySpecOAuthIntroTokenSourceArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOAuthIntroTokenSource] { + return pulumix.Output[AccessControlPolicySpecOAuthIntroTokenSource]{ + OutputState: i.ToAccessControlPolicySpecOAuthIntroTokenSourceOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicySpecOAuthIntroTokenSourceArgs) ToAccessControlPolicySpecOAuthIntroTokenSourcePtrOutput() AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput { + return i.ToAccessControlPolicySpecOAuthIntroTokenSourcePtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOAuthIntroTokenSourceArgs) ToAccessControlPolicySpecOAuthIntroTokenSourcePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOAuthIntroTokenSourceOutput).ToAccessControlPolicySpecOAuthIntroTokenSourcePtrOutputWithContext(ctx) +} + +// AccessControlPolicySpecOAuthIntroTokenSourcePtrInput is an input type that accepts AccessControlPolicySpecOAuthIntroTokenSourceArgs, AccessControlPolicySpecOAuthIntroTokenSourcePtr and AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOAuthIntroTokenSourcePtrInput` via: +// +// AccessControlPolicySpecOAuthIntroTokenSourceArgs{...} +// +// or: +// +// nil +type AccessControlPolicySpecOAuthIntroTokenSourcePtrInput interface { + pulumi.Input + + ToAccessControlPolicySpecOAuthIntroTokenSourcePtrOutput() AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput + ToAccessControlPolicySpecOAuthIntroTokenSourcePtrOutputWithContext(context.Context) AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput +} + +type accessControlPolicySpecOAuthIntroTokenSourcePtrType AccessControlPolicySpecOAuthIntroTokenSourceArgs + +func AccessControlPolicySpecOAuthIntroTokenSourcePtr(v *AccessControlPolicySpecOAuthIntroTokenSourceArgs) AccessControlPolicySpecOAuthIntroTokenSourcePtrInput { + return (*accessControlPolicySpecOAuthIntroTokenSourcePtrType)(v) +} + +func (*accessControlPolicySpecOAuthIntroTokenSourcePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOAuthIntroTokenSource)(nil)).Elem() +} + +func (i *accessControlPolicySpecOAuthIntroTokenSourcePtrType) ToAccessControlPolicySpecOAuthIntroTokenSourcePtrOutput() AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput { + return i.ToAccessControlPolicySpecOAuthIntroTokenSourcePtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicySpecOAuthIntroTokenSourcePtrType) ToAccessControlPolicySpecOAuthIntroTokenSourcePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput) +} + +func (i *accessControlPolicySpecOAuthIntroTokenSourcePtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOAuthIntroTokenSource] { + return pulumix.Output[*AccessControlPolicySpecOAuthIntroTokenSource]{ + OutputState: i.ToAccessControlPolicySpecOAuthIntroTokenSourcePtrOutputWithContext(ctx).OutputState, + } +} + +// TokenSource describes how to extract tokens from HTTP requests. +// If multiple sources are set, the order is the following: header > query > cookie. +type AccessControlPolicySpecOAuthIntroTokenSourceOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOAuthIntroTokenSourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOAuthIntroTokenSource)(nil)).Elem() +} + +func (o AccessControlPolicySpecOAuthIntroTokenSourceOutput) ToAccessControlPolicySpecOAuthIntroTokenSourceOutput() AccessControlPolicySpecOAuthIntroTokenSourceOutput { + return o +} + +func (o AccessControlPolicySpecOAuthIntroTokenSourceOutput) ToAccessControlPolicySpecOAuthIntroTokenSourceOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroTokenSourceOutput { + return o +} + +func (o AccessControlPolicySpecOAuthIntroTokenSourceOutput) ToAccessControlPolicySpecOAuthIntroTokenSourcePtrOutput() AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput { + return o.ToAccessControlPolicySpecOAuthIntroTokenSourcePtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicySpecOAuthIntroTokenSourceOutput) ToAccessControlPolicySpecOAuthIntroTokenSourcePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicySpecOAuthIntroTokenSource) *AccessControlPolicySpecOAuthIntroTokenSource { + return &v + }).(AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput) +} + +func (o AccessControlPolicySpecOAuthIntroTokenSourceOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOAuthIntroTokenSource] { + return pulumix.Output[AccessControlPolicySpecOAuthIntroTokenSource]{ + OutputState: o.OutputState, + } +} + +// Cookie is the name of a cookie. +func (o AccessControlPolicySpecOAuthIntroTokenSourceOutput) Cookie() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOAuthIntroTokenSource) *string { return v.Cookie }).(pulumi.StringPtrOutput) +} + +// Header is the name of a header. +func (o AccessControlPolicySpecOAuthIntroTokenSourceOutput) Header() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOAuthIntroTokenSource) *string { return v.Header }).(pulumi.StringPtrOutput) +} + +// HeaderAuthScheme sets an optional auth scheme when Header is set to "Authorization". +// If set, this scheme is removed from the token, and all requests not including it are dropped. +func (o AccessControlPolicySpecOAuthIntroTokenSourceOutput) HeaderAuthScheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOAuthIntroTokenSource) *string { return v.HeaderAuthScheme }).(pulumi.StringPtrOutput) +} + +// Query is the name of a query parameter. +func (o AccessControlPolicySpecOAuthIntroTokenSourceOutput) Query() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOAuthIntroTokenSource) *string { return v.Query }).(pulumi.StringPtrOutput) +} + +type AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOAuthIntroTokenSource)(nil)).Elem() +} + +func (o AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput) ToAccessControlPolicySpecOAuthIntroTokenSourcePtrOutput() AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput { + return o +} + +func (o AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput) ToAccessControlPolicySpecOAuthIntroTokenSourcePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput { + return o +} + +func (o AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOAuthIntroTokenSource] { + return pulumix.Output[*AccessControlPolicySpecOAuthIntroTokenSource]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput) Elem() AccessControlPolicySpecOAuthIntroTokenSourceOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntroTokenSource) AccessControlPolicySpecOAuthIntroTokenSource { + if v != nil { + return *v + } + var ret AccessControlPolicySpecOAuthIntroTokenSource + return ret + }).(AccessControlPolicySpecOAuthIntroTokenSourceOutput) +} + +// Cookie is the name of a cookie. +func (o AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput) Cookie() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntroTokenSource) *string { + if v == nil { + return nil + } + return v.Cookie + }).(pulumi.StringPtrOutput) +} + +// Header is the name of a header. +func (o AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput) Header() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntroTokenSource) *string { + if v == nil { + return nil + } + return v.Header + }).(pulumi.StringPtrOutput) +} + +// HeaderAuthScheme sets an optional auth scheme when Header is set to "Authorization". +// If set, this scheme is removed from the token, and all requests not including it are dropped. +func (o AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput) HeaderAuthScheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntroTokenSource) *string { + if v == nil { + return nil + } + return v.HeaderAuthScheme + }).(pulumi.StringPtrOutput) +} + +// Query is the name of a query parameter. +func (o AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput) Query() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOAuthIntroTokenSource) *string { + if v == nil { + return nil + } + return v.Query + }).(pulumi.StringPtrOutput) +} + +// AccessControlPolicyOIDC holds the OIDC authentication configuration. +type AccessControlPolicySpecOidc struct { + AuthParams map[string]string `pulumi:"authParams"` + Claims *string `pulumi:"claims"` + ClientId *string `pulumi:"clientId"` + DisableAuthRedirectionPaths []string `pulumi:"disableAuthRedirectionPaths"` + ForwardHeaders map[string]string `pulumi:"forwardHeaders"` + Issuer *string `pulumi:"issuer"` + LogoutUrl *string `pulumi:"logoutUrl"` + RedirectUrl *string `pulumi:"redirectUrl"` + Scopes []string `pulumi:"scopes"` + // SecretReference represents a Secret Reference. It has enough information to retrieve secret + // in any namespace + Secret *AccessControlPolicySpecOidcSecret `pulumi:"secret"` + // Session holds session configuration. + Session *AccessControlPolicySpecOidcSession `pulumi:"session"` + // StateCookie holds state cookie configuration. + StateCookie *AccessControlPolicySpecOidcStateCookie `pulumi:"stateCookie"` +} + +// AccessControlPolicySpecOidcInput is an input type that accepts AccessControlPolicySpecOidcArgs and AccessControlPolicySpecOidcOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOidcInput` via: +// +// AccessControlPolicySpecOidcArgs{...} +type AccessControlPolicySpecOidcInput interface { + pulumi.Input + + ToAccessControlPolicySpecOidcOutput() AccessControlPolicySpecOidcOutput + ToAccessControlPolicySpecOidcOutputWithContext(context.Context) AccessControlPolicySpecOidcOutput +} + +// AccessControlPolicyOIDC holds the OIDC authentication configuration. +type AccessControlPolicySpecOidcArgs struct { + AuthParams pulumi.StringMapInput `pulumi:"authParams"` + Claims pulumi.StringPtrInput `pulumi:"claims"` + ClientId pulumi.StringPtrInput `pulumi:"clientId"` + DisableAuthRedirectionPaths pulumi.StringArrayInput `pulumi:"disableAuthRedirectionPaths"` + ForwardHeaders pulumi.StringMapInput `pulumi:"forwardHeaders"` + Issuer pulumi.StringPtrInput `pulumi:"issuer"` + LogoutUrl pulumi.StringPtrInput `pulumi:"logoutUrl"` + RedirectUrl pulumi.StringPtrInput `pulumi:"redirectUrl"` + Scopes pulumi.StringArrayInput `pulumi:"scopes"` + // SecretReference represents a Secret Reference. It has enough information to retrieve secret + // in any namespace + Secret AccessControlPolicySpecOidcSecretPtrInput `pulumi:"secret"` + // Session holds session configuration. + Session AccessControlPolicySpecOidcSessionPtrInput `pulumi:"session"` + // StateCookie holds state cookie configuration. + StateCookie AccessControlPolicySpecOidcStateCookiePtrInput `pulumi:"stateCookie"` +} + +func (AccessControlPolicySpecOidcArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOidc)(nil)).Elem() +} + +func (i AccessControlPolicySpecOidcArgs) ToAccessControlPolicySpecOidcOutput() AccessControlPolicySpecOidcOutput { + return i.ToAccessControlPolicySpecOidcOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOidcArgs) ToAccessControlPolicySpecOidcOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcOutput) +} + +func (i AccessControlPolicySpecOidcArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOidc] { + return pulumix.Output[AccessControlPolicySpecOidc]{ + OutputState: i.ToAccessControlPolicySpecOidcOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicySpecOidcArgs) ToAccessControlPolicySpecOidcPtrOutput() AccessControlPolicySpecOidcPtrOutput { + return i.ToAccessControlPolicySpecOidcPtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOidcArgs) ToAccessControlPolicySpecOidcPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcOutput).ToAccessControlPolicySpecOidcPtrOutputWithContext(ctx) +} + +// AccessControlPolicySpecOidcPtrInput is an input type that accepts AccessControlPolicySpecOidcArgs, AccessControlPolicySpecOidcPtr and AccessControlPolicySpecOidcPtrOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOidcPtrInput` via: +// +// AccessControlPolicySpecOidcArgs{...} +// +// or: +// +// nil +type AccessControlPolicySpecOidcPtrInput interface { + pulumi.Input + + ToAccessControlPolicySpecOidcPtrOutput() AccessControlPolicySpecOidcPtrOutput + ToAccessControlPolicySpecOidcPtrOutputWithContext(context.Context) AccessControlPolicySpecOidcPtrOutput +} + +type accessControlPolicySpecOidcPtrType AccessControlPolicySpecOidcArgs + +func AccessControlPolicySpecOidcPtr(v *AccessControlPolicySpecOidcArgs) AccessControlPolicySpecOidcPtrInput { + return (*accessControlPolicySpecOidcPtrType)(v) +} + +func (*accessControlPolicySpecOidcPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOidc)(nil)).Elem() +} + +func (i *accessControlPolicySpecOidcPtrType) ToAccessControlPolicySpecOidcPtrOutput() AccessControlPolicySpecOidcPtrOutput { + return i.ToAccessControlPolicySpecOidcPtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicySpecOidcPtrType) ToAccessControlPolicySpecOidcPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcPtrOutput) +} + +func (i *accessControlPolicySpecOidcPtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOidc] { + return pulumix.Output[*AccessControlPolicySpecOidc]{ + OutputState: i.ToAccessControlPolicySpecOidcPtrOutputWithContext(ctx).OutputState, + } +} + +// AccessControlPolicyOIDC holds the OIDC authentication configuration. +type AccessControlPolicySpecOidcOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOidcOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOidc)(nil)).Elem() +} + +func (o AccessControlPolicySpecOidcOutput) ToAccessControlPolicySpecOidcOutput() AccessControlPolicySpecOidcOutput { + return o +} + +func (o AccessControlPolicySpecOidcOutput) ToAccessControlPolicySpecOidcOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcOutput { + return o +} + +func (o AccessControlPolicySpecOidcOutput) ToAccessControlPolicySpecOidcPtrOutput() AccessControlPolicySpecOidcPtrOutput { + return o.ToAccessControlPolicySpecOidcPtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicySpecOidcOutput) ToAccessControlPolicySpecOidcPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicySpecOidc) *AccessControlPolicySpecOidc { + return &v + }).(AccessControlPolicySpecOidcPtrOutput) +} + +func (o AccessControlPolicySpecOidcOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOidc] { + return pulumix.Output[AccessControlPolicySpecOidc]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOidcOutput) AuthParams() pulumi.StringMapOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidc) map[string]string { return v.AuthParams }).(pulumi.StringMapOutput) +} + +func (o AccessControlPolicySpecOidcOutput) Claims() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidc) *string { return v.Claims }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcOutput) ClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidc) *string { return v.ClientId }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcOutput) DisableAuthRedirectionPaths() pulumi.StringArrayOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidc) []string { return v.DisableAuthRedirectionPaths }).(pulumi.StringArrayOutput) +} + +func (o AccessControlPolicySpecOidcOutput) ForwardHeaders() pulumi.StringMapOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidc) map[string]string { return v.ForwardHeaders }).(pulumi.StringMapOutput) +} + +func (o AccessControlPolicySpecOidcOutput) Issuer() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidc) *string { return v.Issuer }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcOutput) LogoutUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidc) *string { return v.LogoutUrl }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcOutput) RedirectUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidc) *string { return v.RedirectUrl }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcOutput) Scopes() pulumi.StringArrayOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidc) []string { return v.Scopes }).(pulumi.StringArrayOutput) +} + +// SecretReference represents a Secret Reference. It has enough information to retrieve secret +// in any namespace +func (o AccessControlPolicySpecOidcOutput) Secret() AccessControlPolicySpecOidcSecretPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidc) *AccessControlPolicySpecOidcSecret { return v.Secret }).(AccessControlPolicySpecOidcSecretPtrOutput) +} + +// Session holds session configuration. +func (o AccessControlPolicySpecOidcOutput) Session() AccessControlPolicySpecOidcSessionPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidc) *AccessControlPolicySpecOidcSession { return v.Session }).(AccessControlPolicySpecOidcSessionPtrOutput) +} + +// StateCookie holds state cookie configuration. +func (o AccessControlPolicySpecOidcOutput) StateCookie() AccessControlPolicySpecOidcStateCookiePtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidc) *AccessControlPolicySpecOidcStateCookie { return v.StateCookie }).(AccessControlPolicySpecOidcStateCookiePtrOutput) +} + +type AccessControlPolicySpecOidcPtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOidcPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOidc)(nil)).Elem() +} + +func (o AccessControlPolicySpecOidcPtrOutput) ToAccessControlPolicySpecOidcPtrOutput() AccessControlPolicySpecOidcPtrOutput { + return o +} + +func (o AccessControlPolicySpecOidcPtrOutput) ToAccessControlPolicySpecOidcPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcPtrOutput { + return o +} + +func (o AccessControlPolicySpecOidcPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOidc] { + return pulumix.Output[*AccessControlPolicySpecOidc]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOidcPtrOutput) Elem() AccessControlPolicySpecOidcOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidc) AccessControlPolicySpecOidc { + if v != nil { + return *v + } + var ret AccessControlPolicySpecOidc + return ret + }).(AccessControlPolicySpecOidcOutput) +} + +func (o AccessControlPolicySpecOidcPtrOutput) AuthParams() pulumi.StringMapOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidc) map[string]string { + if v == nil { + return nil + } + return v.AuthParams + }).(pulumi.StringMapOutput) +} + +func (o AccessControlPolicySpecOidcPtrOutput) Claims() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidc) *string { + if v == nil { + return nil + } + return v.Claims + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcPtrOutput) ClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidc) *string { + if v == nil { + return nil + } + return v.ClientId + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcPtrOutput) DisableAuthRedirectionPaths() pulumi.StringArrayOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidc) []string { + if v == nil { + return nil + } + return v.DisableAuthRedirectionPaths + }).(pulumi.StringArrayOutput) +} + +func (o AccessControlPolicySpecOidcPtrOutput) ForwardHeaders() pulumi.StringMapOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidc) map[string]string { + if v == nil { + return nil + } + return v.ForwardHeaders + }).(pulumi.StringMapOutput) +} + +func (o AccessControlPolicySpecOidcPtrOutput) Issuer() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidc) *string { + if v == nil { + return nil + } + return v.Issuer + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcPtrOutput) LogoutUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidc) *string { + if v == nil { + return nil + } + return v.LogoutUrl + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcPtrOutput) RedirectUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidc) *string { + if v == nil { + return nil + } + return v.RedirectUrl + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcPtrOutput) Scopes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidc) []string { + if v == nil { + return nil + } + return v.Scopes + }).(pulumi.StringArrayOutput) +} + +// SecretReference represents a Secret Reference. It has enough information to retrieve secret +// in any namespace +func (o AccessControlPolicySpecOidcPtrOutput) Secret() AccessControlPolicySpecOidcSecretPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidc) *AccessControlPolicySpecOidcSecret { + if v == nil { + return nil + } + return v.Secret + }).(AccessControlPolicySpecOidcSecretPtrOutput) +} + +// Session holds session configuration. +func (o AccessControlPolicySpecOidcPtrOutput) Session() AccessControlPolicySpecOidcSessionPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidc) *AccessControlPolicySpecOidcSession { + if v == nil { + return nil + } + return v.Session + }).(AccessControlPolicySpecOidcSessionPtrOutput) +} + +// StateCookie holds state cookie configuration. +func (o AccessControlPolicySpecOidcPtrOutput) StateCookie() AccessControlPolicySpecOidcStateCookiePtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidc) *AccessControlPolicySpecOidcStateCookie { + if v == nil { + return nil + } + return v.StateCookie + }).(AccessControlPolicySpecOidcStateCookiePtrOutput) +} + +type AccessControlPolicySpecOidcAuthParams struct { +} + +type AccessControlPolicySpecOidcForwardHeaders struct { +} + +// AccessControlPolicyOIDCGoogle holds the Google OIDC authentication configuration. +type AccessControlPolicySpecOidcGoogle struct { + AuthParams map[string]string `pulumi:"authParams"` + ClientId *string `pulumi:"clientId"` + // Emails are the allowed emails to connect. + Emails []string `pulumi:"emails"` + ForwardHeaders map[string]string `pulumi:"forwardHeaders"` + LogoutUrl *string `pulumi:"logoutUrl"` + RedirectUrl *string `pulumi:"redirectUrl"` + // SecretReference represents a Secret Reference. It has enough information to retrieve secret + // in any namespace + Secret *AccessControlPolicySpecOidcGoogleSecret `pulumi:"secret"` + // Session holds session configuration. + Session *AccessControlPolicySpecOidcGoogleSession `pulumi:"session"` + // StateCookie holds state cookie configuration. + StateCookie *AccessControlPolicySpecOidcGoogleStateCookie `pulumi:"stateCookie"` +} + +// AccessControlPolicySpecOidcGoogleInput is an input type that accepts AccessControlPolicySpecOidcGoogleArgs and AccessControlPolicySpecOidcGoogleOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOidcGoogleInput` via: +// +// AccessControlPolicySpecOidcGoogleArgs{...} +type AccessControlPolicySpecOidcGoogleInput interface { + pulumi.Input + + ToAccessControlPolicySpecOidcGoogleOutput() AccessControlPolicySpecOidcGoogleOutput + ToAccessControlPolicySpecOidcGoogleOutputWithContext(context.Context) AccessControlPolicySpecOidcGoogleOutput +} + +// AccessControlPolicyOIDCGoogle holds the Google OIDC authentication configuration. +type AccessControlPolicySpecOidcGoogleArgs struct { + AuthParams pulumi.StringMapInput `pulumi:"authParams"` + ClientId pulumi.StringPtrInput `pulumi:"clientId"` + // Emails are the allowed emails to connect. + Emails pulumi.StringArrayInput `pulumi:"emails"` + ForwardHeaders pulumi.StringMapInput `pulumi:"forwardHeaders"` + LogoutUrl pulumi.StringPtrInput `pulumi:"logoutUrl"` + RedirectUrl pulumi.StringPtrInput `pulumi:"redirectUrl"` + // SecretReference represents a Secret Reference. It has enough information to retrieve secret + // in any namespace + Secret AccessControlPolicySpecOidcGoogleSecretPtrInput `pulumi:"secret"` + // Session holds session configuration. + Session AccessControlPolicySpecOidcGoogleSessionPtrInput `pulumi:"session"` + // StateCookie holds state cookie configuration. + StateCookie AccessControlPolicySpecOidcGoogleStateCookiePtrInput `pulumi:"stateCookie"` +} + +func (AccessControlPolicySpecOidcGoogleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOidcGoogle)(nil)).Elem() +} + +func (i AccessControlPolicySpecOidcGoogleArgs) ToAccessControlPolicySpecOidcGoogleOutput() AccessControlPolicySpecOidcGoogleOutput { + return i.ToAccessControlPolicySpecOidcGoogleOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOidcGoogleArgs) ToAccessControlPolicySpecOidcGoogleOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcGoogleOutput) +} + +func (i AccessControlPolicySpecOidcGoogleArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOidcGoogle] { + return pulumix.Output[AccessControlPolicySpecOidcGoogle]{ + OutputState: i.ToAccessControlPolicySpecOidcGoogleOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicySpecOidcGoogleArgs) ToAccessControlPolicySpecOidcGooglePtrOutput() AccessControlPolicySpecOidcGooglePtrOutput { + return i.ToAccessControlPolicySpecOidcGooglePtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOidcGoogleArgs) ToAccessControlPolicySpecOidcGooglePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGooglePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcGoogleOutput).ToAccessControlPolicySpecOidcGooglePtrOutputWithContext(ctx) +} + +// AccessControlPolicySpecOidcGooglePtrInput is an input type that accepts AccessControlPolicySpecOidcGoogleArgs, AccessControlPolicySpecOidcGooglePtr and AccessControlPolicySpecOidcGooglePtrOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOidcGooglePtrInput` via: +// +// AccessControlPolicySpecOidcGoogleArgs{...} +// +// or: +// +// nil +type AccessControlPolicySpecOidcGooglePtrInput interface { + pulumi.Input + + ToAccessControlPolicySpecOidcGooglePtrOutput() AccessControlPolicySpecOidcGooglePtrOutput + ToAccessControlPolicySpecOidcGooglePtrOutputWithContext(context.Context) AccessControlPolicySpecOidcGooglePtrOutput +} + +type accessControlPolicySpecOidcGooglePtrType AccessControlPolicySpecOidcGoogleArgs + +func AccessControlPolicySpecOidcGooglePtr(v *AccessControlPolicySpecOidcGoogleArgs) AccessControlPolicySpecOidcGooglePtrInput { + return (*accessControlPolicySpecOidcGooglePtrType)(v) +} + +func (*accessControlPolicySpecOidcGooglePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOidcGoogle)(nil)).Elem() +} + +func (i *accessControlPolicySpecOidcGooglePtrType) ToAccessControlPolicySpecOidcGooglePtrOutput() AccessControlPolicySpecOidcGooglePtrOutput { + return i.ToAccessControlPolicySpecOidcGooglePtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicySpecOidcGooglePtrType) ToAccessControlPolicySpecOidcGooglePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGooglePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcGooglePtrOutput) +} + +func (i *accessControlPolicySpecOidcGooglePtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOidcGoogle] { + return pulumix.Output[*AccessControlPolicySpecOidcGoogle]{ + OutputState: i.ToAccessControlPolicySpecOidcGooglePtrOutputWithContext(ctx).OutputState, + } +} + +// AccessControlPolicyOIDCGoogle holds the Google OIDC authentication configuration. +type AccessControlPolicySpecOidcGoogleOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOidcGoogleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOidcGoogle)(nil)).Elem() +} + +func (o AccessControlPolicySpecOidcGoogleOutput) ToAccessControlPolicySpecOidcGoogleOutput() AccessControlPolicySpecOidcGoogleOutput { + return o +} + +func (o AccessControlPolicySpecOidcGoogleOutput) ToAccessControlPolicySpecOidcGoogleOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleOutput { + return o +} + +func (o AccessControlPolicySpecOidcGoogleOutput) ToAccessControlPolicySpecOidcGooglePtrOutput() AccessControlPolicySpecOidcGooglePtrOutput { + return o.ToAccessControlPolicySpecOidcGooglePtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicySpecOidcGoogleOutput) ToAccessControlPolicySpecOidcGooglePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGooglePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicySpecOidcGoogle) *AccessControlPolicySpecOidcGoogle { + return &v + }).(AccessControlPolicySpecOidcGooglePtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOidcGoogle] { + return pulumix.Output[AccessControlPolicySpecOidcGoogle]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOidcGoogleOutput) AuthParams() pulumi.StringMapOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogle) map[string]string { return v.AuthParams }).(pulumi.StringMapOutput) +} + +func (o AccessControlPolicySpecOidcGoogleOutput) ClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogle) *string { return v.ClientId }).(pulumi.StringPtrOutput) +} + +// Emails are the allowed emails to connect. +func (o AccessControlPolicySpecOidcGoogleOutput) Emails() pulumi.StringArrayOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogle) []string { return v.Emails }).(pulumi.StringArrayOutput) +} + +func (o AccessControlPolicySpecOidcGoogleOutput) ForwardHeaders() pulumi.StringMapOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogle) map[string]string { return v.ForwardHeaders }).(pulumi.StringMapOutput) +} + +func (o AccessControlPolicySpecOidcGoogleOutput) LogoutUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogle) *string { return v.LogoutUrl }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleOutput) RedirectUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogle) *string { return v.RedirectUrl }).(pulumi.StringPtrOutput) +} + +// SecretReference represents a Secret Reference. It has enough information to retrieve secret +// in any namespace +func (o AccessControlPolicySpecOidcGoogleOutput) Secret() AccessControlPolicySpecOidcGoogleSecretPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogle) *AccessControlPolicySpecOidcGoogleSecret { return v.Secret }).(AccessControlPolicySpecOidcGoogleSecretPtrOutput) +} + +// Session holds session configuration. +func (o AccessControlPolicySpecOidcGoogleOutput) Session() AccessControlPolicySpecOidcGoogleSessionPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogle) *AccessControlPolicySpecOidcGoogleSession { return v.Session }).(AccessControlPolicySpecOidcGoogleSessionPtrOutput) +} + +// StateCookie holds state cookie configuration. +func (o AccessControlPolicySpecOidcGoogleOutput) StateCookie() AccessControlPolicySpecOidcGoogleStateCookiePtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogle) *AccessControlPolicySpecOidcGoogleStateCookie { + return v.StateCookie + }).(AccessControlPolicySpecOidcGoogleStateCookiePtrOutput) +} + +type AccessControlPolicySpecOidcGooglePtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOidcGooglePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOidcGoogle)(nil)).Elem() +} + +func (o AccessControlPolicySpecOidcGooglePtrOutput) ToAccessControlPolicySpecOidcGooglePtrOutput() AccessControlPolicySpecOidcGooglePtrOutput { + return o +} + +func (o AccessControlPolicySpecOidcGooglePtrOutput) ToAccessControlPolicySpecOidcGooglePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGooglePtrOutput { + return o +} + +func (o AccessControlPolicySpecOidcGooglePtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOidcGoogle] { + return pulumix.Output[*AccessControlPolicySpecOidcGoogle]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOidcGooglePtrOutput) Elem() AccessControlPolicySpecOidcGoogleOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogle) AccessControlPolicySpecOidcGoogle { + if v != nil { + return *v + } + var ret AccessControlPolicySpecOidcGoogle + return ret + }).(AccessControlPolicySpecOidcGoogleOutput) +} + +func (o AccessControlPolicySpecOidcGooglePtrOutput) AuthParams() pulumi.StringMapOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogle) map[string]string { + if v == nil { + return nil + } + return v.AuthParams + }).(pulumi.StringMapOutput) +} + +func (o AccessControlPolicySpecOidcGooglePtrOutput) ClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogle) *string { + if v == nil { + return nil + } + return v.ClientId + }).(pulumi.StringPtrOutput) +} + +// Emails are the allowed emails to connect. +func (o AccessControlPolicySpecOidcGooglePtrOutput) Emails() pulumi.StringArrayOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogle) []string { + if v == nil { + return nil + } + return v.Emails + }).(pulumi.StringArrayOutput) +} + +func (o AccessControlPolicySpecOidcGooglePtrOutput) ForwardHeaders() pulumi.StringMapOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogle) map[string]string { + if v == nil { + return nil + } + return v.ForwardHeaders + }).(pulumi.StringMapOutput) +} + +func (o AccessControlPolicySpecOidcGooglePtrOutput) LogoutUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogle) *string { + if v == nil { + return nil + } + return v.LogoutUrl + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcGooglePtrOutput) RedirectUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogle) *string { + if v == nil { + return nil + } + return v.RedirectUrl + }).(pulumi.StringPtrOutput) +} + +// SecretReference represents a Secret Reference. It has enough information to retrieve secret +// in any namespace +func (o AccessControlPolicySpecOidcGooglePtrOutput) Secret() AccessControlPolicySpecOidcGoogleSecretPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogle) *AccessControlPolicySpecOidcGoogleSecret { + if v == nil { + return nil + } + return v.Secret + }).(AccessControlPolicySpecOidcGoogleSecretPtrOutput) +} + +// Session holds session configuration. +func (o AccessControlPolicySpecOidcGooglePtrOutput) Session() AccessControlPolicySpecOidcGoogleSessionPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogle) *AccessControlPolicySpecOidcGoogleSession { + if v == nil { + return nil + } + return v.Session + }).(AccessControlPolicySpecOidcGoogleSessionPtrOutput) +} + +// StateCookie holds state cookie configuration. +func (o AccessControlPolicySpecOidcGooglePtrOutput) StateCookie() AccessControlPolicySpecOidcGoogleStateCookiePtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogle) *AccessControlPolicySpecOidcGoogleStateCookie { + if v == nil { + return nil + } + return v.StateCookie + }).(AccessControlPolicySpecOidcGoogleStateCookiePtrOutput) +} + +type AccessControlPolicySpecOidcGoogleAuthParams struct { +} + +type AccessControlPolicySpecOidcGoogleForwardHeaders struct { +} + +// SecretReference represents a Secret Reference. It has enough information to retrieve secret +// in any namespace +type AccessControlPolicySpecOidcGoogleSecret struct { + // name is unique within a namespace to reference a secret resource. + Name *string `pulumi:"name"` + // namespace defines the space within which the secret name must be unique. + Namespace *string `pulumi:"namespace"` +} + +// AccessControlPolicySpecOidcGoogleSecretInput is an input type that accepts AccessControlPolicySpecOidcGoogleSecretArgs and AccessControlPolicySpecOidcGoogleSecretOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOidcGoogleSecretInput` via: +// +// AccessControlPolicySpecOidcGoogleSecretArgs{...} +type AccessControlPolicySpecOidcGoogleSecretInput interface { + pulumi.Input + + ToAccessControlPolicySpecOidcGoogleSecretOutput() AccessControlPolicySpecOidcGoogleSecretOutput + ToAccessControlPolicySpecOidcGoogleSecretOutputWithContext(context.Context) AccessControlPolicySpecOidcGoogleSecretOutput +} + +// SecretReference represents a Secret Reference. It has enough information to retrieve secret +// in any namespace +type AccessControlPolicySpecOidcGoogleSecretArgs struct { + // name is unique within a namespace to reference a secret resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // namespace defines the space within which the secret name must be unique. + Namespace pulumi.StringPtrInput `pulumi:"namespace"` +} + +func (AccessControlPolicySpecOidcGoogleSecretArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOidcGoogleSecret)(nil)).Elem() +} + +func (i AccessControlPolicySpecOidcGoogleSecretArgs) ToAccessControlPolicySpecOidcGoogleSecretOutput() AccessControlPolicySpecOidcGoogleSecretOutput { + return i.ToAccessControlPolicySpecOidcGoogleSecretOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOidcGoogleSecretArgs) ToAccessControlPolicySpecOidcGoogleSecretOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleSecretOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcGoogleSecretOutput) +} + +func (i AccessControlPolicySpecOidcGoogleSecretArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOidcGoogleSecret] { + return pulumix.Output[AccessControlPolicySpecOidcGoogleSecret]{ + OutputState: i.ToAccessControlPolicySpecOidcGoogleSecretOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicySpecOidcGoogleSecretArgs) ToAccessControlPolicySpecOidcGoogleSecretPtrOutput() AccessControlPolicySpecOidcGoogleSecretPtrOutput { + return i.ToAccessControlPolicySpecOidcGoogleSecretPtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOidcGoogleSecretArgs) ToAccessControlPolicySpecOidcGoogleSecretPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleSecretPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcGoogleSecretOutput).ToAccessControlPolicySpecOidcGoogleSecretPtrOutputWithContext(ctx) +} + +// AccessControlPolicySpecOidcGoogleSecretPtrInput is an input type that accepts AccessControlPolicySpecOidcGoogleSecretArgs, AccessControlPolicySpecOidcGoogleSecretPtr and AccessControlPolicySpecOidcGoogleSecretPtrOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOidcGoogleSecretPtrInput` via: +// +// AccessControlPolicySpecOidcGoogleSecretArgs{...} +// +// or: +// +// nil +type AccessControlPolicySpecOidcGoogleSecretPtrInput interface { + pulumi.Input + + ToAccessControlPolicySpecOidcGoogleSecretPtrOutput() AccessControlPolicySpecOidcGoogleSecretPtrOutput + ToAccessControlPolicySpecOidcGoogleSecretPtrOutputWithContext(context.Context) AccessControlPolicySpecOidcGoogleSecretPtrOutput +} + +type accessControlPolicySpecOidcGoogleSecretPtrType AccessControlPolicySpecOidcGoogleSecretArgs + +func AccessControlPolicySpecOidcGoogleSecretPtr(v *AccessControlPolicySpecOidcGoogleSecretArgs) AccessControlPolicySpecOidcGoogleSecretPtrInput { + return (*accessControlPolicySpecOidcGoogleSecretPtrType)(v) +} + +func (*accessControlPolicySpecOidcGoogleSecretPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOidcGoogleSecret)(nil)).Elem() +} + +func (i *accessControlPolicySpecOidcGoogleSecretPtrType) ToAccessControlPolicySpecOidcGoogleSecretPtrOutput() AccessControlPolicySpecOidcGoogleSecretPtrOutput { + return i.ToAccessControlPolicySpecOidcGoogleSecretPtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicySpecOidcGoogleSecretPtrType) ToAccessControlPolicySpecOidcGoogleSecretPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleSecretPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcGoogleSecretPtrOutput) +} + +func (i *accessControlPolicySpecOidcGoogleSecretPtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOidcGoogleSecret] { + return pulumix.Output[*AccessControlPolicySpecOidcGoogleSecret]{ + OutputState: i.ToAccessControlPolicySpecOidcGoogleSecretPtrOutputWithContext(ctx).OutputState, + } +} + +// SecretReference represents a Secret Reference. It has enough information to retrieve secret +// in any namespace +type AccessControlPolicySpecOidcGoogleSecretOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOidcGoogleSecretOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOidcGoogleSecret)(nil)).Elem() +} + +func (o AccessControlPolicySpecOidcGoogleSecretOutput) ToAccessControlPolicySpecOidcGoogleSecretOutput() AccessControlPolicySpecOidcGoogleSecretOutput { + return o +} + +func (o AccessControlPolicySpecOidcGoogleSecretOutput) ToAccessControlPolicySpecOidcGoogleSecretOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleSecretOutput { + return o +} + +func (o AccessControlPolicySpecOidcGoogleSecretOutput) ToAccessControlPolicySpecOidcGoogleSecretPtrOutput() AccessControlPolicySpecOidcGoogleSecretPtrOutput { + return o.ToAccessControlPolicySpecOidcGoogleSecretPtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicySpecOidcGoogleSecretOutput) ToAccessControlPolicySpecOidcGoogleSecretPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleSecretPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicySpecOidcGoogleSecret) *AccessControlPolicySpecOidcGoogleSecret { + return &v + }).(AccessControlPolicySpecOidcGoogleSecretPtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleSecretOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOidcGoogleSecret] { + return pulumix.Output[AccessControlPolicySpecOidcGoogleSecret]{ + OutputState: o.OutputState, + } +} + +// name is unique within a namespace to reference a secret resource. +func (o AccessControlPolicySpecOidcGoogleSecretOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogleSecret) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// namespace defines the space within which the secret name must be unique. +func (o AccessControlPolicySpecOidcGoogleSecretOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogleSecret) *string { return v.Namespace }).(pulumi.StringPtrOutput) +} + +type AccessControlPolicySpecOidcGoogleSecretPtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOidcGoogleSecretPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOidcGoogleSecret)(nil)).Elem() +} + +func (o AccessControlPolicySpecOidcGoogleSecretPtrOutput) ToAccessControlPolicySpecOidcGoogleSecretPtrOutput() AccessControlPolicySpecOidcGoogleSecretPtrOutput { + return o +} + +func (o AccessControlPolicySpecOidcGoogleSecretPtrOutput) ToAccessControlPolicySpecOidcGoogleSecretPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleSecretPtrOutput { + return o +} + +func (o AccessControlPolicySpecOidcGoogleSecretPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOidcGoogleSecret] { + return pulumix.Output[*AccessControlPolicySpecOidcGoogleSecret]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOidcGoogleSecretPtrOutput) Elem() AccessControlPolicySpecOidcGoogleSecretOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogleSecret) AccessControlPolicySpecOidcGoogleSecret { + if v != nil { + return *v + } + var ret AccessControlPolicySpecOidcGoogleSecret + return ret + }).(AccessControlPolicySpecOidcGoogleSecretOutput) +} + +// name is unique within a namespace to reference a secret resource. +func (o AccessControlPolicySpecOidcGoogleSecretPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogleSecret) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// namespace defines the space within which the secret name must be unique. +func (o AccessControlPolicySpecOidcGoogleSecretPtrOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogleSecret) *string { + if v == nil { + return nil + } + return v.Namespace + }).(pulumi.StringPtrOutput) +} + +// Session holds session configuration. +type AccessControlPolicySpecOidcGoogleSession struct { + Domain *string `pulumi:"domain"` + Path *string `pulumi:"path"` + Refresh *bool `pulumi:"refresh"` + SameSite *string `pulumi:"sameSite"` + Secure *bool `pulumi:"secure"` +} + +// AccessControlPolicySpecOidcGoogleSessionInput is an input type that accepts AccessControlPolicySpecOidcGoogleSessionArgs and AccessControlPolicySpecOidcGoogleSessionOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOidcGoogleSessionInput` via: +// +// AccessControlPolicySpecOidcGoogleSessionArgs{...} +type AccessControlPolicySpecOidcGoogleSessionInput interface { + pulumi.Input + + ToAccessControlPolicySpecOidcGoogleSessionOutput() AccessControlPolicySpecOidcGoogleSessionOutput + ToAccessControlPolicySpecOidcGoogleSessionOutputWithContext(context.Context) AccessControlPolicySpecOidcGoogleSessionOutput +} + +// Session holds session configuration. +type AccessControlPolicySpecOidcGoogleSessionArgs struct { + Domain pulumi.StringPtrInput `pulumi:"domain"` + Path pulumi.StringPtrInput `pulumi:"path"` + Refresh pulumi.BoolPtrInput `pulumi:"refresh"` + SameSite pulumi.StringPtrInput `pulumi:"sameSite"` + Secure pulumi.BoolPtrInput `pulumi:"secure"` +} + +func (AccessControlPolicySpecOidcGoogleSessionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOidcGoogleSession)(nil)).Elem() +} + +func (i AccessControlPolicySpecOidcGoogleSessionArgs) ToAccessControlPolicySpecOidcGoogleSessionOutput() AccessControlPolicySpecOidcGoogleSessionOutput { + return i.ToAccessControlPolicySpecOidcGoogleSessionOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOidcGoogleSessionArgs) ToAccessControlPolicySpecOidcGoogleSessionOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleSessionOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcGoogleSessionOutput) +} + +func (i AccessControlPolicySpecOidcGoogleSessionArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOidcGoogleSession] { + return pulumix.Output[AccessControlPolicySpecOidcGoogleSession]{ + OutputState: i.ToAccessControlPolicySpecOidcGoogleSessionOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicySpecOidcGoogleSessionArgs) ToAccessControlPolicySpecOidcGoogleSessionPtrOutput() AccessControlPolicySpecOidcGoogleSessionPtrOutput { + return i.ToAccessControlPolicySpecOidcGoogleSessionPtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOidcGoogleSessionArgs) ToAccessControlPolicySpecOidcGoogleSessionPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleSessionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcGoogleSessionOutput).ToAccessControlPolicySpecOidcGoogleSessionPtrOutputWithContext(ctx) +} + +// AccessControlPolicySpecOidcGoogleSessionPtrInput is an input type that accepts AccessControlPolicySpecOidcGoogleSessionArgs, AccessControlPolicySpecOidcGoogleSessionPtr and AccessControlPolicySpecOidcGoogleSessionPtrOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOidcGoogleSessionPtrInput` via: +// +// AccessControlPolicySpecOidcGoogleSessionArgs{...} +// +// or: +// +// nil +type AccessControlPolicySpecOidcGoogleSessionPtrInput interface { + pulumi.Input + + ToAccessControlPolicySpecOidcGoogleSessionPtrOutput() AccessControlPolicySpecOidcGoogleSessionPtrOutput + ToAccessControlPolicySpecOidcGoogleSessionPtrOutputWithContext(context.Context) AccessControlPolicySpecOidcGoogleSessionPtrOutput +} + +type accessControlPolicySpecOidcGoogleSessionPtrType AccessControlPolicySpecOidcGoogleSessionArgs + +func AccessControlPolicySpecOidcGoogleSessionPtr(v *AccessControlPolicySpecOidcGoogleSessionArgs) AccessControlPolicySpecOidcGoogleSessionPtrInput { + return (*accessControlPolicySpecOidcGoogleSessionPtrType)(v) +} + +func (*accessControlPolicySpecOidcGoogleSessionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOidcGoogleSession)(nil)).Elem() +} + +func (i *accessControlPolicySpecOidcGoogleSessionPtrType) ToAccessControlPolicySpecOidcGoogleSessionPtrOutput() AccessControlPolicySpecOidcGoogleSessionPtrOutput { + return i.ToAccessControlPolicySpecOidcGoogleSessionPtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicySpecOidcGoogleSessionPtrType) ToAccessControlPolicySpecOidcGoogleSessionPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleSessionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcGoogleSessionPtrOutput) +} + +func (i *accessControlPolicySpecOidcGoogleSessionPtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOidcGoogleSession] { + return pulumix.Output[*AccessControlPolicySpecOidcGoogleSession]{ + OutputState: i.ToAccessControlPolicySpecOidcGoogleSessionPtrOutputWithContext(ctx).OutputState, + } +} + +// Session holds session configuration. +type AccessControlPolicySpecOidcGoogleSessionOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOidcGoogleSessionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOidcGoogleSession)(nil)).Elem() +} + +func (o AccessControlPolicySpecOidcGoogleSessionOutput) ToAccessControlPolicySpecOidcGoogleSessionOutput() AccessControlPolicySpecOidcGoogleSessionOutput { + return o +} + +func (o AccessControlPolicySpecOidcGoogleSessionOutput) ToAccessControlPolicySpecOidcGoogleSessionOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleSessionOutput { + return o +} + +func (o AccessControlPolicySpecOidcGoogleSessionOutput) ToAccessControlPolicySpecOidcGoogleSessionPtrOutput() AccessControlPolicySpecOidcGoogleSessionPtrOutput { + return o.ToAccessControlPolicySpecOidcGoogleSessionPtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicySpecOidcGoogleSessionOutput) ToAccessControlPolicySpecOidcGoogleSessionPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleSessionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicySpecOidcGoogleSession) *AccessControlPolicySpecOidcGoogleSession { + return &v + }).(AccessControlPolicySpecOidcGoogleSessionPtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleSessionOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOidcGoogleSession] { + return pulumix.Output[AccessControlPolicySpecOidcGoogleSession]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOidcGoogleSessionOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogleSession) *string { return v.Domain }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleSessionOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogleSession) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleSessionOutput) Refresh() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogleSession) *bool { return v.Refresh }).(pulumi.BoolPtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleSessionOutput) SameSite() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogleSession) *string { return v.SameSite }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleSessionOutput) Secure() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogleSession) *bool { return v.Secure }).(pulumi.BoolPtrOutput) +} + +type AccessControlPolicySpecOidcGoogleSessionPtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOidcGoogleSessionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOidcGoogleSession)(nil)).Elem() +} + +func (o AccessControlPolicySpecOidcGoogleSessionPtrOutput) ToAccessControlPolicySpecOidcGoogleSessionPtrOutput() AccessControlPolicySpecOidcGoogleSessionPtrOutput { + return o +} + +func (o AccessControlPolicySpecOidcGoogleSessionPtrOutput) ToAccessControlPolicySpecOidcGoogleSessionPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleSessionPtrOutput { + return o +} + +func (o AccessControlPolicySpecOidcGoogleSessionPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOidcGoogleSession] { + return pulumix.Output[*AccessControlPolicySpecOidcGoogleSession]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOidcGoogleSessionPtrOutput) Elem() AccessControlPolicySpecOidcGoogleSessionOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogleSession) AccessControlPolicySpecOidcGoogleSession { + if v != nil { + return *v + } + var ret AccessControlPolicySpecOidcGoogleSession + return ret + }).(AccessControlPolicySpecOidcGoogleSessionOutput) +} + +func (o AccessControlPolicySpecOidcGoogleSessionPtrOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogleSession) *string { + if v == nil { + return nil + } + return v.Domain + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleSessionPtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogleSession) *string { + if v == nil { + return nil + } + return v.Path + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleSessionPtrOutput) Refresh() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogleSession) *bool { + if v == nil { + return nil + } + return v.Refresh + }).(pulumi.BoolPtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleSessionPtrOutput) SameSite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogleSession) *string { + if v == nil { + return nil + } + return v.SameSite + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleSessionPtrOutput) Secure() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogleSession) *bool { + if v == nil { + return nil + } + return v.Secure + }).(pulumi.BoolPtrOutput) +} + +// StateCookie holds state cookie configuration. +type AccessControlPolicySpecOidcGoogleStateCookie struct { + Domain *string `pulumi:"domain"` + Path *string `pulumi:"path"` + SameSite *string `pulumi:"sameSite"` + Secure *bool `pulumi:"secure"` +} + +// AccessControlPolicySpecOidcGoogleStateCookieInput is an input type that accepts AccessControlPolicySpecOidcGoogleStateCookieArgs and AccessControlPolicySpecOidcGoogleStateCookieOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOidcGoogleStateCookieInput` via: +// +// AccessControlPolicySpecOidcGoogleStateCookieArgs{...} +type AccessControlPolicySpecOidcGoogleStateCookieInput interface { + pulumi.Input + + ToAccessControlPolicySpecOidcGoogleStateCookieOutput() AccessControlPolicySpecOidcGoogleStateCookieOutput + ToAccessControlPolicySpecOidcGoogleStateCookieOutputWithContext(context.Context) AccessControlPolicySpecOidcGoogleStateCookieOutput +} + +// StateCookie holds state cookie configuration. +type AccessControlPolicySpecOidcGoogleStateCookieArgs struct { + Domain pulumi.StringPtrInput `pulumi:"domain"` + Path pulumi.StringPtrInput `pulumi:"path"` + SameSite pulumi.StringPtrInput `pulumi:"sameSite"` + Secure pulumi.BoolPtrInput `pulumi:"secure"` +} + +func (AccessControlPolicySpecOidcGoogleStateCookieArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOidcGoogleStateCookie)(nil)).Elem() +} + +func (i AccessControlPolicySpecOidcGoogleStateCookieArgs) ToAccessControlPolicySpecOidcGoogleStateCookieOutput() AccessControlPolicySpecOidcGoogleStateCookieOutput { + return i.ToAccessControlPolicySpecOidcGoogleStateCookieOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOidcGoogleStateCookieArgs) ToAccessControlPolicySpecOidcGoogleStateCookieOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleStateCookieOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcGoogleStateCookieOutput) +} + +func (i AccessControlPolicySpecOidcGoogleStateCookieArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOidcGoogleStateCookie] { + return pulumix.Output[AccessControlPolicySpecOidcGoogleStateCookie]{ + OutputState: i.ToAccessControlPolicySpecOidcGoogleStateCookieOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicySpecOidcGoogleStateCookieArgs) ToAccessControlPolicySpecOidcGoogleStateCookiePtrOutput() AccessControlPolicySpecOidcGoogleStateCookiePtrOutput { + return i.ToAccessControlPolicySpecOidcGoogleStateCookiePtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOidcGoogleStateCookieArgs) ToAccessControlPolicySpecOidcGoogleStateCookiePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleStateCookiePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcGoogleStateCookieOutput).ToAccessControlPolicySpecOidcGoogleStateCookiePtrOutputWithContext(ctx) +} + +// AccessControlPolicySpecOidcGoogleStateCookiePtrInput is an input type that accepts AccessControlPolicySpecOidcGoogleStateCookieArgs, AccessControlPolicySpecOidcGoogleStateCookiePtr and AccessControlPolicySpecOidcGoogleStateCookiePtrOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOidcGoogleStateCookiePtrInput` via: +// +// AccessControlPolicySpecOidcGoogleStateCookieArgs{...} +// +// or: +// +// nil +type AccessControlPolicySpecOidcGoogleStateCookiePtrInput interface { + pulumi.Input + + ToAccessControlPolicySpecOidcGoogleStateCookiePtrOutput() AccessControlPolicySpecOidcGoogleStateCookiePtrOutput + ToAccessControlPolicySpecOidcGoogleStateCookiePtrOutputWithContext(context.Context) AccessControlPolicySpecOidcGoogleStateCookiePtrOutput +} + +type accessControlPolicySpecOidcGoogleStateCookiePtrType AccessControlPolicySpecOidcGoogleStateCookieArgs + +func AccessControlPolicySpecOidcGoogleStateCookiePtr(v *AccessControlPolicySpecOidcGoogleStateCookieArgs) AccessControlPolicySpecOidcGoogleStateCookiePtrInput { + return (*accessControlPolicySpecOidcGoogleStateCookiePtrType)(v) +} + +func (*accessControlPolicySpecOidcGoogleStateCookiePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOidcGoogleStateCookie)(nil)).Elem() +} + +func (i *accessControlPolicySpecOidcGoogleStateCookiePtrType) ToAccessControlPolicySpecOidcGoogleStateCookiePtrOutput() AccessControlPolicySpecOidcGoogleStateCookiePtrOutput { + return i.ToAccessControlPolicySpecOidcGoogleStateCookiePtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicySpecOidcGoogleStateCookiePtrType) ToAccessControlPolicySpecOidcGoogleStateCookiePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleStateCookiePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcGoogleStateCookiePtrOutput) +} + +func (i *accessControlPolicySpecOidcGoogleStateCookiePtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOidcGoogleStateCookie] { + return pulumix.Output[*AccessControlPolicySpecOidcGoogleStateCookie]{ + OutputState: i.ToAccessControlPolicySpecOidcGoogleStateCookiePtrOutputWithContext(ctx).OutputState, + } +} + +// StateCookie holds state cookie configuration. +type AccessControlPolicySpecOidcGoogleStateCookieOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOidcGoogleStateCookieOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOidcGoogleStateCookie)(nil)).Elem() +} + +func (o AccessControlPolicySpecOidcGoogleStateCookieOutput) ToAccessControlPolicySpecOidcGoogleStateCookieOutput() AccessControlPolicySpecOidcGoogleStateCookieOutput { + return o +} + +func (o AccessControlPolicySpecOidcGoogleStateCookieOutput) ToAccessControlPolicySpecOidcGoogleStateCookieOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleStateCookieOutput { + return o +} + +func (o AccessControlPolicySpecOidcGoogleStateCookieOutput) ToAccessControlPolicySpecOidcGoogleStateCookiePtrOutput() AccessControlPolicySpecOidcGoogleStateCookiePtrOutput { + return o.ToAccessControlPolicySpecOidcGoogleStateCookiePtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicySpecOidcGoogleStateCookieOutput) ToAccessControlPolicySpecOidcGoogleStateCookiePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleStateCookiePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicySpecOidcGoogleStateCookie) *AccessControlPolicySpecOidcGoogleStateCookie { + return &v + }).(AccessControlPolicySpecOidcGoogleStateCookiePtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleStateCookieOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOidcGoogleStateCookie] { + return pulumix.Output[AccessControlPolicySpecOidcGoogleStateCookie]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOidcGoogleStateCookieOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogleStateCookie) *string { return v.Domain }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleStateCookieOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogleStateCookie) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleStateCookieOutput) SameSite() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogleStateCookie) *string { return v.SameSite }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleStateCookieOutput) Secure() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcGoogleStateCookie) *bool { return v.Secure }).(pulumi.BoolPtrOutput) +} + +type AccessControlPolicySpecOidcGoogleStateCookiePtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOidcGoogleStateCookiePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOidcGoogleStateCookie)(nil)).Elem() +} + +func (o AccessControlPolicySpecOidcGoogleStateCookiePtrOutput) ToAccessControlPolicySpecOidcGoogleStateCookiePtrOutput() AccessControlPolicySpecOidcGoogleStateCookiePtrOutput { + return o +} + +func (o AccessControlPolicySpecOidcGoogleStateCookiePtrOutput) ToAccessControlPolicySpecOidcGoogleStateCookiePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcGoogleStateCookiePtrOutput { + return o +} + +func (o AccessControlPolicySpecOidcGoogleStateCookiePtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOidcGoogleStateCookie] { + return pulumix.Output[*AccessControlPolicySpecOidcGoogleStateCookie]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOidcGoogleStateCookiePtrOutput) Elem() AccessControlPolicySpecOidcGoogleStateCookieOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogleStateCookie) AccessControlPolicySpecOidcGoogleStateCookie { + if v != nil { + return *v + } + var ret AccessControlPolicySpecOidcGoogleStateCookie + return ret + }).(AccessControlPolicySpecOidcGoogleStateCookieOutput) +} + +func (o AccessControlPolicySpecOidcGoogleStateCookiePtrOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogleStateCookie) *string { + if v == nil { + return nil + } + return v.Domain + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleStateCookiePtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogleStateCookie) *string { + if v == nil { + return nil + } + return v.Path + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleStateCookiePtrOutput) SameSite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogleStateCookie) *string { + if v == nil { + return nil + } + return v.SameSite + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcGoogleStateCookiePtrOutput) Secure() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcGoogleStateCookie) *bool { + if v == nil { + return nil + } + return v.Secure + }).(pulumi.BoolPtrOutput) +} + +// SecretReference represents a Secret Reference. It has enough information to retrieve secret +// in any namespace +type AccessControlPolicySpecOidcSecret struct { + // name is unique within a namespace to reference a secret resource. + Name *string `pulumi:"name"` + // namespace defines the space within which the secret name must be unique. + Namespace *string `pulumi:"namespace"` +} + +// AccessControlPolicySpecOidcSecretInput is an input type that accepts AccessControlPolicySpecOidcSecretArgs and AccessControlPolicySpecOidcSecretOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOidcSecretInput` via: +// +// AccessControlPolicySpecOidcSecretArgs{...} +type AccessControlPolicySpecOidcSecretInput interface { + pulumi.Input + + ToAccessControlPolicySpecOidcSecretOutput() AccessControlPolicySpecOidcSecretOutput + ToAccessControlPolicySpecOidcSecretOutputWithContext(context.Context) AccessControlPolicySpecOidcSecretOutput +} + +// SecretReference represents a Secret Reference. It has enough information to retrieve secret +// in any namespace +type AccessControlPolicySpecOidcSecretArgs struct { + // name is unique within a namespace to reference a secret resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // namespace defines the space within which the secret name must be unique. + Namespace pulumi.StringPtrInput `pulumi:"namespace"` +} + +func (AccessControlPolicySpecOidcSecretArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOidcSecret)(nil)).Elem() +} + +func (i AccessControlPolicySpecOidcSecretArgs) ToAccessControlPolicySpecOidcSecretOutput() AccessControlPolicySpecOidcSecretOutput { + return i.ToAccessControlPolicySpecOidcSecretOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOidcSecretArgs) ToAccessControlPolicySpecOidcSecretOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcSecretOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcSecretOutput) +} + +func (i AccessControlPolicySpecOidcSecretArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOidcSecret] { + return pulumix.Output[AccessControlPolicySpecOidcSecret]{ + OutputState: i.ToAccessControlPolicySpecOidcSecretOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicySpecOidcSecretArgs) ToAccessControlPolicySpecOidcSecretPtrOutput() AccessControlPolicySpecOidcSecretPtrOutput { + return i.ToAccessControlPolicySpecOidcSecretPtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOidcSecretArgs) ToAccessControlPolicySpecOidcSecretPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcSecretPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcSecretOutput).ToAccessControlPolicySpecOidcSecretPtrOutputWithContext(ctx) +} + +// AccessControlPolicySpecOidcSecretPtrInput is an input type that accepts AccessControlPolicySpecOidcSecretArgs, AccessControlPolicySpecOidcSecretPtr and AccessControlPolicySpecOidcSecretPtrOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOidcSecretPtrInput` via: +// +// AccessControlPolicySpecOidcSecretArgs{...} +// +// or: +// +// nil +type AccessControlPolicySpecOidcSecretPtrInput interface { + pulumi.Input + + ToAccessControlPolicySpecOidcSecretPtrOutput() AccessControlPolicySpecOidcSecretPtrOutput + ToAccessControlPolicySpecOidcSecretPtrOutputWithContext(context.Context) AccessControlPolicySpecOidcSecretPtrOutput +} + +type accessControlPolicySpecOidcSecretPtrType AccessControlPolicySpecOidcSecretArgs + +func AccessControlPolicySpecOidcSecretPtr(v *AccessControlPolicySpecOidcSecretArgs) AccessControlPolicySpecOidcSecretPtrInput { + return (*accessControlPolicySpecOidcSecretPtrType)(v) +} + +func (*accessControlPolicySpecOidcSecretPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOidcSecret)(nil)).Elem() +} + +func (i *accessControlPolicySpecOidcSecretPtrType) ToAccessControlPolicySpecOidcSecretPtrOutput() AccessControlPolicySpecOidcSecretPtrOutput { + return i.ToAccessControlPolicySpecOidcSecretPtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicySpecOidcSecretPtrType) ToAccessControlPolicySpecOidcSecretPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcSecretPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcSecretPtrOutput) +} + +func (i *accessControlPolicySpecOidcSecretPtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOidcSecret] { + return pulumix.Output[*AccessControlPolicySpecOidcSecret]{ + OutputState: i.ToAccessControlPolicySpecOidcSecretPtrOutputWithContext(ctx).OutputState, + } +} + +// SecretReference represents a Secret Reference. It has enough information to retrieve secret +// in any namespace +type AccessControlPolicySpecOidcSecretOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOidcSecretOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOidcSecret)(nil)).Elem() +} + +func (o AccessControlPolicySpecOidcSecretOutput) ToAccessControlPolicySpecOidcSecretOutput() AccessControlPolicySpecOidcSecretOutput { + return o +} + +func (o AccessControlPolicySpecOidcSecretOutput) ToAccessControlPolicySpecOidcSecretOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcSecretOutput { + return o +} + +func (o AccessControlPolicySpecOidcSecretOutput) ToAccessControlPolicySpecOidcSecretPtrOutput() AccessControlPolicySpecOidcSecretPtrOutput { + return o.ToAccessControlPolicySpecOidcSecretPtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicySpecOidcSecretOutput) ToAccessControlPolicySpecOidcSecretPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcSecretPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicySpecOidcSecret) *AccessControlPolicySpecOidcSecret { + return &v + }).(AccessControlPolicySpecOidcSecretPtrOutput) +} + +func (o AccessControlPolicySpecOidcSecretOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOidcSecret] { + return pulumix.Output[AccessControlPolicySpecOidcSecret]{ + OutputState: o.OutputState, + } +} + +// name is unique within a namespace to reference a secret resource. +func (o AccessControlPolicySpecOidcSecretOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcSecret) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// namespace defines the space within which the secret name must be unique. +func (o AccessControlPolicySpecOidcSecretOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcSecret) *string { return v.Namespace }).(pulumi.StringPtrOutput) +} + +type AccessControlPolicySpecOidcSecretPtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOidcSecretPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOidcSecret)(nil)).Elem() +} + +func (o AccessControlPolicySpecOidcSecretPtrOutput) ToAccessControlPolicySpecOidcSecretPtrOutput() AccessControlPolicySpecOidcSecretPtrOutput { + return o +} + +func (o AccessControlPolicySpecOidcSecretPtrOutput) ToAccessControlPolicySpecOidcSecretPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcSecretPtrOutput { + return o +} + +func (o AccessControlPolicySpecOidcSecretPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOidcSecret] { + return pulumix.Output[*AccessControlPolicySpecOidcSecret]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOidcSecretPtrOutput) Elem() AccessControlPolicySpecOidcSecretOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcSecret) AccessControlPolicySpecOidcSecret { + if v != nil { + return *v + } + var ret AccessControlPolicySpecOidcSecret + return ret + }).(AccessControlPolicySpecOidcSecretOutput) +} + +// name is unique within a namespace to reference a secret resource. +func (o AccessControlPolicySpecOidcSecretPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcSecret) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// namespace defines the space within which the secret name must be unique. +func (o AccessControlPolicySpecOidcSecretPtrOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcSecret) *string { + if v == nil { + return nil + } + return v.Namespace + }).(pulumi.StringPtrOutput) +} + +// Session holds session configuration. +type AccessControlPolicySpecOidcSession struct { + Domain *string `pulumi:"domain"` + Path *string `pulumi:"path"` + Refresh *bool `pulumi:"refresh"` + SameSite *string `pulumi:"sameSite"` + Secure *bool `pulumi:"secure"` +} + +// AccessControlPolicySpecOidcSessionInput is an input type that accepts AccessControlPolicySpecOidcSessionArgs and AccessControlPolicySpecOidcSessionOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOidcSessionInput` via: +// +// AccessControlPolicySpecOidcSessionArgs{...} +type AccessControlPolicySpecOidcSessionInput interface { + pulumi.Input + + ToAccessControlPolicySpecOidcSessionOutput() AccessControlPolicySpecOidcSessionOutput + ToAccessControlPolicySpecOidcSessionOutputWithContext(context.Context) AccessControlPolicySpecOidcSessionOutput +} + +// Session holds session configuration. +type AccessControlPolicySpecOidcSessionArgs struct { + Domain pulumi.StringPtrInput `pulumi:"domain"` + Path pulumi.StringPtrInput `pulumi:"path"` + Refresh pulumi.BoolPtrInput `pulumi:"refresh"` + SameSite pulumi.StringPtrInput `pulumi:"sameSite"` + Secure pulumi.BoolPtrInput `pulumi:"secure"` +} + +func (AccessControlPolicySpecOidcSessionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOidcSession)(nil)).Elem() +} + +func (i AccessControlPolicySpecOidcSessionArgs) ToAccessControlPolicySpecOidcSessionOutput() AccessControlPolicySpecOidcSessionOutput { + return i.ToAccessControlPolicySpecOidcSessionOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOidcSessionArgs) ToAccessControlPolicySpecOidcSessionOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcSessionOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcSessionOutput) +} + +func (i AccessControlPolicySpecOidcSessionArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOidcSession] { + return pulumix.Output[AccessControlPolicySpecOidcSession]{ + OutputState: i.ToAccessControlPolicySpecOidcSessionOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicySpecOidcSessionArgs) ToAccessControlPolicySpecOidcSessionPtrOutput() AccessControlPolicySpecOidcSessionPtrOutput { + return i.ToAccessControlPolicySpecOidcSessionPtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOidcSessionArgs) ToAccessControlPolicySpecOidcSessionPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcSessionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcSessionOutput).ToAccessControlPolicySpecOidcSessionPtrOutputWithContext(ctx) +} + +// AccessControlPolicySpecOidcSessionPtrInput is an input type that accepts AccessControlPolicySpecOidcSessionArgs, AccessControlPolicySpecOidcSessionPtr and AccessControlPolicySpecOidcSessionPtrOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOidcSessionPtrInput` via: +// +// AccessControlPolicySpecOidcSessionArgs{...} +// +// or: +// +// nil +type AccessControlPolicySpecOidcSessionPtrInput interface { + pulumi.Input + + ToAccessControlPolicySpecOidcSessionPtrOutput() AccessControlPolicySpecOidcSessionPtrOutput + ToAccessControlPolicySpecOidcSessionPtrOutputWithContext(context.Context) AccessControlPolicySpecOidcSessionPtrOutput +} + +type accessControlPolicySpecOidcSessionPtrType AccessControlPolicySpecOidcSessionArgs + +func AccessControlPolicySpecOidcSessionPtr(v *AccessControlPolicySpecOidcSessionArgs) AccessControlPolicySpecOidcSessionPtrInput { + return (*accessControlPolicySpecOidcSessionPtrType)(v) +} + +func (*accessControlPolicySpecOidcSessionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOidcSession)(nil)).Elem() +} + +func (i *accessControlPolicySpecOidcSessionPtrType) ToAccessControlPolicySpecOidcSessionPtrOutput() AccessControlPolicySpecOidcSessionPtrOutput { + return i.ToAccessControlPolicySpecOidcSessionPtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicySpecOidcSessionPtrType) ToAccessControlPolicySpecOidcSessionPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcSessionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcSessionPtrOutput) +} + +func (i *accessControlPolicySpecOidcSessionPtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOidcSession] { + return pulumix.Output[*AccessControlPolicySpecOidcSession]{ + OutputState: i.ToAccessControlPolicySpecOidcSessionPtrOutputWithContext(ctx).OutputState, + } +} + +// Session holds session configuration. +type AccessControlPolicySpecOidcSessionOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOidcSessionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOidcSession)(nil)).Elem() +} + +func (o AccessControlPolicySpecOidcSessionOutput) ToAccessControlPolicySpecOidcSessionOutput() AccessControlPolicySpecOidcSessionOutput { + return o +} + +func (o AccessControlPolicySpecOidcSessionOutput) ToAccessControlPolicySpecOidcSessionOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcSessionOutput { + return o +} + +func (o AccessControlPolicySpecOidcSessionOutput) ToAccessControlPolicySpecOidcSessionPtrOutput() AccessControlPolicySpecOidcSessionPtrOutput { + return o.ToAccessControlPolicySpecOidcSessionPtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicySpecOidcSessionOutput) ToAccessControlPolicySpecOidcSessionPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcSessionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicySpecOidcSession) *AccessControlPolicySpecOidcSession { + return &v + }).(AccessControlPolicySpecOidcSessionPtrOutput) +} + +func (o AccessControlPolicySpecOidcSessionOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOidcSession] { + return pulumix.Output[AccessControlPolicySpecOidcSession]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOidcSessionOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcSession) *string { return v.Domain }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcSessionOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcSession) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcSessionOutput) Refresh() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcSession) *bool { return v.Refresh }).(pulumi.BoolPtrOutput) +} + +func (o AccessControlPolicySpecOidcSessionOutput) SameSite() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcSession) *string { return v.SameSite }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcSessionOutput) Secure() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcSession) *bool { return v.Secure }).(pulumi.BoolPtrOutput) +} + +type AccessControlPolicySpecOidcSessionPtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOidcSessionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOidcSession)(nil)).Elem() +} + +func (o AccessControlPolicySpecOidcSessionPtrOutput) ToAccessControlPolicySpecOidcSessionPtrOutput() AccessControlPolicySpecOidcSessionPtrOutput { + return o +} + +func (o AccessControlPolicySpecOidcSessionPtrOutput) ToAccessControlPolicySpecOidcSessionPtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcSessionPtrOutput { + return o +} + +func (o AccessControlPolicySpecOidcSessionPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOidcSession] { + return pulumix.Output[*AccessControlPolicySpecOidcSession]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOidcSessionPtrOutput) Elem() AccessControlPolicySpecOidcSessionOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcSession) AccessControlPolicySpecOidcSession { + if v != nil { + return *v + } + var ret AccessControlPolicySpecOidcSession + return ret + }).(AccessControlPolicySpecOidcSessionOutput) +} + +func (o AccessControlPolicySpecOidcSessionPtrOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcSession) *string { + if v == nil { + return nil + } + return v.Domain + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcSessionPtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcSession) *string { + if v == nil { + return nil + } + return v.Path + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcSessionPtrOutput) Refresh() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcSession) *bool { + if v == nil { + return nil + } + return v.Refresh + }).(pulumi.BoolPtrOutput) +} + +func (o AccessControlPolicySpecOidcSessionPtrOutput) SameSite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcSession) *string { + if v == nil { + return nil + } + return v.SameSite + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcSessionPtrOutput) Secure() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcSession) *bool { + if v == nil { + return nil + } + return v.Secure + }).(pulumi.BoolPtrOutput) +} + +// StateCookie holds state cookie configuration. +type AccessControlPolicySpecOidcStateCookie struct { + Domain *string `pulumi:"domain"` + Path *string `pulumi:"path"` + SameSite *string `pulumi:"sameSite"` + Secure *bool `pulumi:"secure"` +} + +// AccessControlPolicySpecOidcStateCookieInput is an input type that accepts AccessControlPolicySpecOidcStateCookieArgs and AccessControlPolicySpecOidcStateCookieOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOidcStateCookieInput` via: +// +// AccessControlPolicySpecOidcStateCookieArgs{...} +type AccessControlPolicySpecOidcStateCookieInput interface { + pulumi.Input + + ToAccessControlPolicySpecOidcStateCookieOutput() AccessControlPolicySpecOidcStateCookieOutput + ToAccessControlPolicySpecOidcStateCookieOutputWithContext(context.Context) AccessControlPolicySpecOidcStateCookieOutput +} + +// StateCookie holds state cookie configuration. +type AccessControlPolicySpecOidcStateCookieArgs struct { + Domain pulumi.StringPtrInput `pulumi:"domain"` + Path pulumi.StringPtrInput `pulumi:"path"` + SameSite pulumi.StringPtrInput `pulumi:"sameSite"` + Secure pulumi.BoolPtrInput `pulumi:"secure"` +} + +func (AccessControlPolicySpecOidcStateCookieArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOidcStateCookie)(nil)).Elem() +} + +func (i AccessControlPolicySpecOidcStateCookieArgs) ToAccessControlPolicySpecOidcStateCookieOutput() AccessControlPolicySpecOidcStateCookieOutput { + return i.ToAccessControlPolicySpecOidcStateCookieOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOidcStateCookieArgs) ToAccessControlPolicySpecOidcStateCookieOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcStateCookieOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcStateCookieOutput) +} + +func (i AccessControlPolicySpecOidcStateCookieArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOidcStateCookie] { + return pulumix.Output[AccessControlPolicySpecOidcStateCookie]{ + OutputState: i.ToAccessControlPolicySpecOidcStateCookieOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicySpecOidcStateCookieArgs) ToAccessControlPolicySpecOidcStateCookiePtrOutput() AccessControlPolicySpecOidcStateCookiePtrOutput { + return i.ToAccessControlPolicySpecOidcStateCookiePtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicySpecOidcStateCookieArgs) ToAccessControlPolicySpecOidcStateCookiePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcStateCookiePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcStateCookieOutput).ToAccessControlPolicySpecOidcStateCookiePtrOutputWithContext(ctx) +} + +// AccessControlPolicySpecOidcStateCookiePtrInput is an input type that accepts AccessControlPolicySpecOidcStateCookieArgs, AccessControlPolicySpecOidcStateCookiePtr and AccessControlPolicySpecOidcStateCookiePtrOutput values. +// You can construct a concrete instance of `AccessControlPolicySpecOidcStateCookiePtrInput` via: +// +// AccessControlPolicySpecOidcStateCookieArgs{...} +// +// or: +// +// nil +type AccessControlPolicySpecOidcStateCookiePtrInput interface { + pulumi.Input + + ToAccessControlPolicySpecOidcStateCookiePtrOutput() AccessControlPolicySpecOidcStateCookiePtrOutput + ToAccessControlPolicySpecOidcStateCookiePtrOutputWithContext(context.Context) AccessControlPolicySpecOidcStateCookiePtrOutput +} + +type accessControlPolicySpecOidcStateCookiePtrType AccessControlPolicySpecOidcStateCookieArgs + +func AccessControlPolicySpecOidcStateCookiePtr(v *AccessControlPolicySpecOidcStateCookieArgs) AccessControlPolicySpecOidcStateCookiePtrInput { + return (*accessControlPolicySpecOidcStateCookiePtrType)(v) +} + +func (*accessControlPolicySpecOidcStateCookiePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOidcStateCookie)(nil)).Elem() +} + +func (i *accessControlPolicySpecOidcStateCookiePtrType) ToAccessControlPolicySpecOidcStateCookiePtrOutput() AccessControlPolicySpecOidcStateCookiePtrOutput { + return i.ToAccessControlPolicySpecOidcStateCookiePtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicySpecOidcStateCookiePtrType) ToAccessControlPolicySpecOidcStateCookiePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcStateCookiePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicySpecOidcStateCookiePtrOutput) +} + +func (i *accessControlPolicySpecOidcStateCookiePtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOidcStateCookie] { + return pulumix.Output[*AccessControlPolicySpecOidcStateCookie]{ + OutputState: i.ToAccessControlPolicySpecOidcStateCookiePtrOutputWithContext(ctx).OutputState, + } +} + +// StateCookie holds state cookie configuration. +type AccessControlPolicySpecOidcStateCookieOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOidcStateCookieOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicySpecOidcStateCookie)(nil)).Elem() +} + +func (o AccessControlPolicySpecOidcStateCookieOutput) ToAccessControlPolicySpecOidcStateCookieOutput() AccessControlPolicySpecOidcStateCookieOutput { + return o +} + +func (o AccessControlPolicySpecOidcStateCookieOutput) ToAccessControlPolicySpecOidcStateCookieOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcStateCookieOutput { + return o +} + +func (o AccessControlPolicySpecOidcStateCookieOutput) ToAccessControlPolicySpecOidcStateCookiePtrOutput() AccessControlPolicySpecOidcStateCookiePtrOutput { + return o.ToAccessControlPolicySpecOidcStateCookiePtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicySpecOidcStateCookieOutput) ToAccessControlPolicySpecOidcStateCookiePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcStateCookiePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicySpecOidcStateCookie) *AccessControlPolicySpecOidcStateCookie { + return &v + }).(AccessControlPolicySpecOidcStateCookiePtrOutput) +} + +func (o AccessControlPolicySpecOidcStateCookieOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicySpecOidcStateCookie] { + return pulumix.Output[AccessControlPolicySpecOidcStateCookie]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOidcStateCookieOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcStateCookie) *string { return v.Domain }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcStateCookieOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcStateCookie) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcStateCookieOutput) SameSite() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcStateCookie) *string { return v.SameSite }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcStateCookieOutput) Secure() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AccessControlPolicySpecOidcStateCookie) *bool { return v.Secure }).(pulumi.BoolPtrOutput) +} + +type AccessControlPolicySpecOidcStateCookiePtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicySpecOidcStateCookiePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicySpecOidcStateCookie)(nil)).Elem() +} + +func (o AccessControlPolicySpecOidcStateCookiePtrOutput) ToAccessControlPolicySpecOidcStateCookiePtrOutput() AccessControlPolicySpecOidcStateCookiePtrOutput { + return o +} + +func (o AccessControlPolicySpecOidcStateCookiePtrOutput) ToAccessControlPolicySpecOidcStateCookiePtrOutputWithContext(ctx context.Context) AccessControlPolicySpecOidcStateCookiePtrOutput { + return o +} + +func (o AccessControlPolicySpecOidcStateCookiePtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicySpecOidcStateCookie] { + return pulumix.Output[*AccessControlPolicySpecOidcStateCookie]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicySpecOidcStateCookiePtrOutput) Elem() AccessControlPolicySpecOidcStateCookieOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcStateCookie) AccessControlPolicySpecOidcStateCookie { + if v != nil { + return *v + } + var ret AccessControlPolicySpecOidcStateCookie + return ret + }).(AccessControlPolicySpecOidcStateCookieOutput) +} + +func (o AccessControlPolicySpecOidcStateCookiePtrOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcStateCookie) *string { + if v == nil { + return nil + } + return v.Domain + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcStateCookiePtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcStateCookie) *string { + if v == nil { + return nil + } + return v.Path + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcStateCookiePtrOutput) SameSite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcStateCookie) *string { + if v == nil { + return nil + } + return v.SameSite + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicySpecOidcStateCookiePtrOutput) Secure() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccessControlPolicySpecOidcStateCookie) *bool { + if v == nil { + return nil + } + return v.Secure + }).(pulumi.BoolPtrOutput) +} + +// The current status of this access control policy. +type AccessControlPolicyStatus struct { + SpecHash *string `pulumi:"specHash"` + SyncedAt *string `pulumi:"syncedAt"` + Version *string `pulumi:"version"` +} + +// AccessControlPolicyStatusInput is an input type that accepts AccessControlPolicyStatusArgs and AccessControlPolicyStatusOutput values. +// You can construct a concrete instance of `AccessControlPolicyStatusInput` via: +// +// AccessControlPolicyStatusArgs{...} +type AccessControlPolicyStatusInput interface { + pulumi.Input + + ToAccessControlPolicyStatusOutput() AccessControlPolicyStatusOutput + ToAccessControlPolicyStatusOutputWithContext(context.Context) AccessControlPolicyStatusOutput +} + +// The current status of this access control policy. +type AccessControlPolicyStatusArgs struct { + SpecHash pulumi.StringPtrInput `pulumi:"specHash"` + SyncedAt pulumi.StringPtrInput `pulumi:"syncedAt"` + Version pulumi.StringPtrInput `pulumi:"version"` +} + +func (AccessControlPolicyStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicyStatus)(nil)).Elem() +} + +func (i AccessControlPolicyStatusArgs) ToAccessControlPolicyStatusOutput() AccessControlPolicyStatusOutput { + return i.ToAccessControlPolicyStatusOutputWithContext(context.Background()) +} + +func (i AccessControlPolicyStatusArgs) ToAccessControlPolicyStatusOutputWithContext(ctx context.Context) AccessControlPolicyStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicyStatusOutput) +} + +func (i AccessControlPolicyStatusArgs) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicyStatus] { + return pulumix.Output[AccessControlPolicyStatus]{ + OutputState: i.ToAccessControlPolicyStatusOutputWithContext(ctx).OutputState, + } +} + +func (i AccessControlPolicyStatusArgs) ToAccessControlPolicyStatusPtrOutput() AccessControlPolicyStatusPtrOutput { + return i.ToAccessControlPolicyStatusPtrOutputWithContext(context.Background()) +} + +func (i AccessControlPolicyStatusArgs) ToAccessControlPolicyStatusPtrOutputWithContext(ctx context.Context) AccessControlPolicyStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicyStatusOutput).ToAccessControlPolicyStatusPtrOutputWithContext(ctx) +} + +// AccessControlPolicyStatusPtrInput is an input type that accepts AccessControlPolicyStatusArgs, AccessControlPolicyStatusPtr and AccessControlPolicyStatusPtrOutput values. +// You can construct a concrete instance of `AccessControlPolicyStatusPtrInput` via: +// +// AccessControlPolicyStatusArgs{...} +// +// or: +// +// nil +type AccessControlPolicyStatusPtrInput interface { + pulumi.Input + + ToAccessControlPolicyStatusPtrOutput() AccessControlPolicyStatusPtrOutput + ToAccessControlPolicyStatusPtrOutputWithContext(context.Context) AccessControlPolicyStatusPtrOutput +} + +type accessControlPolicyStatusPtrType AccessControlPolicyStatusArgs + +func AccessControlPolicyStatusPtr(v *AccessControlPolicyStatusArgs) AccessControlPolicyStatusPtrInput { + return (*accessControlPolicyStatusPtrType)(v) +} + +func (*accessControlPolicyStatusPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicyStatus)(nil)).Elem() +} + +func (i *accessControlPolicyStatusPtrType) ToAccessControlPolicyStatusPtrOutput() AccessControlPolicyStatusPtrOutput { + return i.ToAccessControlPolicyStatusPtrOutputWithContext(context.Background()) +} + +func (i *accessControlPolicyStatusPtrType) ToAccessControlPolicyStatusPtrOutputWithContext(ctx context.Context) AccessControlPolicyStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessControlPolicyStatusPtrOutput) +} + +func (i *accessControlPolicyStatusPtrType) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicyStatus] { + return pulumix.Output[*AccessControlPolicyStatus]{ + OutputState: i.ToAccessControlPolicyStatusPtrOutputWithContext(ctx).OutputState, + } +} + +// The current status of this access control policy. +type AccessControlPolicyStatusOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicyStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessControlPolicyStatus)(nil)).Elem() +} + +func (o AccessControlPolicyStatusOutput) ToAccessControlPolicyStatusOutput() AccessControlPolicyStatusOutput { + return o +} + +func (o AccessControlPolicyStatusOutput) ToAccessControlPolicyStatusOutputWithContext(ctx context.Context) AccessControlPolicyStatusOutput { + return o +} + +func (o AccessControlPolicyStatusOutput) ToAccessControlPolicyStatusPtrOutput() AccessControlPolicyStatusPtrOutput { + return o.ToAccessControlPolicyStatusPtrOutputWithContext(context.Background()) +} + +func (o AccessControlPolicyStatusOutput) ToAccessControlPolicyStatusPtrOutputWithContext(ctx context.Context) AccessControlPolicyStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessControlPolicyStatus) *AccessControlPolicyStatus { + return &v + }).(AccessControlPolicyStatusPtrOutput) +} + +func (o AccessControlPolicyStatusOutput) ToOutput(ctx context.Context) pulumix.Output[AccessControlPolicyStatus] { + return pulumix.Output[AccessControlPolicyStatus]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicyStatusOutput) SpecHash() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicyStatus) *string { return v.SpecHash }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicyStatusOutput) SyncedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicyStatus) *string { return v.SyncedAt }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicyStatusOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessControlPolicyStatus) *string { return v.Version }).(pulumi.StringPtrOutput) +} + +type AccessControlPolicyStatusPtrOutput struct{ *pulumi.OutputState } + +func (AccessControlPolicyStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessControlPolicyStatus)(nil)).Elem() +} + +func (o AccessControlPolicyStatusPtrOutput) ToAccessControlPolicyStatusPtrOutput() AccessControlPolicyStatusPtrOutput { + return o +} + +func (o AccessControlPolicyStatusPtrOutput) ToAccessControlPolicyStatusPtrOutputWithContext(ctx context.Context) AccessControlPolicyStatusPtrOutput { + return o +} + +func (o AccessControlPolicyStatusPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*AccessControlPolicyStatus] { + return pulumix.Output[*AccessControlPolicyStatus]{ + OutputState: o.OutputState, + } +} + +func (o AccessControlPolicyStatusPtrOutput) Elem() AccessControlPolicyStatusOutput { + return o.ApplyT(func(v *AccessControlPolicyStatus) AccessControlPolicyStatus { + if v != nil { + return *v + } + var ret AccessControlPolicyStatus + return ret + }).(AccessControlPolicyStatusOutput) +} + +func (o AccessControlPolicyStatusPtrOutput) SpecHash() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicyStatus) *string { + if v == nil { + return nil + } + return v.SpecHash + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicyStatusPtrOutput) SyncedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicyStatus) *string { + if v == nil { + return nil + } + return v.SyncedAt + }).(pulumi.StringPtrOutput) +} + +func (o AccessControlPolicyStatusPtrOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessControlPolicyStatus) *string { + if v == nil { + return nil + } + return v.Version + }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*APIAccessSpecInput)(nil)).Elem(), APIAccessSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIAccessSpecPtrInput)(nil)).Elem(), APIAccessSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIAccessSpecApiSelectorInput)(nil)).Elem(), APIAccessSpecApiSelectorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIAccessSpecApiSelectorPtrInput)(nil)).Elem(), APIAccessSpecApiSelectorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIAccessSpecApiSelectorMatchExpressionsInput)(nil)).Elem(), APIAccessSpecApiSelectorMatchExpressionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIAccessSpecApiSelectorMatchExpressionsArrayInput)(nil)).Elem(), APIAccessSpecApiSelectorMatchExpressionsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIAccessSpecApisInput)(nil)).Elem(), APIAccessSpecApisArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIAccessSpecApisArrayInput)(nil)).Elem(), APIAccessSpecApisArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIAccessSpecOperationFilterInput)(nil)).Elem(), APIAccessSpecOperationFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIAccessSpecOperationFilterPtrInput)(nil)).Elem(), APIAccessSpecOperationFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIAccessStatusInput)(nil)).Elem(), APIAccessStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIAccessStatusPtrInput)(nil)).Elem(), APIAccessStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIPortalSpecInput)(nil)).Elem(), APIPortalSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIPortalSpecPtrInput)(nil)).Elem(), APIPortalSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIPortalSpecUiInput)(nil)).Elem(), APIPortalSpecUiArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIPortalSpecUiPtrInput)(nil)).Elem(), APIPortalSpecUiArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIPortalStatusInput)(nil)).Elem(), APIPortalStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIPortalStatusPtrInput)(nil)).Elem(), APIPortalStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIPortalStatusOidcInput)(nil)).Elem(), APIPortalStatusOidcArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIPortalStatusOidcPtrInput)(nil)).Elem(), APIPortalStatusOidcArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIRateLimitSpecInput)(nil)).Elem(), APIRateLimitSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIRateLimitSpecPtrInput)(nil)).Elem(), APIRateLimitSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIRateLimitSpecApiSelectorInput)(nil)).Elem(), APIRateLimitSpecApiSelectorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIRateLimitSpecApiSelectorPtrInput)(nil)).Elem(), APIRateLimitSpecApiSelectorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIRateLimitSpecApiSelectorMatchExpressionsInput)(nil)).Elem(), APIRateLimitSpecApiSelectorMatchExpressionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIRateLimitSpecApiSelectorMatchExpressionsArrayInput)(nil)).Elem(), APIRateLimitSpecApiSelectorMatchExpressionsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIRateLimitSpecApisInput)(nil)).Elem(), APIRateLimitSpecApisArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIRateLimitSpecApisArrayInput)(nil)).Elem(), APIRateLimitSpecApisArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIRateLimitStatusInput)(nil)).Elem(), APIRateLimitStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIRateLimitStatusPtrInput)(nil)).Elem(), APIRateLimitStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APISpecInput)(nil)).Elem(), APISpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APISpecPtrInput)(nil)).Elem(), APISpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APISpecOpenApiSpecInput)(nil)).Elem(), APISpecOpenApiSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APISpecOpenApiSpecPtrInput)(nil)).Elem(), APISpecOpenApiSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APISpecOpenApiSpecOperationSetsInput)(nil)).Elem(), APISpecOpenApiSpecOperationSetsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APISpecOpenApiSpecOperationSetsArrayInput)(nil)).Elem(), APISpecOpenApiSpecOperationSetsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*APISpecOpenApiSpecOperationSetsMatchersInput)(nil)).Elem(), APISpecOpenApiSpecOperationSetsMatchersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APISpecOpenApiSpecOperationSetsMatchersArrayInput)(nil)).Elem(), APISpecOpenApiSpecOperationSetsMatchersArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*APISpecOpenApiSpecOverrideInput)(nil)).Elem(), APISpecOpenApiSpecOverrideArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APISpecOpenApiSpecOverridePtrInput)(nil)).Elem(), APISpecOpenApiSpecOverrideArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APISpecOpenApiSpecOverrideServersInput)(nil)).Elem(), APISpecOpenApiSpecOverrideServersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APISpecOpenApiSpecOverrideServersArrayInput)(nil)).Elem(), APISpecOpenApiSpecOverrideServersArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*APISpecVersionsInput)(nil)).Elem(), APISpecVersionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APISpecVersionsArrayInput)(nil)).Elem(), APISpecVersionsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIStatusInput)(nil)).Elem(), APIStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIStatusPtrInput)(nil)).Elem(), APIStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIVersionSpecInput)(nil)).Elem(), APIVersionSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIVersionSpecPtrInput)(nil)).Elem(), APIVersionSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIVersionSpecOpenApiSpecInput)(nil)).Elem(), APIVersionSpecOpenApiSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIVersionSpecOpenApiSpecPtrInput)(nil)).Elem(), APIVersionSpecOpenApiSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIVersionSpecOpenApiSpecOperationSetsInput)(nil)).Elem(), APIVersionSpecOpenApiSpecOperationSetsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIVersionSpecOpenApiSpecOperationSetsArrayInput)(nil)).Elem(), APIVersionSpecOpenApiSpecOperationSetsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIVersionSpecOpenApiSpecOperationSetsMatchersInput)(nil)).Elem(), APIVersionSpecOpenApiSpecOperationSetsMatchersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIVersionSpecOpenApiSpecOperationSetsMatchersArrayInput)(nil)).Elem(), APIVersionSpecOpenApiSpecOperationSetsMatchersArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIVersionSpecOpenApiSpecOverrideInput)(nil)).Elem(), APIVersionSpecOpenApiSpecOverrideArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIVersionSpecOpenApiSpecOverridePtrInput)(nil)).Elem(), APIVersionSpecOpenApiSpecOverrideArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIVersionSpecOpenApiSpecOverrideServersInput)(nil)).Elem(), APIVersionSpecOpenApiSpecOverrideServersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIVersionSpecOpenApiSpecOverrideServersArrayInput)(nil)).Elem(), APIVersionSpecOpenApiSpecOverrideServersArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIVersionStatusInput)(nil)).Elem(), APIVersionStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*APIVersionStatusPtrInput)(nil)).Elem(), APIVersionStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecInput)(nil)).Elem(), AccessControlPolicySpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecPtrInput)(nil)).Elem(), AccessControlPolicySpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecApiKeyInput)(nil)).Elem(), AccessControlPolicySpecApiKeyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecApiKeyPtrInput)(nil)).Elem(), AccessControlPolicySpecApiKeyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecApiKeyKeySourceInput)(nil)).Elem(), AccessControlPolicySpecApiKeyKeySourceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecApiKeyKeySourcePtrInput)(nil)).Elem(), AccessControlPolicySpecApiKeyKeySourceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecApiKeyKeysInput)(nil)).Elem(), AccessControlPolicySpecApiKeyKeysArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecApiKeyKeysArrayInput)(nil)).Elem(), AccessControlPolicySpecApiKeyKeysArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecBasicAuthInput)(nil)).Elem(), AccessControlPolicySpecBasicAuthArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecBasicAuthPtrInput)(nil)).Elem(), AccessControlPolicySpecBasicAuthArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecJwtInput)(nil)).Elem(), AccessControlPolicySpecJwtArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecJwtPtrInput)(nil)).Elem(), AccessControlPolicySpecJwtArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOAuthIntroInput)(nil)).Elem(), AccessControlPolicySpecOAuthIntroArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOAuthIntroPtrInput)(nil)).Elem(), AccessControlPolicySpecOAuthIntroArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOAuthIntroClientConfigInput)(nil)).Elem(), AccessControlPolicySpecOAuthIntroClientConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOAuthIntroClientConfigPtrInput)(nil)).Elem(), AccessControlPolicySpecOAuthIntroClientConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOAuthIntroClientConfigTlsInput)(nil)).Elem(), AccessControlPolicySpecOAuthIntroClientConfigTlsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOAuthIntroClientConfigTlsPtrInput)(nil)).Elem(), AccessControlPolicySpecOAuthIntroClientConfigTlsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOAuthIntroTokenSourceInput)(nil)).Elem(), AccessControlPolicySpecOAuthIntroTokenSourceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOAuthIntroTokenSourcePtrInput)(nil)).Elem(), AccessControlPolicySpecOAuthIntroTokenSourceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOidcInput)(nil)).Elem(), AccessControlPolicySpecOidcArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOidcPtrInput)(nil)).Elem(), AccessControlPolicySpecOidcArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOidcGoogleInput)(nil)).Elem(), AccessControlPolicySpecOidcGoogleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOidcGooglePtrInput)(nil)).Elem(), AccessControlPolicySpecOidcGoogleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOidcGoogleSecretInput)(nil)).Elem(), AccessControlPolicySpecOidcGoogleSecretArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOidcGoogleSecretPtrInput)(nil)).Elem(), AccessControlPolicySpecOidcGoogleSecretArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOidcGoogleSessionInput)(nil)).Elem(), AccessControlPolicySpecOidcGoogleSessionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOidcGoogleSessionPtrInput)(nil)).Elem(), AccessControlPolicySpecOidcGoogleSessionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOidcGoogleStateCookieInput)(nil)).Elem(), AccessControlPolicySpecOidcGoogleStateCookieArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOidcGoogleStateCookiePtrInput)(nil)).Elem(), AccessControlPolicySpecOidcGoogleStateCookieArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOidcSecretInput)(nil)).Elem(), AccessControlPolicySpecOidcSecretArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOidcSecretPtrInput)(nil)).Elem(), AccessControlPolicySpecOidcSecretArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOidcSessionInput)(nil)).Elem(), AccessControlPolicySpecOidcSessionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOidcSessionPtrInput)(nil)).Elem(), AccessControlPolicySpecOidcSessionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOidcStateCookieInput)(nil)).Elem(), AccessControlPolicySpecOidcStateCookieArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicySpecOidcStateCookiePtrInput)(nil)).Elem(), AccessControlPolicySpecOidcStateCookieArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicyStatusInput)(nil)).Elem(), AccessControlPolicyStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessControlPolicyStatusPtrInput)(nil)).Elem(), AccessControlPolicyStatusArgs{}) + pulumi.RegisterOutputType(APIAccessSpecOutput{}) + pulumi.RegisterOutputType(APIAccessSpecPtrOutput{}) + pulumi.RegisterOutputType(APIAccessSpecApiSelectorOutput{}) + pulumi.RegisterOutputType(APIAccessSpecApiSelectorPtrOutput{}) + pulumi.RegisterOutputType(APIAccessSpecApiSelectorMatchExpressionsOutput{}) + pulumi.RegisterOutputType(APIAccessSpecApiSelectorMatchExpressionsArrayOutput{}) + pulumi.RegisterOutputType(APIAccessSpecApisOutput{}) + pulumi.RegisterOutputType(APIAccessSpecApisArrayOutput{}) + pulumi.RegisterOutputType(APIAccessSpecOperationFilterOutput{}) + pulumi.RegisterOutputType(APIAccessSpecOperationFilterPtrOutput{}) + pulumi.RegisterOutputType(APIAccessStatusOutput{}) + pulumi.RegisterOutputType(APIAccessStatusPtrOutput{}) + pulumi.RegisterOutputType(APIPortalSpecOutput{}) + pulumi.RegisterOutputType(APIPortalSpecPtrOutput{}) + pulumi.RegisterOutputType(APIPortalSpecUiOutput{}) + pulumi.RegisterOutputType(APIPortalSpecUiPtrOutput{}) + pulumi.RegisterOutputType(APIPortalStatusOutput{}) + pulumi.RegisterOutputType(APIPortalStatusPtrOutput{}) + pulumi.RegisterOutputType(APIPortalStatusOidcOutput{}) + pulumi.RegisterOutputType(APIPortalStatusOidcPtrOutput{}) + pulumi.RegisterOutputType(APIRateLimitSpecOutput{}) + pulumi.RegisterOutputType(APIRateLimitSpecPtrOutput{}) + pulumi.RegisterOutputType(APIRateLimitSpecApiSelectorOutput{}) + pulumi.RegisterOutputType(APIRateLimitSpecApiSelectorPtrOutput{}) + pulumi.RegisterOutputType(APIRateLimitSpecApiSelectorMatchExpressionsOutput{}) + pulumi.RegisterOutputType(APIRateLimitSpecApiSelectorMatchExpressionsArrayOutput{}) + pulumi.RegisterOutputType(APIRateLimitSpecApisOutput{}) + pulumi.RegisterOutputType(APIRateLimitSpecApisArrayOutput{}) + pulumi.RegisterOutputType(APIRateLimitStatusOutput{}) + pulumi.RegisterOutputType(APIRateLimitStatusPtrOutput{}) + pulumi.RegisterOutputType(APISpecOutput{}) + pulumi.RegisterOutputType(APISpecPtrOutput{}) + pulumi.RegisterOutputType(APISpecOpenApiSpecOutput{}) + pulumi.RegisterOutputType(APISpecOpenApiSpecPtrOutput{}) + pulumi.RegisterOutputType(APISpecOpenApiSpecOperationSetsOutput{}) + pulumi.RegisterOutputType(APISpecOpenApiSpecOperationSetsArrayOutput{}) + pulumi.RegisterOutputType(APISpecOpenApiSpecOperationSetsMatchersOutput{}) + pulumi.RegisterOutputType(APISpecOpenApiSpecOperationSetsMatchersArrayOutput{}) + pulumi.RegisterOutputType(APISpecOpenApiSpecOverrideOutput{}) + pulumi.RegisterOutputType(APISpecOpenApiSpecOverridePtrOutput{}) + pulumi.RegisterOutputType(APISpecOpenApiSpecOverrideServersOutput{}) + pulumi.RegisterOutputType(APISpecOpenApiSpecOverrideServersArrayOutput{}) + pulumi.RegisterOutputType(APISpecVersionsOutput{}) + pulumi.RegisterOutputType(APISpecVersionsArrayOutput{}) + pulumi.RegisterOutputType(APIStatusOutput{}) + pulumi.RegisterOutputType(APIStatusPtrOutput{}) + pulumi.RegisterOutputType(APIVersionSpecOutput{}) + pulumi.RegisterOutputType(APIVersionSpecPtrOutput{}) + pulumi.RegisterOutputType(APIVersionSpecOpenApiSpecOutput{}) + pulumi.RegisterOutputType(APIVersionSpecOpenApiSpecPtrOutput{}) + pulumi.RegisterOutputType(APIVersionSpecOpenApiSpecOperationSetsOutput{}) + pulumi.RegisterOutputType(APIVersionSpecOpenApiSpecOperationSetsArrayOutput{}) + pulumi.RegisterOutputType(APIVersionSpecOpenApiSpecOperationSetsMatchersOutput{}) + pulumi.RegisterOutputType(APIVersionSpecOpenApiSpecOperationSetsMatchersArrayOutput{}) + pulumi.RegisterOutputType(APIVersionSpecOpenApiSpecOverrideOutput{}) + pulumi.RegisterOutputType(APIVersionSpecOpenApiSpecOverridePtrOutput{}) + pulumi.RegisterOutputType(APIVersionSpecOpenApiSpecOverrideServersOutput{}) + pulumi.RegisterOutputType(APIVersionSpecOpenApiSpecOverrideServersArrayOutput{}) + pulumi.RegisterOutputType(APIVersionStatusOutput{}) + pulumi.RegisterOutputType(APIVersionStatusPtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecPtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecApiKeyOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecApiKeyPtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecApiKeyKeySourceOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecApiKeyKeySourcePtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecApiKeyKeysOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecApiKeyKeysArrayOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecBasicAuthOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecBasicAuthPtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecJwtOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecJwtPtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOAuthIntroOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOAuthIntroPtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOAuthIntroClientConfigOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOAuthIntroClientConfigPtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOAuthIntroClientConfigTlsOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOAuthIntroClientConfigTlsPtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOAuthIntroTokenSourceOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOAuthIntroTokenSourcePtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOidcOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOidcPtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOidcGoogleOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOidcGooglePtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOidcGoogleSecretOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOidcGoogleSecretPtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOidcGoogleSessionOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOidcGoogleSessionPtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOidcGoogleStateCookieOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOidcGoogleStateCookiePtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOidcSecretOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOidcSecretPtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOidcSessionOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOidcSessionPtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOidcStateCookieOutput{}) + pulumi.RegisterOutputType(AccessControlPolicySpecOidcStateCookiePtrOutput{}) + pulumi.RegisterOutputType(AccessControlPolicyStatusOutput{}) + pulumi.RegisterOutputType(AccessControlPolicyStatusPtrOutput{}) +} diff --git a/crds/kubernetes/traefik/v1alpha1/middleware.go b/crds/kubernetes/traefik/v1alpha1/middleware.go index 9d73a6d..bb90ee5 100644 --- a/crds/kubernetes/traefik/v1alpha1/middleware.go +++ b/crds/kubernetes/traefik/v1alpha1/middleware.go @@ -14,7 +14,7 @@ import ( ) // Middleware is the CRD implementation of a Traefik Middleware. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/overview/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/overview/ type Middleware struct { pulumi.CustomResourceState diff --git a/crds/kubernetes/traefik/v1alpha1/middlewareTCP.go b/crds/kubernetes/traefik/v1alpha1/middlewareTCP.go index a970461..62ffef5 100644 --- a/crds/kubernetes/traefik/v1alpha1/middlewareTCP.go +++ b/crds/kubernetes/traefik/v1alpha1/middlewareTCP.go @@ -14,7 +14,7 @@ import ( ) // MiddlewareTCP is the CRD implementation of a Traefik TCP middleware. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/overview/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/overview/ type MiddlewareTCP struct { pulumi.CustomResourceState diff --git a/crds/kubernetes/traefik/v1alpha1/pulumiTypes.go b/crds/kubernetes/traefik/v1alpha1/pulumiTypes.go index 8a75109..0452bcc 100644 --- a/crds/kubernetes/traefik/v1alpha1/pulumiTypes.go +++ b/crds/kubernetes/traefik/v1alpha1/pulumiTypes.go @@ -31,13 +31,13 @@ type IngressRouteMetadata struct { type IngressRouteSpec struct { // EntryPoints defines the list of entry point names to bind to. // Entry points have to be configured in the static configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/ + // More info: https://doc.traefik.io/traefik/v3.0/routing/entrypoints/ // Default: all. EntryPoints []string `pulumi:"entryPoints"` // Routes defines the list of routes. Routes []IngressRouteSpecRoutes `pulumi:"routes"` // TLS defines the TLS configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls Tls *IngressRouteSpecTls `pulumi:"tls"` } @@ -56,13 +56,13 @@ type IngressRouteSpecInput interface { type IngressRouteSpecArgs struct { // EntryPoints defines the list of entry point names to bind to. // Entry points have to be configured in the static configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/ + // More info: https://doc.traefik.io/traefik/v3.0/routing/entrypoints/ // Default: all. EntryPoints pulumi.StringArrayInput `pulumi:"entryPoints"` // Routes defines the list of routes. Routes IngressRouteSpecRoutesArrayInput `pulumi:"routes"` // TLS defines the TLS configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls Tls IngressRouteSpecTlsPtrInput `pulumi:"tls"` } @@ -164,7 +164,7 @@ func (o IngressRouteSpecOutput) ToOutput(ctx context.Context) pulumix.Output[Ing // EntryPoints defines the list of entry point names to bind to. // Entry points have to be configured in the static configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/ +// More info: https://doc.traefik.io/traefik/v3.0/routing/entrypoints/ // Default: all. func (o IngressRouteSpecOutput) EntryPoints() pulumi.StringArrayOutput { return o.ApplyT(func(v IngressRouteSpec) []string { return v.EntryPoints }).(pulumi.StringArrayOutput) @@ -176,7 +176,7 @@ func (o IngressRouteSpecOutput) Routes() IngressRouteSpecRoutesArrayOutput { } // TLS defines the TLS configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls func (o IngressRouteSpecOutput) Tls() IngressRouteSpecTlsPtrOutput { return o.ApplyT(func(v IngressRouteSpec) *IngressRouteSpecTls { return v.Tls }).(IngressRouteSpecTlsPtrOutput) } @@ -213,7 +213,7 @@ func (o IngressRouteSpecPtrOutput) Elem() IngressRouteSpecOutput { // EntryPoints defines the list of entry point names to bind to. // Entry points have to be configured in the static configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/ +// More info: https://doc.traefik.io/traefik/v3.0/routing/entrypoints/ // Default: all. func (o IngressRouteSpecPtrOutput) EntryPoints() pulumi.StringArrayOutput { return o.ApplyT(func(v *IngressRouteSpec) []string { @@ -235,7 +235,7 @@ func (o IngressRouteSpecPtrOutput) Routes() IngressRouteSpecRoutesArrayOutput { } // TLS defines the TLS configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls func (o IngressRouteSpecPtrOutput) Tls() IngressRouteSpecTlsPtrOutput { return o.ApplyT(func(v *IngressRouteSpec) *IngressRouteSpecTls { if v == nil { @@ -251,17 +251,20 @@ type IngressRouteSpecRoutes struct { // Rule is the only supported kind. Kind string `pulumi:"kind"` // Match defines the router's rule. - // More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#rule + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rule Match string `pulumi:"match"` // Middlewares defines the list of references to Middleware resources. - // More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-middleware + // More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-middleware Middlewares []IngressRouteSpecRoutesMiddlewares `pulumi:"middlewares"` // Priority defines the router's priority. - // More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#priority + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#priority Priority *int `pulumi:"priority"` // Services defines the list of Service. // It can contain any combination of TraefikService and/or reference to a Kubernetes Service. Services []IngressRouteSpecRoutesServices `pulumi:"services"` + // Syntax defines the router's rule syntax. + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rulesyntax + Syntax *string `pulumi:"syntax"` } // IngressRouteSpecRoutesInput is an input type that accepts IngressRouteSpecRoutesArgs and IngressRouteSpecRoutesOutput values. @@ -281,17 +284,20 @@ type IngressRouteSpecRoutesArgs struct { // Rule is the only supported kind. Kind pulumi.StringInput `pulumi:"kind"` // Match defines the router's rule. - // More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#rule + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rule Match pulumi.StringInput `pulumi:"match"` // Middlewares defines the list of references to Middleware resources. - // More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-middleware + // More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-middleware Middlewares IngressRouteSpecRoutesMiddlewaresArrayInput `pulumi:"middlewares"` // Priority defines the router's priority. - // More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#priority + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#priority Priority pulumi.IntPtrInput `pulumi:"priority"` // Services defines the list of Service. // It can contain any combination of TraefikService and/or reference to a Kubernetes Service. Services IngressRouteSpecRoutesServicesArrayInput `pulumi:"services"` + // Syntax defines the router's rule syntax. + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rulesyntax + Syntax pulumi.StringPtrInput `pulumi:"syntax"` } func (IngressRouteSpecRoutesArgs) ElementType() reflect.Type { @@ -371,19 +377,19 @@ func (o IngressRouteSpecRoutesOutput) Kind() pulumi.StringOutput { } // Match defines the router's rule. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#rule +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rule func (o IngressRouteSpecRoutesOutput) Match() pulumi.StringOutput { return o.ApplyT(func(v IngressRouteSpecRoutes) string { return v.Match }).(pulumi.StringOutput) } // Middlewares defines the list of references to Middleware resources. -// More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-middleware +// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-middleware func (o IngressRouteSpecRoutesOutput) Middlewares() IngressRouteSpecRoutesMiddlewaresArrayOutput { return o.ApplyT(func(v IngressRouteSpecRoutes) []IngressRouteSpecRoutesMiddlewares { return v.Middlewares }).(IngressRouteSpecRoutesMiddlewaresArrayOutput) } // Priority defines the router's priority. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#priority +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#priority func (o IngressRouteSpecRoutesOutput) Priority() pulumi.IntPtrOutput { return o.ApplyT(func(v IngressRouteSpecRoutes) *int { return v.Priority }).(pulumi.IntPtrOutput) } @@ -394,6 +400,12 @@ func (o IngressRouteSpecRoutesOutput) Services() IngressRouteSpecRoutesServicesA return o.ApplyT(func(v IngressRouteSpecRoutes) []IngressRouteSpecRoutesServices { return v.Services }).(IngressRouteSpecRoutesServicesArrayOutput) } +// Syntax defines the router's rule syntax. +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rulesyntax +func (o IngressRouteSpecRoutesOutput) Syntax() pulumi.StringPtrOutput { + return o.ApplyT(func(v IngressRouteSpecRoutes) *string { return v.Syntax }).(pulumi.StringPtrOutput) +} + type IngressRouteSpecRoutesArrayOutput struct{ *pulumi.OutputState } func (IngressRouteSpecRoutesArrayOutput) ElementType() reflect.Type { @@ -555,6 +567,8 @@ func (o IngressRouteSpecRoutesMiddlewaresArrayOutput) Index(i pulumi.IntInput) I // Service defines an upstream HTTP service to proxy traffic to. type IngressRouteSpecRoutesServices struct { + // Healthcheck defines health checks for ExternalName services. + HealthCheck *IngressRouteSpecRoutesServicesHealthCheck `pulumi:"healthCheck"` // Kind defines the kind of the Service. Kind *string `pulumi:"kind"` // Name defines the name of the referenced Kubernetes Service or TraefikService. @@ -567,6 +581,11 @@ type IngressRouteSpecRoutesServices struct { // The Kubernetes Service itself does load-balance to the pods. // By default, NativeLB is false. NativeLB *bool `pulumi:"nativeLB"` + // NodePortLB controls, when creating the load-balancer, + // whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. + // It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. + // By default, NodePortLB is false. + NodePortLB *bool `pulumi:"nodePortLB"` // PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. // By default, passHostHeader is true. PassHostHeader *bool `pulumi:"passHostHeader"` @@ -583,7 +602,7 @@ type IngressRouteSpecRoutesServices struct { // Can only be used on a Kubernetes Service. ServersTransport *string `pulumi:"serversTransport"` // Sticky defines the sticky sessions configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions + // More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions Sticky *IngressRouteSpecRoutesServicesSticky `pulumi:"sticky"` // Strategy defines the load balancing strategy between the servers. // RoundRobin is the only supported value at the moment. @@ -606,6 +625,8 @@ type IngressRouteSpecRoutesServicesInput interface { // Service defines an upstream HTTP service to proxy traffic to. type IngressRouteSpecRoutesServicesArgs struct { + // Healthcheck defines health checks for ExternalName services. + HealthCheck IngressRouteSpecRoutesServicesHealthCheckPtrInput `pulumi:"healthCheck"` // Kind defines the kind of the Service. Kind pulumi.StringPtrInput `pulumi:"kind"` // Name defines the name of the referenced Kubernetes Service or TraefikService. @@ -618,6 +639,11 @@ type IngressRouteSpecRoutesServicesArgs struct { // The Kubernetes Service itself does load-balance to the pods. // By default, NativeLB is false. NativeLB pulumi.BoolPtrInput `pulumi:"nativeLB"` + // NodePortLB controls, when creating the load-balancer, + // whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. + // It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. + // By default, NodePortLB is false. + NodePortLB pulumi.BoolPtrInput `pulumi:"nodePortLB"` // PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. // By default, passHostHeader is true. PassHostHeader pulumi.BoolPtrInput `pulumi:"passHostHeader"` @@ -634,7 +660,7 @@ type IngressRouteSpecRoutesServicesArgs struct { // Can only be used on a Kubernetes Service. ServersTransport pulumi.StringPtrInput `pulumi:"serversTransport"` // Sticky defines the sticky sessions configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions + // More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions Sticky IngressRouteSpecRoutesServicesStickyPtrInput `pulumi:"sticky"` // Strategy defines the load balancing strategy between the servers. // RoundRobin is the only supported value at the moment. @@ -714,6 +740,13 @@ func (o IngressRouteSpecRoutesServicesOutput) ToOutput(ctx context.Context) pulu } } +// Healthcheck defines health checks for ExternalName services. +func (o IngressRouteSpecRoutesServicesOutput) HealthCheck() IngressRouteSpecRoutesServicesHealthCheckPtrOutput { + return o.ApplyT(func(v IngressRouteSpecRoutesServices) *IngressRouteSpecRoutesServicesHealthCheck { + return v.HealthCheck + }).(IngressRouteSpecRoutesServicesHealthCheckPtrOutput) +} + // Kind defines the kind of the Service. func (o IngressRouteSpecRoutesServicesOutput) Kind() pulumi.StringPtrOutput { return o.ApplyT(func(v IngressRouteSpecRoutesServices) *string { return v.Kind }).(pulumi.StringPtrOutput) @@ -738,6 +771,14 @@ func (o IngressRouteSpecRoutesServicesOutput) NativeLB() pulumi.BoolPtrOutput { return o.ApplyT(func(v IngressRouteSpecRoutesServices) *bool { return v.NativeLB }).(pulumi.BoolPtrOutput) } +// NodePortLB controls, when creating the load-balancer, +// whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. +// It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. +// By default, NodePortLB is false. +func (o IngressRouteSpecRoutesServicesOutput) NodePortLB() pulumi.BoolPtrOutput { + return o.ApplyT(func(v IngressRouteSpecRoutesServices) *bool { return v.NodePortLB }).(pulumi.BoolPtrOutput) +} + // PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. // By default, passHostHeader is true. func (o IngressRouteSpecRoutesServicesOutput) PassHostHeader() pulumi.BoolPtrOutput { @@ -771,7 +812,7 @@ func (o IngressRouteSpecRoutesServicesOutput) ServersTransport() pulumi.StringPt } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions func (o IngressRouteSpecRoutesServicesOutput) Sticky() IngressRouteSpecRoutesServicesStickyPtrOutput { return o.ApplyT(func(v IngressRouteSpecRoutesServices) *IngressRouteSpecRoutesServicesSticky { return v.Sticky }).(IngressRouteSpecRoutesServicesStickyPtrOutput) } @@ -814,6 +855,384 @@ func (o IngressRouteSpecRoutesServicesArrayOutput) Index(i pulumi.IntInput) Ingr }).(IngressRouteSpecRoutesServicesOutput) } +// Healthcheck defines health checks for ExternalName services. +type IngressRouteSpecRoutesServicesHealthCheck struct { + // FollowRedirects defines whether redirects should be followed during the health check calls. + // Default: true + FollowRedirects *bool `pulumi:"followRedirects"` + // Headers defines custom headers to be sent to the health check endpoint. + Headers map[string]string `pulumi:"headers"` + // Hostname defines the value of hostname in the Host header of the health check request. + Hostname *string `pulumi:"hostname"` + // Interval defines the frequency of the health check calls. + // Default: 30s + Interval interface{} `pulumi:"interval"` + // Method defines the healthcheck method. + Method *string `pulumi:"method"` + // Mode defines the health check mode. + // If defined to grpc, will use the gRPC health check protocol to probe the server. + // Default: http + Mode *string `pulumi:"mode"` + // Path defines the server URL path for the health check endpoint. + Path *string `pulumi:"path"` + // Port defines the server URL port for the health check endpoint. + Port *int `pulumi:"port"` + // Scheme replaces the server URL scheme for the health check endpoint. + Scheme *string `pulumi:"scheme"` + // Status defines the expected HTTP status code of the response to the health check request. + Status *int `pulumi:"status"` + // Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. + // Default: 5s + Timeout interface{} `pulumi:"timeout"` +} + +// IngressRouteSpecRoutesServicesHealthCheckInput is an input type that accepts IngressRouteSpecRoutesServicesHealthCheckArgs and IngressRouteSpecRoutesServicesHealthCheckOutput values. +// You can construct a concrete instance of `IngressRouteSpecRoutesServicesHealthCheckInput` via: +// +// IngressRouteSpecRoutesServicesHealthCheckArgs{...} +type IngressRouteSpecRoutesServicesHealthCheckInput interface { + pulumi.Input + + ToIngressRouteSpecRoutesServicesHealthCheckOutput() IngressRouteSpecRoutesServicesHealthCheckOutput + ToIngressRouteSpecRoutesServicesHealthCheckOutputWithContext(context.Context) IngressRouteSpecRoutesServicesHealthCheckOutput +} + +// Healthcheck defines health checks for ExternalName services. +type IngressRouteSpecRoutesServicesHealthCheckArgs struct { + // FollowRedirects defines whether redirects should be followed during the health check calls. + // Default: true + FollowRedirects pulumi.BoolPtrInput `pulumi:"followRedirects"` + // Headers defines custom headers to be sent to the health check endpoint. + Headers pulumi.StringMapInput `pulumi:"headers"` + // Hostname defines the value of hostname in the Host header of the health check request. + Hostname pulumi.StringPtrInput `pulumi:"hostname"` + // Interval defines the frequency of the health check calls. + // Default: 30s + Interval pulumi.Input `pulumi:"interval"` + // Method defines the healthcheck method. + Method pulumi.StringPtrInput `pulumi:"method"` + // Mode defines the health check mode. + // If defined to grpc, will use the gRPC health check protocol to probe the server. + // Default: http + Mode pulumi.StringPtrInput `pulumi:"mode"` + // Path defines the server URL path for the health check endpoint. + Path pulumi.StringPtrInput `pulumi:"path"` + // Port defines the server URL port for the health check endpoint. + Port pulumi.IntPtrInput `pulumi:"port"` + // Scheme replaces the server URL scheme for the health check endpoint. + Scheme pulumi.StringPtrInput `pulumi:"scheme"` + // Status defines the expected HTTP status code of the response to the health check request. + Status pulumi.IntPtrInput `pulumi:"status"` + // Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. + // Default: 5s + Timeout pulumi.Input `pulumi:"timeout"` +} + +func (IngressRouteSpecRoutesServicesHealthCheckArgs) ElementType() reflect.Type { + return reflect.TypeOf((*IngressRouteSpecRoutesServicesHealthCheck)(nil)).Elem() +} + +func (i IngressRouteSpecRoutesServicesHealthCheckArgs) ToIngressRouteSpecRoutesServicesHealthCheckOutput() IngressRouteSpecRoutesServicesHealthCheckOutput { + return i.ToIngressRouteSpecRoutesServicesHealthCheckOutputWithContext(context.Background()) +} + +func (i IngressRouteSpecRoutesServicesHealthCheckArgs) ToIngressRouteSpecRoutesServicesHealthCheckOutputWithContext(ctx context.Context) IngressRouteSpecRoutesServicesHealthCheckOutput { + return pulumi.ToOutputWithContext(ctx, i).(IngressRouteSpecRoutesServicesHealthCheckOutput) +} + +func (i IngressRouteSpecRoutesServicesHealthCheckArgs) ToOutput(ctx context.Context) pulumix.Output[IngressRouteSpecRoutesServicesHealthCheck] { + return pulumix.Output[IngressRouteSpecRoutesServicesHealthCheck]{ + OutputState: i.ToIngressRouteSpecRoutesServicesHealthCheckOutputWithContext(ctx).OutputState, + } +} + +func (i IngressRouteSpecRoutesServicesHealthCheckArgs) ToIngressRouteSpecRoutesServicesHealthCheckPtrOutput() IngressRouteSpecRoutesServicesHealthCheckPtrOutput { + return i.ToIngressRouteSpecRoutesServicesHealthCheckPtrOutputWithContext(context.Background()) +} + +func (i IngressRouteSpecRoutesServicesHealthCheckArgs) ToIngressRouteSpecRoutesServicesHealthCheckPtrOutputWithContext(ctx context.Context) IngressRouteSpecRoutesServicesHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(IngressRouteSpecRoutesServicesHealthCheckOutput).ToIngressRouteSpecRoutesServicesHealthCheckPtrOutputWithContext(ctx) +} + +// IngressRouteSpecRoutesServicesHealthCheckPtrInput is an input type that accepts IngressRouteSpecRoutesServicesHealthCheckArgs, IngressRouteSpecRoutesServicesHealthCheckPtr and IngressRouteSpecRoutesServicesHealthCheckPtrOutput values. +// You can construct a concrete instance of `IngressRouteSpecRoutesServicesHealthCheckPtrInput` via: +// +// IngressRouteSpecRoutesServicesHealthCheckArgs{...} +// +// or: +// +// nil +type IngressRouteSpecRoutesServicesHealthCheckPtrInput interface { + pulumi.Input + + ToIngressRouteSpecRoutesServicesHealthCheckPtrOutput() IngressRouteSpecRoutesServicesHealthCheckPtrOutput + ToIngressRouteSpecRoutesServicesHealthCheckPtrOutputWithContext(context.Context) IngressRouteSpecRoutesServicesHealthCheckPtrOutput +} + +type ingressRouteSpecRoutesServicesHealthCheckPtrType IngressRouteSpecRoutesServicesHealthCheckArgs + +func IngressRouteSpecRoutesServicesHealthCheckPtr(v *IngressRouteSpecRoutesServicesHealthCheckArgs) IngressRouteSpecRoutesServicesHealthCheckPtrInput { + return (*ingressRouteSpecRoutesServicesHealthCheckPtrType)(v) +} + +func (*ingressRouteSpecRoutesServicesHealthCheckPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**IngressRouteSpecRoutesServicesHealthCheck)(nil)).Elem() +} + +func (i *ingressRouteSpecRoutesServicesHealthCheckPtrType) ToIngressRouteSpecRoutesServicesHealthCheckPtrOutput() IngressRouteSpecRoutesServicesHealthCheckPtrOutput { + return i.ToIngressRouteSpecRoutesServicesHealthCheckPtrOutputWithContext(context.Background()) +} + +func (i *ingressRouteSpecRoutesServicesHealthCheckPtrType) ToIngressRouteSpecRoutesServicesHealthCheckPtrOutputWithContext(ctx context.Context) IngressRouteSpecRoutesServicesHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(IngressRouteSpecRoutesServicesHealthCheckPtrOutput) +} + +func (i *ingressRouteSpecRoutesServicesHealthCheckPtrType) ToOutput(ctx context.Context) pulumix.Output[*IngressRouteSpecRoutesServicesHealthCheck] { + return pulumix.Output[*IngressRouteSpecRoutesServicesHealthCheck]{ + OutputState: i.ToIngressRouteSpecRoutesServicesHealthCheckPtrOutputWithContext(ctx).OutputState, + } +} + +// Healthcheck defines health checks for ExternalName services. +type IngressRouteSpecRoutesServicesHealthCheckOutput struct{ *pulumi.OutputState } + +func (IngressRouteSpecRoutesServicesHealthCheckOutput) ElementType() reflect.Type { + return reflect.TypeOf((*IngressRouteSpecRoutesServicesHealthCheck)(nil)).Elem() +} + +func (o IngressRouteSpecRoutesServicesHealthCheckOutput) ToIngressRouteSpecRoutesServicesHealthCheckOutput() IngressRouteSpecRoutesServicesHealthCheckOutput { + return o +} + +func (o IngressRouteSpecRoutesServicesHealthCheckOutput) ToIngressRouteSpecRoutesServicesHealthCheckOutputWithContext(ctx context.Context) IngressRouteSpecRoutesServicesHealthCheckOutput { + return o +} + +func (o IngressRouteSpecRoutesServicesHealthCheckOutput) ToIngressRouteSpecRoutesServicesHealthCheckPtrOutput() IngressRouteSpecRoutesServicesHealthCheckPtrOutput { + return o.ToIngressRouteSpecRoutesServicesHealthCheckPtrOutputWithContext(context.Background()) +} + +func (o IngressRouteSpecRoutesServicesHealthCheckOutput) ToIngressRouteSpecRoutesServicesHealthCheckPtrOutputWithContext(ctx context.Context) IngressRouteSpecRoutesServicesHealthCheckPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v IngressRouteSpecRoutesServicesHealthCheck) *IngressRouteSpecRoutesServicesHealthCheck { + return &v + }).(IngressRouteSpecRoutesServicesHealthCheckPtrOutput) +} + +func (o IngressRouteSpecRoutesServicesHealthCheckOutput) ToOutput(ctx context.Context) pulumix.Output[IngressRouteSpecRoutesServicesHealthCheck] { + return pulumix.Output[IngressRouteSpecRoutesServicesHealthCheck]{ + OutputState: o.OutputState, + } +} + +// FollowRedirects defines whether redirects should be followed during the health check calls. +// Default: true +func (o IngressRouteSpecRoutesServicesHealthCheckOutput) FollowRedirects() pulumi.BoolPtrOutput { + return o.ApplyT(func(v IngressRouteSpecRoutesServicesHealthCheck) *bool { return v.FollowRedirects }).(pulumi.BoolPtrOutput) +} + +// Headers defines custom headers to be sent to the health check endpoint. +func (o IngressRouteSpecRoutesServicesHealthCheckOutput) Headers() pulumi.StringMapOutput { + return o.ApplyT(func(v IngressRouteSpecRoutesServicesHealthCheck) map[string]string { return v.Headers }).(pulumi.StringMapOutput) +} + +// Hostname defines the value of hostname in the Host header of the health check request. +func (o IngressRouteSpecRoutesServicesHealthCheckOutput) Hostname() pulumi.StringPtrOutput { + return o.ApplyT(func(v IngressRouteSpecRoutesServicesHealthCheck) *string { return v.Hostname }).(pulumi.StringPtrOutput) +} + +// Interval defines the frequency of the health check calls. +// Default: 30s +func (o IngressRouteSpecRoutesServicesHealthCheckOutput) Interval() pulumi.AnyOutput { + return o.ApplyT(func(v IngressRouteSpecRoutesServicesHealthCheck) interface{} { return v.Interval }).(pulumi.AnyOutput) +} + +// Method defines the healthcheck method. +func (o IngressRouteSpecRoutesServicesHealthCheckOutput) Method() pulumi.StringPtrOutput { + return o.ApplyT(func(v IngressRouteSpecRoutesServicesHealthCheck) *string { return v.Method }).(pulumi.StringPtrOutput) +} + +// Mode defines the health check mode. +// If defined to grpc, will use the gRPC health check protocol to probe the server. +// Default: http +func (o IngressRouteSpecRoutesServicesHealthCheckOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v IngressRouteSpecRoutesServicesHealthCheck) *string { return v.Mode }).(pulumi.StringPtrOutput) +} + +// Path defines the server URL path for the health check endpoint. +func (o IngressRouteSpecRoutesServicesHealthCheckOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v IngressRouteSpecRoutesServicesHealthCheck) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +// Port defines the server URL port for the health check endpoint. +func (o IngressRouteSpecRoutesServicesHealthCheckOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v IngressRouteSpecRoutesServicesHealthCheck) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// Scheme replaces the server URL scheme for the health check endpoint. +func (o IngressRouteSpecRoutesServicesHealthCheckOutput) Scheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v IngressRouteSpecRoutesServicesHealthCheck) *string { return v.Scheme }).(pulumi.StringPtrOutput) +} + +// Status defines the expected HTTP status code of the response to the health check request. +func (o IngressRouteSpecRoutesServicesHealthCheckOutput) Status() pulumi.IntPtrOutput { + return o.ApplyT(func(v IngressRouteSpecRoutesServicesHealthCheck) *int { return v.Status }).(pulumi.IntPtrOutput) +} + +// Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. +// Default: 5s +func (o IngressRouteSpecRoutesServicesHealthCheckOutput) Timeout() pulumi.AnyOutput { + return o.ApplyT(func(v IngressRouteSpecRoutesServicesHealthCheck) interface{} { return v.Timeout }).(pulumi.AnyOutput) +} + +type IngressRouteSpecRoutesServicesHealthCheckPtrOutput struct{ *pulumi.OutputState } + +func (IngressRouteSpecRoutesServicesHealthCheckPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**IngressRouteSpecRoutesServicesHealthCheck)(nil)).Elem() +} + +func (o IngressRouteSpecRoutesServicesHealthCheckPtrOutput) ToIngressRouteSpecRoutesServicesHealthCheckPtrOutput() IngressRouteSpecRoutesServicesHealthCheckPtrOutput { + return o +} + +func (o IngressRouteSpecRoutesServicesHealthCheckPtrOutput) ToIngressRouteSpecRoutesServicesHealthCheckPtrOutputWithContext(ctx context.Context) IngressRouteSpecRoutesServicesHealthCheckPtrOutput { + return o +} + +func (o IngressRouteSpecRoutesServicesHealthCheckPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*IngressRouteSpecRoutesServicesHealthCheck] { + return pulumix.Output[*IngressRouteSpecRoutesServicesHealthCheck]{ + OutputState: o.OutputState, + } +} + +func (o IngressRouteSpecRoutesServicesHealthCheckPtrOutput) Elem() IngressRouteSpecRoutesServicesHealthCheckOutput { + return o.ApplyT(func(v *IngressRouteSpecRoutesServicesHealthCheck) IngressRouteSpecRoutesServicesHealthCheck { + if v != nil { + return *v + } + var ret IngressRouteSpecRoutesServicesHealthCheck + return ret + }).(IngressRouteSpecRoutesServicesHealthCheckOutput) +} + +// FollowRedirects defines whether redirects should be followed during the health check calls. +// Default: true +func (o IngressRouteSpecRoutesServicesHealthCheckPtrOutput) FollowRedirects() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *IngressRouteSpecRoutesServicesHealthCheck) *bool { + if v == nil { + return nil + } + return v.FollowRedirects + }).(pulumi.BoolPtrOutput) +} + +// Headers defines custom headers to be sent to the health check endpoint. +func (o IngressRouteSpecRoutesServicesHealthCheckPtrOutput) Headers() pulumi.StringMapOutput { + return o.ApplyT(func(v *IngressRouteSpecRoutesServicesHealthCheck) map[string]string { + if v == nil { + return nil + } + return v.Headers + }).(pulumi.StringMapOutput) +} + +// Hostname defines the value of hostname in the Host header of the health check request. +func (o IngressRouteSpecRoutesServicesHealthCheckPtrOutput) Hostname() pulumi.StringPtrOutput { + return o.ApplyT(func(v *IngressRouteSpecRoutesServicesHealthCheck) *string { + if v == nil { + return nil + } + return v.Hostname + }).(pulumi.StringPtrOutput) +} + +// Interval defines the frequency of the health check calls. +// Default: 30s +func (o IngressRouteSpecRoutesServicesHealthCheckPtrOutput) Interval() pulumi.AnyOutput { + return o.ApplyT(func(v *IngressRouteSpecRoutesServicesHealthCheck) interface{} { + if v == nil { + return nil + } + return v.Interval + }).(pulumi.AnyOutput) +} + +// Method defines the healthcheck method. +func (o IngressRouteSpecRoutesServicesHealthCheckPtrOutput) Method() pulumi.StringPtrOutput { + return o.ApplyT(func(v *IngressRouteSpecRoutesServicesHealthCheck) *string { + if v == nil { + return nil + } + return v.Method + }).(pulumi.StringPtrOutput) +} + +// Mode defines the health check mode. +// If defined to grpc, will use the gRPC health check protocol to probe the server. +// Default: http +func (o IngressRouteSpecRoutesServicesHealthCheckPtrOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *IngressRouteSpecRoutesServicesHealthCheck) *string { + if v == nil { + return nil + } + return v.Mode + }).(pulumi.StringPtrOutput) +} + +// Path defines the server URL path for the health check endpoint. +func (o IngressRouteSpecRoutesServicesHealthCheckPtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *IngressRouteSpecRoutesServicesHealthCheck) *string { + if v == nil { + return nil + } + return v.Path + }).(pulumi.StringPtrOutput) +} + +// Port defines the server URL port for the health check endpoint. +func (o IngressRouteSpecRoutesServicesHealthCheckPtrOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v *IngressRouteSpecRoutesServicesHealthCheck) *int { + if v == nil { + return nil + } + return v.Port + }).(pulumi.IntPtrOutput) +} + +// Scheme replaces the server URL scheme for the health check endpoint. +func (o IngressRouteSpecRoutesServicesHealthCheckPtrOutput) Scheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v *IngressRouteSpecRoutesServicesHealthCheck) *string { + if v == nil { + return nil + } + return v.Scheme + }).(pulumi.StringPtrOutput) +} + +// Status defines the expected HTTP status code of the response to the health check request. +func (o IngressRouteSpecRoutesServicesHealthCheckPtrOutput) Status() pulumi.IntPtrOutput { + return o.ApplyT(func(v *IngressRouteSpecRoutesServicesHealthCheck) *int { + if v == nil { + return nil + } + return v.Status + }).(pulumi.IntPtrOutput) +} + +// Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. +// Default: 5s +func (o IngressRouteSpecRoutesServicesHealthCheckPtrOutput) Timeout() pulumi.AnyOutput { + return o.ApplyT(func(v *IngressRouteSpecRoutesServicesHealthCheck) interface{} { + if v == nil { + return nil + } + return v.Timeout + }).(pulumi.AnyOutput) +} + +// Headers defines custom headers to be sent to the health check endpoint. +type IngressRouteSpecRoutesServicesHealthCheckHeaders struct { +} + // ResponseForwarding defines how Traefik forwards the response from the upstream Kubernetes Service to the client. type IngressRouteSpecRoutesServicesResponseForwarding struct { // FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body. @@ -995,7 +1414,7 @@ func (o IngressRouteSpecRoutesServicesResponseForwardingPtrOutput) FlushInterval } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions type IngressRouteSpecRoutesServicesSticky struct { // Cookie defines the sticky cookie configuration. Cookie *IngressRouteSpecRoutesServicesStickyCookie `pulumi:"cookie"` @@ -1013,7 +1432,7 @@ type IngressRouteSpecRoutesServicesStickyInput interface { } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions type IngressRouteSpecRoutesServicesStickyArgs struct { // Cookie defines the sticky cookie configuration. Cookie IngressRouteSpecRoutesServicesStickyCookiePtrInput `pulumi:"cookie"` @@ -1085,7 +1504,7 @@ func (i *ingressRouteSpecRoutesServicesStickyPtrType) ToOutput(ctx context.Conte } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions type IngressRouteSpecRoutesServicesStickyOutput struct{ *pulumi.OutputState } func (IngressRouteSpecRoutesServicesStickyOutput) ElementType() reflect.Type { @@ -1167,6 +1586,10 @@ func (o IngressRouteSpecRoutesServicesStickyPtrOutput) Cookie() IngressRouteSpec type IngressRouteSpecRoutesServicesStickyCookie struct { // HTTPOnly defines whether the cookie can be accessed by client-side APIs, such as JavaScript. HttpOnly *bool `pulumi:"httpOnly"` + // MaxAge indicates the number of seconds until the cookie expires. + // When set to a negative number, the cookie expires immediately. + // When set to zero, the cookie never expires. + MaxAge *int `pulumi:"maxAge"` // Name defines the Cookie name. Name *string `pulumi:"name"` // SameSite defines the same site policy. @@ -1191,6 +1614,10 @@ type IngressRouteSpecRoutesServicesStickyCookieInput interface { type IngressRouteSpecRoutesServicesStickyCookieArgs struct { // HTTPOnly defines whether the cookie can be accessed by client-side APIs, such as JavaScript. HttpOnly pulumi.BoolPtrInput `pulumi:"httpOnly"` + // MaxAge indicates the number of seconds until the cookie expires. + // When set to a negative number, the cookie expires immediately. + // When set to zero, the cookie never expires. + MaxAge pulumi.IntPtrInput `pulumi:"maxAge"` // Name defines the Cookie name. Name pulumi.StringPtrInput `pulumi:"name"` // SameSite defines the same site policy. @@ -1301,6 +1728,13 @@ func (o IngressRouteSpecRoutesServicesStickyCookieOutput) HttpOnly() pulumi.Bool return o.ApplyT(func(v IngressRouteSpecRoutesServicesStickyCookie) *bool { return v.HttpOnly }).(pulumi.BoolPtrOutput) } +// MaxAge indicates the number of seconds until the cookie expires. +// When set to a negative number, the cookie expires immediately. +// When set to zero, the cookie never expires. +func (o IngressRouteSpecRoutesServicesStickyCookieOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v IngressRouteSpecRoutesServicesStickyCookie) *int { return v.MaxAge }).(pulumi.IntPtrOutput) +} + // Name defines the Cookie name. func (o IngressRouteSpecRoutesServicesStickyCookieOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v IngressRouteSpecRoutesServicesStickyCookie) *string { return v.Name }).(pulumi.StringPtrOutput) @@ -1357,6 +1791,18 @@ func (o IngressRouteSpecRoutesServicesStickyCookiePtrOutput) HttpOnly() pulumi.B }).(pulumi.BoolPtrOutput) } +// MaxAge indicates the number of seconds until the cookie expires. +// When set to a negative number, the cookie expires immediately. +// When set to zero, the cookie never expires. +func (o IngressRouteSpecRoutesServicesStickyCookiePtrOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v *IngressRouteSpecRoutesServicesStickyCookie) *int { + if v == nil { + return nil + } + return v.MaxAge + }).(pulumi.IntPtrOutput) +} + // Name defines the Cookie name. func (o IngressRouteSpecRoutesServicesStickyCookiePtrOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v *IngressRouteSpecRoutesServicesStickyCookie) *string { @@ -1389,18 +1835,18 @@ func (o IngressRouteSpecRoutesServicesStickyCookiePtrOutput) Secure() pulumi.Boo } // TLS defines the TLS configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls type IngressRouteSpecTls struct { // CertResolver defines the name of the certificate resolver to use. // Cert resolvers have to be configured in the static configuration. - // More info: https://doc.traefik.io/traefik/v2.11/https/acme/#certificate-resolvers + // More info: https://doc.traefik.io/traefik/v3.0/https/acme/#certificate-resolvers CertResolver *string `pulumi:"certResolver"` // Domains defines the list of domains that will be used to issue certificates. - // More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#domains + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#domains Domains []IngressRouteSpecTlsDomains `pulumi:"domains"` // Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection. // If not defined, the `default` TLSOption is used. - // More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options + // More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options Options *IngressRouteSpecTlsOptions `pulumi:"options"` // SecretName is the name of the referenced Kubernetes Secret to specify the certificate details. SecretName *string `pulumi:"secretName"` @@ -1421,18 +1867,18 @@ type IngressRouteSpecTlsInput interface { } // TLS defines the TLS configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls type IngressRouteSpecTlsArgs struct { // CertResolver defines the name of the certificate resolver to use. // Cert resolvers have to be configured in the static configuration. - // More info: https://doc.traefik.io/traefik/v2.11/https/acme/#certificate-resolvers + // More info: https://doc.traefik.io/traefik/v3.0/https/acme/#certificate-resolvers CertResolver pulumi.StringPtrInput `pulumi:"certResolver"` // Domains defines the list of domains that will be used to issue certificates. - // More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#domains + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#domains Domains IngressRouteSpecTlsDomainsArrayInput `pulumi:"domains"` // Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection. // If not defined, the `default` TLSOption is used. - // More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options + // More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options Options IngressRouteSpecTlsOptionsPtrInput `pulumi:"options"` // SecretName is the name of the referenced Kubernetes Secret to specify the certificate details. SecretName pulumi.StringPtrInput `pulumi:"secretName"` @@ -1507,7 +1953,7 @@ func (i *ingressRouteSpecTlsPtrType) ToOutput(ctx context.Context) pulumix.Outpu } // TLS defines the TLS configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls type IngressRouteSpecTlsOutput struct{ *pulumi.OutputState } func (IngressRouteSpecTlsOutput) ElementType() reflect.Type { @@ -1540,20 +1986,20 @@ func (o IngressRouteSpecTlsOutput) ToOutput(ctx context.Context) pulumix.Output[ // CertResolver defines the name of the certificate resolver to use. // Cert resolvers have to be configured in the static configuration. -// More info: https://doc.traefik.io/traefik/v2.11/https/acme/#certificate-resolvers +// More info: https://doc.traefik.io/traefik/v3.0/https/acme/#certificate-resolvers func (o IngressRouteSpecTlsOutput) CertResolver() pulumi.StringPtrOutput { return o.ApplyT(func(v IngressRouteSpecTls) *string { return v.CertResolver }).(pulumi.StringPtrOutput) } // Domains defines the list of domains that will be used to issue certificates. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#domains +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#domains func (o IngressRouteSpecTlsOutput) Domains() IngressRouteSpecTlsDomainsArrayOutput { return o.ApplyT(func(v IngressRouteSpecTls) []IngressRouteSpecTlsDomains { return v.Domains }).(IngressRouteSpecTlsDomainsArrayOutput) } // Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection. // If not defined, the `default` TLSOption is used. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options func (o IngressRouteSpecTlsOutput) Options() IngressRouteSpecTlsOptionsPtrOutput { return o.ApplyT(func(v IngressRouteSpecTls) *IngressRouteSpecTlsOptions { return v.Options }).(IngressRouteSpecTlsOptionsPtrOutput) } @@ -1601,7 +2047,7 @@ func (o IngressRouteSpecTlsPtrOutput) Elem() IngressRouteSpecTlsOutput { // CertResolver defines the name of the certificate resolver to use. // Cert resolvers have to be configured in the static configuration. -// More info: https://doc.traefik.io/traefik/v2.11/https/acme/#certificate-resolvers +// More info: https://doc.traefik.io/traefik/v3.0/https/acme/#certificate-resolvers func (o IngressRouteSpecTlsPtrOutput) CertResolver() pulumi.StringPtrOutput { return o.ApplyT(func(v *IngressRouteSpecTls) *string { if v == nil { @@ -1612,7 +2058,7 @@ func (o IngressRouteSpecTlsPtrOutput) CertResolver() pulumi.StringPtrOutput { } // Domains defines the list of domains that will be used to issue certificates. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#domains +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#domains func (o IngressRouteSpecTlsPtrOutput) Domains() IngressRouteSpecTlsDomainsArrayOutput { return o.ApplyT(func(v *IngressRouteSpecTls) []IngressRouteSpecTlsDomains { if v == nil { @@ -1624,7 +2070,7 @@ func (o IngressRouteSpecTlsPtrOutput) Domains() IngressRouteSpecTlsDomainsArrayO // Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection. // If not defined, the `default` TLSOption is used. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options func (o IngressRouteSpecTlsPtrOutput) Options() IngressRouteSpecTlsOptionsPtrOutput { return o.ApplyT(func(v *IngressRouteSpecTls) *IngressRouteSpecTlsOptions { if v == nil { @@ -1790,13 +2236,13 @@ func (o IngressRouteSpecTlsDomainsArrayOutput) Index(i pulumi.IntInput) IngressR // Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection. // If not defined, the `default` TLSOption is used. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options type IngressRouteSpecTlsOptions struct { // Name defines the name of the referenced TLSOption. - // More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsoption + // More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsoption Name string `pulumi:"name"` // Namespace defines the namespace of the referenced TLSOption. - // More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsoption + // More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsoption Namespace *string `pulumi:"namespace"` } @@ -1813,13 +2259,13 @@ type IngressRouteSpecTlsOptionsInput interface { // Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection. // If not defined, the `default` TLSOption is used. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options type IngressRouteSpecTlsOptionsArgs struct { // Name defines the name of the referenced TLSOption. - // More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsoption + // More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsoption Name pulumi.StringInput `pulumi:"name"` // Namespace defines the namespace of the referenced TLSOption. - // More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsoption + // More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsoption Namespace pulumi.StringPtrInput `pulumi:"namespace"` } @@ -1890,7 +2336,7 @@ func (i *ingressRouteSpecTlsOptionsPtrType) ToOutput(ctx context.Context) pulumi // Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection. // If not defined, the `default` TLSOption is used. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options type IngressRouteSpecTlsOptionsOutput struct{ *pulumi.OutputState } func (IngressRouteSpecTlsOptionsOutput) ElementType() reflect.Type { @@ -1922,13 +2368,13 @@ func (o IngressRouteSpecTlsOptionsOutput) ToOutput(ctx context.Context) pulumix. } // Name defines the name of the referenced TLSOption. -// More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsoption +// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsoption func (o IngressRouteSpecTlsOptionsOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v IngressRouteSpecTlsOptions) string { return v.Name }).(pulumi.StringOutput) } // Namespace defines the namespace of the referenced TLSOption. -// More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsoption +// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsoption func (o IngressRouteSpecTlsOptionsOutput) Namespace() pulumi.StringPtrOutput { return o.ApplyT(func(v IngressRouteSpecTlsOptions) *string { return v.Namespace }).(pulumi.StringPtrOutput) } @@ -1964,7 +2410,7 @@ func (o IngressRouteSpecTlsOptionsPtrOutput) Elem() IngressRouteSpecTlsOptionsOu } // Name defines the name of the referenced TLSOption. -// More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsoption +// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsoption func (o IngressRouteSpecTlsOptionsPtrOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v *IngressRouteSpecTlsOptions) *string { if v == nil { @@ -1975,7 +2421,7 @@ func (o IngressRouteSpecTlsOptionsPtrOutput) Name() pulumi.StringPtrOutput { } // Namespace defines the namespace of the referenced TLSOption. -// More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsoption +// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsoption func (o IngressRouteSpecTlsOptionsPtrOutput) Namespace() pulumi.StringPtrOutput { return o.ApplyT(func(v *IngressRouteSpecTlsOptions) *string { if v == nil { @@ -1989,10 +2435,10 @@ func (o IngressRouteSpecTlsOptionsPtrOutput) Namespace() pulumi.StringPtrOutput // Please note that only `default` TLSStore can be used. type IngressRouteSpecTlsStore struct { // Name defines the name of the referenced TLSStore. - // More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsstore + // More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsstore Name string `pulumi:"name"` // Namespace defines the namespace of the referenced TLSStore. - // More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsstore + // More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsstore Namespace *string `pulumi:"namespace"` } @@ -2011,10 +2457,10 @@ type IngressRouteSpecTlsStoreInput interface { // Please note that only `default` TLSStore can be used. type IngressRouteSpecTlsStoreArgs struct { // Name defines the name of the referenced TLSStore. - // More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsstore + // More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsstore Name pulumi.StringInput `pulumi:"name"` // Namespace defines the namespace of the referenced TLSStore. - // More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsstore + // More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsstore Namespace pulumi.StringPtrInput `pulumi:"namespace"` } @@ -2116,13 +2562,13 @@ func (o IngressRouteSpecTlsStoreOutput) ToOutput(ctx context.Context) pulumix.Ou } // Name defines the name of the referenced TLSStore. -// More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsstore +// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsstore func (o IngressRouteSpecTlsStoreOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v IngressRouteSpecTlsStore) string { return v.Name }).(pulumi.StringOutput) } // Namespace defines the namespace of the referenced TLSStore. -// More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsstore +// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsstore func (o IngressRouteSpecTlsStoreOutput) Namespace() pulumi.StringPtrOutput { return o.ApplyT(func(v IngressRouteSpecTlsStore) *string { return v.Namespace }).(pulumi.StringPtrOutput) } @@ -2158,7 +2604,7 @@ func (o IngressRouteSpecTlsStorePtrOutput) Elem() IngressRouteSpecTlsStoreOutput } // Name defines the name of the referenced TLSStore. -// More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsstore +// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsstore func (o IngressRouteSpecTlsStorePtrOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v *IngressRouteSpecTlsStore) *string { if v == nil { @@ -2169,7 +2615,7 @@ func (o IngressRouteSpecTlsStorePtrOutput) Name() pulumi.StringPtrOutput { } // Namespace defines the namespace of the referenced TLSStore. -// More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsstore +// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsstore func (o IngressRouteSpecTlsStorePtrOutput) Namespace() pulumi.StringPtrOutput { return o.ApplyT(func(v *IngressRouteSpecTlsStore) *string { if v == nil { @@ -2195,13 +2641,13 @@ type IngressRouteTCPMetadata struct { type IngressRouteTCPSpec struct { // EntryPoints defines the list of entry point names to bind to. // Entry points have to be configured in the static configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/ + // More info: https://doc.traefik.io/traefik/v3.0/routing/entrypoints/ // Default: all. EntryPoints []string `pulumi:"entryPoints"` // Routes defines the list of routes. Routes []IngressRouteTCPSpecRoutes `pulumi:"routes"` // TLS defines the TLS configuration on a layer 4 / TCP Route. - // More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls_1 + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls_1 Tls *IngressRouteTCPSpecTls `pulumi:"tls"` } @@ -2220,13 +2666,13 @@ type IngressRouteTCPSpecInput interface { type IngressRouteTCPSpecArgs struct { // EntryPoints defines the list of entry point names to bind to. // Entry points have to be configured in the static configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/ + // More info: https://doc.traefik.io/traefik/v3.0/routing/entrypoints/ // Default: all. EntryPoints pulumi.StringArrayInput `pulumi:"entryPoints"` // Routes defines the list of routes. Routes IngressRouteTCPSpecRoutesArrayInput `pulumi:"routes"` // TLS defines the TLS configuration on a layer 4 / TCP Route. - // More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls_1 + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls_1 Tls IngressRouteTCPSpecTlsPtrInput `pulumi:"tls"` } @@ -2328,7 +2774,7 @@ func (o IngressRouteTCPSpecOutput) ToOutput(ctx context.Context) pulumix.Output[ // EntryPoints defines the list of entry point names to bind to. // Entry points have to be configured in the static configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/ +// More info: https://doc.traefik.io/traefik/v3.0/routing/entrypoints/ // Default: all. func (o IngressRouteTCPSpecOutput) EntryPoints() pulumi.StringArrayOutput { return o.ApplyT(func(v IngressRouteTCPSpec) []string { return v.EntryPoints }).(pulumi.StringArrayOutput) @@ -2340,7 +2786,7 @@ func (o IngressRouteTCPSpecOutput) Routes() IngressRouteTCPSpecRoutesArrayOutput } // TLS defines the TLS configuration on a layer 4 / TCP Route. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls_1 +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls_1 func (o IngressRouteTCPSpecOutput) Tls() IngressRouteTCPSpecTlsPtrOutput { return o.ApplyT(func(v IngressRouteTCPSpec) *IngressRouteTCPSpecTls { return v.Tls }).(IngressRouteTCPSpecTlsPtrOutput) } @@ -2377,7 +2823,7 @@ func (o IngressRouteTCPSpecPtrOutput) Elem() IngressRouteTCPSpecOutput { // EntryPoints defines the list of entry point names to bind to. // Entry points have to be configured in the static configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/ +// More info: https://doc.traefik.io/traefik/v3.0/routing/entrypoints/ // Default: all. func (o IngressRouteTCPSpecPtrOutput) EntryPoints() pulumi.StringArrayOutput { return o.ApplyT(func(v *IngressRouteTCPSpec) []string { @@ -2399,7 +2845,7 @@ func (o IngressRouteTCPSpecPtrOutput) Routes() IngressRouteTCPSpecRoutesArrayOut } // TLS defines the TLS configuration on a layer 4 / TCP Route. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls_1 +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls_1 func (o IngressRouteTCPSpecPtrOutput) Tls() IngressRouteTCPSpecTlsPtrOutput { return o.ApplyT(func(v *IngressRouteTCPSpec) *IngressRouteTCPSpecTls { if v == nil { @@ -2412,15 +2858,18 @@ func (o IngressRouteTCPSpecPtrOutput) Tls() IngressRouteTCPSpecTlsPtrOutput { // RouteTCP holds the TCP route configuration. type IngressRouteTCPSpecRoutes struct { // Match defines the router's rule. - // More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#rule_1 + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rule_1 Match string `pulumi:"match"` // Middlewares defines the list of references to MiddlewareTCP resources. Middlewares []IngressRouteTCPSpecRoutesMiddlewares `pulumi:"middlewares"` // Priority defines the router's priority. - // More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#priority_1 + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#priority_1 Priority *int `pulumi:"priority"` // Services defines the list of TCP services. Services []IngressRouteTCPSpecRoutesServices `pulumi:"services"` + // Syntax defines the router's rule syntax. + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rulesyntax_1 + Syntax *string `pulumi:"syntax"` } // IngressRouteTCPSpecRoutesInput is an input type that accepts IngressRouteTCPSpecRoutesArgs and IngressRouteTCPSpecRoutesOutput values. @@ -2437,15 +2886,18 @@ type IngressRouteTCPSpecRoutesInput interface { // RouteTCP holds the TCP route configuration. type IngressRouteTCPSpecRoutesArgs struct { // Match defines the router's rule. - // More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#rule_1 + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rule_1 Match pulumi.StringInput `pulumi:"match"` // Middlewares defines the list of references to MiddlewareTCP resources. Middlewares IngressRouteTCPSpecRoutesMiddlewaresArrayInput `pulumi:"middlewares"` // Priority defines the router's priority. - // More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#priority_1 + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#priority_1 Priority pulumi.IntPtrInput `pulumi:"priority"` // Services defines the list of TCP services. Services IngressRouteTCPSpecRoutesServicesArrayInput `pulumi:"services"` + // Syntax defines the router's rule syntax. + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rulesyntax_1 + Syntax pulumi.StringPtrInput `pulumi:"syntax"` } func (IngressRouteTCPSpecRoutesArgs) ElementType() reflect.Type { @@ -2519,7 +2971,7 @@ func (o IngressRouteTCPSpecRoutesOutput) ToOutput(ctx context.Context) pulumix.O } // Match defines the router's rule. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#rule_1 +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rule_1 func (o IngressRouteTCPSpecRoutesOutput) Match() pulumi.StringOutput { return o.ApplyT(func(v IngressRouteTCPSpecRoutes) string { return v.Match }).(pulumi.StringOutput) } @@ -2530,7 +2982,7 @@ func (o IngressRouteTCPSpecRoutesOutput) Middlewares() IngressRouteTCPSpecRoutes } // Priority defines the router's priority. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#priority_1 +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#priority_1 func (o IngressRouteTCPSpecRoutesOutput) Priority() pulumi.IntPtrOutput { return o.ApplyT(func(v IngressRouteTCPSpecRoutes) *int { return v.Priority }).(pulumi.IntPtrOutput) } @@ -2540,6 +2992,12 @@ func (o IngressRouteTCPSpecRoutesOutput) Services() IngressRouteTCPSpecRoutesSer return o.ApplyT(func(v IngressRouteTCPSpecRoutes) []IngressRouteTCPSpecRoutesServices { return v.Services }).(IngressRouteTCPSpecRoutesServicesArrayOutput) } +// Syntax defines the router's rule syntax. +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rulesyntax_1 +func (o IngressRouteTCPSpecRoutesOutput) Syntax() pulumi.StringPtrOutput { + return o.ApplyT(func(v IngressRouteTCPSpecRoutes) *string { return v.Syntax }).(pulumi.StringPtrOutput) +} + type IngressRouteTCPSpecRoutesArrayOutput struct{ *pulumi.OutputState } func (IngressRouteTCPSpecRoutesArrayOutput) ElementType() reflect.Type { @@ -2710,18 +3168,30 @@ type IngressRouteTCPSpecRoutesServices struct { // The Kubernetes Service itself does load-balance to the pods. // By default, NativeLB is false. NativeLB *bool `pulumi:"nativeLB"` + // NodePortLB controls, when creating the load-balancer, + // whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. + // It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. + // By default, NodePortLB is false. + NodePortLB *bool `pulumi:"nodePortLB"` // Port defines the port of a Kubernetes Service. // This can be a reference to a named port. Port interface{} `pulumi:"port"` // ProxyProtocol defines the PROXY protocol configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/services/#proxy-protocol + // More info: https://doc.traefik.io/traefik/v3.0/routing/services/#proxy-protocol ProxyProtocol *IngressRouteTCPSpecRoutesServicesProxyProtocol `pulumi:"proxyProtocol"` + // ServersTransport defines the name of ServersTransportTCP resource to use. + // It allows to configure the transport between Traefik and your servers. + // Can only be used on a Kubernetes Service. + ServersTransport *string `pulumi:"serversTransport"` // TerminationDelay defines the deadline that the proxy sets, after one of its connected peers indicates // it has closed the writing capability of its connection, to close the reading capability as well, // hence fully terminating the connection. // It is a duration in milliseconds, defaulting to 100. // A negative value means an infinite deadline (i.e. the reading capability is never closed). + // Deprecated: TerminationDelay is not supported APIVersion traefik.io/v1, please use ServersTransport to configure the TerminationDelay instead. TerminationDelay *int `pulumi:"terminationDelay"` + // TLS determines whether to use TLS when dialing with the backend. + Tls *bool `pulumi:"tls"` // Weight defines the weight used when balancing requests between multiple Kubernetes Service. Weight *int `pulumi:"weight"` } @@ -2748,18 +3218,30 @@ type IngressRouteTCPSpecRoutesServicesArgs struct { // The Kubernetes Service itself does load-balance to the pods. // By default, NativeLB is false. NativeLB pulumi.BoolPtrInput `pulumi:"nativeLB"` + // NodePortLB controls, when creating the load-balancer, + // whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. + // It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. + // By default, NodePortLB is false. + NodePortLB pulumi.BoolPtrInput `pulumi:"nodePortLB"` // Port defines the port of a Kubernetes Service. // This can be a reference to a named port. Port pulumi.Input `pulumi:"port"` // ProxyProtocol defines the PROXY protocol configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/services/#proxy-protocol + // More info: https://doc.traefik.io/traefik/v3.0/routing/services/#proxy-protocol ProxyProtocol IngressRouteTCPSpecRoutesServicesProxyProtocolPtrInput `pulumi:"proxyProtocol"` + // ServersTransport defines the name of ServersTransportTCP resource to use. + // It allows to configure the transport between Traefik and your servers. + // Can only be used on a Kubernetes Service. + ServersTransport pulumi.StringPtrInput `pulumi:"serversTransport"` // TerminationDelay defines the deadline that the proxy sets, after one of its connected peers indicates // it has closed the writing capability of its connection, to close the reading capability as well, // hence fully terminating the connection. // It is a duration in milliseconds, defaulting to 100. // A negative value means an infinite deadline (i.e. the reading capability is never closed). + // Deprecated: TerminationDelay is not supported APIVersion traefik.io/v1, please use ServersTransport to configure the TerminationDelay instead. TerminationDelay pulumi.IntPtrInput `pulumi:"terminationDelay"` + // TLS determines whether to use TLS when dialing with the backend. + Tls pulumi.BoolPtrInput `pulumi:"tls"` // Weight defines the weight used when balancing requests between multiple Kubernetes Service. Weight pulumi.IntPtrInput `pulumi:"weight"` } @@ -2852,6 +3334,14 @@ func (o IngressRouteTCPSpecRoutesServicesOutput) NativeLB() pulumi.BoolPtrOutput return o.ApplyT(func(v IngressRouteTCPSpecRoutesServices) *bool { return v.NativeLB }).(pulumi.BoolPtrOutput) } +// NodePortLB controls, when creating the load-balancer, +// whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. +// It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. +// By default, NodePortLB is false. +func (o IngressRouteTCPSpecRoutesServicesOutput) NodePortLB() pulumi.BoolPtrOutput { + return o.ApplyT(func(v IngressRouteTCPSpecRoutesServices) *bool { return v.NodePortLB }).(pulumi.BoolPtrOutput) +} + // Port defines the port of a Kubernetes Service. // This can be a reference to a named port. func (o IngressRouteTCPSpecRoutesServicesOutput) Port() pulumi.AnyOutput { @@ -2859,22 +3349,35 @@ func (o IngressRouteTCPSpecRoutesServicesOutput) Port() pulumi.AnyOutput { } // ProxyProtocol defines the PROXY protocol configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#proxy-protocol +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#proxy-protocol func (o IngressRouteTCPSpecRoutesServicesOutput) ProxyProtocol() IngressRouteTCPSpecRoutesServicesProxyProtocolPtrOutput { return o.ApplyT(func(v IngressRouteTCPSpecRoutesServices) *IngressRouteTCPSpecRoutesServicesProxyProtocol { return v.ProxyProtocol }).(IngressRouteTCPSpecRoutesServicesProxyProtocolPtrOutput) } +// ServersTransport defines the name of ServersTransportTCP resource to use. +// It allows to configure the transport between Traefik and your servers. +// Can only be used on a Kubernetes Service. +func (o IngressRouteTCPSpecRoutesServicesOutput) ServersTransport() pulumi.StringPtrOutput { + return o.ApplyT(func(v IngressRouteTCPSpecRoutesServices) *string { return v.ServersTransport }).(pulumi.StringPtrOutput) +} + // TerminationDelay defines the deadline that the proxy sets, after one of its connected peers indicates // it has closed the writing capability of its connection, to close the reading capability as well, // hence fully terminating the connection. // It is a duration in milliseconds, defaulting to 100. // A negative value means an infinite deadline (i.e. the reading capability is never closed). +// Deprecated: TerminationDelay is not supported APIVersion traefik.io/v1, please use ServersTransport to configure the TerminationDelay instead. func (o IngressRouteTCPSpecRoutesServicesOutput) TerminationDelay() pulumi.IntPtrOutput { return o.ApplyT(func(v IngressRouteTCPSpecRoutesServices) *int { return v.TerminationDelay }).(pulumi.IntPtrOutput) } +// TLS determines whether to use TLS when dialing with the backend. +func (o IngressRouteTCPSpecRoutesServicesOutput) Tls() pulumi.BoolPtrOutput { + return o.ApplyT(func(v IngressRouteTCPSpecRoutesServices) *bool { return v.Tls }).(pulumi.BoolPtrOutput) +} + // Weight defines the weight used when balancing requests between multiple Kubernetes Service. func (o IngressRouteTCPSpecRoutesServicesOutput) Weight() pulumi.IntPtrOutput { return o.ApplyT(func(v IngressRouteTCPSpecRoutesServices) *int { return v.Weight }).(pulumi.IntPtrOutput) @@ -2907,7 +3410,7 @@ func (o IngressRouteTCPSpecRoutesServicesArrayOutput) Index(i pulumi.IntInput) I } // ProxyProtocol defines the PROXY protocol configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#proxy-protocol +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#proxy-protocol type IngressRouteTCPSpecRoutesServicesProxyProtocol struct { // Version defines the PROXY Protocol version to use. Version *int `pulumi:"version"` @@ -2925,7 +3428,7 @@ type IngressRouteTCPSpecRoutesServicesProxyProtocolInput interface { } // ProxyProtocol defines the PROXY protocol configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#proxy-protocol +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#proxy-protocol type IngressRouteTCPSpecRoutesServicesProxyProtocolArgs struct { // Version defines the PROXY Protocol version to use. Version pulumi.IntPtrInput `pulumi:"version"` @@ -2997,7 +3500,7 @@ func (i *ingressRouteTCPSpecRoutesServicesProxyProtocolPtrType) ToOutput(ctx con } // ProxyProtocol defines the PROXY protocol configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#proxy-protocol +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#proxy-protocol type IngressRouteTCPSpecRoutesServicesProxyProtocolOutput struct{ *pulumi.OutputState } func (IngressRouteTCPSpecRoutesServicesProxyProtocolOutput) ElementType() reflect.Type { @@ -3074,18 +3577,18 @@ func (o IngressRouteTCPSpecRoutesServicesProxyProtocolPtrOutput) Version() pulum } // TLS defines the TLS configuration on a layer 4 / TCP Route. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls_1 +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls_1 type IngressRouteTCPSpecTls struct { // CertResolver defines the name of the certificate resolver to use. // Cert resolvers have to be configured in the static configuration. - // More info: https://doc.traefik.io/traefik/v2.11/https/acme/#certificate-resolvers + // More info: https://doc.traefik.io/traefik/v3.0/https/acme/#certificate-resolvers CertResolver *string `pulumi:"certResolver"` // Domains defines the list of domains that will be used to issue certificates. - // More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#domains + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#domains Domains []IngressRouteTCPSpecTlsDomains `pulumi:"domains"` // Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection. // If not defined, the `default` TLSOption is used. - // More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options + // More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options Options *IngressRouteTCPSpecTlsOptions `pulumi:"options"` // Passthrough defines whether a TLS router will terminate the TLS connection. Passthrough *bool `pulumi:"passthrough"` @@ -3108,18 +3611,18 @@ type IngressRouteTCPSpecTlsInput interface { } // TLS defines the TLS configuration on a layer 4 / TCP Route. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls_1 +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls_1 type IngressRouteTCPSpecTlsArgs struct { // CertResolver defines the name of the certificate resolver to use. // Cert resolvers have to be configured in the static configuration. - // More info: https://doc.traefik.io/traefik/v2.11/https/acme/#certificate-resolvers + // More info: https://doc.traefik.io/traefik/v3.0/https/acme/#certificate-resolvers CertResolver pulumi.StringPtrInput `pulumi:"certResolver"` // Domains defines the list of domains that will be used to issue certificates. - // More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#domains + // More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#domains Domains IngressRouteTCPSpecTlsDomainsArrayInput `pulumi:"domains"` // Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection. // If not defined, the `default` TLSOption is used. - // More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options + // More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options Options IngressRouteTCPSpecTlsOptionsPtrInput `pulumi:"options"` // Passthrough defines whether a TLS router will terminate the TLS connection. Passthrough pulumi.BoolPtrInput `pulumi:"passthrough"` @@ -3196,7 +3699,7 @@ func (i *ingressRouteTCPSpecTlsPtrType) ToOutput(ctx context.Context) pulumix.Ou } // TLS defines the TLS configuration on a layer 4 / TCP Route. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls_1 +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls_1 type IngressRouteTCPSpecTlsOutput struct{ *pulumi.OutputState } func (IngressRouteTCPSpecTlsOutput) ElementType() reflect.Type { @@ -3229,20 +3732,20 @@ func (o IngressRouteTCPSpecTlsOutput) ToOutput(ctx context.Context) pulumix.Outp // CertResolver defines the name of the certificate resolver to use. // Cert resolvers have to be configured in the static configuration. -// More info: https://doc.traefik.io/traefik/v2.11/https/acme/#certificate-resolvers +// More info: https://doc.traefik.io/traefik/v3.0/https/acme/#certificate-resolvers func (o IngressRouteTCPSpecTlsOutput) CertResolver() pulumi.StringPtrOutput { return o.ApplyT(func(v IngressRouteTCPSpecTls) *string { return v.CertResolver }).(pulumi.StringPtrOutput) } // Domains defines the list of domains that will be used to issue certificates. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#domains +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#domains func (o IngressRouteTCPSpecTlsOutput) Domains() IngressRouteTCPSpecTlsDomainsArrayOutput { return o.ApplyT(func(v IngressRouteTCPSpecTls) []IngressRouteTCPSpecTlsDomains { return v.Domains }).(IngressRouteTCPSpecTlsDomainsArrayOutput) } // Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection. // If not defined, the `default` TLSOption is used. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options func (o IngressRouteTCPSpecTlsOutput) Options() IngressRouteTCPSpecTlsOptionsPtrOutput { return o.ApplyT(func(v IngressRouteTCPSpecTls) *IngressRouteTCPSpecTlsOptions { return v.Options }).(IngressRouteTCPSpecTlsOptionsPtrOutput) } @@ -3295,7 +3798,7 @@ func (o IngressRouteTCPSpecTlsPtrOutput) Elem() IngressRouteTCPSpecTlsOutput { // CertResolver defines the name of the certificate resolver to use. // Cert resolvers have to be configured in the static configuration. -// More info: https://doc.traefik.io/traefik/v2.11/https/acme/#certificate-resolvers +// More info: https://doc.traefik.io/traefik/v3.0/https/acme/#certificate-resolvers func (o IngressRouteTCPSpecTlsPtrOutput) CertResolver() pulumi.StringPtrOutput { return o.ApplyT(func(v *IngressRouteTCPSpecTls) *string { if v == nil { @@ -3306,7 +3809,7 @@ func (o IngressRouteTCPSpecTlsPtrOutput) CertResolver() pulumi.StringPtrOutput { } // Domains defines the list of domains that will be used to issue certificates. -// More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#domains +// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#domains func (o IngressRouteTCPSpecTlsPtrOutput) Domains() IngressRouteTCPSpecTlsDomainsArrayOutput { return o.ApplyT(func(v *IngressRouteTCPSpecTls) []IngressRouteTCPSpecTlsDomains { if v == nil { @@ -3318,7 +3821,7 @@ func (o IngressRouteTCPSpecTlsPtrOutput) Domains() IngressRouteTCPSpecTlsDomains // Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection. // If not defined, the `default` TLSOption is used. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options func (o IngressRouteTCPSpecTlsPtrOutput) Options() IngressRouteTCPSpecTlsOptionsPtrOutput { return o.ApplyT(func(v *IngressRouteTCPSpecTls) *IngressRouteTCPSpecTlsOptions { if v == nil { @@ -3494,7 +3997,7 @@ func (o IngressRouteTCPSpecTlsDomainsArrayOutput) Index(i pulumi.IntInput) Ingre // Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection. // If not defined, the `default` TLSOption is used. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options type IngressRouteTCPSpecTlsOptions struct { // Name defines the name of the referenced Traefik resource. Name string `pulumi:"name"` @@ -3515,7 +4018,7 @@ type IngressRouteTCPSpecTlsOptionsInput interface { // Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection. // If not defined, the `default` TLSOption is used. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options type IngressRouteTCPSpecTlsOptionsArgs struct { // Name defines the name of the referenced Traefik resource. Name pulumi.StringInput `pulumi:"name"` @@ -3590,7 +4093,7 @@ func (i *ingressRouteTCPSpecTlsOptionsPtrType) ToOutput(ctx context.Context) pul // Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection. // If not defined, the `default` TLSOption is used. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options type IngressRouteTCPSpecTlsOptionsOutput struct{ *pulumi.OutputState } func (IngressRouteTCPSpecTlsOptionsOutput) ElementType() reflect.Type { @@ -3883,7 +4386,7 @@ type IngressRouteUDPMetadata struct { type IngressRouteUDPSpec struct { // EntryPoints defines the list of entry point names to bind to. // Entry points have to be configured in the static configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/ + // More info: https://doc.traefik.io/traefik/v3.0/routing/entrypoints/ // Default: all. EntryPoints []string `pulumi:"entryPoints"` // Routes defines the list of routes. @@ -3905,7 +4408,7 @@ type IngressRouteUDPSpecInput interface { type IngressRouteUDPSpecArgs struct { // EntryPoints defines the list of entry point names to bind to. // Entry points have to be configured in the static configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/ + // More info: https://doc.traefik.io/traefik/v3.0/routing/entrypoints/ // Default: all. EntryPoints pulumi.StringArrayInput `pulumi:"entryPoints"` // Routes defines the list of routes. @@ -4010,7 +4513,7 @@ func (o IngressRouteUDPSpecOutput) ToOutput(ctx context.Context) pulumix.Output[ // EntryPoints defines the list of entry point names to bind to. // Entry points have to be configured in the static configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/ +// More info: https://doc.traefik.io/traefik/v3.0/routing/entrypoints/ // Default: all. func (o IngressRouteUDPSpecOutput) EntryPoints() pulumi.StringArrayOutput { return o.ApplyT(func(v IngressRouteUDPSpec) []string { return v.EntryPoints }).(pulumi.StringArrayOutput) @@ -4053,7 +4556,7 @@ func (o IngressRouteUDPSpecPtrOutput) Elem() IngressRouteUDPSpecOutput { // EntryPoints defines the list of entry point names to bind to. // Entry points have to be configured in the static configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/ +// More info: https://doc.traefik.io/traefik/v3.0/routing/entrypoints/ // Default: all. func (o IngressRouteUDPSpecPtrOutput) EntryPoints() pulumi.StringArrayOutput { return o.ApplyT(func(v *IngressRouteUDPSpec) []string { @@ -4209,6 +4712,11 @@ type IngressRouteUDPSpecRoutesServices struct { // The Kubernetes Service itself does load-balance to the pods. // By default, NativeLB is false. NativeLB *bool `pulumi:"nativeLB"` + // NodePortLB controls, when creating the load-balancer, + // whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. + // It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. + // By default, NodePortLB is false. + NodePortLB *bool `pulumi:"nodePortLB"` // Port defines the port of a Kubernetes Service. // This can be a reference to a named port. Port interface{} `pulumi:"port"` @@ -4238,6 +4746,11 @@ type IngressRouteUDPSpecRoutesServicesArgs struct { // The Kubernetes Service itself does load-balance to the pods. // By default, NativeLB is false. NativeLB pulumi.BoolPtrInput `pulumi:"nativeLB"` + // NodePortLB controls, when creating the load-balancer, + // whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. + // It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. + // By default, NodePortLB is false. + NodePortLB pulumi.BoolPtrInput `pulumi:"nodePortLB"` // Port defines the port of a Kubernetes Service. // This can be a reference to a named port. Port pulumi.Input `pulumi:"port"` @@ -4333,6 +4846,14 @@ func (o IngressRouteUDPSpecRoutesServicesOutput) NativeLB() pulumi.BoolPtrOutput return o.ApplyT(func(v IngressRouteUDPSpecRoutesServices) *bool { return v.NativeLB }).(pulumi.BoolPtrOutput) } +// NodePortLB controls, when creating the load-balancer, +// whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. +// It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. +// By default, NodePortLB is false. +func (o IngressRouteUDPSpecRoutesServicesOutput) NodePortLB() pulumi.BoolPtrOutput { + return o.ApplyT(func(v IngressRouteUDPSpecRoutesServices) *bool { return v.NodePortLB }).(pulumi.BoolPtrOutput) +} + // Port defines the port of a Kubernetes Service. // This can be a reference to a named port. func (o IngressRouteUDPSpecRoutesServicesOutput) Port() pulumi.AnyOutput { @@ -4371,7 +4892,7 @@ func (o IngressRouteUDPSpecRoutesServicesArrayOutput) Index(i pulumi.IntInput) I } // Middleware is the CRD implementation of a Traefik Middleware. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/overview/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/overview/ type MiddlewareType struct { ApiVersion *string `pulumi:"apiVersion"` Kind *string `pulumi:"kind"` @@ -4387,97 +4908,97 @@ type MiddlewareMetadata struct { type MiddlewareSpec struct { // AddPrefix holds the add prefix middleware configuration. // This middleware updates the path of a request before forwarding it. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/addprefix/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/addprefix/ AddPrefix *MiddlewareSpecAddPrefix `pulumi:"addPrefix"` // BasicAuth holds the basic auth middleware configuration. // This middleware restricts access to your services to known users. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/ BasicAuth *MiddlewareSpecBasicAuth `pulumi:"basicAuth"` // Buffering holds the buffering middleware configuration. // This middleware retries or limits the size of requests that can be forwarded to backends. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/buffering/#maxrequestbodybytes + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/buffering/#maxrequestbodybytes Buffering *MiddlewareSpecBuffering `pulumi:"buffering"` // Chain holds the configuration of the chain middleware. // This middleware enables to define reusable combinations of other pieces of middleware. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/chain/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/chain/ Chain *MiddlewareSpecChain `pulumi:"chain"` // CircuitBreaker holds the circuit breaker configuration. CircuitBreaker *MiddlewareSpecCircuitBreaker `pulumi:"circuitBreaker"` // Compress holds the compress middleware configuration. // This middleware compresses responses before sending them to the client, using gzip compression. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/compress/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/compress/ Compress *MiddlewareSpecCompress `pulumi:"compress"` // ContentType holds the content-type middleware configuration. // This middleware exists to enable the correct behavior until at least the default one can be changed in a future version. ContentType *MiddlewareSpecContentType `pulumi:"contentType"` // DigestAuth holds the digest auth middleware configuration. // This middleware restricts access to your services to known users. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/digestauth/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/digestauth/ DigestAuth *MiddlewareSpecDigestAuth `pulumi:"digestAuth"` // ErrorPage holds the custom error middleware configuration. // This middleware returns a custom page in lieu of the default, according to configured ranges of HTTP Status codes. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/errorpages/ Errors *MiddlewareSpecErrors `pulumi:"errors"` // ForwardAuth holds the forward auth middleware configuration. // This middleware delegates the request authentication to a Service. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/forwardauth/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/forwardauth/ ForwardAuth *MiddlewareSpecForwardAuth `pulumi:"forwardAuth"` + // GrpcWeb holds the gRPC web middleware configuration. + // This middleware converts a gRPC web request to an HTTP/2 gRPC request. + GrpcWeb *MiddlewareSpecGrpcWeb `pulumi:"grpcWeb"` // Headers holds the headers middleware configuration. // This middleware manages the requests and responses headers. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/headers/#customrequestheaders + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/headers/#customrequestheaders Headers *MiddlewareSpecHeaders `pulumi:"headers"` // InFlightReq holds the in-flight request middleware configuration. // This middleware limits the number of requests being processed and served concurrently. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/inflightreq/ InFlightReq *MiddlewareSpecInFlightReq `pulumi:"inFlightReq"` // IPAllowList holds the IP allowlist middleware configuration. - // This middleware accepts / refuses requests based on the client IP. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/ + // This middleware limits allowed requests based on the client IP. + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/ IpAllowList *MiddlewareSpecIpAllowList `pulumi:"ipAllowList"` - // IPWhiteList holds the IP whitelist middleware configuration. - // This middleware accepts / refuses requests based on the client IP. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipwhitelist/ // Deprecated: please use IPAllowList instead. IpWhiteList *MiddlewareSpecIpWhiteList `pulumi:"ipWhiteList"` // PassTLSClientCert holds the pass TLS client cert middleware configuration. // This middleware adds the selected data from the passed client TLS certificate to a header. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/passtlsclientcert/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/passtlsclientcert/ PassTLSClientCert *MiddlewareSpecPassTLSClientCert `pulumi:"passTLSClientCert"` // Plugin defines the middleware plugin configuration. // More info: https://doc.traefik.io/traefik/plugins/ Plugin map[string]map[string]interface{} `pulumi:"plugin"` // RateLimit holds the rate limit configuration. // This middleware ensures that services will receive a fair amount of requests, and allows one to define what fair is. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ratelimit/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ratelimit/ RateLimit *MiddlewareSpecRateLimit `pulumi:"rateLimit"` // RedirectRegex holds the redirect regex middleware configuration. // This middleware redirects a request using regex matching and replacement. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectregex/#regex + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/redirectregex/#regex RedirectRegex *MiddlewareSpecRedirectRegex `pulumi:"redirectRegex"` // RedirectScheme holds the redirect scheme middleware configuration. // This middleware redirects requests from a scheme/port to another. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectscheme/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/redirectscheme/ RedirectScheme *MiddlewareSpecRedirectScheme `pulumi:"redirectScheme"` // ReplacePath holds the replace path middleware configuration. // This middleware replaces the path of the request URL and store the original path in an X-Replaced-Path header. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepath/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/replacepath/ ReplacePath *MiddlewareSpecReplacePath `pulumi:"replacePath"` // ReplacePathRegex holds the replace path regex middleware configuration. // This middleware replaces the path of a URL using regex matching and replacement. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepathregex/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/replacepathregex/ ReplacePathRegex *MiddlewareSpecReplacePathRegex `pulumi:"replacePathRegex"` // Retry holds the retry middleware configuration. // This middleware reissues requests a given number of times to a backend server if that server does not reply. // As soon as the server answers, the middleware stops retrying, regardless of the response status. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/retry/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/retry/ Retry *MiddlewareSpecRetry `pulumi:"retry"` // StripPrefix holds the strip prefix middleware configuration. // This middleware removes the specified prefixes from the URL path. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefix/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/stripprefix/ StripPrefix *MiddlewareSpecStripPrefix `pulumi:"stripPrefix"` // StripPrefixRegex holds the strip prefix regex middleware configuration. // This middleware removes the matching prefixes from the URL path. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefixregex/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/stripprefixregex/ StripPrefixRegex *MiddlewareSpecStripPrefixRegex `pulumi:"stripPrefixRegex"` } @@ -4496,97 +5017,97 @@ type MiddlewareSpecInput interface { type MiddlewareSpecArgs struct { // AddPrefix holds the add prefix middleware configuration. // This middleware updates the path of a request before forwarding it. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/addprefix/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/addprefix/ AddPrefix MiddlewareSpecAddPrefixPtrInput `pulumi:"addPrefix"` // BasicAuth holds the basic auth middleware configuration. // This middleware restricts access to your services to known users. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/ BasicAuth MiddlewareSpecBasicAuthPtrInput `pulumi:"basicAuth"` // Buffering holds the buffering middleware configuration. // This middleware retries or limits the size of requests that can be forwarded to backends. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/buffering/#maxrequestbodybytes + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/buffering/#maxrequestbodybytes Buffering MiddlewareSpecBufferingPtrInput `pulumi:"buffering"` // Chain holds the configuration of the chain middleware. // This middleware enables to define reusable combinations of other pieces of middleware. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/chain/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/chain/ Chain MiddlewareSpecChainPtrInput `pulumi:"chain"` // CircuitBreaker holds the circuit breaker configuration. CircuitBreaker MiddlewareSpecCircuitBreakerPtrInput `pulumi:"circuitBreaker"` // Compress holds the compress middleware configuration. // This middleware compresses responses before sending them to the client, using gzip compression. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/compress/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/compress/ Compress MiddlewareSpecCompressPtrInput `pulumi:"compress"` // ContentType holds the content-type middleware configuration. // This middleware exists to enable the correct behavior until at least the default one can be changed in a future version. ContentType MiddlewareSpecContentTypePtrInput `pulumi:"contentType"` // DigestAuth holds the digest auth middleware configuration. // This middleware restricts access to your services to known users. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/digestauth/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/digestauth/ DigestAuth MiddlewareSpecDigestAuthPtrInput `pulumi:"digestAuth"` // ErrorPage holds the custom error middleware configuration. // This middleware returns a custom page in lieu of the default, according to configured ranges of HTTP Status codes. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/errorpages/ Errors MiddlewareSpecErrorsPtrInput `pulumi:"errors"` // ForwardAuth holds the forward auth middleware configuration. // This middleware delegates the request authentication to a Service. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/forwardauth/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/forwardauth/ ForwardAuth MiddlewareSpecForwardAuthPtrInput `pulumi:"forwardAuth"` + // GrpcWeb holds the gRPC web middleware configuration. + // This middleware converts a gRPC web request to an HTTP/2 gRPC request. + GrpcWeb MiddlewareSpecGrpcWebPtrInput `pulumi:"grpcWeb"` // Headers holds the headers middleware configuration. // This middleware manages the requests and responses headers. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/headers/#customrequestheaders + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/headers/#customrequestheaders Headers MiddlewareSpecHeadersPtrInput `pulumi:"headers"` // InFlightReq holds the in-flight request middleware configuration. // This middleware limits the number of requests being processed and served concurrently. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/inflightreq/ InFlightReq MiddlewareSpecInFlightReqPtrInput `pulumi:"inFlightReq"` // IPAllowList holds the IP allowlist middleware configuration. - // This middleware accepts / refuses requests based on the client IP. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/ + // This middleware limits allowed requests based on the client IP. + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/ IpAllowList MiddlewareSpecIpAllowListPtrInput `pulumi:"ipAllowList"` - // IPWhiteList holds the IP whitelist middleware configuration. - // This middleware accepts / refuses requests based on the client IP. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipwhitelist/ // Deprecated: please use IPAllowList instead. IpWhiteList MiddlewareSpecIpWhiteListPtrInput `pulumi:"ipWhiteList"` // PassTLSClientCert holds the pass TLS client cert middleware configuration. // This middleware adds the selected data from the passed client TLS certificate to a header. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/passtlsclientcert/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/passtlsclientcert/ PassTLSClientCert MiddlewareSpecPassTLSClientCertPtrInput `pulumi:"passTLSClientCert"` // Plugin defines the middleware plugin configuration. // More info: https://doc.traefik.io/traefik/plugins/ Plugin pulumi.MapMapInput `pulumi:"plugin"` // RateLimit holds the rate limit configuration. // This middleware ensures that services will receive a fair amount of requests, and allows one to define what fair is. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ratelimit/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ratelimit/ RateLimit MiddlewareSpecRateLimitPtrInput `pulumi:"rateLimit"` // RedirectRegex holds the redirect regex middleware configuration. // This middleware redirects a request using regex matching and replacement. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectregex/#regex + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/redirectregex/#regex RedirectRegex MiddlewareSpecRedirectRegexPtrInput `pulumi:"redirectRegex"` // RedirectScheme holds the redirect scheme middleware configuration. // This middleware redirects requests from a scheme/port to another. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectscheme/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/redirectscheme/ RedirectScheme MiddlewareSpecRedirectSchemePtrInput `pulumi:"redirectScheme"` // ReplacePath holds the replace path middleware configuration. // This middleware replaces the path of the request URL and store the original path in an X-Replaced-Path header. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepath/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/replacepath/ ReplacePath MiddlewareSpecReplacePathPtrInput `pulumi:"replacePath"` // ReplacePathRegex holds the replace path regex middleware configuration. // This middleware replaces the path of a URL using regex matching and replacement. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepathregex/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/replacepathregex/ ReplacePathRegex MiddlewareSpecReplacePathRegexPtrInput `pulumi:"replacePathRegex"` // Retry holds the retry middleware configuration. // This middleware reissues requests a given number of times to a backend server if that server does not reply. // As soon as the server answers, the middleware stops retrying, regardless of the response status. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/retry/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/retry/ Retry MiddlewareSpecRetryPtrInput `pulumi:"retry"` // StripPrefix holds the strip prefix middleware configuration. // This middleware removes the specified prefixes from the URL path. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefix/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/stripprefix/ StripPrefix MiddlewareSpecStripPrefixPtrInput `pulumi:"stripPrefix"` // StripPrefixRegex holds the strip prefix regex middleware configuration. // This middleware removes the matching prefixes from the URL path. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefixregex/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/stripprefixregex/ StripPrefixRegex MiddlewareSpecStripPrefixRegexPtrInput `pulumi:"stripPrefixRegex"` } @@ -4688,28 +5209,28 @@ func (o MiddlewareSpecOutput) ToOutput(ctx context.Context) pulumix.Output[Middl // AddPrefix holds the add prefix middleware configuration. // This middleware updates the path of a request before forwarding it. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/addprefix/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/addprefix/ func (o MiddlewareSpecOutput) AddPrefix() MiddlewareSpecAddPrefixPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecAddPrefix { return v.AddPrefix }).(MiddlewareSpecAddPrefixPtrOutput) } // BasicAuth holds the basic auth middleware configuration. // This middleware restricts access to your services to known users. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/ func (o MiddlewareSpecOutput) BasicAuth() MiddlewareSpecBasicAuthPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecBasicAuth { return v.BasicAuth }).(MiddlewareSpecBasicAuthPtrOutput) } // Buffering holds the buffering middleware configuration. // This middleware retries or limits the size of requests that can be forwarded to backends. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/buffering/#maxrequestbodybytes +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/buffering/#maxrequestbodybytes func (o MiddlewareSpecOutput) Buffering() MiddlewareSpecBufferingPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecBuffering { return v.Buffering }).(MiddlewareSpecBufferingPtrOutput) } // Chain holds the configuration of the chain middleware. // This middleware enables to define reusable combinations of other pieces of middleware. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/chain/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/chain/ func (o MiddlewareSpecOutput) Chain() MiddlewareSpecChainPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecChain { return v.Chain }).(MiddlewareSpecChainPtrOutput) } @@ -4721,7 +5242,7 @@ func (o MiddlewareSpecOutput) CircuitBreaker() MiddlewareSpecCircuitBreakerPtrOu // Compress holds the compress middleware configuration. // This middleware compresses responses before sending them to the client, using gzip compression. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/compress/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/compress/ func (o MiddlewareSpecOutput) Compress() MiddlewareSpecCompressPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecCompress { return v.Compress }).(MiddlewareSpecCompressPtrOutput) } @@ -4734,49 +5255,52 @@ func (o MiddlewareSpecOutput) ContentType() MiddlewareSpecContentTypePtrOutput { // DigestAuth holds the digest auth middleware configuration. // This middleware restricts access to your services to known users. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/digestauth/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/digestauth/ func (o MiddlewareSpecOutput) DigestAuth() MiddlewareSpecDigestAuthPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecDigestAuth { return v.DigestAuth }).(MiddlewareSpecDigestAuthPtrOutput) } // ErrorPage holds the custom error middleware configuration. // This middleware returns a custom page in lieu of the default, according to configured ranges of HTTP Status codes. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/errorpages/ func (o MiddlewareSpecOutput) Errors() MiddlewareSpecErrorsPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecErrors { return v.Errors }).(MiddlewareSpecErrorsPtrOutput) } // ForwardAuth holds the forward auth middleware configuration. // This middleware delegates the request authentication to a Service. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/forwardauth/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/forwardauth/ func (o MiddlewareSpecOutput) ForwardAuth() MiddlewareSpecForwardAuthPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecForwardAuth { return v.ForwardAuth }).(MiddlewareSpecForwardAuthPtrOutput) } +// GrpcWeb holds the gRPC web middleware configuration. +// This middleware converts a gRPC web request to an HTTP/2 gRPC request. +func (o MiddlewareSpecOutput) GrpcWeb() MiddlewareSpecGrpcWebPtrOutput { + return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecGrpcWeb { return v.GrpcWeb }).(MiddlewareSpecGrpcWebPtrOutput) +} + // Headers holds the headers middleware configuration. // This middleware manages the requests and responses headers. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/headers/#customrequestheaders +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/headers/#customrequestheaders func (o MiddlewareSpecOutput) Headers() MiddlewareSpecHeadersPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecHeaders { return v.Headers }).(MiddlewareSpecHeadersPtrOutput) } // InFlightReq holds the in-flight request middleware configuration. // This middleware limits the number of requests being processed and served concurrently. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/inflightreq/ func (o MiddlewareSpecOutput) InFlightReq() MiddlewareSpecInFlightReqPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecInFlightReq { return v.InFlightReq }).(MiddlewareSpecInFlightReqPtrOutput) } // IPAllowList holds the IP allowlist middleware configuration. -// This middleware accepts / refuses requests based on the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/ +// This middleware limits allowed requests based on the client IP. +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/ func (o MiddlewareSpecOutput) IpAllowList() MiddlewareSpecIpAllowListPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecIpAllowList { return v.IpAllowList }).(MiddlewareSpecIpAllowListPtrOutput) } -// IPWhiteList holds the IP whitelist middleware configuration. -// This middleware accepts / refuses requests based on the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipwhitelist/ // Deprecated: please use IPAllowList instead. func (o MiddlewareSpecOutput) IpWhiteList() MiddlewareSpecIpWhiteListPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecIpWhiteList { return v.IpWhiteList }).(MiddlewareSpecIpWhiteListPtrOutput) @@ -4784,7 +5308,7 @@ func (o MiddlewareSpecOutput) IpWhiteList() MiddlewareSpecIpWhiteListPtrOutput { // PassTLSClientCert holds the pass TLS client cert middleware configuration. // This middleware adds the selected data from the passed client TLS certificate to a header. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/passtlsclientcert/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/passtlsclientcert/ func (o MiddlewareSpecOutput) PassTLSClientCert() MiddlewareSpecPassTLSClientCertPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecPassTLSClientCert { return v.PassTLSClientCert }).(MiddlewareSpecPassTLSClientCertPtrOutput) } @@ -4797,35 +5321,35 @@ func (o MiddlewareSpecOutput) Plugin() pulumi.MapMapOutput { // RateLimit holds the rate limit configuration. // This middleware ensures that services will receive a fair amount of requests, and allows one to define what fair is. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ratelimit/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ratelimit/ func (o MiddlewareSpecOutput) RateLimit() MiddlewareSpecRateLimitPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecRateLimit { return v.RateLimit }).(MiddlewareSpecRateLimitPtrOutput) } // RedirectRegex holds the redirect regex middleware configuration. // This middleware redirects a request using regex matching and replacement. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectregex/#regex +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/redirectregex/#regex func (o MiddlewareSpecOutput) RedirectRegex() MiddlewareSpecRedirectRegexPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecRedirectRegex { return v.RedirectRegex }).(MiddlewareSpecRedirectRegexPtrOutput) } // RedirectScheme holds the redirect scheme middleware configuration. // This middleware redirects requests from a scheme/port to another. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectscheme/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/redirectscheme/ func (o MiddlewareSpecOutput) RedirectScheme() MiddlewareSpecRedirectSchemePtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecRedirectScheme { return v.RedirectScheme }).(MiddlewareSpecRedirectSchemePtrOutput) } // ReplacePath holds the replace path middleware configuration. // This middleware replaces the path of the request URL and store the original path in an X-Replaced-Path header. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepath/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/replacepath/ func (o MiddlewareSpecOutput) ReplacePath() MiddlewareSpecReplacePathPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecReplacePath { return v.ReplacePath }).(MiddlewareSpecReplacePathPtrOutput) } // ReplacePathRegex holds the replace path regex middleware configuration. // This middleware replaces the path of a URL using regex matching and replacement. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepathregex/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/replacepathregex/ func (o MiddlewareSpecOutput) ReplacePathRegex() MiddlewareSpecReplacePathRegexPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecReplacePathRegex { return v.ReplacePathRegex }).(MiddlewareSpecReplacePathRegexPtrOutput) } @@ -4833,21 +5357,21 @@ func (o MiddlewareSpecOutput) ReplacePathRegex() MiddlewareSpecReplacePathRegexP // Retry holds the retry middleware configuration. // This middleware reissues requests a given number of times to a backend server if that server does not reply. // As soon as the server answers, the middleware stops retrying, regardless of the response status. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/retry/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/retry/ func (o MiddlewareSpecOutput) Retry() MiddlewareSpecRetryPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecRetry { return v.Retry }).(MiddlewareSpecRetryPtrOutput) } // StripPrefix holds the strip prefix middleware configuration. // This middleware removes the specified prefixes from the URL path. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefix/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/stripprefix/ func (o MiddlewareSpecOutput) StripPrefix() MiddlewareSpecStripPrefixPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecStripPrefix { return v.StripPrefix }).(MiddlewareSpecStripPrefixPtrOutput) } // StripPrefixRegex holds the strip prefix regex middleware configuration. // This middleware removes the matching prefixes from the URL path. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefixregex/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/stripprefixregex/ func (o MiddlewareSpecOutput) StripPrefixRegex() MiddlewareSpecStripPrefixRegexPtrOutput { return o.ApplyT(func(v MiddlewareSpec) *MiddlewareSpecStripPrefixRegex { return v.StripPrefixRegex }).(MiddlewareSpecStripPrefixRegexPtrOutput) } @@ -4884,7 +5408,7 @@ func (o MiddlewareSpecPtrOutput) Elem() MiddlewareSpecOutput { // AddPrefix holds the add prefix middleware configuration. // This middleware updates the path of a request before forwarding it. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/addprefix/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/addprefix/ func (o MiddlewareSpecPtrOutput) AddPrefix() MiddlewareSpecAddPrefixPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecAddPrefix { if v == nil { @@ -4896,7 +5420,7 @@ func (o MiddlewareSpecPtrOutput) AddPrefix() MiddlewareSpecAddPrefixPtrOutput { // BasicAuth holds the basic auth middleware configuration. // This middleware restricts access to your services to known users. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/ func (o MiddlewareSpecPtrOutput) BasicAuth() MiddlewareSpecBasicAuthPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecBasicAuth { if v == nil { @@ -4908,7 +5432,7 @@ func (o MiddlewareSpecPtrOutput) BasicAuth() MiddlewareSpecBasicAuthPtrOutput { // Buffering holds the buffering middleware configuration. // This middleware retries or limits the size of requests that can be forwarded to backends. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/buffering/#maxrequestbodybytes +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/buffering/#maxrequestbodybytes func (o MiddlewareSpecPtrOutput) Buffering() MiddlewareSpecBufferingPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecBuffering { if v == nil { @@ -4920,7 +5444,7 @@ func (o MiddlewareSpecPtrOutput) Buffering() MiddlewareSpecBufferingPtrOutput { // Chain holds the configuration of the chain middleware. // This middleware enables to define reusable combinations of other pieces of middleware. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/chain/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/chain/ func (o MiddlewareSpecPtrOutput) Chain() MiddlewareSpecChainPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecChain { if v == nil { @@ -4942,7 +5466,7 @@ func (o MiddlewareSpecPtrOutput) CircuitBreaker() MiddlewareSpecCircuitBreakerPt // Compress holds the compress middleware configuration. // This middleware compresses responses before sending them to the client, using gzip compression. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/compress/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/compress/ func (o MiddlewareSpecPtrOutput) Compress() MiddlewareSpecCompressPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecCompress { if v == nil { @@ -4965,7 +5489,7 @@ func (o MiddlewareSpecPtrOutput) ContentType() MiddlewareSpecContentTypePtrOutpu // DigestAuth holds the digest auth middleware configuration. // This middleware restricts access to your services to known users. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/digestauth/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/digestauth/ func (o MiddlewareSpecPtrOutput) DigestAuth() MiddlewareSpecDigestAuthPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecDigestAuth { if v == nil { @@ -4977,7 +5501,7 @@ func (o MiddlewareSpecPtrOutput) DigestAuth() MiddlewareSpecDigestAuthPtrOutput // ErrorPage holds the custom error middleware configuration. // This middleware returns a custom page in lieu of the default, according to configured ranges of HTTP Status codes. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/errorpages/ func (o MiddlewareSpecPtrOutput) Errors() MiddlewareSpecErrorsPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecErrors { if v == nil { @@ -4989,7 +5513,7 @@ func (o MiddlewareSpecPtrOutput) Errors() MiddlewareSpecErrorsPtrOutput { // ForwardAuth holds the forward auth middleware configuration. // This middleware delegates the request authentication to a Service. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/forwardauth/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/forwardauth/ func (o MiddlewareSpecPtrOutput) ForwardAuth() MiddlewareSpecForwardAuthPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecForwardAuth { if v == nil { @@ -4999,9 +5523,20 @@ func (o MiddlewareSpecPtrOutput) ForwardAuth() MiddlewareSpecForwardAuthPtrOutpu }).(MiddlewareSpecForwardAuthPtrOutput) } +// GrpcWeb holds the gRPC web middleware configuration. +// This middleware converts a gRPC web request to an HTTP/2 gRPC request. +func (o MiddlewareSpecPtrOutput) GrpcWeb() MiddlewareSpecGrpcWebPtrOutput { + return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecGrpcWeb { + if v == nil { + return nil + } + return v.GrpcWeb + }).(MiddlewareSpecGrpcWebPtrOutput) +} + // Headers holds the headers middleware configuration. // This middleware manages the requests and responses headers. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/headers/#customrequestheaders +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/headers/#customrequestheaders func (o MiddlewareSpecPtrOutput) Headers() MiddlewareSpecHeadersPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecHeaders { if v == nil { @@ -5013,7 +5548,7 @@ func (o MiddlewareSpecPtrOutput) Headers() MiddlewareSpecHeadersPtrOutput { // InFlightReq holds the in-flight request middleware configuration. // This middleware limits the number of requests being processed and served concurrently. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/inflightreq/ func (o MiddlewareSpecPtrOutput) InFlightReq() MiddlewareSpecInFlightReqPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecInFlightReq { if v == nil { @@ -5024,8 +5559,8 @@ func (o MiddlewareSpecPtrOutput) InFlightReq() MiddlewareSpecInFlightReqPtrOutpu } // IPAllowList holds the IP allowlist middleware configuration. -// This middleware accepts / refuses requests based on the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/ +// This middleware limits allowed requests based on the client IP. +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/ func (o MiddlewareSpecPtrOutput) IpAllowList() MiddlewareSpecIpAllowListPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecIpAllowList { if v == nil { @@ -5035,9 +5570,6 @@ func (o MiddlewareSpecPtrOutput) IpAllowList() MiddlewareSpecIpAllowListPtrOutpu }).(MiddlewareSpecIpAllowListPtrOutput) } -// IPWhiteList holds the IP whitelist middleware configuration. -// This middleware accepts / refuses requests based on the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipwhitelist/ // Deprecated: please use IPAllowList instead. func (o MiddlewareSpecPtrOutput) IpWhiteList() MiddlewareSpecIpWhiteListPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecIpWhiteList { @@ -5050,7 +5582,7 @@ func (o MiddlewareSpecPtrOutput) IpWhiteList() MiddlewareSpecIpWhiteListPtrOutpu // PassTLSClientCert holds the pass TLS client cert middleware configuration. // This middleware adds the selected data from the passed client TLS certificate to a header. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/passtlsclientcert/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/passtlsclientcert/ func (o MiddlewareSpecPtrOutput) PassTLSClientCert() MiddlewareSpecPassTLSClientCertPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecPassTLSClientCert { if v == nil { @@ -5073,7 +5605,7 @@ func (o MiddlewareSpecPtrOutput) Plugin() pulumi.MapMapOutput { // RateLimit holds the rate limit configuration. // This middleware ensures that services will receive a fair amount of requests, and allows one to define what fair is. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ratelimit/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ratelimit/ func (o MiddlewareSpecPtrOutput) RateLimit() MiddlewareSpecRateLimitPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecRateLimit { if v == nil { @@ -5085,7 +5617,7 @@ func (o MiddlewareSpecPtrOutput) RateLimit() MiddlewareSpecRateLimitPtrOutput { // RedirectRegex holds the redirect regex middleware configuration. // This middleware redirects a request using regex matching and replacement. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectregex/#regex +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/redirectregex/#regex func (o MiddlewareSpecPtrOutput) RedirectRegex() MiddlewareSpecRedirectRegexPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecRedirectRegex { if v == nil { @@ -5097,7 +5629,7 @@ func (o MiddlewareSpecPtrOutput) RedirectRegex() MiddlewareSpecRedirectRegexPtrO // RedirectScheme holds the redirect scheme middleware configuration. // This middleware redirects requests from a scheme/port to another. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectscheme/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/redirectscheme/ func (o MiddlewareSpecPtrOutput) RedirectScheme() MiddlewareSpecRedirectSchemePtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecRedirectScheme { if v == nil { @@ -5109,7 +5641,7 @@ func (o MiddlewareSpecPtrOutput) RedirectScheme() MiddlewareSpecRedirectSchemePt // ReplacePath holds the replace path middleware configuration. // This middleware replaces the path of the request URL and store the original path in an X-Replaced-Path header. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepath/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/replacepath/ func (o MiddlewareSpecPtrOutput) ReplacePath() MiddlewareSpecReplacePathPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecReplacePath { if v == nil { @@ -5121,7 +5653,7 @@ func (o MiddlewareSpecPtrOutput) ReplacePath() MiddlewareSpecReplacePathPtrOutpu // ReplacePathRegex holds the replace path regex middleware configuration. // This middleware replaces the path of a URL using regex matching and replacement. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepathregex/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/replacepathregex/ func (o MiddlewareSpecPtrOutput) ReplacePathRegex() MiddlewareSpecReplacePathRegexPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecReplacePathRegex { if v == nil { @@ -5134,7 +5666,7 @@ func (o MiddlewareSpecPtrOutput) ReplacePathRegex() MiddlewareSpecReplacePathReg // Retry holds the retry middleware configuration. // This middleware reissues requests a given number of times to a backend server if that server does not reply. // As soon as the server answers, the middleware stops retrying, regardless of the response status. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/retry/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/retry/ func (o MiddlewareSpecPtrOutput) Retry() MiddlewareSpecRetryPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecRetry { if v == nil { @@ -5146,7 +5678,7 @@ func (o MiddlewareSpecPtrOutput) Retry() MiddlewareSpecRetryPtrOutput { // StripPrefix holds the strip prefix middleware configuration. // This middleware removes the specified prefixes from the URL path. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefix/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/stripprefix/ func (o MiddlewareSpecPtrOutput) StripPrefix() MiddlewareSpecStripPrefixPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecStripPrefix { if v == nil { @@ -5158,7 +5690,7 @@ func (o MiddlewareSpecPtrOutput) StripPrefix() MiddlewareSpecStripPrefixPtrOutpu // StripPrefixRegex holds the strip prefix regex middleware configuration. // This middleware removes the matching prefixes from the URL path. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefixregex/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/stripprefixregex/ func (o MiddlewareSpecPtrOutput) StripPrefixRegex() MiddlewareSpecStripPrefixRegexPtrOutput { return o.ApplyT(func(v *MiddlewareSpec) *MiddlewareSpecStripPrefixRegex { if v == nil { @@ -5170,7 +5702,7 @@ func (o MiddlewareSpecPtrOutput) StripPrefixRegex() MiddlewareSpecStripPrefixReg // AddPrefix holds the add prefix middleware configuration. // This middleware updates the path of a request before forwarding it. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/addprefix/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/addprefix/ type MiddlewareSpecAddPrefix struct { // Prefix is the string to add before the current path in the requested URL. // It should include a leading slash (/). @@ -5190,7 +5722,7 @@ type MiddlewareSpecAddPrefixInput interface { // AddPrefix holds the add prefix middleware configuration. // This middleware updates the path of a request before forwarding it. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/addprefix/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/addprefix/ type MiddlewareSpecAddPrefixArgs struct { // Prefix is the string to add before the current path in the requested URL. // It should include a leading slash (/). @@ -5264,7 +5796,7 @@ func (i *middlewareSpecAddPrefixPtrType) ToOutput(ctx context.Context) pulumix.O // AddPrefix holds the add prefix middleware configuration. // This middleware updates the path of a request before forwarding it. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/addprefix/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/addprefix/ type MiddlewareSpecAddPrefixOutput struct{ *pulumi.OutputState } func (MiddlewareSpecAddPrefixOutput) ElementType() reflect.Type { @@ -5344,10 +5876,10 @@ func (o MiddlewareSpecAddPrefixPtrOutput) Prefix() pulumi.StringPtrOutput { // BasicAuth holds the basic auth middleware configuration. // This middleware restricts access to your services to known users. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/ type MiddlewareSpecBasicAuth struct { // HeaderField defines a header field to store the authenticated user. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/#headerfield + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/#headerfield HeaderField *string `pulumi:"headerField"` // Realm allows the protected resources on a server to be partitioned into a set of protection spaces, each with its own authentication scheme. // Default: traefik. @@ -5372,10 +5904,10 @@ type MiddlewareSpecBasicAuthInput interface { // BasicAuth holds the basic auth middleware configuration. // This middleware restricts access to your services to known users. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/ type MiddlewareSpecBasicAuthArgs struct { // HeaderField defines a header field to store the authenticated user. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/#headerfield + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/#headerfield HeaderField pulumi.StringPtrInput `pulumi:"headerField"` // Realm allows the protected resources on a server to be partitioned into a set of protection spaces, each with its own authentication scheme. // Default: traefik. @@ -5454,7 +5986,7 @@ func (i *middlewareSpecBasicAuthPtrType) ToOutput(ctx context.Context) pulumix.O // BasicAuth holds the basic auth middleware configuration. // This middleware restricts access to your services to known users. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/ type MiddlewareSpecBasicAuthOutput struct{ *pulumi.OutputState } func (MiddlewareSpecBasicAuthOutput) ElementType() reflect.Type { @@ -5486,7 +6018,7 @@ func (o MiddlewareSpecBasicAuthOutput) ToOutput(ctx context.Context) pulumix.Out } // HeaderField defines a header field to store the authenticated user. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/#headerfield +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/#headerfield func (o MiddlewareSpecBasicAuthOutput) HeaderField() pulumi.StringPtrOutput { return o.ApplyT(func(v MiddlewareSpecBasicAuth) *string { return v.HeaderField }).(pulumi.StringPtrOutput) } @@ -5539,7 +6071,7 @@ func (o MiddlewareSpecBasicAuthPtrOutput) Elem() MiddlewareSpecBasicAuthOutput { } // HeaderField defines a header field to store the authenticated user. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/#headerfield +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/#headerfield func (o MiddlewareSpecBasicAuthPtrOutput) HeaderField() pulumi.StringPtrOutput { return o.ApplyT(func(v *MiddlewareSpecBasicAuth) *string { if v == nil { @@ -5583,7 +6115,7 @@ func (o MiddlewareSpecBasicAuthPtrOutput) Secret() pulumi.StringPtrOutput { // Buffering holds the buffering middleware configuration. // This middleware retries or limits the size of requests that can be forwarded to backends. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/buffering/#maxrequestbodybytes +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/buffering/#maxrequestbodybytes type MiddlewareSpecBuffering struct { // MaxRequestBodyBytes defines the maximum allowed body size for the request (in bytes). // If the request exceeds the allowed size, it is not forwarded to the service, and the client gets a 413 (Request Entity Too Large) response. @@ -5601,7 +6133,7 @@ type MiddlewareSpecBuffering struct { MemResponseBodyBytes *int `pulumi:"memResponseBodyBytes"` // RetryExpression defines the retry conditions. // It is a logical combination of functions with operators AND (&&) and OR (||). - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/buffering/#retryexpression + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/buffering/#retryexpression RetryExpression *string `pulumi:"retryExpression"` } @@ -5618,7 +6150,7 @@ type MiddlewareSpecBufferingInput interface { // Buffering holds the buffering middleware configuration. // This middleware retries or limits the size of requests that can be forwarded to backends. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/buffering/#maxrequestbodybytes +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/buffering/#maxrequestbodybytes type MiddlewareSpecBufferingArgs struct { // MaxRequestBodyBytes defines the maximum allowed body size for the request (in bytes). // If the request exceeds the allowed size, it is not forwarded to the service, and the client gets a 413 (Request Entity Too Large) response. @@ -5636,7 +6168,7 @@ type MiddlewareSpecBufferingArgs struct { MemResponseBodyBytes pulumi.IntPtrInput `pulumi:"memResponseBodyBytes"` // RetryExpression defines the retry conditions. // It is a logical combination of functions with operators AND (&&) and OR (||). - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/buffering/#retryexpression + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/buffering/#retryexpression RetryExpression pulumi.StringPtrInput `pulumi:"retryExpression"` } @@ -5707,7 +6239,7 @@ func (i *middlewareSpecBufferingPtrType) ToOutput(ctx context.Context) pulumix.O // Buffering holds the buffering middleware configuration. // This middleware retries or limits the size of requests that can be forwarded to backends. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/buffering/#maxrequestbodybytes +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/buffering/#maxrequestbodybytes type MiddlewareSpecBufferingOutput struct{ *pulumi.OutputState } func (MiddlewareSpecBufferingOutput) ElementType() reflect.Type { @@ -5766,7 +6298,7 @@ func (o MiddlewareSpecBufferingOutput) MemResponseBodyBytes() pulumi.IntPtrOutpu // RetryExpression defines the retry conditions. // It is a logical combination of functions with operators AND (&&) and OR (||). -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/buffering/#retryexpression +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/buffering/#retryexpression func (o MiddlewareSpecBufferingOutput) RetryExpression() pulumi.StringPtrOutput { return o.ApplyT(func(v MiddlewareSpecBuffering) *string { return v.RetryExpression }).(pulumi.StringPtrOutput) } @@ -5849,7 +6381,7 @@ func (o MiddlewareSpecBufferingPtrOutput) MemResponseBodyBytes() pulumi.IntPtrOu // RetryExpression defines the retry conditions. // It is a logical combination of functions with operators AND (&&) and OR (||). -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/buffering/#retryexpression +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/buffering/#retryexpression func (o MiddlewareSpecBufferingPtrOutput) RetryExpression() pulumi.StringPtrOutput { return o.ApplyT(func(v *MiddlewareSpecBuffering) *string { if v == nil { @@ -5861,7 +6393,7 @@ func (o MiddlewareSpecBufferingPtrOutput) RetryExpression() pulumi.StringPtrOutp // Chain holds the configuration of the chain middleware. // This middleware enables to define reusable combinations of other pieces of middleware. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/chain/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/chain/ type MiddlewareSpecChain struct { // Middlewares is the list of MiddlewareRef which composes the chain. Middlewares []MiddlewareSpecChainMiddlewares `pulumi:"middlewares"` @@ -5880,7 +6412,7 @@ type MiddlewareSpecChainInput interface { // Chain holds the configuration of the chain middleware. // This middleware enables to define reusable combinations of other pieces of middleware. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/chain/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/chain/ type MiddlewareSpecChainArgs struct { // Middlewares is the list of MiddlewareRef which composes the chain. Middlewares MiddlewareSpecChainMiddlewaresArrayInput `pulumi:"middlewares"` @@ -5953,7 +6485,7 @@ func (i *middlewareSpecChainPtrType) ToOutput(ctx context.Context) pulumix.Outpu // Chain holds the configuration of the chain middleware. // This middleware enables to define reusable combinations of other pieces of middleware. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/chain/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/chain/ type MiddlewareSpecChainOutput struct{ *pulumi.OutputState } func (MiddlewareSpecChainOutput) ElementType() reflect.Type { @@ -6172,6 +6704,8 @@ type MiddlewareSpecCircuitBreaker struct { FallbackDuration interface{} `pulumi:"fallbackDuration"` // RecoveryDuration is the duration for which the circuit breaker will try to recover (as soon as it is in recovering state). RecoveryDuration interface{} `pulumi:"recoveryDuration"` + // ResponseCode is the status code that the circuit breaker will return while it is in the open state. + ResponseCode *int `pulumi:"responseCode"` } // MiddlewareSpecCircuitBreakerInput is an input type that accepts MiddlewareSpecCircuitBreakerArgs and MiddlewareSpecCircuitBreakerOutput values. @@ -6195,6 +6729,8 @@ type MiddlewareSpecCircuitBreakerArgs struct { FallbackDuration pulumi.Input `pulumi:"fallbackDuration"` // RecoveryDuration is the duration for which the circuit breaker will try to recover (as soon as it is in recovering state). RecoveryDuration pulumi.Input `pulumi:"recoveryDuration"` + // ResponseCode is the status code that the circuit breaker will return while it is in the open state. + ResponseCode pulumi.IntPtrInput `pulumi:"responseCode"` } func (MiddlewareSpecCircuitBreakerArgs) ElementType() reflect.Type { @@ -6313,6 +6849,11 @@ func (o MiddlewareSpecCircuitBreakerOutput) RecoveryDuration() pulumi.AnyOutput return o.ApplyT(func(v MiddlewareSpecCircuitBreaker) interface{} { return v.RecoveryDuration }).(pulumi.AnyOutput) } +// ResponseCode is the status code that the circuit breaker will return while it is in the open state. +func (o MiddlewareSpecCircuitBreakerOutput) ResponseCode() pulumi.IntPtrOutput { + return o.ApplyT(func(v MiddlewareSpecCircuitBreaker) *int { return v.ResponseCode }).(pulumi.IntPtrOutput) +} + type MiddlewareSpecCircuitBreakerPtrOutput struct{ *pulumi.OutputState } func (MiddlewareSpecCircuitBreakerPtrOutput) ElementType() reflect.Type { @@ -6383,12 +6924,27 @@ func (o MiddlewareSpecCircuitBreakerPtrOutput) RecoveryDuration() pulumi.AnyOutp }).(pulumi.AnyOutput) } +// ResponseCode is the status code that the circuit breaker will return while it is in the open state. +func (o MiddlewareSpecCircuitBreakerPtrOutput) ResponseCode() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MiddlewareSpecCircuitBreaker) *int { + if v == nil { + return nil + } + return v.ResponseCode + }).(pulumi.IntPtrOutput) +} + // Compress holds the compress middleware configuration. // This middleware compresses responses before sending them to the client, using gzip compression. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/compress/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/compress/ type MiddlewareSpecCompress struct { + // DefaultEncoding specifies the default encoding if the `Accept-Encoding` header is not in the request or contains a wildcard (`*`). + DefaultEncoding *string `pulumi:"defaultEncoding"` // ExcludedContentTypes defines the list of content types to compare the Content-Type header of the incoming requests and responses before compressing. + // `application/grpc` is always excluded. ExcludedContentTypes []string `pulumi:"excludedContentTypes"` + // IncludedContentTypes defines the list of content types to compare the Content-Type header of the responses before compressing. + IncludedContentTypes []string `pulumi:"includedContentTypes"` // MinResponseBodyBytes defines the minimum amount of bytes a response body must have to be compressed. // Default: 1024. MinResponseBodyBytes *int `pulumi:"minResponseBodyBytes"` @@ -6407,10 +6963,15 @@ type MiddlewareSpecCompressInput interface { // Compress holds the compress middleware configuration. // This middleware compresses responses before sending them to the client, using gzip compression. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/compress/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/compress/ type MiddlewareSpecCompressArgs struct { + // DefaultEncoding specifies the default encoding if the `Accept-Encoding` header is not in the request or contains a wildcard (`*`). + DefaultEncoding pulumi.StringPtrInput `pulumi:"defaultEncoding"` // ExcludedContentTypes defines the list of content types to compare the Content-Type header of the incoming requests and responses before compressing. + // `application/grpc` is always excluded. ExcludedContentTypes pulumi.StringArrayInput `pulumi:"excludedContentTypes"` + // IncludedContentTypes defines the list of content types to compare the Content-Type header of the responses before compressing. + IncludedContentTypes pulumi.StringArrayInput `pulumi:"includedContentTypes"` // MinResponseBodyBytes defines the minimum amount of bytes a response body must have to be compressed. // Default: 1024. MinResponseBodyBytes pulumi.IntPtrInput `pulumi:"minResponseBodyBytes"` @@ -6483,7 +7044,7 @@ func (i *middlewareSpecCompressPtrType) ToOutput(ctx context.Context) pulumix.Ou // Compress holds the compress middleware configuration. // This middleware compresses responses before sending them to the client, using gzip compression. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/compress/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/compress/ type MiddlewareSpecCompressOutput struct{ *pulumi.OutputState } func (MiddlewareSpecCompressOutput) ElementType() reflect.Type { @@ -6514,11 +7075,22 @@ func (o MiddlewareSpecCompressOutput) ToOutput(ctx context.Context) pulumix.Outp } } +// DefaultEncoding specifies the default encoding if the `Accept-Encoding` header is not in the request or contains a wildcard (`*`). +func (o MiddlewareSpecCompressOutput) DefaultEncoding() pulumi.StringPtrOutput { + return o.ApplyT(func(v MiddlewareSpecCompress) *string { return v.DefaultEncoding }).(pulumi.StringPtrOutput) +} + // ExcludedContentTypes defines the list of content types to compare the Content-Type header of the incoming requests and responses before compressing. +// `application/grpc` is always excluded. func (o MiddlewareSpecCompressOutput) ExcludedContentTypes() pulumi.StringArrayOutput { return o.ApplyT(func(v MiddlewareSpecCompress) []string { return v.ExcludedContentTypes }).(pulumi.StringArrayOutput) } +// IncludedContentTypes defines the list of content types to compare the Content-Type header of the responses before compressing. +func (o MiddlewareSpecCompressOutput) IncludedContentTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v MiddlewareSpecCompress) []string { return v.IncludedContentTypes }).(pulumi.StringArrayOutput) +} + // MinResponseBodyBytes defines the minimum amount of bytes a response body must have to be compressed. // Default: 1024. func (o MiddlewareSpecCompressOutput) MinResponseBodyBytes() pulumi.IntPtrOutput { @@ -6555,7 +7127,18 @@ func (o MiddlewareSpecCompressPtrOutput) Elem() MiddlewareSpecCompressOutput { }).(MiddlewareSpecCompressOutput) } +// DefaultEncoding specifies the default encoding if the `Accept-Encoding` header is not in the request or contains a wildcard (`*`). +func (o MiddlewareSpecCompressPtrOutput) DefaultEncoding() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MiddlewareSpecCompress) *string { + if v == nil { + return nil + } + return v.DefaultEncoding + }).(pulumi.StringPtrOutput) +} + // ExcludedContentTypes defines the list of content types to compare the Content-Type header of the incoming requests and responses before compressing. +// `application/grpc` is always excluded. func (o MiddlewareSpecCompressPtrOutput) ExcludedContentTypes() pulumi.StringArrayOutput { return o.ApplyT(func(v *MiddlewareSpecCompress) []string { if v == nil { @@ -6565,6 +7148,16 @@ func (o MiddlewareSpecCompressPtrOutput) ExcludedContentTypes() pulumi.StringArr }).(pulumi.StringArrayOutput) } +// IncludedContentTypes defines the list of content types to compare the Content-Type header of the responses before compressing. +func (o MiddlewareSpecCompressPtrOutput) IncludedContentTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *MiddlewareSpecCompress) []string { + if v == nil { + return nil + } + return v.IncludedContentTypes + }).(pulumi.StringArrayOutput) +} + // MinResponseBodyBytes defines the minimum amount of bytes a response body must have to be compressed. // Default: 1024. func (o MiddlewareSpecCompressPtrOutput) MinResponseBodyBytes() pulumi.IntPtrOutput { @@ -6581,9 +7174,7 @@ func (o MiddlewareSpecCompressPtrOutput) MinResponseBodyBytes() pulumi.IntPtrOut type MiddlewareSpecContentType struct { // AutoDetect specifies whether to let the `Content-Type` header, if it has not been set by the backend, // be automatically set to a value derived from the contents of the response. - // As a proxy, the default behavior should be to leave the header alone, regardless of what the backend did with it. - // However, the historic default was to always auto-detect and set the header if it was nil, - // and it is going to be kept that way in order to support users currently relying on it. + // Deprecated: AutoDetect option is deprecated, Content-Type middleware is only meant to be used to enable the content-type detection, please remove any usage of this option. AutoDetect *bool `pulumi:"autoDetect"` } @@ -6603,9 +7194,7 @@ type MiddlewareSpecContentTypeInput interface { type MiddlewareSpecContentTypeArgs struct { // AutoDetect specifies whether to let the `Content-Type` header, if it has not been set by the backend, // be automatically set to a value derived from the contents of the response. - // As a proxy, the default behavior should be to leave the header alone, regardless of what the backend did with it. - // However, the historic default was to always auto-detect and set the header if it was nil, - // and it is going to be kept that way in order to support users currently relying on it. + // Deprecated: AutoDetect option is deprecated, Content-Type middleware is only meant to be used to enable the content-type detection, please remove any usage of this option. AutoDetect pulumi.BoolPtrInput `pulumi:"autoDetect"` } @@ -6708,9 +7297,7 @@ func (o MiddlewareSpecContentTypeOutput) ToOutput(ctx context.Context) pulumix.O // AutoDetect specifies whether to let the `Content-Type` header, if it has not been set by the backend, // be automatically set to a value derived from the contents of the response. -// As a proxy, the default behavior should be to leave the header alone, regardless of what the backend did with it. -// However, the historic default was to always auto-detect and set the header if it was nil, -// and it is going to be kept that way in order to support users currently relying on it. +// Deprecated: AutoDetect option is deprecated, Content-Type middleware is only meant to be used to enable the content-type detection, please remove any usage of this option. func (o MiddlewareSpecContentTypeOutput) AutoDetect() pulumi.BoolPtrOutput { return o.ApplyT(func(v MiddlewareSpecContentType) *bool { return v.AutoDetect }).(pulumi.BoolPtrOutput) } @@ -6747,9 +7334,7 @@ func (o MiddlewareSpecContentTypePtrOutput) Elem() MiddlewareSpecContentTypeOutp // AutoDetect specifies whether to let the `Content-Type` header, if it has not been set by the backend, // be automatically set to a value derived from the contents of the response. -// As a proxy, the default behavior should be to leave the header alone, regardless of what the backend did with it. -// However, the historic default was to always auto-detect and set the header if it was nil, -// and it is going to be kept that way in order to support users currently relying on it. +// Deprecated: AutoDetect option is deprecated, Content-Type middleware is only meant to be used to enable the content-type detection, please remove any usage of this option. func (o MiddlewareSpecContentTypePtrOutput) AutoDetect() pulumi.BoolPtrOutput { return o.ApplyT(func(v *MiddlewareSpecContentType) *bool { if v == nil { @@ -6761,10 +7346,10 @@ func (o MiddlewareSpecContentTypePtrOutput) AutoDetect() pulumi.BoolPtrOutput { // DigestAuth holds the digest auth middleware configuration. // This middleware restricts access to your services to known users. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/digestauth/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/digestauth/ type MiddlewareSpecDigestAuth struct { // HeaderField defines a header field to store the authenticated user. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/#headerfield + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/#headerfield HeaderField *string `pulumi:"headerField"` // Realm allows the protected resources on a server to be partitioned into a set of protection spaces, each with its own authentication scheme. // Default: traefik. @@ -6788,10 +7373,10 @@ type MiddlewareSpecDigestAuthInput interface { // DigestAuth holds the digest auth middleware configuration. // This middleware restricts access to your services to known users. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/digestauth/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/digestauth/ type MiddlewareSpecDigestAuthArgs struct { // HeaderField defines a header field to store the authenticated user. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/#headerfield + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/#headerfield HeaderField pulumi.StringPtrInput `pulumi:"headerField"` // Realm allows the protected resources on a server to be partitioned into a set of protection spaces, each with its own authentication scheme. // Default: traefik. @@ -6869,7 +7454,7 @@ func (i *middlewareSpecDigestAuthPtrType) ToOutput(ctx context.Context) pulumix. // DigestAuth holds the digest auth middleware configuration. // This middleware restricts access to your services to known users. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/digestauth/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/digestauth/ type MiddlewareSpecDigestAuthOutput struct{ *pulumi.OutputState } func (MiddlewareSpecDigestAuthOutput) ElementType() reflect.Type { @@ -6901,7 +7486,7 @@ func (o MiddlewareSpecDigestAuthOutput) ToOutput(ctx context.Context) pulumix.Ou } // HeaderField defines a header field to store the authenticated user. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/#headerfield +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/#headerfield func (o MiddlewareSpecDigestAuthOutput) HeaderField() pulumi.StringPtrOutput { return o.ApplyT(func(v MiddlewareSpecDigestAuth) *string { return v.HeaderField }).(pulumi.StringPtrOutput) } @@ -6953,7 +7538,7 @@ func (o MiddlewareSpecDigestAuthPtrOutput) Elem() MiddlewareSpecDigestAuthOutput } // HeaderField defines a header field to store the authenticated user. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/#headerfield +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/#headerfield func (o MiddlewareSpecDigestAuthPtrOutput) HeaderField() pulumi.StringPtrOutput { return o.ApplyT(func(v *MiddlewareSpecDigestAuth) *string { if v == nil { @@ -6996,13 +7581,13 @@ func (o MiddlewareSpecDigestAuthPtrOutput) Secret() pulumi.StringPtrOutput { // ErrorPage holds the custom error middleware configuration. // This middleware returns a custom page in lieu of the default, according to configured ranges of HTTP Status codes. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/errorpages/ type MiddlewareSpecErrors struct { // Query defines the URL for the error page (hosted by service). // The {status} variable can be used in order to insert the status code in the URL. Query *string `pulumi:"query"` // Service defines the reference to a Kubernetes Service that will serve the error page. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/#service + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/errorpages/#service Service *MiddlewareSpecErrorsService `pulumi:"service"` // Status defines which status or range of statuses should result in an error page. // It can be either a status code as a number (500), @@ -7025,13 +7610,13 @@ type MiddlewareSpecErrorsInput interface { // ErrorPage holds the custom error middleware configuration. // This middleware returns a custom page in lieu of the default, according to configured ranges of HTTP Status codes. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/errorpages/ type MiddlewareSpecErrorsArgs struct { // Query defines the URL for the error page (hosted by service). // The {status} variable can be used in order to insert the status code in the URL. Query pulumi.StringPtrInput `pulumi:"query"` // Service defines the reference to a Kubernetes Service that will serve the error page. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/#service + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/errorpages/#service Service MiddlewareSpecErrorsServicePtrInput `pulumi:"service"` // Status defines which status or range of statuses should result in an error page. // It can be either a status code as a number (500), @@ -7108,7 +7693,7 @@ func (i *middlewareSpecErrorsPtrType) ToOutput(ctx context.Context) pulumix.Outp // ErrorPage holds the custom error middleware configuration. // This middleware returns a custom page in lieu of the default, according to configured ranges of HTTP Status codes. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/errorpages/ type MiddlewareSpecErrorsOutput struct{ *pulumi.OutputState } func (MiddlewareSpecErrorsOutput) ElementType() reflect.Type { @@ -7146,7 +7731,7 @@ func (o MiddlewareSpecErrorsOutput) Query() pulumi.StringPtrOutput { } // Service defines the reference to a Kubernetes Service that will serve the error page. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/#service +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/errorpages/#service func (o MiddlewareSpecErrorsOutput) Service() MiddlewareSpecErrorsServicePtrOutput { return o.ApplyT(func(v MiddlewareSpecErrors) *MiddlewareSpecErrorsService { return v.Service }).(MiddlewareSpecErrorsServicePtrOutput) } @@ -7202,7 +7787,7 @@ func (o MiddlewareSpecErrorsPtrOutput) Query() pulumi.StringPtrOutput { } // Service defines the reference to a Kubernetes Service that will serve the error page. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/#service +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/errorpages/#service func (o MiddlewareSpecErrorsPtrOutput) Service() MiddlewareSpecErrorsServicePtrOutput { return o.ApplyT(func(v *MiddlewareSpecErrors) *MiddlewareSpecErrorsService { if v == nil { @@ -7227,8 +7812,10 @@ func (o MiddlewareSpecErrorsPtrOutput) Status() pulumi.StringArrayOutput { } // Service defines the reference to a Kubernetes Service that will serve the error page. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/#service +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/errorpages/#service type MiddlewareSpecErrorsService struct { + // Healthcheck defines health checks for ExternalName services. + HealthCheck *MiddlewareSpecErrorsServiceHealthCheck `pulumi:"healthCheck"` // Kind defines the kind of the Service. Kind *string `pulumi:"kind"` // Name defines the name of the referenced Kubernetes Service or TraefikService. @@ -7241,6 +7828,11 @@ type MiddlewareSpecErrorsService struct { // The Kubernetes Service itself does load-balance to the pods. // By default, NativeLB is false. NativeLB *bool `pulumi:"nativeLB"` + // NodePortLB controls, when creating the load-balancer, + // whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. + // It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. + // By default, NodePortLB is false. + NodePortLB *bool `pulumi:"nodePortLB"` // PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. // By default, passHostHeader is true. PassHostHeader *bool `pulumi:"passHostHeader"` @@ -7257,7 +7849,7 @@ type MiddlewareSpecErrorsService struct { // Can only be used on a Kubernetes Service. ServersTransport *string `pulumi:"serversTransport"` // Sticky defines the sticky sessions configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions + // More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions Sticky *MiddlewareSpecErrorsServiceSticky `pulumi:"sticky"` // Strategy defines the load balancing strategy between the servers. // RoundRobin is the only supported value at the moment. @@ -7279,8 +7871,10 @@ type MiddlewareSpecErrorsServiceInput interface { } // Service defines the reference to a Kubernetes Service that will serve the error page. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/#service +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/errorpages/#service type MiddlewareSpecErrorsServiceArgs struct { + // Healthcheck defines health checks for ExternalName services. + HealthCheck MiddlewareSpecErrorsServiceHealthCheckPtrInput `pulumi:"healthCheck"` // Kind defines the kind of the Service. Kind pulumi.StringPtrInput `pulumi:"kind"` // Name defines the name of the referenced Kubernetes Service or TraefikService. @@ -7293,6 +7887,11 @@ type MiddlewareSpecErrorsServiceArgs struct { // The Kubernetes Service itself does load-balance to the pods. // By default, NativeLB is false. NativeLB pulumi.BoolPtrInput `pulumi:"nativeLB"` + // NodePortLB controls, when creating the load-balancer, + // whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. + // It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. + // By default, NodePortLB is false. + NodePortLB pulumi.BoolPtrInput `pulumi:"nodePortLB"` // PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. // By default, passHostHeader is true. PassHostHeader pulumi.BoolPtrInput `pulumi:"passHostHeader"` @@ -7309,7 +7908,7 @@ type MiddlewareSpecErrorsServiceArgs struct { // Can only be used on a Kubernetes Service. ServersTransport pulumi.StringPtrInput `pulumi:"serversTransport"` // Sticky defines the sticky sessions configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions + // More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions Sticky MiddlewareSpecErrorsServiceStickyPtrInput `pulumi:"sticky"` // Strategy defines the load balancing strategy between the servers. // RoundRobin is the only supported value at the moment. @@ -7385,7 +7984,7 @@ func (i *middlewareSpecErrorsServicePtrType) ToOutput(ctx context.Context) pulum } // Service defines the reference to a Kubernetes Service that will serve the error page. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/#service +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/errorpages/#service type MiddlewareSpecErrorsServiceOutput struct{ *pulumi.OutputState } func (MiddlewareSpecErrorsServiceOutput) ElementType() reflect.Type { @@ -7416,6 +8015,11 @@ func (o MiddlewareSpecErrorsServiceOutput) ToOutput(ctx context.Context) pulumix } } +// Healthcheck defines health checks for ExternalName services. +func (o MiddlewareSpecErrorsServiceOutput) HealthCheck() MiddlewareSpecErrorsServiceHealthCheckPtrOutput { + return o.ApplyT(func(v MiddlewareSpecErrorsService) *MiddlewareSpecErrorsServiceHealthCheck { return v.HealthCheck }).(MiddlewareSpecErrorsServiceHealthCheckPtrOutput) +} + // Kind defines the kind of the Service. func (o MiddlewareSpecErrorsServiceOutput) Kind() pulumi.StringPtrOutput { return o.ApplyT(func(v MiddlewareSpecErrorsService) *string { return v.Kind }).(pulumi.StringPtrOutput) @@ -7440,6 +8044,14 @@ func (o MiddlewareSpecErrorsServiceOutput) NativeLB() pulumi.BoolPtrOutput { return o.ApplyT(func(v MiddlewareSpecErrorsService) *bool { return v.NativeLB }).(pulumi.BoolPtrOutput) } +// NodePortLB controls, when creating the load-balancer, +// whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. +// It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. +// By default, NodePortLB is false. +func (o MiddlewareSpecErrorsServiceOutput) NodePortLB() pulumi.BoolPtrOutput { + return o.ApplyT(func(v MiddlewareSpecErrorsService) *bool { return v.NodePortLB }).(pulumi.BoolPtrOutput) +} + // PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. // By default, passHostHeader is true. func (o MiddlewareSpecErrorsServiceOutput) PassHostHeader() pulumi.BoolPtrOutput { @@ -7473,7 +8085,7 @@ func (o MiddlewareSpecErrorsServiceOutput) ServersTransport() pulumi.StringPtrOu } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions func (o MiddlewareSpecErrorsServiceOutput) Sticky() MiddlewareSpecErrorsServiceStickyPtrOutput { return o.ApplyT(func(v MiddlewareSpecErrorsService) *MiddlewareSpecErrorsServiceSticky { return v.Sticky }).(MiddlewareSpecErrorsServiceStickyPtrOutput) } @@ -7520,6 +8132,16 @@ func (o MiddlewareSpecErrorsServicePtrOutput) Elem() MiddlewareSpecErrorsService }).(MiddlewareSpecErrorsServiceOutput) } +// Healthcheck defines health checks for ExternalName services. +func (o MiddlewareSpecErrorsServicePtrOutput) HealthCheck() MiddlewareSpecErrorsServiceHealthCheckPtrOutput { + return o.ApplyT(func(v *MiddlewareSpecErrorsService) *MiddlewareSpecErrorsServiceHealthCheck { + if v == nil { + return nil + } + return v.HealthCheck + }).(MiddlewareSpecErrorsServiceHealthCheckPtrOutput) +} + // Kind defines the kind of the Service. func (o MiddlewareSpecErrorsServicePtrOutput) Kind() pulumi.StringPtrOutput { return o.ApplyT(func(v *MiddlewareSpecErrorsService) *string { @@ -7564,6 +8186,19 @@ func (o MiddlewareSpecErrorsServicePtrOutput) NativeLB() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } +// NodePortLB controls, when creating the load-balancer, +// whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. +// It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. +// By default, NodePortLB is false. +func (o MiddlewareSpecErrorsServicePtrOutput) NodePortLB() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *MiddlewareSpecErrorsService) *bool { + if v == nil { + return nil + } + return v.NodePortLB + }).(pulumi.BoolPtrOutput) +} + // PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. // By default, passHostHeader is true. func (o MiddlewareSpecErrorsServicePtrOutput) PassHostHeader() pulumi.BoolPtrOutput { @@ -7620,7 +8255,7 @@ func (o MiddlewareSpecErrorsServicePtrOutput) ServersTransport() pulumi.StringPt } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions func (o MiddlewareSpecErrorsServicePtrOutput) Sticky() MiddlewareSpecErrorsServiceStickyPtrOutput { return o.ApplyT(func(v *MiddlewareSpecErrorsService) *MiddlewareSpecErrorsServiceSticky { if v == nil { @@ -7652,6 +8287,384 @@ func (o MiddlewareSpecErrorsServicePtrOutput) Weight() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// Healthcheck defines health checks for ExternalName services. +type MiddlewareSpecErrorsServiceHealthCheck struct { + // FollowRedirects defines whether redirects should be followed during the health check calls. + // Default: true + FollowRedirects *bool `pulumi:"followRedirects"` + // Headers defines custom headers to be sent to the health check endpoint. + Headers map[string]string `pulumi:"headers"` + // Hostname defines the value of hostname in the Host header of the health check request. + Hostname *string `pulumi:"hostname"` + // Interval defines the frequency of the health check calls. + // Default: 30s + Interval interface{} `pulumi:"interval"` + // Method defines the healthcheck method. + Method *string `pulumi:"method"` + // Mode defines the health check mode. + // If defined to grpc, will use the gRPC health check protocol to probe the server. + // Default: http + Mode *string `pulumi:"mode"` + // Path defines the server URL path for the health check endpoint. + Path *string `pulumi:"path"` + // Port defines the server URL port for the health check endpoint. + Port *int `pulumi:"port"` + // Scheme replaces the server URL scheme for the health check endpoint. + Scheme *string `pulumi:"scheme"` + // Status defines the expected HTTP status code of the response to the health check request. + Status *int `pulumi:"status"` + // Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. + // Default: 5s + Timeout interface{} `pulumi:"timeout"` +} + +// MiddlewareSpecErrorsServiceHealthCheckInput is an input type that accepts MiddlewareSpecErrorsServiceHealthCheckArgs and MiddlewareSpecErrorsServiceHealthCheckOutput values. +// You can construct a concrete instance of `MiddlewareSpecErrorsServiceHealthCheckInput` via: +// +// MiddlewareSpecErrorsServiceHealthCheckArgs{...} +type MiddlewareSpecErrorsServiceHealthCheckInput interface { + pulumi.Input + + ToMiddlewareSpecErrorsServiceHealthCheckOutput() MiddlewareSpecErrorsServiceHealthCheckOutput + ToMiddlewareSpecErrorsServiceHealthCheckOutputWithContext(context.Context) MiddlewareSpecErrorsServiceHealthCheckOutput +} + +// Healthcheck defines health checks for ExternalName services. +type MiddlewareSpecErrorsServiceHealthCheckArgs struct { + // FollowRedirects defines whether redirects should be followed during the health check calls. + // Default: true + FollowRedirects pulumi.BoolPtrInput `pulumi:"followRedirects"` + // Headers defines custom headers to be sent to the health check endpoint. + Headers pulumi.StringMapInput `pulumi:"headers"` + // Hostname defines the value of hostname in the Host header of the health check request. + Hostname pulumi.StringPtrInput `pulumi:"hostname"` + // Interval defines the frequency of the health check calls. + // Default: 30s + Interval pulumi.Input `pulumi:"interval"` + // Method defines the healthcheck method. + Method pulumi.StringPtrInput `pulumi:"method"` + // Mode defines the health check mode. + // If defined to grpc, will use the gRPC health check protocol to probe the server. + // Default: http + Mode pulumi.StringPtrInput `pulumi:"mode"` + // Path defines the server URL path for the health check endpoint. + Path pulumi.StringPtrInput `pulumi:"path"` + // Port defines the server URL port for the health check endpoint. + Port pulumi.IntPtrInput `pulumi:"port"` + // Scheme replaces the server URL scheme for the health check endpoint. + Scheme pulumi.StringPtrInput `pulumi:"scheme"` + // Status defines the expected HTTP status code of the response to the health check request. + Status pulumi.IntPtrInput `pulumi:"status"` + // Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. + // Default: 5s + Timeout pulumi.Input `pulumi:"timeout"` +} + +func (MiddlewareSpecErrorsServiceHealthCheckArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MiddlewareSpecErrorsServiceHealthCheck)(nil)).Elem() +} + +func (i MiddlewareSpecErrorsServiceHealthCheckArgs) ToMiddlewareSpecErrorsServiceHealthCheckOutput() MiddlewareSpecErrorsServiceHealthCheckOutput { + return i.ToMiddlewareSpecErrorsServiceHealthCheckOutputWithContext(context.Background()) +} + +func (i MiddlewareSpecErrorsServiceHealthCheckArgs) ToMiddlewareSpecErrorsServiceHealthCheckOutputWithContext(ctx context.Context) MiddlewareSpecErrorsServiceHealthCheckOutput { + return pulumi.ToOutputWithContext(ctx, i).(MiddlewareSpecErrorsServiceHealthCheckOutput) +} + +func (i MiddlewareSpecErrorsServiceHealthCheckArgs) ToOutput(ctx context.Context) pulumix.Output[MiddlewareSpecErrorsServiceHealthCheck] { + return pulumix.Output[MiddlewareSpecErrorsServiceHealthCheck]{ + OutputState: i.ToMiddlewareSpecErrorsServiceHealthCheckOutputWithContext(ctx).OutputState, + } +} + +func (i MiddlewareSpecErrorsServiceHealthCheckArgs) ToMiddlewareSpecErrorsServiceHealthCheckPtrOutput() MiddlewareSpecErrorsServiceHealthCheckPtrOutput { + return i.ToMiddlewareSpecErrorsServiceHealthCheckPtrOutputWithContext(context.Background()) +} + +func (i MiddlewareSpecErrorsServiceHealthCheckArgs) ToMiddlewareSpecErrorsServiceHealthCheckPtrOutputWithContext(ctx context.Context) MiddlewareSpecErrorsServiceHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MiddlewareSpecErrorsServiceHealthCheckOutput).ToMiddlewareSpecErrorsServiceHealthCheckPtrOutputWithContext(ctx) +} + +// MiddlewareSpecErrorsServiceHealthCheckPtrInput is an input type that accepts MiddlewareSpecErrorsServiceHealthCheckArgs, MiddlewareSpecErrorsServiceHealthCheckPtr and MiddlewareSpecErrorsServiceHealthCheckPtrOutput values. +// You can construct a concrete instance of `MiddlewareSpecErrorsServiceHealthCheckPtrInput` via: +// +// MiddlewareSpecErrorsServiceHealthCheckArgs{...} +// +// or: +// +// nil +type MiddlewareSpecErrorsServiceHealthCheckPtrInput interface { + pulumi.Input + + ToMiddlewareSpecErrorsServiceHealthCheckPtrOutput() MiddlewareSpecErrorsServiceHealthCheckPtrOutput + ToMiddlewareSpecErrorsServiceHealthCheckPtrOutputWithContext(context.Context) MiddlewareSpecErrorsServiceHealthCheckPtrOutput +} + +type middlewareSpecErrorsServiceHealthCheckPtrType MiddlewareSpecErrorsServiceHealthCheckArgs + +func MiddlewareSpecErrorsServiceHealthCheckPtr(v *MiddlewareSpecErrorsServiceHealthCheckArgs) MiddlewareSpecErrorsServiceHealthCheckPtrInput { + return (*middlewareSpecErrorsServiceHealthCheckPtrType)(v) +} + +func (*middlewareSpecErrorsServiceHealthCheckPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MiddlewareSpecErrorsServiceHealthCheck)(nil)).Elem() +} + +func (i *middlewareSpecErrorsServiceHealthCheckPtrType) ToMiddlewareSpecErrorsServiceHealthCheckPtrOutput() MiddlewareSpecErrorsServiceHealthCheckPtrOutput { + return i.ToMiddlewareSpecErrorsServiceHealthCheckPtrOutputWithContext(context.Background()) +} + +func (i *middlewareSpecErrorsServiceHealthCheckPtrType) ToMiddlewareSpecErrorsServiceHealthCheckPtrOutputWithContext(ctx context.Context) MiddlewareSpecErrorsServiceHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MiddlewareSpecErrorsServiceHealthCheckPtrOutput) +} + +func (i *middlewareSpecErrorsServiceHealthCheckPtrType) ToOutput(ctx context.Context) pulumix.Output[*MiddlewareSpecErrorsServiceHealthCheck] { + return pulumix.Output[*MiddlewareSpecErrorsServiceHealthCheck]{ + OutputState: i.ToMiddlewareSpecErrorsServiceHealthCheckPtrOutputWithContext(ctx).OutputState, + } +} + +// Healthcheck defines health checks for ExternalName services. +type MiddlewareSpecErrorsServiceHealthCheckOutput struct{ *pulumi.OutputState } + +func (MiddlewareSpecErrorsServiceHealthCheckOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MiddlewareSpecErrorsServiceHealthCheck)(nil)).Elem() +} + +func (o MiddlewareSpecErrorsServiceHealthCheckOutput) ToMiddlewareSpecErrorsServiceHealthCheckOutput() MiddlewareSpecErrorsServiceHealthCheckOutput { + return o +} + +func (o MiddlewareSpecErrorsServiceHealthCheckOutput) ToMiddlewareSpecErrorsServiceHealthCheckOutputWithContext(ctx context.Context) MiddlewareSpecErrorsServiceHealthCheckOutput { + return o +} + +func (o MiddlewareSpecErrorsServiceHealthCheckOutput) ToMiddlewareSpecErrorsServiceHealthCheckPtrOutput() MiddlewareSpecErrorsServiceHealthCheckPtrOutput { + return o.ToMiddlewareSpecErrorsServiceHealthCheckPtrOutputWithContext(context.Background()) +} + +func (o MiddlewareSpecErrorsServiceHealthCheckOutput) ToMiddlewareSpecErrorsServiceHealthCheckPtrOutputWithContext(ctx context.Context) MiddlewareSpecErrorsServiceHealthCheckPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MiddlewareSpecErrorsServiceHealthCheck) *MiddlewareSpecErrorsServiceHealthCheck { + return &v + }).(MiddlewareSpecErrorsServiceHealthCheckPtrOutput) +} + +func (o MiddlewareSpecErrorsServiceHealthCheckOutput) ToOutput(ctx context.Context) pulumix.Output[MiddlewareSpecErrorsServiceHealthCheck] { + return pulumix.Output[MiddlewareSpecErrorsServiceHealthCheck]{ + OutputState: o.OutputState, + } +} + +// FollowRedirects defines whether redirects should be followed during the health check calls. +// Default: true +func (o MiddlewareSpecErrorsServiceHealthCheckOutput) FollowRedirects() pulumi.BoolPtrOutput { + return o.ApplyT(func(v MiddlewareSpecErrorsServiceHealthCheck) *bool { return v.FollowRedirects }).(pulumi.BoolPtrOutput) +} + +// Headers defines custom headers to be sent to the health check endpoint. +func (o MiddlewareSpecErrorsServiceHealthCheckOutput) Headers() pulumi.StringMapOutput { + return o.ApplyT(func(v MiddlewareSpecErrorsServiceHealthCheck) map[string]string { return v.Headers }).(pulumi.StringMapOutput) +} + +// Hostname defines the value of hostname in the Host header of the health check request. +func (o MiddlewareSpecErrorsServiceHealthCheckOutput) Hostname() pulumi.StringPtrOutput { + return o.ApplyT(func(v MiddlewareSpecErrorsServiceHealthCheck) *string { return v.Hostname }).(pulumi.StringPtrOutput) +} + +// Interval defines the frequency of the health check calls. +// Default: 30s +func (o MiddlewareSpecErrorsServiceHealthCheckOutput) Interval() pulumi.AnyOutput { + return o.ApplyT(func(v MiddlewareSpecErrorsServiceHealthCheck) interface{} { return v.Interval }).(pulumi.AnyOutput) +} + +// Method defines the healthcheck method. +func (o MiddlewareSpecErrorsServiceHealthCheckOutput) Method() pulumi.StringPtrOutput { + return o.ApplyT(func(v MiddlewareSpecErrorsServiceHealthCheck) *string { return v.Method }).(pulumi.StringPtrOutput) +} + +// Mode defines the health check mode. +// If defined to grpc, will use the gRPC health check protocol to probe the server. +// Default: http +func (o MiddlewareSpecErrorsServiceHealthCheckOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v MiddlewareSpecErrorsServiceHealthCheck) *string { return v.Mode }).(pulumi.StringPtrOutput) +} + +// Path defines the server URL path for the health check endpoint. +func (o MiddlewareSpecErrorsServiceHealthCheckOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v MiddlewareSpecErrorsServiceHealthCheck) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +// Port defines the server URL port for the health check endpoint. +func (o MiddlewareSpecErrorsServiceHealthCheckOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v MiddlewareSpecErrorsServiceHealthCheck) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// Scheme replaces the server URL scheme for the health check endpoint. +func (o MiddlewareSpecErrorsServiceHealthCheckOutput) Scheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v MiddlewareSpecErrorsServiceHealthCheck) *string { return v.Scheme }).(pulumi.StringPtrOutput) +} + +// Status defines the expected HTTP status code of the response to the health check request. +func (o MiddlewareSpecErrorsServiceHealthCheckOutput) Status() pulumi.IntPtrOutput { + return o.ApplyT(func(v MiddlewareSpecErrorsServiceHealthCheck) *int { return v.Status }).(pulumi.IntPtrOutput) +} + +// Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. +// Default: 5s +func (o MiddlewareSpecErrorsServiceHealthCheckOutput) Timeout() pulumi.AnyOutput { + return o.ApplyT(func(v MiddlewareSpecErrorsServiceHealthCheck) interface{} { return v.Timeout }).(pulumi.AnyOutput) +} + +type MiddlewareSpecErrorsServiceHealthCheckPtrOutput struct{ *pulumi.OutputState } + +func (MiddlewareSpecErrorsServiceHealthCheckPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MiddlewareSpecErrorsServiceHealthCheck)(nil)).Elem() +} + +func (o MiddlewareSpecErrorsServiceHealthCheckPtrOutput) ToMiddlewareSpecErrorsServiceHealthCheckPtrOutput() MiddlewareSpecErrorsServiceHealthCheckPtrOutput { + return o +} + +func (o MiddlewareSpecErrorsServiceHealthCheckPtrOutput) ToMiddlewareSpecErrorsServiceHealthCheckPtrOutputWithContext(ctx context.Context) MiddlewareSpecErrorsServiceHealthCheckPtrOutput { + return o +} + +func (o MiddlewareSpecErrorsServiceHealthCheckPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*MiddlewareSpecErrorsServiceHealthCheck] { + return pulumix.Output[*MiddlewareSpecErrorsServiceHealthCheck]{ + OutputState: o.OutputState, + } +} + +func (o MiddlewareSpecErrorsServiceHealthCheckPtrOutput) Elem() MiddlewareSpecErrorsServiceHealthCheckOutput { + return o.ApplyT(func(v *MiddlewareSpecErrorsServiceHealthCheck) MiddlewareSpecErrorsServiceHealthCheck { + if v != nil { + return *v + } + var ret MiddlewareSpecErrorsServiceHealthCheck + return ret + }).(MiddlewareSpecErrorsServiceHealthCheckOutput) +} + +// FollowRedirects defines whether redirects should be followed during the health check calls. +// Default: true +func (o MiddlewareSpecErrorsServiceHealthCheckPtrOutput) FollowRedirects() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *MiddlewareSpecErrorsServiceHealthCheck) *bool { + if v == nil { + return nil + } + return v.FollowRedirects + }).(pulumi.BoolPtrOutput) +} + +// Headers defines custom headers to be sent to the health check endpoint. +func (o MiddlewareSpecErrorsServiceHealthCheckPtrOutput) Headers() pulumi.StringMapOutput { + return o.ApplyT(func(v *MiddlewareSpecErrorsServiceHealthCheck) map[string]string { + if v == nil { + return nil + } + return v.Headers + }).(pulumi.StringMapOutput) +} + +// Hostname defines the value of hostname in the Host header of the health check request. +func (o MiddlewareSpecErrorsServiceHealthCheckPtrOutput) Hostname() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MiddlewareSpecErrorsServiceHealthCheck) *string { + if v == nil { + return nil + } + return v.Hostname + }).(pulumi.StringPtrOutput) +} + +// Interval defines the frequency of the health check calls. +// Default: 30s +func (o MiddlewareSpecErrorsServiceHealthCheckPtrOutput) Interval() pulumi.AnyOutput { + return o.ApplyT(func(v *MiddlewareSpecErrorsServiceHealthCheck) interface{} { + if v == nil { + return nil + } + return v.Interval + }).(pulumi.AnyOutput) +} + +// Method defines the healthcheck method. +func (o MiddlewareSpecErrorsServiceHealthCheckPtrOutput) Method() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MiddlewareSpecErrorsServiceHealthCheck) *string { + if v == nil { + return nil + } + return v.Method + }).(pulumi.StringPtrOutput) +} + +// Mode defines the health check mode. +// If defined to grpc, will use the gRPC health check protocol to probe the server. +// Default: http +func (o MiddlewareSpecErrorsServiceHealthCheckPtrOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MiddlewareSpecErrorsServiceHealthCheck) *string { + if v == nil { + return nil + } + return v.Mode + }).(pulumi.StringPtrOutput) +} + +// Path defines the server URL path for the health check endpoint. +func (o MiddlewareSpecErrorsServiceHealthCheckPtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MiddlewareSpecErrorsServiceHealthCheck) *string { + if v == nil { + return nil + } + return v.Path + }).(pulumi.StringPtrOutput) +} + +// Port defines the server URL port for the health check endpoint. +func (o MiddlewareSpecErrorsServiceHealthCheckPtrOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MiddlewareSpecErrorsServiceHealthCheck) *int { + if v == nil { + return nil + } + return v.Port + }).(pulumi.IntPtrOutput) +} + +// Scheme replaces the server URL scheme for the health check endpoint. +func (o MiddlewareSpecErrorsServiceHealthCheckPtrOutput) Scheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MiddlewareSpecErrorsServiceHealthCheck) *string { + if v == nil { + return nil + } + return v.Scheme + }).(pulumi.StringPtrOutput) +} + +// Status defines the expected HTTP status code of the response to the health check request. +func (o MiddlewareSpecErrorsServiceHealthCheckPtrOutput) Status() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MiddlewareSpecErrorsServiceHealthCheck) *int { + if v == nil { + return nil + } + return v.Status + }).(pulumi.IntPtrOutput) +} + +// Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. +// Default: 5s +func (o MiddlewareSpecErrorsServiceHealthCheckPtrOutput) Timeout() pulumi.AnyOutput { + return o.ApplyT(func(v *MiddlewareSpecErrorsServiceHealthCheck) interface{} { + if v == nil { + return nil + } + return v.Timeout + }).(pulumi.AnyOutput) +} + +// Headers defines custom headers to be sent to the health check endpoint. +type MiddlewareSpecErrorsServiceHealthCheckHeaders struct { +} + // ResponseForwarding defines how Traefik forwards the response from the upstream Kubernetes Service to the client. type MiddlewareSpecErrorsServiceResponseForwarding struct { // FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body. @@ -7833,7 +8846,7 @@ func (o MiddlewareSpecErrorsServiceResponseForwardingPtrOutput) FlushInterval() } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions type MiddlewareSpecErrorsServiceSticky struct { // Cookie defines the sticky cookie configuration. Cookie *MiddlewareSpecErrorsServiceStickyCookie `pulumi:"cookie"` @@ -7851,7 +8864,7 @@ type MiddlewareSpecErrorsServiceStickyInput interface { } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions type MiddlewareSpecErrorsServiceStickyArgs struct { // Cookie defines the sticky cookie configuration. Cookie MiddlewareSpecErrorsServiceStickyCookiePtrInput `pulumi:"cookie"` @@ -7923,7 +8936,7 @@ func (i *middlewareSpecErrorsServiceStickyPtrType) ToOutput(ctx context.Context) } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions type MiddlewareSpecErrorsServiceStickyOutput struct{ *pulumi.OutputState } func (MiddlewareSpecErrorsServiceStickyOutput) ElementType() reflect.Type { @@ -8003,6 +9016,10 @@ func (o MiddlewareSpecErrorsServiceStickyPtrOutput) Cookie() MiddlewareSpecError type MiddlewareSpecErrorsServiceStickyCookie struct { // HTTPOnly defines whether the cookie can be accessed by client-side APIs, such as JavaScript. HttpOnly *bool `pulumi:"httpOnly"` + // MaxAge indicates the number of seconds until the cookie expires. + // When set to a negative number, the cookie expires immediately. + // When set to zero, the cookie never expires. + MaxAge *int `pulumi:"maxAge"` // Name defines the Cookie name. Name *string `pulumi:"name"` // SameSite defines the same site policy. @@ -8027,6 +9044,10 @@ type MiddlewareSpecErrorsServiceStickyCookieInput interface { type MiddlewareSpecErrorsServiceStickyCookieArgs struct { // HTTPOnly defines whether the cookie can be accessed by client-side APIs, such as JavaScript. HttpOnly pulumi.BoolPtrInput `pulumi:"httpOnly"` + // MaxAge indicates the number of seconds until the cookie expires. + // When set to a negative number, the cookie expires immediately. + // When set to zero, the cookie never expires. + MaxAge pulumi.IntPtrInput `pulumi:"maxAge"` // Name defines the Cookie name. Name pulumi.StringPtrInput `pulumi:"name"` // SameSite defines the same site policy. @@ -8137,6 +9158,13 @@ func (o MiddlewareSpecErrorsServiceStickyCookieOutput) HttpOnly() pulumi.BoolPtr return o.ApplyT(func(v MiddlewareSpecErrorsServiceStickyCookie) *bool { return v.HttpOnly }).(pulumi.BoolPtrOutput) } +// MaxAge indicates the number of seconds until the cookie expires. +// When set to a negative number, the cookie expires immediately. +// When set to zero, the cookie never expires. +func (o MiddlewareSpecErrorsServiceStickyCookieOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v MiddlewareSpecErrorsServiceStickyCookie) *int { return v.MaxAge }).(pulumi.IntPtrOutput) +} + // Name defines the Cookie name. func (o MiddlewareSpecErrorsServiceStickyCookieOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v MiddlewareSpecErrorsServiceStickyCookie) *string { return v.Name }).(pulumi.StringPtrOutput) @@ -8193,6 +9221,18 @@ func (o MiddlewareSpecErrorsServiceStickyCookiePtrOutput) HttpOnly() pulumi.Bool }).(pulumi.BoolPtrOutput) } +// MaxAge indicates the number of seconds until the cookie expires. +// When set to a negative number, the cookie expires immediately. +// When set to zero, the cookie never expires. +func (o MiddlewareSpecErrorsServiceStickyCookiePtrOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MiddlewareSpecErrorsServiceStickyCookie) *int { + if v == nil { + return nil + } + return v.MaxAge + }).(pulumi.IntPtrOutput) +} + // Name defines the Cookie name. func (o MiddlewareSpecErrorsServiceStickyCookiePtrOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v *MiddlewareSpecErrorsServiceStickyCookie) *string { @@ -8226,8 +9266,10 @@ func (o MiddlewareSpecErrorsServiceStickyCookiePtrOutput) Secure() pulumi.BoolPt // ForwardAuth holds the forward auth middleware configuration. // This middleware delegates the request authentication to a Service. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/forwardauth/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/forwardauth/ type MiddlewareSpecForwardAuth struct { + // AddAuthCookiesToResponse defines the list of cookies to copy from the authentication server response to the response. + AddAuthCookiesToResponse []string `pulumi:"addAuthCookiesToResponse"` // Address defines the authentication server address. Address *string `pulumi:"address"` // AuthRequestHeaders defines the list of the headers to copy from the request to the authentication server. @@ -8236,7 +9278,7 @@ type MiddlewareSpecForwardAuth struct { // AuthResponseHeaders defines the list of headers to copy from the authentication server response and set on forwarded request, replacing any existing conflicting headers. AuthResponseHeaders []string `pulumi:"authResponseHeaders"` // AuthResponseHeadersRegex defines the regex to match headers to copy from the authentication server response and set on forwarded request, after stripping all headers that match the regex. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/forwardauth/#authresponseheadersregex + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/forwardauth/#authresponseheadersregex AuthResponseHeadersRegex *string `pulumi:"authResponseHeadersRegex"` // TLS defines the configuration used to secure the connection to the authentication server. Tls *MiddlewareSpecForwardAuthTls `pulumi:"tls"` @@ -8257,8 +9299,10 @@ type MiddlewareSpecForwardAuthInput interface { // ForwardAuth holds the forward auth middleware configuration. // This middleware delegates the request authentication to a Service. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/forwardauth/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/forwardauth/ type MiddlewareSpecForwardAuthArgs struct { + // AddAuthCookiesToResponse defines the list of cookies to copy from the authentication server response to the response. + AddAuthCookiesToResponse pulumi.StringArrayInput `pulumi:"addAuthCookiesToResponse"` // Address defines the authentication server address. Address pulumi.StringPtrInput `pulumi:"address"` // AuthRequestHeaders defines the list of the headers to copy from the request to the authentication server. @@ -8267,7 +9311,7 @@ type MiddlewareSpecForwardAuthArgs struct { // AuthResponseHeaders defines the list of headers to copy from the authentication server response and set on forwarded request, replacing any existing conflicting headers. AuthResponseHeaders pulumi.StringArrayInput `pulumi:"authResponseHeaders"` // AuthResponseHeadersRegex defines the regex to match headers to copy from the authentication server response and set on forwarded request, after stripping all headers that match the regex. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/forwardauth/#authresponseheadersregex + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/forwardauth/#authresponseheadersregex AuthResponseHeadersRegex pulumi.StringPtrInput `pulumi:"authResponseHeadersRegex"` // TLS defines the configuration used to secure the connection to the authentication server. Tls MiddlewareSpecForwardAuthTlsPtrInput `pulumi:"tls"` @@ -8342,7 +9386,7 @@ func (i *middlewareSpecForwardAuthPtrType) ToOutput(ctx context.Context) pulumix // ForwardAuth holds the forward auth middleware configuration. // This middleware delegates the request authentication to a Service. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/forwardauth/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/forwardauth/ type MiddlewareSpecForwardAuthOutput struct{ *pulumi.OutputState } func (MiddlewareSpecForwardAuthOutput) ElementType() reflect.Type { @@ -8373,6 +9417,11 @@ func (o MiddlewareSpecForwardAuthOutput) ToOutput(ctx context.Context) pulumix.O } } +// AddAuthCookiesToResponse defines the list of cookies to copy from the authentication server response to the response. +func (o MiddlewareSpecForwardAuthOutput) AddAuthCookiesToResponse() pulumi.StringArrayOutput { + return o.ApplyT(func(v MiddlewareSpecForwardAuth) []string { return v.AddAuthCookiesToResponse }).(pulumi.StringArrayOutput) +} + // Address defines the authentication server address. func (o MiddlewareSpecForwardAuthOutput) Address() pulumi.StringPtrOutput { return o.ApplyT(func(v MiddlewareSpecForwardAuth) *string { return v.Address }).(pulumi.StringPtrOutput) @@ -8390,7 +9439,7 @@ func (o MiddlewareSpecForwardAuthOutput) AuthResponseHeaders() pulumi.StringArra } // AuthResponseHeadersRegex defines the regex to match headers to copy from the authentication server response and set on forwarded request, after stripping all headers that match the regex. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/forwardauth/#authresponseheadersregex +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/forwardauth/#authresponseheadersregex func (o MiddlewareSpecForwardAuthOutput) AuthResponseHeadersRegex() pulumi.StringPtrOutput { return o.ApplyT(func(v MiddlewareSpecForwardAuth) *string { return v.AuthResponseHeadersRegex }).(pulumi.StringPtrOutput) } @@ -8435,6 +9484,16 @@ func (o MiddlewareSpecForwardAuthPtrOutput) Elem() MiddlewareSpecForwardAuthOutp }).(MiddlewareSpecForwardAuthOutput) } +// AddAuthCookiesToResponse defines the list of cookies to copy from the authentication server response to the response. +func (o MiddlewareSpecForwardAuthPtrOutput) AddAuthCookiesToResponse() pulumi.StringArrayOutput { + return o.ApplyT(func(v *MiddlewareSpecForwardAuth) []string { + if v == nil { + return nil + } + return v.AddAuthCookiesToResponse + }).(pulumi.StringArrayOutput) +} + // Address defines the authentication server address. func (o MiddlewareSpecForwardAuthPtrOutput) Address() pulumi.StringPtrOutput { return o.ApplyT(func(v *MiddlewareSpecForwardAuth) *string { @@ -8467,7 +9526,7 @@ func (o MiddlewareSpecForwardAuthPtrOutput) AuthResponseHeaders() pulumi.StringA } // AuthResponseHeadersRegex defines the regex to match headers to copy from the authentication server response and set on forwarded request, after stripping all headers that match the regex. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/forwardauth/#authresponseheadersregex +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/forwardauth/#authresponseheadersregex func (o MiddlewareSpecForwardAuthPtrOutput) AuthResponseHeadersRegex() pulumi.StringPtrOutput { return o.ApplyT(func(v *MiddlewareSpecForwardAuth) *string { if v == nil { @@ -8499,6 +9558,7 @@ func (o MiddlewareSpecForwardAuthPtrOutput) TrustForwardHeader() pulumi.BoolPtrO // TLS defines the configuration used to secure the connection to the authentication server. type MiddlewareSpecForwardAuthTls struct { + // Deprecated: TLS client authentication is a server side option (see https://github.com/golang/go/blob/740a490f71d026bb7d2d13cb8fa2d6d6e0572b70/src/crypto/tls/common.go#L634). CaOptional *bool `pulumi:"caOptional"` // CASecret is the name of the referenced Kubernetes Secret containing the CA to validate the server certificate. // The CA certificate is extracted from key `tls.ca` or `ca.crt`. @@ -8523,6 +9583,7 @@ type MiddlewareSpecForwardAuthTlsInput interface { // TLS defines the configuration used to secure the connection to the authentication server. type MiddlewareSpecForwardAuthTlsArgs struct { + // Deprecated: TLS client authentication is a server side option (see https://github.com/golang/go/blob/740a490f71d026bb7d2d13cb8fa2d6d6e0572b70/src/crypto/tls/common.go#L634). CaOptional pulumi.BoolPtrInput `pulumi:"caOptional"` // CASecret is the name of the referenced Kubernetes Secret containing the CA to validate the server certificate. // The CA certificate is extracted from key `tls.ca` or `ca.crt`. @@ -8630,6 +9691,7 @@ func (o MiddlewareSpecForwardAuthTlsOutput) ToOutput(ctx context.Context) pulumi } } +// Deprecated: TLS client authentication is a server side option (see https://github.com/golang/go/blob/740a490f71d026bb7d2d13cb8fa2d6d6e0572b70/src/crypto/tls/common.go#L634). func (o MiddlewareSpecForwardAuthTlsOutput) CaOptional() pulumi.BoolPtrOutput { return o.ApplyT(func(v MiddlewareSpecForwardAuthTls) *bool { return v.CaOptional }).(pulumi.BoolPtrOutput) } @@ -8681,6 +9743,7 @@ func (o MiddlewareSpecForwardAuthTlsPtrOutput) Elem() MiddlewareSpecForwardAuthT }).(MiddlewareSpecForwardAuthTlsOutput) } +// Deprecated: TLS client authentication is a server side option (see https://github.com/golang/go/blob/740a490f71d026bb7d2d13cb8fa2d6d6e0572b70/src/crypto/tls/common.go#L634). func (o MiddlewareSpecForwardAuthTlsPtrOutput) CaOptional() pulumi.BoolPtrOutput { return o.ApplyT(func(v *MiddlewareSpecForwardAuthTls) *bool { if v == nil { @@ -8722,9 +9785,180 @@ func (o MiddlewareSpecForwardAuthTlsPtrOutput) InsecureSkipVerify() pulumi.BoolP }).(pulumi.BoolPtrOutput) } +// GrpcWeb holds the gRPC web middleware configuration. +// This middleware converts a gRPC web request to an HTTP/2 gRPC request. +type MiddlewareSpecGrpcWeb struct { + // AllowOrigins is a list of allowable origins. + // Can also be a wildcard origin "*". + AllowOrigins []string `pulumi:"allowOrigins"` +} + +// MiddlewareSpecGrpcWebInput is an input type that accepts MiddlewareSpecGrpcWebArgs and MiddlewareSpecGrpcWebOutput values. +// You can construct a concrete instance of `MiddlewareSpecGrpcWebInput` via: +// +// MiddlewareSpecGrpcWebArgs{...} +type MiddlewareSpecGrpcWebInput interface { + pulumi.Input + + ToMiddlewareSpecGrpcWebOutput() MiddlewareSpecGrpcWebOutput + ToMiddlewareSpecGrpcWebOutputWithContext(context.Context) MiddlewareSpecGrpcWebOutput +} + +// GrpcWeb holds the gRPC web middleware configuration. +// This middleware converts a gRPC web request to an HTTP/2 gRPC request. +type MiddlewareSpecGrpcWebArgs struct { + // AllowOrigins is a list of allowable origins. + // Can also be a wildcard origin "*". + AllowOrigins pulumi.StringArrayInput `pulumi:"allowOrigins"` +} + +func (MiddlewareSpecGrpcWebArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MiddlewareSpecGrpcWeb)(nil)).Elem() +} + +func (i MiddlewareSpecGrpcWebArgs) ToMiddlewareSpecGrpcWebOutput() MiddlewareSpecGrpcWebOutput { + return i.ToMiddlewareSpecGrpcWebOutputWithContext(context.Background()) +} + +func (i MiddlewareSpecGrpcWebArgs) ToMiddlewareSpecGrpcWebOutputWithContext(ctx context.Context) MiddlewareSpecGrpcWebOutput { + return pulumi.ToOutputWithContext(ctx, i).(MiddlewareSpecGrpcWebOutput) +} + +func (i MiddlewareSpecGrpcWebArgs) ToOutput(ctx context.Context) pulumix.Output[MiddlewareSpecGrpcWeb] { + return pulumix.Output[MiddlewareSpecGrpcWeb]{ + OutputState: i.ToMiddlewareSpecGrpcWebOutputWithContext(ctx).OutputState, + } +} + +func (i MiddlewareSpecGrpcWebArgs) ToMiddlewareSpecGrpcWebPtrOutput() MiddlewareSpecGrpcWebPtrOutput { + return i.ToMiddlewareSpecGrpcWebPtrOutputWithContext(context.Background()) +} + +func (i MiddlewareSpecGrpcWebArgs) ToMiddlewareSpecGrpcWebPtrOutputWithContext(ctx context.Context) MiddlewareSpecGrpcWebPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MiddlewareSpecGrpcWebOutput).ToMiddlewareSpecGrpcWebPtrOutputWithContext(ctx) +} + +// MiddlewareSpecGrpcWebPtrInput is an input type that accepts MiddlewareSpecGrpcWebArgs, MiddlewareSpecGrpcWebPtr and MiddlewareSpecGrpcWebPtrOutput values. +// You can construct a concrete instance of `MiddlewareSpecGrpcWebPtrInput` via: +// +// MiddlewareSpecGrpcWebArgs{...} +// +// or: +// +// nil +type MiddlewareSpecGrpcWebPtrInput interface { + pulumi.Input + + ToMiddlewareSpecGrpcWebPtrOutput() MiddlewareSpecGrpcWebPtrOutput + ToMiddlewareSpecGrpcWebPtrOutputWithContext(context.Context) MiddlewareSpecGrpcWebPtrOutput +} + +type middlewareSpecGrpcWebPtrType MiddlewareSpecGrpcWebArgs + +func MiddlewareSpecGrpcWebPtr(v *MiddlewareSpecGrpcWebArgs) MiddlewareSpecGrpcWebPtrInput { + return (*middlewareSpecGrpcWebPtrType)(v) +} + +func (*middlewareSpecGrpcWebPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MiddlewareSpecGrpcWeb)(nil)).Elem() +} + +func (i *middlewareSpecGrpcWebPtrType) ToMiddlewareSpecGrpcWebPtrOutput() MiddlewareSpecGrpcWebPtrOutput { + return i.ToMiddlewareSpecGrpcWebPtrOutputWithContext(context.Background()) +} + +func (i *middlewareSpecGrpcWebPtrType) ToMiddlewareSpecGrpcWebPtrOutputWithContext(ctx context.Context) MiddlewareSpecGrpcWebPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MiddlewareSpecGrpcWebPtrOutput) +} + +func (i *middlewareSpecGrpcWebPtrType) ToOutput(ctx context.Context) pulumix.Output[*MiddlewareSpecGrpcWeb] { + return pulumix.Output[*MiddlewareSpecGrpcWeb]{ + OutputState: i.ToMiddlewareSpecGrpcWebPtrOutputWithContext(ctx).OutputState, + } +} + +// GrpcWeb holds the gRPC web middleware configuration. +// This middleware converts a gRPC web request to an HTTP/2 gRPC request. +type MiddlewareSpecGrpcWebOutput struct{ *pulumi.OutputState } + +func (MiddlewareSpecGrpcWebOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MiddlewareSpecGrpcWeb)(nil)).Elem() +} + +func (o MiddlewareSpecGrpcWebOutput) ToMiddlewareSpecGrpcWebOutput() MiddlewareSpecGrpcWebOutput { + return o +} + +func (o MiddlewareSpecGrpcWebOutput) ToMiddlewareSpecGrpcWebOutputWithContext(ctx context.Context) MiddlewareSpecGrpcWebOutput { + return o +} + +func (o MiddlewareSpecGrpcWebOutput) ToMiddlewareSpecGrpcWebPtrOutput() MiddlewareSpecGrpcWebPtrOutput { + return o.ToMiddlewareSpecGrpcWebPtrOutputWithContext(context.Background()) +} + +func (o MiddlewareSpecGrpcWebOutput) ToMiddlewareSpecGrpcWebPtrOutputWithContext(ctx context.Context) MiddlewareSpecGrpcWebPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MiddlewareSpecGrpcWeb) *MiddlewareSpecGrpcWeb { + return &v + }).(MiddlewareSpecGrpcWebPtrOutput) +} + +func (o MiddlewareSpecGrpcWebOutput) ToOutput(ctx context.Context) pulumix.Output[MiddlewareSpecGrpcWeb] { + return pulumix.Output[MiddlewareSpecGrpcWeb]{ + OutputState: o.OutputState, + } +} + +// AllowOrigins is a list of allowable origins. +// Can also be a wildcard origin "*". +func (o MiddlewareSpecGrpcWebOutput) AllowOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v MiddlewareSpecGrpcWeb) []string { return v.AllowOrigins }).(pulumi.StringArrayOutput) +} + +type MiddlewareSpecGrpcWebPtrOutput struct{ *pulumi.OutputState } + +func (MiddlewareSpecGrpcWebPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MiddlewareSpecGrpcWeb)(nil)).Elem() +} + +func (o MiddlewareSpecGrpcWebPtrOutput) ToMiddlewareSpecGrpcWebPtrOutput() MiddlewareSpecGrpcWebPtrOutput { + return o +} + +func (o MiddlewareSpecGrpcWebPtrOutput) ToMiddlewareSpecGrpcWebPtrOutputWithContext(ctx context.Context) MiddlewareSpecGrpcWebPtrOutput { + return o +} + +func (o MiddlewareSpecGrpcWebPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*MiddlewareSpecGrpcWeb] { + return pulumix.Output[*MiddlewareSpecGrpcWeb]{ + OutputState: o.OutputState, + } +} + +func (o MiddlewareSpecGrpcWebPtrOutput) Elem() MiddlewareSpecGrpcWebOutput { + return o.ApplyT(func(v *MiddlewareSpecGrpcWeb) MiddlewareSpecGrpcWeb { + if v != nil { + return *v + } + var ret MiddlewareSpecGrpcWeb + return ret + }).(MiddlewareSpecGrpcWebOutput) +} + +// AllowOrigins is a list of allowable origins. +// Can also be a wildcard origin "*". +func (o MiddlewareSpecGrpcWebPtrOutput) AllowOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v *MiddlewareSpecGrpcWeb) []string { + if v == nil { + return nil + } + return v.AllowOrigins + }).(pulumi.StringArrayOutput) +} + // Headers holds the headers middleware configuration. // This middleware manages the requests and responses headers. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/headers/#customrequestheaders +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/headers/#customrequestheaders type MiddlewareSpecHeaders struct { // AccessControlAllowCredentials defines whether the request can include user credentials. AccessControlAllowCredentials *bool `pulumi:"accessControlAllowCredentials"` @@ -8748,6 +9982,8 @@ type MiddlewareSpecHeaders struct { BrowserXssFilter *bool `pulumi:"browserXssFilter"` // ContentSecurityPolicy defines the Content-Security-Policy header value. ContentSecurityPolicy *string `pulumi:"contentSecurityPolicy"` + // ContentSecurityPolicyReportOnly defines the Content-Security-Policy-Report-Only header value. + ContentSecurityPolicyReportOnly *string `pulumi:"contentSecurityPolicyReportOnly"` // ContentTypeNosniff defines whether to add the X-Content-Type-Options header with the nosniff value. ContentTypeNosniff *bool `pulumi:"contentTypeNosniff"` // CustomBrowserXSSValue defines the X-XSS-Protection header value. @@ -8760,7 +9996,7 @@ type MiddlewareSpecHeaders struct { CustomRequestHeaders map[string]string `pulumi:"customRequestHeaders"` // CustomResponseHeaders defines the header names and values to apply to the response. CustomResponseHeaders map[string]string `pulumi:"customResponseHeaders"` - // Deprecated: use PermissionsPolicy instead. + // Deprecated: FeaturePolicy option is deprecated, please use PermissionsPolicy instead. FeaturePolicy *string `pulumi:"featurePolicy"` // ForceSTSHeader defines whether to add the STS header even when the connection is HTTP. ForceSTSHeader *bool `pulumi:"forceSTSHeader"` @@ -8781,16 +10017,16 @@ type MiddlewareSpecHeaders struct { // ReferrerPolicy defines the Referrer-Policy header value. // This allows sites to control whether browsers forward the Referer header to other sites. ReferrerPolicy *string `pulumi:"referrerPolicy"` - // Deprecated: use RedirectRegex instead. + // Deprecated: SSLForceHost option is deprecated, please use RedirectRegex instead. SslForceHost *bool `pulumi:"sslForceHost"` - // Deprecated: use RedirectRegex instead. + // Deprecated: SSLHost option is deprecated, please use RedirectRegex instead. SslHost *string `pulumi:"sslHost"` // SSLProxyHeaders defines the header keys with associated values that would indicate a valid HTTPS request. // It can be useful when using other proxies (example: "X-Forwarded-Proto": "https"). SslProxyHeaders map[string]string `pulumi:"sslProxyHeaders"` - // Deprecated: use EntryPoint redirection or RedirectScheme instead. + // Deprecated: SSLRedirect option is deprecated, please use EntryPoint redirection or RedirectScheme instead. SslRedirect *bool `pulumi:"sslRedirect"` - // Deprecated: use EntryPoint redirection or RedirectScheme instead. + // Deprecated: SSLTemporaryRedirect option is deprecated, please use EntryPoint redirection or RedirectScheme instead. SslTemporaryRedirect *bool `pulumi:"sslTemporaryRedirect"` // STSIncludeSubdomains defines whether the includeSubDomains directive is appended to the Strict-Transport-Security header. StsIncludeSubdomains *bool `pulumi:"stsIncludeSubdomains"` @@ -8814,7 +10050,7 @@ type MiddlewareSpecHeadersInput interface { // Headers holds the headers middleware configuration. // This middleware manages the requests and responses headers. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/headers/#customrequestheaders +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/headers/#customrequestheaders type MiddlewareSpecHeadersArgs struct { // AccessControlAllowCredentials defines whether the request can include user credentials. AccessControlAllowCredentials pulumi.BoolPtrInput `pulumi:"accessControlAllowCredentials"` @@ -8838,6 +10074,8 @@ type MiddlewareSpecHeadersArgs struct { BrowserXssFilter pulumi.BoolPtrInput `pulumi:"browserXssFilter"` // ContentSecurityPolicy defines the Content-Security-Policy header value. ContentSecurityPolicy pulumi.StringPtrInput `pulumi:"contentSecurityPolicy"` + // ContentSecurityPolicyReportOnly defines the Content-Security-Policy-Report-Only header value. + ContentSecurityPolicyReportOnly pulumi.StringPtrInput `pulumi:"contentSecurityPolicyReportOnly"` // ContentTypeNosniff defines whether to add the X-Content-Type-Options header with the nosniff value. ContentTypeNosniff pulumi.BoolPtrInput `pulumi:"contentTypeNosniff"` // CustomBrowserXSSValue defines the X-XSS-Protection header value. @@ -8850,7 +10088,7 @@ type MiddlewareSpecHeadersArgs struct { CustomRequestHeaders pulumi.StringMapInput `pulumi:"customRequestHeaders"` // CustomResponseHeaders defines the header names and values to apply to the response. CustomResponseHeaders pulumi.StringMapInput `pulumi:"customResponseHeaders"` - // Deprecated: use PermissionsPolicy instead. + // Deprecated: FeaturePolicy option is deprecated, please use PermissionsPolicy instead. FeaturePolicy pulumi.StringPtrInput `pulumi:"featurePolicy"` // ForceSTSHeader defines whether to add the STS header even when the connection is HTTP. ForceSTSHeader pulumi.BoolPtrInput `pulumi:"forceSTSHeader"` @@ -8871,16 +10109,16 @@ type MiddlewareSpecHeadersArgs struct { // ReferrerPolicy defines the Referrer-Policy header value. // This allows sites to control whether browsers forward the Referer header to other sites. ReferrerPolicy pulumi.StringPtrInput `pulumi:"referrerPolicy"` - // Deprecated: use RedirectRegex instead. + // Deprecated: SSLForceHost option is deprecated, please use RedirectRegex instead. SslForceHost pulumi.BoolPtrInput `pulumi:"sslForceHost"` - // Deprecated: use RedirectRegex instead. + // Deprecated: SSLHost option is deprecated, please use RedirectRegex instead. SslHost pulumi.StringPtrInput `pulumi:"sslHost"` // SSLProxyHeaders defines the header keys with associated values that would indicate a valid HTTPS request. // It can be useful when using other proxies (example: "X-Forwarded-Proto": "https"). SslProxyHeaders pulumi.StringMapInput `pulumi:"sslProxyHeaders"` - // Deprecated: use EntryPoint redirection or RedirectScheme instead. + // Deprecated: SSLRedirect option is deprecated, please use EntryPoint redirection or RedirectScheme instead. SslRedirect pulumi.BoolPtrInput `pulumi:"sslRedirect"` - // Deprecated: use EntryPoint redirection or RedirectScheme instead. + // Deprecated: SSLTemporaryRedirect option is deprecated, please use EntryPoint redirection or RedirectScheme instead. SslTemporaryRedirect pulumi.BoolPtrInput `pulumi:"sslTemporaryRedirect"` // STSIncludeSubdomains defines whether the includeSubDomains directive is appended to the Strict-Transport-Security header. StsIncludeSubdomains pulumi.BoolPtrInput `pulumi:"stsIncludeSubdomains"` @@ -8958,7 +10196,7 @@ func (i *middlewareSpecHeadersPtrType) ToOutput(ctx context.Context) pulumix.Out // Headers holds the headers middleware configuration. // This middleware manages the requests and responses headers. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/headers/#customrequestheaders +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/headers/#customrequestheaders type MiddlewareSpecHeadersOutput struct{ *pulumi.OutputState } func (MiddlewareSpecHeadersOutput) ElementType() reflect.Type { @@ -9044,6 +10282,11 @@ func (o MiddlewareSpecHeadersOutput) ContentSecurityPolicy() pulumi.StringPtrOut return o.ApplyT(func(v MiddlewareSpecHeaders) *string { return v.ContentSecurityPolicy }).(pulumi.StringPtrOutput) } +// ContentSecurityPolicyReportOnly defines the Content-Security-Policy-Report-Only header value. +func (o MiddlewareSpecHeadersOutput) ContentSecurityPolicyReportOnly() pulumi.StringPtrOutput { + return o.ApplyT(func(v MiddlewareSpecHeaders) *string { return v.ContentSecurityPolicyReportOnly }).(pulumi.StringPtrOutput) +} + // ContentTypeNosniff defines whether to add the X-Content-Type-Options header with the nosniff value. func (o MiddlewareSpecHeadersOutput) ContentTypeNosniff() pulumi.BoolPtrOutput { return o.ApplyT(func(v MiddlewareSpecHeaders) *bool { return v.ContentTypeNosniff }).(pulumi.BoolPtrOutput) @@ -9071,7 +10314,7 @@ func (o MiddlewareSpecHeadersOutput) CustomResponseHeaders() pulumi.StringMapOut return o.ApplyT(func(v MiddlewareSpecHeaders) map[string]string { return v.CustomResponseHeaders }).(pulumi.StringMapOutput) } -// Deprecated: use PermissionsPolicy instead. +// Deprecated: FeaturePolicy option is deprecated, please use PermissionsPolicy instead. func (o MiddlewareSpecHeadersOutput) FeaturePolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v MiddlewareSpecHeaders) *string { return v.FeaturePolicy }).(pulumi.StringPtrOutput) } @@ -9116,12 +10359,12 @@ func (o MiddlewareSpecHeadersOutput) ReferrerPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v MiddlewareSpecHeaders) *string { return v.ReferrerPolicy }).(pulumi.StringPtrOutput) } -// Deprecated: use RedirectRegex instead. +// Deprecated: SSLForceHost option is deprecated, please use RedirectRegex instead. func (o MiddlewareSpecHeadersOutput) SslForceHost() pulumi.BoolPtrOutput { return o.ApplyT(func(v MiddlewareSpecHeaders) *bool { return v.SslForceHost }).(pulumi.BoolPtrOutput) } -// Deprecated: use RedirectRegex instead. +// Deprecated: SSLHost option is deprecated, please use RedirectRegex instead. func (o MiddlewareSpecHeadersOutput) SslHost() pulumi.StringPtrOutput { return o.ApplyT(func(v MiddlewareSpecHeaders) *string { return v.SslHost }).(pulumi.StringPtrOutput) } @@ -9132,12 +10375,12 @@ func (o MiddlewareSpecHeadersOutput) SslProxyHeaders() pulumi.StringMapOutput { return o.ApplyT(func(v MiddlewareSpecHeaders) map[string]string { return v.SslProxyHeaders }).(pulumi.StringMapOutput) } -// Deprecated: use EntryPoint redirection or RedirectScheme instead. +// Deprecated: SSLRedirect option is deprecated, please use EntryPoint redirection or RedirectScheme instead. func (o MiddlewareSpecHeadersOutput) SslRedirect() pulumi.BoolPtrOutput { return o.ApplyT(func(v MiddlewareSpecHeaders) *bool { return v.SslRedirect }).(pulumi.BoolPtrOutput) } -// Deprecated: use EntryPoint redirection or RedirectScheme instead. +// Deprecated: SSLTemporaryRedirect option is deprecated, please use EntryPoint redirection or RedirectScheme instead. func (o MiddlewareSpecHeadersOutput) SslTemporaryRedirect() pulumi.BoolPtrOutput { return o.ApplyT(func(v MiddlewareSpecHeaders) *bool { return v.SslTemporaryRedirect }).(pulumi.BoolPtrOutput) } @@ -9298,6 +10541,16 @@ func (o MiddlewareSpecHeadersPtrOutput) ContentSecurityPolicy() pulumi.StringPtr }).(pulumi.StringPtrOutput) } +// ContentSecurityPolicyReportOnly defines the Content-Security-Policy-Report-Only header value. +func (o MiddlewareSpecHeadersPtrOutput) ContentSecurityPolicyReportOnly() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MiddlewareSpecHeaders) *string { + if v == nil { + return nil + } + return v.ContentSecurityPolicyReportOnly + }).(pulumi.StringPtrOutput) +} + // ContentTypeNosniff defines whether to add the X-Content-Type-Options header with the nosniff value. func (o MiddlewareSpecHeadersPtrOutput) ContentTypeNosniff() pulumi.BoolPtrOutput { return o.ApplyT(func(v *MiddlewareSpecHeaders) *bool { @@ -9350,7 +10603,7 @@ func (o MiddlewareSpecHeadersPtrOutput) CustomResponseHeaders() pulumi.StringMap }).(pulumi.StringMapOutput) } -// Deprecated: use PermissionsPolicy instead. +// Deprecated: FeaturePolicy option is deprecated, please use PermissionsPolicy instead. func (o MiddlewareSpecHeadersPtrOutput) FeaturePolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *MiddlewareSpecHeaders) *string { if v == nil { @@ -9435,7 +10688,7 @@ func (o MiddlewareSpecHeadersPtrOutput) ReferrerPolicy() pulumi.StringPtrOutput }).(pulumi.StringPtrOutput) } -// Deprecated: use RedirectRegex instead. +// Deprecated: SSLForceHost option is deprecated, please use RedirectRegex instead. func (o MiddlewareSpecHeadersPtrOutput) SslForceHost() pulumi.BoolPtrOutput { return o.ApplyT(func(v *MiddlewareSpecHeaders) *bool { if v == nil { @@ -9445,7 +10698,7 @@ func (o MiddlewareSpecHeadersPtrOutput) SslForceHost() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// Deprecated: use RedirectRegex instead. +// Deprecated: SSLHost option is deprecated, please use RedirectRegex instead. func (o MiddlewareSpecHeadersPtrOutput) SslHost() pulumi.StringPtrOutput { return o.ApplyT(func(v *MiddlewareSpecHeaders) *string { if v == nil { @@ -9466,7 +10719,7 @@ func (o MiddlewareSpecHeadersPtrOutput) SslProxyHeaders() pulumi.StringMapOutput }).(pulumi.StringMapOutput) } -// Deprecated: use EntryPoint redirection or RedirectScheme instead. +// Deprecated: SSLRedirect option is deprecated, please use EntryPoint redirection or RedirectScheme instead. func (o MiddlewareSpecHeadersPtrOutput) SslRedirect() pulumi.BoolPtrOutput { return o.ApplyT(func(v *MiddlewareSpecHeaders) *bool { if v == nil { @@ -9476,7 +10729,7 @@ func (o MiddlewareSpecHeadersPtrOutput) SslRedirect() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// Deprecated: use EntryPoint redirection or RedirectScheme instead. +// Deprecated: SSLTemporaryRedirect option is deprecated, please use EntryPoint redirection or RedirectScheme instead. func (o MiddlewareSpecHeadersPtrOutput) SslTemporaryRedirect() pulumi.BoolPtrOutput { return o.ApplyT(func(v *MiddlewareSpecHeaders) *bool { if v == nil { @@ -9532,7 +10785,7 @@ type MiddlewareSpecHeadersSslProxyHeaders struct { // InFlightReq holds the in-flight request middleware configuration. // This middleware limits the number of requests being processed and served concurrently. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/inflightreq/ type MiddlewareSpecInFlightReq struct { // Amount defines the maximum amount of allowed simultaneous in-flight request. // The middleware responds with HTTP 429 Too Many Requests if there are already amount requests in progress (based on the same sourceCriterion strategy). @@ -9540,7 +10793,7 @@ type MiddlewareSpecInFlightReq struct { // SourceCriterion defines what criterion is used to group requests as originating from a common source. // If several strategies are defined at the same time, an error will be raised. // If none are set, the default is to use the requestHost. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/#sourcecriterion + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/inflightreq/#sourcecriterion SourceCriterion *MiddlewareSpecInFlightReqSourceCriterion `pulumi:"sourceCriterion"` } @@ -9557,7 +10810,7 @@ type MiddlewareSpecInFlightReqInput interface { // InFlightReq holds the in-flight request middleware configuration. // This middleware limits the number of requests being processed and served concurrently. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/inflightreq/ type MiddlewareSpecInFlightReqArgs struct { // Amount defines the maximum amount of allowed simultaneous in-flight request. // The middleware responds with HTTP 429 Too Many Requests if there are already amount requests in progress (based on the same sourceCriterion strategy). @@ -9565,7 +10818,7 @@ type MiddlewareSpecInFlightReqArgs struct { // SourceCriterion defines what criterion is used to group requests as originating from a common source. // If several strategies are defined at the same time, an error will be raised. // If none are set, the default is to use the requestHost. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/#sourcecriterion + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/inflightreq/#sourcecriterion SourceCriterion MiddlewareSpecInFlightReqSourceCriterionPtrInput `pulumi:"sourceCriterion"` } @@ -9636,7 +10889,7 @@ func (i *middlewareSpecInFlightReqPtrType) ToOutput(ctx context.Context) pulumix // InFlightReq holds the in-flight request middleware configuration. // This middleware limits the number of requests being processed and served concurrently. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/inflightreq/ type MiddlewareSpecInFlightReqOutput struct{ *pulumi.OutputState } func (MiddlewareSpecInFlightReqOutput) ElementType() reflect.Type { @@ -9676,7 +10929,7 @@ func (o MiddlewareSpecInFlightReqOutput) Amount() pulumi.IntPtrOutput { // SourceCriterion defines what criterion is used to group requests as originating from a common source. // If several strategies are defined at the same time, an error will be raised. // If none are set, the default is to use the requestHost. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/#sourcecriterion +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/inflightreq/#sourcecriterion func (o MiddlewareSpecInFlightReqOutput) SourceCriterion() MiddlewareSpecInFlightReqSourceCriterionPtrOutput { return o.ApplyT(func(v MiddlewareSpecInFlightReq) *MiddlewareSpecInFlightReqSourceCriterion { return v.SourceCriterion }).(MiddlewareSpecInFlightReqSourceCriterionPtrOutput) } @@ -9725,7 +10978,7 @@ func (o MiddlewareSpecInFlightReqPtrOutput) Amount() pulumi.IntPtrOutput { // SourceCriterion defines what criterion is used to group requests as originating from a common source. // If several strategies are defined at the same time, an error will be raised. // If none are set, the default is to use the requestHost. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/#sourcecriterion +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/inflightreq/#sourcecriterion func (o MiddlewareSpecInFlightReqPtrOutput) SourceCriterion() MiddlewareSpecInFlightReqSourceCriterionPtrOutput { return o.ApplyT(func(v *MiddlewareSpecInFlightReq) *MiddlewareSpecInFlightReqSourceCriterion { if v == nil { @@ -9738,10 +10991,10 @@ func (o MiddlewareSpecInFlightReqPtrOutput) SourceCriterion() MiddlewareSpecInFl // SourceCriterion defines what criterion is used to group requests as originating from a common source. // If several strategies are defined at the same time, an error will be raised. // If none are set, the default is to use the requestHost. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/#sourcecriterion +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/inflightreq/#sourcecriterion type MiddlewareSpecInFlightReqSourceCriterion struct { // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy IpStrategy *MiddlewareSpecInFlightReqSourceCriterionIpStrategy `pulumi:"ipStrategy"` // RequestHeaderName defines the name of the header used to group incoming requests. RequestHeaderName *string `pulumi:"requestHeaderName"` @@ -9763,10 +11016,10 @@ type MiddlewareSpecInFlightReqSourceCriterionInput interface { // SourceCriterion defines what criterion is used to group requests as originating from a common source. // If several strategies are defined at the same time, an error will be raised. // If none are set, the default is to use the requestHost. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/#sourcecriterion +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/inflightreq/#sourcecriterion type MiddlewareSpecInFlightReqSourceCriterionArgs struct { // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy IpStrategy MiddlewareSpecInFlightReqSourceCriterionIpStrategyPtrInput `pulumi:"ipStrategy"` // RequestHeaderName defines the name of the header used to group incoming requests. RequestHeaderName pulumi.StringPtrInput `pulumi:"requestHeaderName"` @@ -9842,7 +11095,7 @@ func (i *middlewareSpecInFlightReqSourceCriterionPtrType) ToOutput(ctx context.C // SourceCriterion defines what criterion is used to group requests as originating from a common source. // If several strategies are defined at the same time, an error will be raised. // If none are set, the default is to use the requestHost. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/#sourcecriterion +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/inflightreq/#sourcecriterion type MiddlewareSpecInFlightReqSourceCriterionOutput struct{ *pulumi.OutputState } func (MiddlewareSpecInFlightReqSourceCriterionOutput) ElementType() reflect.Type { @@ -9874,7 +11127,7 @@ func (o MiddlewareSpecInFlightReqSourceCriterionOutput) ToOutput(ctx context.Con } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy func (o MiddlewareSpecInFlightReqSourceCriterionOutput) IpStrategy() MiddlewareSpecInFlightReqSourceCriterionIpStrategyPtrOutput { return o.ApplyT(func(v MiddlewareSpecInFlightReqSourceCriterion) *MiddlewareSpecInFlightReqSourceCriterionIpStrategy { return v.IpStrategy @@ -9922,7 +11175,7 @@ func (o MiddlewareSpecInFlightReqSourceCriterionPtrOutput) Elem() MiddlewareSpec } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy func (o MiddlewareSpecInFlightReqSourceCriterionPtrOutput) IpStrategy() MiddlewareSpecInFlightReqSourceCriterionIpStrategyPtrOutput { return o.ApplyT(func(v *MiddlewareSpecInFlightReqSourceCriterion) *MiddlewareSpecInFlightReqSourceCriterionIpStrategy { if v == nil { @@ -9953,7 +11206,7 @@ func (o MiddlewareSpecInFlightReqSourceCriterionPtrOutput) RequestHost() pulumi. } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy type MiddlewareSpecInFlightReqSourceCriterionIpStrategy struct { // Depth tells Traefik to use the X-Forwarded-For header and take the IP located at the depth position (starting from the right). Depth *int `pulumi:"depth"` @@ -9973,7 +11226,7 @@ type MiddlewareSpecInFlightReqSourceCriterionIpStrategyInput interface { } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy type MiddlewareSpecInFlightReqSourceCriterionIpStrategyArgs struct { // Depth tells Traefik to use the X-Forwarded-For header and take the IP located at the depth position (starting from the right). Depth pulumi.IntPtrInput `pulumi:"depth"` @@ -10047,7 +11300,7 @@ func (i *middlewareSpecInFlightReqSourceCriterionIpStrategyPtrType) ToOutput(ctx } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy type MiddlewareSpecInFlightReqSourceCriterionIpStrategyOutput struct{ *pulumi.OutputState } func (MiddlewareSpecInFlightReqSourceCriterionIpStrategyOutput) ElementType() reflect.Type { @@ -10139,12 +11392,15 @@ func (o MiddlewareSpecInFlightReqSourceCriterionIpStrategyPtrOutput) ExcludedIPs } // IPAllowList holds the IP allowlist middleware configuration. -// This middleware accepts / refuses requests based on the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/ +// This middleware limits allowed requests based on the client IP. +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/ type MiddlewareSpecIpAllowList struct { // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy IpStrategy *MiddlewareSpecIpAllowListIpStrategy `pulumi:"ipStrategy"` + // RejectStatusCode defines the HTTP status code used for refused requests. + // If not set, the default is 403 (Forbidden). + RejectStatusCode *int `pulumi:"rejectStatusCode"` // SourceRange defines the set of allowed IPs (or ranges of allowed IPs by using CIDR notation). SourceRange []string `pulumi:"sourceRange"` } @@ -10161,12 +11417,15 @@ type MiddlewareSpecIpAllowListInput interface { } // IPAllowList holds the IP allowlist middleware configuration. -// This middleware accepts / refuses requests based on the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/ +// This middleware limits allowed requests based on the client IP. +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/ type MiddlewareSpecIpAllowListArgs struct { // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy IpStrategy MiddlewareSpecIpAllowListIpStrategyPtrInput `pulumi:"ipStrategy"` + // RejectStatusCode defines the HTTP status code used for refused requests. + // If not set, the default is 403 (Forbidden). + RejectStatusCode pulumi.IntPtrInput `pulumi:"rejectStatusCode"` // SourceRange defines the set of allowed IPs (or ranges of allowed IPs by using CIDR notation). SourceRange pulumi.StringArrayInput `pulumi:"sourceRange"` } @@ -10237,8 +11496,8 @@ func (i *middlewareSpecIpAllowListPtrType) ToOutput(ctx context.Context) pulumix } // IPAllowList holds the IP allowlist middleware configuration. -// This middleware accepts / refuses requests based on the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/ +// This middleware limits allowed requests based on the client IP. +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/ type MiddlewareSpecIpAllowListOutput struct{ *pulumi.OutputState } func (MiddlewareSpecIpAllowListOutput) ElementType() reflect.Type { @@ -10270,11 +11529,17 @@ func (o MiddlewareSpecIpAllowListOutput) ToOutput(ctx context.Context) pulumix.O } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy func (o MiddlewareSpecIpAllowListOutput) IpStrategy() MiddlewareSpecIpAllowListIpStrategyPtrOutput { return o.ApplyT(func(v MiddlewareSpecIpAllowList) *MiddlewareSpecIpAllowListIpStrategy { return v.IpStrategy }).(MiddlewareSpecIpAllowListIpStrategyPtrOutput) } +// RejectStatusCode defines the HTTP status code used for refused requests. +// If not set, the default is 403 (Forbidden). +func (o MiddlewareSpecIpAllowListOutput) RejectStatusCode() pulumi.IntPtrOutput { + return o.ApplyT(func(v MiddlewareSpecIpAllowList) *int { return v.RejectStatusCode }).(pulumi.IntPtrOutput) +} + // SourceRange defines the set of allowed IPs (or ranges of allowed IPs by using CIDR notation). func (o MiddlewareSpecIpAllowListOutput) SourceRange() pulumi.StringArrayOutput { return o.ApplyT(func(v MiddlewareSpecIpAllowList) []string { return v.SourceRange }).(pulumi.StringArrayOutput) @@ -10311,7 +11576,7 @@ func (o MiddlewareSpecIpAllowListPtrOutput) Elem() MiddlewareSpecIpAllowListOutp } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy func (o MiddlewareSpecIpAllowListPtrOutput) IpStrategy() MiddlewareSpecIpAllowListIpStrategyPtrOutput { return o.ApplyT(func(v *MiddlewareSpecIpAllowList) *MiddlewareSpecIpAllowListIpStrategy { if v == nil { @@ -10321,6 +11586,17 @@ func (o MiddlewareSpecIpAllowListPtrOutput) IpStrategy() MiddlewareSpecIpAllowLi }).(MiddlewareSpecIpAllowListIpStrategyPtrOutput) } +// RejectStatusCode defines the HTTP status code used for refused requests. +// If not set, the default is 403 (Forbidden). +func (o MiddlewareSpecIpAllowListPtrOutput) RejectStatusCode() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MiddlewareSpecIpAllowList) *int { + if v == nil { + return nil + } + return v.RejectStatusCode + }).(pulumi.IntPtrOutput) +} + // SourceRange defines the set of allowed IPs (or ranges of allowed IPs by using CIDR notation). func (o MiddlewareSpecIpAllowListPtrOutput) SourceRange() pulumi.StringArrayOutput { return o.ApplyT(func(v *MiddlewareSpecIpAllowList) []string { @@ -10332,7 +11608,7 @@ func (o MiddlewareSpecIpAllowListPtrOutput) SourceRange() pulumi.StringArrayOutp } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy type MiddlewareSpecIpAllowListIpStrategy struct { // Depth tells Traefik to use the X-Forwarded-For header and take the IP located at the depth position (starting from the right). Depth *int `pulumi:"depth"` @@ -10352,7 +11628,7 @@ type MiddlewareSpecIpAllowListIpStrategyInput interface { } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy type MiddlewareSpecIpAllowListIpStrategyArgs struct { // Depth tells Traefik to use the X-Forwarded-For header and take the IP located at the depth position (starting from the right). Depth pulumi.IntPtrInput `pulumi:"depth"` @@ -10426,7 +11702,7 @@ func (i *middlewareSpecIpAllowListIpStrategyPtrType) ToOutput(ctx context.Contex } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy type MiddlewareSpecIpAllowListIpStrategyOutput struct{ *pulumi.OutputState } func (MiddlewareSpecIpAllowListIpStrategyOutput) ElementType() reflect.Type { @@ -10517,15 +11793,12 @@ func (o MiddlewareSpecIpAllowListIpStrategyPtrOutput) ExcludedIPs() pulumi.Strin }).(pulumi.StringArrayOutput) } -// IPWhiteList holds the IP whitelist middleware configuration. -// This middleware accepts / refuses requests based on the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipwhitelist/ // Deprecated: please use IPAllowList instead. type MiddlewareSpecIpWhiteList struct { // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy IpStrategy *MiddlewareSpecIpWhiteListIpStrategy `pulumi:"ipStrategy"` - // SourceRange defines the set of allowed IPs (or ranges of allowed IPs by using CIDR notation). + // SourceRange defines the set of allowed IPs (or ranges of allowed IPs by using CIDR notation). Required. SourceRange []string `pulumi:"sourceRange"` } @@ -10540,15 +11813,12 @@ type MiddlewareSpecIpWhiteListInput interface { ToMiddlewareSpecIpWhiteListOutputWithContext(context.Context) MiddlewareSpecIpWhiteListOutput } -// IPWhiteList holds the IP whitelist middleware configuration. -// This middleware accepts / refuses requests based on the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipwhitelist/ // Deprecated: please use IPAllowList instead. type MiddlewareSpecIpWhiteListArgs struct { // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy IpStrategy MiddlewareSpecIpWhiteListIpStrategyPtrInput `pulumi:"ipStrategy"` - // SourceRange defines the set of allowed IPs (or ranges of allowed IPs by using CIDR notation). + // SourceRange defines the set of allowed IPs (or ranges of allowed IPs by using CIDR notation). Required. SourceRange pulumi.StringArrayInput `pulumi:"sourceRange"` } @@ -10617,9 +11887,6 @@ func (i *middlewareSpecIpWhiteListPtrType) ToOutput(ctx context.Context) pulumix } } -// IPWhiteList holds the IP whitelist middleware configuration. -// This middleware accepts / refuses requests based on the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipwhitelist/ // Deprecated: please use IPAllowList instead. type MiddlewareSpecIpWhiteListOutput struct{ *pulumi.OutputState } @@ -10652,12 +11919,12 @@ func (o MiddlewareSpecIpWhiteListOutput) ToOutput(ctx context.Context) pulumix.O } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy func (o MiddlewareSpecIpWhiteListOutput) IpStrategy() MiddlewareSpecIpWhiteListIpStrategyPtrOutput { return o.ApplyT(func(v MiddlewareSpecIpWhiteList) *MiddlewareSpecIpWhiteListIpStrategy { return v.IpStrategy }).(MiddlewareSpecIpWhiteListIpStrategyPtrOutput) } -// SourceRange defines the set of allowed IPs (or ranges of allowed IPs by using CIDR notation). +// SourceRange defines the set of allowed IPs (or ranges of allowed IPs by using CIDR notation). Required. func (o MiddlewareSpecIpWhiteListOutput) SourceRange() pulumi.StringArrayOutput { return o.ApplyT(func(v MiddlewareSpecIpWhiteList) []string { return v.SourceRange }).(pulumi.StringArrayOutput) } @@ -10693,7 +11960,7 @@ func (o MiddlewareSpecIpWhiteListPtrOutput) Elem() MiddlewareSpecIpWhiteListOutp } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy func (o MiddlewareSpecIpWhiteListPtrOutput) IpStrategy() MiddlewareSpecIpWhiteListIpStrategyPtrOutput { return o.ApplyT(func(v *MiddlewareSpecIpWhiteList) *MiddlewareSpecIpWhiteListIpStrategy { if v == nil { @@ -10703,7 +11970,7 @@ func (o MiddlewareSpecIpWhiteListPtrOutput) IpStrategy() MiddlewareSpecIpWhiteLi }).(MiddlewareSpecIpWhiteListIpStrategyPtrOutput) } -// SourceRange defines the set of allowed IPs (or ranges of allowed IPs by using CIDR notation). +// SourceRange defines the set of allowed IPs (or ranges of allowed IPs by using CIDR notation). Required. func (o MiddlewareSpecIpWhiteListPtrOutput) SourceRange() pulumi.StringArrayOutput { return o.ApplyT(func(v *MiddlewareSpecIpWhiteList) []string { if v == nil { @@ -10714,7 +11981,7 @@ func (o MiddlewareSpecIpWhiteListPtrOutput) SourceRange() pulumi.StringArrayOutp } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy type MiddlewareSpecIpWhiteListIpStrategy struct { // Depth tells Traefik to use the X-Forwarded-For header and take the IP located at the depth position (starting from the right). Depth *int `pulumi:"depth"` @@ -10734,7 +12001,7 @@ type MiddlewareSpecIpWhiteListIpStrategyInput interface { } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy type MiddlewareSpecIpWhiteListIpStrategyArgs struct { // Depth tells Traefik to use the X-Forwarded-For header and take the IP located at the depth position (starting from the right). Depth pulumi.IntPtrInput `pulumi:"depth"` @@ -10808,7 +12075,7 @@ func (i *middlewareSpecIpWhiteListIpStrategyPtrType) ToOutput(ctx context.Contex } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy type MiddlewareSpecIpWhiteListIpStrategyOutput struct{ *pulumi.OutputState } func (MiddlewareSpecIpWhiteListIpStrategyOutput) ElementType() reflect.Type { @@ -10901,7 +12168,7 @@ func (o MiddlewareSpecIpWhiteListIpStrategyPtrOutput) ExcludedIPs() pulumi.Strin // PassTLSClientCert holds the pass TLS client cert middleware configuration. // This middleware adds the selected data from the passed client TLS certificate to a header. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/passtlsclientcert/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/passtlsclientcert/ type MiddlewareSpecPassTLSClientCert struct { // Info selects the specific client certificate details you want to add to the X-Forwarded-Tls-Client-Cert-Info header. Info *MiddlewareSpecPassTLSClientCertInfo `pulumi:"info"` @@ -10922,7 +12189,7 @@ type MiddlewareSpecPassTLSClientCertInput interface { // PassTLSClientCert holds the pass TLS client cert middleware configuration. // This middleware adds the selected data from the passed client TLS certificate to a header. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/passtlsclientcert/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/passtlsclientcert/ type MiddlewareSpecPassTLSClientCertArgs struct { // Info selects the specific client certificate details you want to add to the X-Forwarded-Tls-Client-Cert-Info header. Info MiddlewareSpecPassTLSClientCertInfoPtrInput `pulumi:"info"` @@ -10997,7 +12264,7 @@ func (i *middlewareSpecPassTLSClientCertPtrType) ToOutput(ctx context.Context) p // PassTLSClientCert holds the pass TLS client cert middleware configuration. // This middleware adds the selected data from the passed client TLS certificate to a header. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/passtlsclientcert/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/passtlsclientcert/ type MiddlewareSpecPassTLSClientCertOutput struct{ *pulumi.OutputState } func (MiddlewareSpecPassTLSClientCertOutput) ElementType() reflect.Type { @@ -11933,7 +13200,7 @@ type MiddlewareSpecPlugin struct { // RateLimit holds the rate limit configuration. // This middleware ensures that services will receive a fair amount of requests, and allows one to define what fair is. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ratelimit/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ratelimit/ type MiddlewareSpecRateLimit struct { // Average is the maximum rate, by default in requests/s, allowed for the given source. // It defaults to 0, which means no rate limiting. @@ -11965,7 +13232,7 @@ type MiddlewareSpecRateLimitInput interface { // RateLimit holds the rate limit configuration. // This middleware ensures that services will receive a fair amount of requests, and allows one to define what fair is. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ratelimit/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ratelimit/ type MiddlewareSpecRateLimitArgs struct { // Average is the maximum rate, by default in requests/s, allowed for the given source. // It defaults to 0, which means no rate limiting. @@ -12051,7 +13318,7 @@ func (i *middlewareSpecRateLimitPtrType) ToOutput(ctx context.Context) pulumix.O // RateLimit holds the rate limit configuration. // This middleware ensures that services will receive a fair amount of requests, and allows one to define what fair is. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ratelimit/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ratelimit/ type MiddlewareSpecRateLimitOutput struct{ *pulumi.OutputState } func (MiddlewareSpecRateLimitOutput) ElementType() reflect.Type { @@ -12191,7 +13458,7 @@ func (o MiddlewareSpecRateLimitPtrOutput) SourceCriterion() MiddlewareSpecRateLi // If none are set, the default is to use the request's remote address field (as an ipStrategy). type MiddlewareSpecRateLimitSourceCriterion struct { // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy IpStrategy *MiddlewareSpecRateLimitSourceCriterionIpStrategy `pulumi:"ipStrategy"` // RequestHeaderName defines the name of the header used to group incoming requests. RequestHeaderName *string `pulumi:"requestHeaderName"` @@ -12215,7 +13482,7 @@ type MiddlewareSpecRateLimitSourceCriterionInput interface { // If none are set, the default is to use the request's remote address field (as an ipStrategy). type MiddlewareSpecRateLimitSourceCriterionArgs struct { // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy IpStrategy MiddlewareSpecRateLimitSourceCriterionIpStrategyPtrInput `pulumi:"ipStrategy"` // RequestHeaderName defines the name of the header used to group incoming requests. RequestHeaderName pulumi.StringPtrInput `pulumi:"requestHeaderName"` @@ -12322,7 +13589,7 @@ func (o MiddlewareSpecRateLimitSourceCriterionOutput) ToOutput(ctx context.Conte } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy func (o MiddlewareSpecRateLimitSourceCriterionOutput) IpStrategy() MiddlewareSpecRateLimitSourceCriterionIpStrategyPtrOutput { return o.ApplyT(func(v MiddlewareSpecRateLimitSourceCriterion) *MiddlewareSpecRateLimitSourceCriterionIpStrategy { return v.IpStrategy @@ -12370,7 +13637,7 @@ func (o MiddlewareSpecRateLimitSourceCriterionPtrOutput) Elem() MiddlewareSpecRa } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy func (o MiddlewareSpecRateLimitSourceCriterionPtrOutput) IpStrategy() MiddlewareSpecRateLimitSourceCriterionIpStrategyPtrOutput { return o.ApplyT(func(v *MiddlewareSpecRateLimitSourceCriterion) *MiddlewareSpecRateLimitSourceCriterionIpStrategy { if v == nil { @@ -12401,7 +13668,7 @@ func (o MiddlewareSpecRateLimitSourceCriterionPtrOutput) RequestHost() pulumi.Bo } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy type MiddlewareSpecRateLimitSourceCriterionIpStrategy struct { // Depth tells Traefik to use the X-Forwarded-For header and take the IP located at the depth position (starting from the right). Depth *int `pulumi:"depth"` @@ -12421,7 +13688,7 @@ type MiddlewareSpecRateLimitSourceCriterionIpStrategyInput interface { } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy type MiddlewareSpecRateLimitSourceCriterionIpStrategyArgs struct { // Depth tells Traefik to use the X-Forwarded-For header and take the IP located at the depth position (starting from the right). Depth pulumi.IntPtrInput `pulumi:"depth"` @@ -12495,7 +13762,7 @@ func (i *middlewareSpecRateLimitSourceCriterionIpStrategyPtrType) ToOutput(ctx c } // IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#ipstrategy type MiddlewareSpecRateLimitSourceCriterionIpStrategyOutput struct{ *pulumi.OutputState } func (MiddlewareSpecRateLimitSourceCriterionIpStrategyOutput) ElementType() reflect.Type { @@ -12588,7 +13855,7 @@ func (o MiddlewareSpecRateLimitSourceCriterionIpStrategyPtrOutput) ExcludedIPs() // RedirectRegex holds the redirect regex middleware configuration. // This middleware redirects a request using regex matching and replacement. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectregex/#regex +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/redirectregex/#regex type MiddlewareSpecRedirectRegex struct { // Permanent defines whether the redirection is permanent (301). Permanent *bool `pulumi:"permanent"` @@ -12611,7 +13878,7 @@ type MiddlewareSpecRedirectRegexInput interface { // RedirectRegex holds the redirect regex middleware configuration. // This middleware redirects a request using regex matching and replacement. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectregex/#regex +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/redirectregex/#regex type MiddlewareSpecRedirectRegexArgs struct { // Permanent defines whether the redirection is permanent (301). Permanent pulumi.BoolPtrInput `pulumi:"permanent"` @@ -12688,7 +13955,7 @@ func (i *middlewareSpecRedirectRegexPtrType) ToOutput(ctx context.Context) pulum // RedirectRegex holds the redirect regex middleware configuration. // This middleware redirects a request using regex matching and replacement. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectregex/#regex +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/redirectregex/#regex type MiddlewareSpecRedirectRegexOutput struct{ *pulumi.OutputState } func (MiddlewareSpecRedirectRegexOutput) ElementType() reflect.Type { @@ -12796,7 +14063,7 @@ func (o MiddlewareSpecRedirectRegexPtrOutput) Replacement() pulumi.StringPtrOutp // RedirectScheme holds the redirect scheme middleware configuration. // This middleware redirects requests from a scheme/port to another. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectscheme/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/redirectscheme/ type MiddlewareSpecRedirectScheme struct { // Permanent defines whether the redirection is permanent (301). Permanent *bool `pulumi:"permanent"` @@ -12819,7 +14086,7 @@ type MiddlewareSpecRedirectSchemeInput interface { // RedirectScheme holds the redirect scheme middleware configuration. // This middleware redirects requests from a scheme/port to another. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectscheme/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/redirectscheme/ type MiddlewareSpecRedirectSchemeArgs struct { // Permanent defines whether the redirection is permanent (301). Permanent pulumi.BoolPtrInput `pulumi:"permanent"` @@ -12896,7 +14163,7 @@ func (i *middlewareSpecRedirectSchemePtrType) ToOutput(ctx context.Context) pulu // RedirectScheme holds the redirect scheme middleware configuration. // This middleware redirects requests from a scheme/port to another. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectscheme/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/redirectscheme/ type MiddlewareSpecRedirectSchemeOutput struct{ *pulumi.OutputState } func (MiddlewareSpecRedirectSchemeOutput) ElementType() reflect.Type { @@ -13004,7 +14271,7 @@ func (o MiddlewareSpecRedirectSchemePtrOutput) Scheme() pulumi.StringPtrOutput { // ReplacePath holds the replace path middleware configuration. // This middleware replaces the path of the request URL and store the original path in an X-Replaced-Path header. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepath/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/replacepath/ type MiddlewareSpecReplacePath struct { // Path defines the path to use as replacement in the request URL. Path *string `pulumi:"path"` @@ -13023,7 +14290,7 @@ type MiddlewareSpecReplacePathInput interface { // ReplacePath holds the replace path middleware configuration. // This middleware replaces the path of the request URL and store the original path in an X-Replaced-Path header. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepath/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/replacepath/ type MiddlewareSpecReplacePathArgs struct { // Path defines the path to use as replacement in the request URL. Path pulumi.StringPtrInput `pulumi:"path"` @@ -13096,7 +14363,7 @@ func (i *middlewareSpecReplacePathPtrType) ToOutput(ctx context.Context) pulumix // ReplacePath holds the replace path middleware configuration. // This middleware replaces the path of the request URL and store the original path in an X-Replaced-Path header. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepath/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/replacepath/ type MiddlewareSpecReplacePathOutput struct{ *pulumi.OutputState } func (MiddlewareSpecReplacePathOutput) ElementType() reflect.Type { @@ -13174,7 +14441,7 @@ func (o MiddlewareSpecReplacePathPtrOutput) Path() pulumi.StringPtrOutput { // ReplacePathRegex holds the replace path regex middleware configuration. // This middleware replaces the path of a URL using regex matching and replacement. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepathregex/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/replacepathregex/ type MiddlewareSpecReplacePathRegex struct { // Regex defines the regular expression used to match and capture the path from the request URL. Regex *string `pulumi:"regex"` @@ -13195,7 +14462,7 @@ type MiddlewareSpecReplacePathRegexInput interface { // ReplacePathRegex holds the replace path regex middleware configuration. // This middleware replaces the path of a URL using regex matching and replacement. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepathregex/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/replacepathregex/ type MiddlewareSpecReplacePathRegexArgs struct { // Regex defines the regular expression used to match and capture the path from the request URL. Regex pulumi.StringPtrInput `pulumi:"regex"` @@ -13270,7 +14537,7 @@ func (i *middlewareSpecReplacePathRegexPtrType) ToOutput(ctx context.Context) pu // ReplacePathRegex holds the replace path regex middleware configuration. // This middleware replaces the path of a URL using regex matching and replacement. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepathregex/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/replacepathregex/ type MiddlewareSpecReplacePathRegexOutput struct{ *pulumi.OutputState } func (MiddlewareSpecReplacePathRegexOutput) ElementType() reflect.Type { @@ -13364,7 +14631,7 @@ func (o MiddlewareSpecReplacePathRegexPtrOutput) Replacement() pulumi.StringPtrO // Retry holds the retry middleware configuration. // This middleware reissues requests a given number of times to a backend server if that server does not reply. // As soon as the server answers, the middleware stops retrying, regardless of the response status. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/retry/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/retry/ type MiddlewareSpecRetry struct { // Attempts defines how many times the request should be retried. Attempts *int `pulumi:"attempts"` @@ -13390,7 +14657,7 @@ type MiddlewareSpecRetryInput interface { // Retry holds the retry middleware configuration. // This middleware reissues requests a given number of times to a backend server if that server does not reply. // As soon as the server answers, the middleware stops retrying, regardless of the response status. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/retry/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/retry/ type MiddlewareSpecRetryArgs struct { // Attempts defines how many times the request should be retried. Attempts pulumi.IntPtrInput `pulumi:"attempts"` @@ -13470,7 +14737,7 @@ func (i *middlewareSpecRetryPtrType) ToOutput(ctx context.Context) pulumix.Outpu // Retry holds the retry middleware configuration. // This middleware reissues requests a given number of times to a backend server if that server does not reply. // As soon as the server answers, the middleware stops retrying, regardless of the response status. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/retry/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/retry/ type MiddlewareSpecRetryOutput struct{ *pulumi.OutputState } func (MiddlewareSpecRetryOutput) ElementType() reflect.Type { @@ -13571,8 +14838,9 @@ func (o MiddlewareSpecRetryPtrOutput) InitialInterval() pulumi.AnyOutput { // StripPrefix holds the strip prefix middleware configuration. // This middleware removes the specified prefixes from the URL path. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefix/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/stripprefix/ type MiddlewareSpecStripPrefix struct { + // Deprecated: ForceSlash option is deprecated, please remove any usage of this option. // ForceSlash ensures that the resulting stripped path is not the empty string, by replacing it with / when necessary. // Default: true. ForceSlash *bool `pulumi:"forceSlash"` @@ -13593,8 +14861,9 @@ type MiddlewareSpecStripPrefixInput interface { // StripPrefix holds the strip prefix middleware configuration. // This middleware removes the specified prefixes from the URL path. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefix/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/stripprefix/ type MiddlewareSpecStripPrefixArgs struct { + // Deprecated: ForceSlash option is deprecated, please remove any usage of this option. // ForceSlash ensures that the resulting stripped path is not the empty string, by replacing it with / when necessary. // Default: true. ForceSlash pulumi.BoolPtrInput `pulumi:"forceSlash"` @@ -13669,7 +14938,7 @@ func (i *middlewareSpecStripPrefixPtrType) ToOutput(ctx context.Context) pulumix // StripPrefix holds the strip prefix middleware configuration. // This middleware removes the specified prefixes from the URL path. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefix/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/stripprefix/ type MiddlewareSpecStripPrefixOutput struct{ *pulumi.OutputState } func (MiddlewareSpecStripPrefixOutput) ElementType() reflect.Type { @@ -13700,6 +14969,7 @@ func (o MiddlewareSpecStripPrefixOutput) ToOutput(ctx context.Context) pulumix.O } } +// Deprecated: ForceSlash option is deprecated, please remove any usage of this option. // ForceSlash ensures that the resulting stripped path is not the empty string, by replacing it with / when necessary. // Default: true. func (o MiddlewareSpecStripPrefixOutput) ForceSlash() pulumi.BoolPtrOutput { @@ -13741,6 +15011,7 @@ func (o MiddlewareSpecStripPrefixPtrOutput) Elem() MiddlewareSpecStripPrefixOutp }).(MiddlewareSpecStripPrefixOutput) } +// Deprecated: ForceSlash option is deprecated, please remove any usage of this option. // ForceSlash ensures that the resulting stripped path is not the empty string, by replacing it with / when necessary. // Default: true. func (o MiddlewareSpecStripPrefixPtrOutput) ForceSlash() pulumi.BoolPtrOutput { @@ -13764,7 +15035,7 @@ func (o MiddlewareSpecStripPrefixPtrOutput) Prefixes() pulumi.StringArrayOutput // StripPrefixRegex holds the strip prefix regex middleware configuration. // This middleware removes the matching prefixes from the URL path. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefixregex/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/stripprefixregex/ type MiddlewareSpecStripPrefixRegex struct { // Regex defines the regular expression to match the path prefix from the request URL. Regex []string `pulumi:"regex"` @@ -13783,7 +15054,7 @@ type MiddlewareSpecStripPrefixRegexInput interface { // StripPrefixRegex holds the strip prefix regex middleware configuration. // This middleware removes the matching prefixes from the URL path. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefixregex/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/stripprefixregex/ type MiddlewareSpecStripPrefixRegexArgs struct { // Regex defines the regular expression to match the path prefix from the request URL. Regex pulumi.StringArrayInput `pulumi:"regex"` @@ -13856,7 +15127,7 @@ func (i *middlewareSpecStripPrefixRegexPtrType) ToOutput(ctx context.Context) pu // StripPrefixRegex holds the strip prefix regex middleware configuration. // This middleware removes the matching prefixes from the URL path. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefixregex/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/stripprefixregex/ type MiddlewareSpecStripPrefixRegexOutput struct{ *pulumi.OutputState } func (MiddlewareSpecStripPrefixRegexOutput) ElementType() reflect.Type { @@ -13933,7 +15204,7 @@ func (o MiddlewareSpecStripPrefixRegexPtrOutput) Regex() pulumi.StringArrayOutpu } // MiddlewareTCP is the CRD implementation of a Traefik TCP middleware. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/overview/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/overview/ type MiddlewareTCPType struct { ApiVersion *string `pulumi:"apiVersion"` Kind *string `pulumi:"kind"` @@ -13951,12 +15222,12 @@ type MiddlewareTCPSpec struct { InFlightConn *MiddlewareTCPSpecInFlightConn `pulumi:"inFlightConn"` // IPAllowList defines the IPAllowList middleware configuration. // This middleware accepts/refuses connections based on the client IP. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipallowlist/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/tcp/ipallowlist/ IpAllowList *MiddlewareTCPSpecIpAllowList `pulumi:"ipAllowList"` // IPWhiteList defines the IPWhiteList middleware configuration. // This middleware accepts/refuses connections based on the client IP. // Deprecated: please use IPAllowList instead. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipwhitelist/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/tcp/ipwhitelist/ IpWhiteList *MiddlewareTCPSpecIpWhiteList `pulumi:"ipWhiteList"` } @@ -13977,12 +15248,12 @@ type MiddlewareTCPSpecArgs struct { InFlightConn MiddlewareTCPSpecInFlightConnPtrInput `pulumi:"inFlightConn"` // IPAllowList defines the IPAllowList middleware configuration. // This middleware accepts/refuses connections based on the client IP. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipallowlist/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/tcp/ipallowlist/ IpAllowList MiddlewareTCPSpecIpAllowListPtrInput `pulumi:"ipAllowList"` // IPWhiteList defines the IPWhiteList middleware configuration. // This middleware accepts/refuses connections based on the client IP. // Deprecated: please use IPAllowList instead. - // More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipwhitelist/ + // More info: https://doc.traefik.io/traefik/v3.0/middlewares/tcp/ipwhitelist/ IpWhiteList MiddlewareTCPSpecIpWhiteListPtrInput `pulumi:"ipWhiteList"` } @@ -14089,7 +15360,7 @@ func (o MiddlewareTCPSpecOutput) InFlightConn() MiddlewareTCPSpecInFlightConnPtr // IPAllowList defines the IPAllowList middleware configuration. // This middleware accepts/refuses connections based on the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipallowlist/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/tcp/ipallowlist/ func (o MiddlewareTCPSpecOutput) IpAllowList() MiddlewareTCPSpecIpAllowListPtrOutput { return o.ApplyT(func(v MiddlewareTCPSpec) *MiddlewareTCPSpecIpAllowList { return v.IpAllowList }).(MiddlewareTCPSpecIpAllowListPtrOutput) } @@ -14097,7 +15368,7 @@ func (o MiddlewareTCPSpecOutput) IpAllowList() MiddlewareTCPSpecIpAllowListPtrOu // IPWhiteList defines the IPWhiteList middleware configuration. // This middleware accepts/refuses connections based on the client IP. // Deprecated: please use IPAllowList instead. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipwhitelist/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/tcp/ipwhitelist/ func (o MiddlewareTCPSpecOutput) IpWhiteList() MiddlewareTCPSpecIpWhiteListPtrOutput { return o.ApplyT(func(v MiddlewareTCPSpec) *MiddlewareTCPSpecIpWhiteList { return v.IpWhiteList }).(MiddlewareTCPSpecIpWhiteListPtrOutput) } @@ -14144,7 +15415,7 @@ func (o MiddlewareTCPSpecPtrOutput) InFlightConn() MiddlewareTCPSpecInFlightConn // IPAllowList defines the IPAllowList middleware configuration. // This middleware accepts/refuses connections based on the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipallowlist/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/tcp/ipallowlist/ func (o MiddlewareTCPSpecPtrOutput) IpAllowList() MiddlewareTCPSpecIpAllowListPtrOutput { return o.ApplyT(func(v *MiddlewareTCPSpec) *MiddlewareTCPSpecIpAllowList { if v == nil { @@ -14157,7 +15428,7 @@ func (o MiddlewareTCPSpecPtrOutput) IpAllowList() MiddlewareTCPSpecIpAllowListPt // IPWhiteList defines the IPWhiteList middleware configuration. // This middleware accepts/refuses connections based on the client IP. // Deprecated: please use IPAllowList instead. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipwhitelist/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/tcp/ipwhitelist/ func (o MiddlewareTCPSpecPtrOutput) IpWhiteList() MiddlewareTCPSpecIpWhiteListPtrOutput { return o.ApplyT(func(v *MiddlewareTCPSpec) *MiddlewareTCPSpecIpWhiteList { if v == nil { @@ -14337,7 +15608,7 @@ func (o MiddlewareTCPSpecInFlightConnPtrOutput) Amount() pulumi.IntPtrOutput { // IPAllowList defines the IPAllowList middleware configuration. // This middleware accepts/refuses connections based on the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipallowlist/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/tcp/ipallowlist/ type MiddlewareTCPSpecIpAllowList struct { // SourceRange defines the allowed IPs (or ranges of allowed IPs by using CIDR notation). SourceRange []string `pulumi:"sourceRange"` @@ -14356,7 +15627,7 @@ type MiddlewareTCPSpecIpAllowListInput interface { // IPAllowList defines the IPAllowList middleware configuration. // This middleware accepts/refuses connections based on the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipallowlist/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/tcp/ipallowlist/ type MiddlewareTCPSpecIpAllowListArgs struct { // SourceRange defines the allowed IPs (or ranges of allowed IPs by using CIDR notation). SourceRange pulumi.StringArrayInput `pulumi:"sourceRange"` @@ -14429,7 +15700,7 @@ func (i *middlewareTCPSpecIpAllowListPtrType) ToOutput(ctx context.Context) pulu // IPAllowList defines the IPAllowList middleware configuration. // This middleware accepts/refuses connections based on the client IP. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipallowlist/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/tcp/ipallowlist/ type MiddlewareTCPSpecIpAllowListOutput struct{ *pulumi.OutputState } func (MiddlewareTCPSpecIpAllowListOutput) ElementType() reflect.Type { @@ -14508,7 +15779,7 @@ func (o MiddlewareTCPSpecIpAllowListPtrOutput) SourceRange() pulumi.StringArrayO // IPWhiteList defines the IPWhiteList middleware configuration. // This middleware accepts/refuses connections based on the client IP. // Deprecated: please use IPAllowList instead. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipwhitelist/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/tcp/ipwhitelist/ type MiddlewareTCPSpecIpWhiteList struct { // SourceRange defines the allowed IPs (or ranges of allowed IPs by using CIDR notation). SourceRange []string `pulumi:"sourceRange"` @@ -14528,7 +15799,7 @@ type MiddlewareTCPSpecIpWhiteListInput interface { // IPWhiteList defines the IPWhiteList middleware configuration. // This middleware accepts/refuses connections based on the client IP. // Deprecated: please use IPAllowList instead. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipwhitelist/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/tcp/ipwhitelist/ type MiddlewareTCPSpecIpWhiteListArgs struct { // SourceRange defines the allowed IPs (or ranges of allowed IPs by using CIDR notation). SourceRange pulumi.StringArrayInput `pulumi:"sourceRange"` @@ -14602,7 +15873,7 @@ func (i *middlewareTCPSpecIpWhiteListPtrType) ToOutput(ctx context.Context) pulu // IPWhiteList defines the IPWhiteList middleware configuration. // This middleware accepts/refuses connections based on the client IP. // Deprecated: please use IPAllowList instead. -// More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipwhitelist/ +// More info: https://doc.traefik.io/traefik/v3.0/middlewares/tcp/ipwhitelist/ type MiddlewareTCPSpecIpWhiteListOutput struct{ *pulumi.OutputState } func (MiddlewareTCPSpecIpWhiteListOutput) ElementType() reflect.Type { @@ -14681,7 +15952,7 @@ func (o MiddlewareTCPSpecIpWhiteListPtrOutput) SourceRange() pulumi.StringArrayO // ServersTransport is the CRD implementation of a ServersTransport. // If no serversTransport is specified, the default@internal will be used. // The default@internal serversTransport is created from the static configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#serverstransport_1 +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#serverstransport_1 type ServersTransportType struct { ApiVersion *string `pulumi:"apiVersion"` Kind *string `pulumi:"kind"` @@ -14711,6 +15982,8 @@ type ServersTransportSpec struct { RootCAsSecrets []string `pulumi:"rootCAsSecrets"` // ServerName defines the server name used to contact the server. ServerName *string `pulumi:"serverName"` + // Spiffe defines the SPIFFE configuration. + Spiffe *ServersTransportSpecSpiffe `pulumi:"spiffe"` } // ServersTransportSpecInput is an input type that accepts ServersTransportSpecArgs and ServersTransportSpecOutput values. @@ -14742,6 +16015,8 @@ type ServersTransportSpecArgs struct { RootCAsSecrets pulumi.StringArrayInput `pulumi:"rootCAsSecrets"` // ServerName defines the server name used to contact the server. ServerName pulumi.StringPtrInput `pulumi:"serverName"` + // Spiffe defines the SPIFFE configuration. + Spiffe ServersTransportSpecSpiffePtrInput `pulumi:"spiffe"` } func (ServersTransportSpecArgs) ElementType() reflect.Type { @@ -14880,6 +16155,11 @@ func (o ServersTransportSpecOutput) ServerName() pulumi.StringPtrOutput { return o.ApplyT(func(v ServersTransportSpec) *string { return v.ServerName }).(pulumi.StringPtrOutput) } +// Spiffe defines the SPIFFE configuration. +func (o ServersTransportSpecOutput) Spiffe() ServersTransportSpecSpiffePtrOutput { + return o.ApplyT(func(v ServersTransportSpec) *ServersTransportSpecSpiffe { return v.Spiffe }).(ServersTransportSpecSpiffePtrOutput) +} + type ServersTransportSpecPtrOutput struct{ *pulumi.OutputState } func (ServersTransportSpecPtrOutput) ElementType() reflect.Type { @@ -14990,6 +16270,16 @@ func (o ServersTransportSpecPtrOutput) ServerName() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Spiffe defines the SPIFFE configuration. +func (o ServersTransportSpecPtrOutput) Spiffe() ServersTransportSpecSpiffePtrOutput { + return o.ApplyT(func(v *ServersTransportSpec) *ServersTransportSpecSpiffe { + if v == nil { + return nil + } + return v.Spiffe + }).(ServersTransportSpecSpiffePtrOutput) +} + // ForwardingTimeouts defines the timeouts for requests forwarded to the backend servers. type ServersTransportSpecForwardingTimeouts struct { // DialTimeout is the amount of time to wait until a connection to a backend server can be established. @@ -15230,6 +16520,189 @@ func (o ServersTransportSpecForwardingTimeoutsPtrOutput) ResponseHeaderTimeout() }).(pulumi.AnyOutput) } +// Spiffe defines the SPIFFE configuration. +type ServersTransportSpecSpiffe struct { + // IDs defines the allowed SPIFFE IDs (takes precedence over the SPIFFE TrustDomain). + Ids []string `pulumi:"ids"` + // TrustDomain defines the allowed SPIFFE trust domain. + TrustDomain *string `pulumi:"trustDomain"` +} + +// ServersTransportSpecSpiffeInput is an input type that accepts ServersTransportSpecSpiffeArgs and ServersTransportSpecSpiffeOutput values. +// You can construct a concrete instance of `ServersTransportSpecSpiffeInput` via: +// +// ServersTransportSpecSpiffeArgs{...} +type ServersTransportSpecSpiffeInput interface { + pulumi.Input + + ToServersTransportSpecSpiffeOutput() ServersTransportSpecSpiffeOutput + ToServersTransportSpecSpiffeOutputWithContext(context.Context) ServersTransportSpecSpiffeOutput +} + +// Spiffe defines the SPIFFE configuration. +type ServersTransportSpecSpiffeArgs struct { + // IDs defines the allowed SPIFFE IDs (takes precedence over the SPIFFE TrustDomain). + Ids pulumi.StringArrayInput `pulumi:"ids"` + // TrustDomain defines the allowed SPIFFE trust domain. + TrustDomain pulumi.StringPtrInput `pulumi:"trustDomain"` +} + +func (ServersTransportSpecSpiffeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServersTransportSpecSpiffe)(nil)).Elem() +} + +func (i ServersTransportSpecSpiffeArgs) ToServersTransportSpecSpiffeOutput() ServersTransportSpecSpiffeOutput { + return i.ToServersTransportSpecSpiffeOutputWithContext(context.Background()) +} + +func (i ServersTransportSpecSpiffeArgs) ToServersTransportSpecSpiffeOutputWithContext(ctx context.Context) ServersTransportSpecSpiffeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServersTransportSpecSpiffeOutput) +} + +func (i ServersTransportSpecSpiffeArgs) ToOutput(ctx context.Context) pulumix.Output[ServersTransportSpecSpiffe] { + return pulumix.Output[ServersTransportSpecSpiffe]{ + OutputState: i.ToServersTransportSpecSpiffeOutputWithContext(ctx).OutputState, + } +} + +func (i ServersTransportSpecSpiffeArgs) ToServersTransportSpecSpiffePtrOutput() ServersTransportSpecSpiffePtrOutput { + return i.ToServersTransportSpecSpiffePtrOutputWithContext(context.Background()) +} + +func (i ServersTransportSpecSpiffeArgs) ToServersTransportSpecSpiffePtrOutputWithContext(ctx context.Context) ServersTransportSpecSpiffePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServersTransportSpecSpiffeOutput).ToServersTransportSpecSpiffePtrOutputWithContext(ctx) +} + +// ServersTransportSpecSpiffePtrInput is an input type that accepts ServersTransportSpecSpiffeArgs, ServersTransportSpecSpiffePtr and ServersTransportSpecSpiffePtrOutput values. +// You can construct a concrete instance of `ServersTransportSpecSpiffePtrInput` via: +// +// ServersTransportSpecSpiffeArgs{...} +// +// or: +// +// nil +type ServersTransportSpecSpiffePtrInput interface { + pulumi.Input + + ToServersTransportSpecSpiffePtrOutput() ServersTransportSpecSpiffePtrOutput + ToServersTransportSpecSpiffePtrOutputWithContext(context.Context) ServersTransportSpecSpiffePtrOutput +} + +type serversTransportSpecSpiffePtrType ServersTransportSpecSpiffeArgs + +func ServersTransportSpecSpiffePtr(v *ServersTransportSpecSpiffeArgs) ServersTransportSpecSpiffePtrInput { + return (*serversTransportSpecSpiffePtrType)(v) +} + +func (*serversTransportSpecSpiffePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServersTransportSpecSpiffe)(nil)).Elem() +} + +func (i *serversTransportSpecSpiffePtrType) ToServersTransportSpecSpiffePtrOutput() ServersTransportSpecSpiffePtrOutput { + return i.ToServersTransportSpecSpiffePtrOutputWithContext(context.Background()) +} + +func (i *serversTransportSpecSpiffePtrType) ToServersTransportSpecSpiffePtrOutputWithContext(ctx context.Context) ServersTransportSpecSpiffePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServersTransportSpecSpiffePtrOutput) +} + +func (i *serversTransportSpecSpiffePtrType) ToOutput(ctx context.Context) pulumix.Output[*ServersTransportSpecSpiffe] { + return pulumix.Output[*ServersTransportSpecSpiffe]{ + OutputState: i.ToServersTransportSpecSpiffePtrOutputWithContext(ctx).OutputState, + } +} + +// Spiffe defines the SPIFFE configuration. +type ServersTransportSpecSpiffeOutput struct{ *pulumi.OutputState } + +func (ServersTransportSpecSpiffeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServersTransportSpecSpiffe)(nil)).Elem() +} + +func (o ServersTransportSpecSpiffeOutput) ToServersTransportSpecSpiffeOutput() ServersTransportSpecSpiffeOutput { + return o +} + +func (o ServersTransportSpecSpiffeOutput) ToServersTransportSpecSpiffeOutputWithContext(ctx context.Context) ServersTransportSpecSpiffeOutput { + return o +} + +func (o ServersTransportSpecSpiffeOutput) ToServersTransportSpecSpiffePtrOutput() ServersTransportSpecSpiffePtrOutput { + return o.ToServersTransportSpecSpiffePtrOutputWithContext(context.Background()) +} + +func (o ServersTransportSpecSpiffeOutput) ToServersTransportSpecSpiffePtrOutputWithContext(ctx context.Context) ServersTransportSpecSpiffePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServersTransportSpecSpiffe) *ServersTransportSpecSpiffe { + return &v + }).(ServersTransportSpecSpiffePtrOutput) +} + +func (o ServersTransportSpecSpiffeOutput) ToOutput(ctx context.Context) pulumix.Output[ServersTransportSpecSpiffe] { + return pulumix.Output[ServersTransportSpecSpiffe]{ + OutputState: o.OutputState, + } +} + +// IDs defines the allowed SPIFFE IDs (takes precedence over the SPIFFE TrustDomain). +func (o ServersTransportSpecSpiffeOutput) Ids() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServersTransportSpecSpiffe) []string { return v.Ids }).(pulumi.StringArrayOutput) +} + +// TrustDomain defines the allowed SPIFFE trust domain. +func (o ServersTransportSpecSpiffeOutput) TrustDomain() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServersTransportSpecSpiffe) *string { return v.TrustDomain }).(pulumi.StringPtrOutput) +} + +type ServersTransportSpecSpiffePtrOutput struct{ *pulumi.OutputState } + +func (ServersTransportSpecSpiffePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServersTransportSpecSpiffe)(nil)).Elem() +} + +func (o ServersTransportSpecSpiffePtrOutput) ToServersTransportSpecSpiffePtrOutput() ServersTransportSpecSpiffePtrOutput { + return o +} + +func (o ServersTransportSpecSpiffePtrOutput) ToServersTransportSpecSpiffePtrOutputWithContext(ctx context.Context) ServersTransportSpecSpiffePtrOutput { + return o +} + +func (o ServersTransportSpecSpiffePtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServersTransportSpecSpiffe] { + return pulumix.Output[*ServersTransportSpecSpiffe]{ + OutputState: o.OutputState, + } +} + +func (o ServersTransportSpecSpiffePtrOutput) Elem() ServersTransportSpecSpiffeOutput { + return o.ApplyT(func(v *ServersTransportSpecSpiffe) ServersTransportSpecSpiffe { + if v != nil { + return *v + } + var ret ServersTransportSpecSpiffe + return ret + }).(ServersTransportSpecSpiffeOutput) +} + +// IDs defines the allowed SPIFFE IDs (takes precedence over the SPIFFE TrustDomain). +func (o ServersTransportSpecSpiffePtrOutput) Ids() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServersTransportSpecSpiffe) []string { + if v == nil { + return nil + } + return v.Ids + }).(pulumi.StringArrayOutput) +} + +// TrustDomain defines the allowed SPIFFE trust domain. +func (o ServersTransportSpecSpiffePtrOutput) TrustDomain() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServersTransportSpecSpiffe) *string { + if v == nil { + return nil + } + return v.TrustDomain + }).(pulumi.StringPtrOutput) +} + // ServersTransportTCP is the CRD implementation of a TCPServersTransport. // If no tcpServersTransport is specified, a default one named default@internal will be used. // The default@internal tcpServersTransport can be configured in the static configuration. @@ -15913,7 +17386,7 @@ func (o ServersTransportTCPSpecTlsSpiffePtrOutput) TrustDomain() pulumi.StringPt } // TLSOption is the CRD implementation of a Traefik TLS Option, allowing to configure some parameters of the TLS connection. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options type TLSOptionType struct { ApiVersion *string `pulumi:"apiVersion"` Kind *string `pulumi:"kind"` @@ -15928,15 +17401,15 @@ type TLSOptionMetadata struct { // TLSOptionSpec defines the desired state of a TLSOption. type TLSOptionSpec struct { // ALPNProtocols defines the list of supported application level protocols for the TLS handshake, in order of preference. - // More info: https://doc.traefik.io/traefik/v2.11/https/tls/#alpn-protocols + // More info: https://doc.traefik.io/traefik/v3.0/https/tls/#alpn-protocols AlpnProtocols []string `pulumi:"alpnProtocols"` // CipherSuites defines the list of supported cipher suites for TLS versions up to TLS 1.2. - // More info: https://doc.traefik.io/traefik/v2.11/https/tls/#cipher-suites + // More info: https://doc.traefik.io/traefik/v3.0/https/tls/#cipher-suites CipherSuites []string `pulumi:"cipherSuites"` // ClientAuth defines the server's policy for TLS Client Authentication. ClientAuth *TLSOptionSpecClientAuth `pulumi:"clientAuth"` // CurvePreferences defines the preferred elliptic curves in a specific order. - // More info: https://doc.traefik.io/traefik/v2.11/https/tls/#curve-preferences + // More info: https://doc.traefik.io/traefik/v3.0/https/tls/#curve-preferences CurvePreferences []string `pulumi:"curvePreferences"` // MaxVersion defines the maximum TLS version that Traefik will accept. // Possible values: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13. @@ -15968,15 +17441,15 @@ type TLSOptionSpecInput interface { // TLSOptionSpec defines the desired state of a TLSOption. type TLSOptionSpecArgs struct { // ALPNProtocols defines the list of supported application level protocols for the TLS handshake, in order of preference. - // More info: https://doc.traefik.io/traefik/v2.11/https/tls/#alpn-protocols + // More info: https://doc.traefik.io/traefik/v3.0/https/tls/#alpn-protocols AlpnProtocols pulumi.StringArrayInput `pulumi:"alpnProtocols"` // CipherSuites defines the list of supported cipher suites for TLS versions up to TLS 1.2. - // More info: https://doc.traefik.io/traefik/v2.11/https/tls/#cipher-suites + // More info: https://doc.traefik.io/traefik/v3.0/https/tls/#cipher-suites CipherSuites pulumi.StringArrayInput `pulumi:"cipherSuites"` // ClientAuth defines the server's policy for TLS Client Authentication. ClientAuth TLSOptionSpecClientAuthPtrInput `pulumi:"clientAuth"` // CurvePreferences defines the preferred elliptic curves in a specific order. - // More info: https://doc.traefik.io/traefik/v2.11/https/tls/#curve-preferences + // More info: https://doc.traefik.io/traefik/v3.0/https/tls/#curve-preferences CurvePreferences pulumi.StringArrayInput `pulumi:"curvePreferences"` // MaxVersion defines the maximum TLS version that Traefik will accept. // Possible values: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13. @@ -16091,13 +17564,13 @@ func (o TLSOptionSpecOutput) ToOutput(ctx context.Context) pulumix.Output[TLSOpt } // ALPNProtocols defines the list of supported application level protocols for the TLS handshake, in order of preference. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#alpn-protocols +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#alpn-protocols func (o TLSOptionSpecOutput) AlpnProtocols() pulumi.StringArrayOutput { return o.ApplyT(func(v TLSOptionSpec) []string { return v.AlpnProtocols }).(pulumi.StringArrayOutput) } // CipherSuites defines the list of supported cipher suites for TLS versions up to TLS 1.2. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#cipher-suites +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#cipher-suites func (o TLSOptionSpecOutput) CipherSuites() pulumi.StringArrayOutput { return o.ApplyT(func(v TLSOptionSpec) []string { return v.CipherSuites }).(pulumi.StringArrayOutput) } @@ -16108,7 +17581,7 @@ func (o TLSOptionSpecOutput) ClientAuth() TLSOptionSpecClientAuthPtrOutput { } // CurvePreferences defines the preferred elliptic curves in a specific order. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#curve-preferences +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#curve-preferences func (o TLSOptionSpecOutput) CurvePreferences() pulumi.StringArrayOutput { return o.ApplyT(func(v TLSOptionSpec) []string { return v.CurvePreferences }).(pulumi.StringArrayOutput) } @@ -16170,7 +17643,7 @@ func (o TLSOptionSpecPtrOutput) Elem() TLSOptionSpecOutput { } // ALPNProtocols defines the list of supported application level protocols for the TLS handshake, in order of preference. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#alpn-protocols +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#alpn-protocols func (o TLSOptionSpecPtrOutput) AlpnProtocols() pulumi.StringArrayOutput { return o.ApplyT(func(v *TLSOptionSpec) []string { if v == nil { @@ -16181,7 +17654,7 @@ func (o TLSOptionSpecPtrOutput) AlpnProtocols() pulumi.StringArrayOutput { } // CipherSuites defines the list of supported cipher suites for TLS versions up to TLS 1.2. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#cipher-suites +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#cipher-suites func (o TLSOptionSpecPtrOutput) CipherSuites() pulumi.StringArrayOutput { return o.ApplyT(func(v *TLSOptionSpec) []string { if v == nil { @@ -16202,7 +17675,7 @@ func (o TLSOptionSpecPtrOutput) ClientAuth() TLSOptionSpecClientAuthPtrOutput { } // CurvePreferences defines the preferred elliptic curves in a specific order. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#curve-preferences +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#curve-preferences func (o TLSOptionSpecPtrOutput) CurvePreferences() pulumi.StringArrayOutput { return o.ApplyT(func(v *TLSOptionSpec) []string { if v == nil { @@ -16444,7 +17917,7 @@ func (o TLSOptionSpecClientAuthPtrOutput) SecretNames() pulumi.StringArrayOutput // TLSStore is the CRD implementation of a Traefik TLS Store. // For the time being, only the TLSStore named default is supported. // This means that you cannot have two stores that are named default in different Kubernetes namespaces. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#certificates-stores +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#certificates-stores type TLSStoreType struct { ApiVersion *string `pulumi:"apiVersion"` Kind *string `pulumi:"kind"` @@ -17316,7 +18789,7 @@ func (o TLSStoreSpecDefaultGeneratedCertDomainPtrOutput) Sans() pulumi.StringArr // TraefikService object allows to: // - Apply weight to Services on load-balancing // - Mirror traffic on services -// More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-traefikservice +// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-traefikservice type TraefikServiceType struct { ApiVersion *string `pulumi:"apiVersion"` Kind *string `pulumi:"kind"` @@ -17513,6 +18986,8 @@ func (o TraefikServiceSpecPtrOutput) Weighted() TraefikServiceSpecWeightedPtrOut // Mirroring defines the Mirroring service configuration. type TraefikServiceSpecMirroring struct { + // Healthcheck defines health checks for ExternalName services. + HealthCheck *TraefikServiceSpecMirroringHealthCheck `pulumi:"healthCheck"` // Kind defines the kind of the Service. Kind *string `pulumi:"kind"` // MaxBodySize defines the maximum size allowed for the body of the request. @@ -17531,6 +19006,11 @@ type TraefikServiceSpecMirroring struct { // The Kubernetes Service itself does load-balance to the pods. // By default, NativeLB is false. NativeLB *bool `pulumi:"nativeLB"` + // NodePortLB controls, when creating the load-balancer, + // whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. + // It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. + // By default, NodePortLB is false. + NodePortLB *bool `pulumi:"nodePortLB"` // PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. // By default, passHostHeader is true. PassHostHeader *bool `pulumi:"passHostHeader"` @@ -17547,7 +19027,7 @@ type TraefikServiceSpecMirroring struct { // Can only be used on a Kubernetes Service. ServersTransport *string `pulumi:"serversTransport"` // Sticky defines the sticky sessions configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions + // More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions Sticky *TraefikServiceSpecMirroringSticky `pulumi:"sticky"` // Strategy defines the load balancing strategy between the servers. // RoundRobin is the only supported value at the moment. @@ -17570,6 +19050,8 @@ type TraefikServiceSpecMirroringInput interface { // Mirroring defines the Mirroring service configuration. type TraefikServiceSpecMirroringArgs struct { + // Healthcheck defines health checks for ExternalName services. + HealthCheck TraefikServiceSpecMirroringHealthCheckPtrInput `pulumi:"healthCheck"` // Kind defines the kind of the Service. Kind pulumi.StringPtrInput `pulumi:"kind"` // MaxBodySize defines the maximum size allowed for the body of the request. @@ -17588,6 +19070,11 @@ type TraefikServiceSpecMirroringArgs struct { // The Kubernetes Service itself does load-balance to the pods. // By default, NativeLB is false. NativeLB pulumi.BoolPtrInput `pulumi:"nativeLB"` + // NodePortLB controls, when creating the load-balancer, + // whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. + // It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. + // By default, NodePortLB is false. + NodePortLB pulumi.BoolPtrInput `pulumi:"nodePortLB"` // PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. // By default, passHostHeader is true. PassHostHeader pulumi.BoolPtrInput `pulumi:"passHostHeader"` @@ -17604,7 +19091,7 @@ type TraefikServiceSpecMirroringArgs struct { // Can only be used on a Kubernetes Service. ServersTransport pulumi.StringPtrInput `pulumi:"serversTransport"` // Sticky defines the sticky sessions configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions + // More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions Sticky TraefikServiceSpecMirroringStickyPtrInput `pulumi:"sticky"` // Strategy defines the load balancing strategy between the servers. // RoundRobin is the only supported value at the moment. @@ -17710,6 +19197,11 @@ func (o TraefikServiceSpecMirroringOutput) ToOutput(ctx context.Context) pulumix } } +// Healthcheck defines health checks for ExternalName services. +func (o TraefikServiceSpecMirroringOutput) HealthCheck() TraefikServiceSpecMirroringHealthCheckPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroring) *TraefikServiceSpecMirroringHealthCheck { return v.HealthCheck }).(TraefikServiceSpecMirroringHealthCheckPtrOutput) +} + // Kind defines the kind of the Service. func (o TraefikServiceSpecMirroringOutput) Kind() pulumi.StringPtrOutput { return o.ApplyT(func(v TraefikServiceSpecMirroring) *string { return v.Kind }).(pulumi.StringPtrOutput) @@ -17746,6 +19238,14 @@ func (o TraefikServiceSpecMirroringOutput) NativeLB() pulumi.BoolPtrOutput { return o.ApplyT(func(v TraefikServiceSpecMirroring) *bool { return v.NativeLB }).(pulumi.BoolPtrOutput) } +// NodePortLB controls, when creating the load-balancer, +// whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. +// It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. +// By default, NodePortLB is false. +func (o TraefikServiceSpecMirroringOutput) NodePortLB() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroring) *bool { return v.NodePortLB }).(pulumi.BoolPtrOutput) +} + // PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. // By default, passHostHeader is true. func (o TraefikServiceSpecMirroringOutput) PassHostHeader() pulumi.BoolPtrOutput { @@ -17779,7 +19279,7 @@ func (o TraefikServiceSpecMirroringOutput) ServersTransport() pulumi.StringPtrOu } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions func (o TraefikServiceSpecMirroringOutput) Sticky() TraefikServiceSpecMirroringStickyPtrOutput { return o.ApplyT(func(v TraefikServiceSpecMirroring) *TraefikServiceSpecMirroringSticky { return v.Sticky }).(TraefikServiceSpecMirroringStickyPtrOutput) } @@ -17826,6 +19326,16 @@ func (o TraefikServiceSpecMirroringPtrOutput) Elem() TraefikServiceSpecMirroring }).(TraefikServiceSpecMirroringOutput) } +// Healthcheck defines health checks for ExternalName services. +func (o TraefikServiceSpecMirroringPtrOutput) HealthCheck() TraefikServiceSpecMirroringHealthCheckPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroring) *TraefikServiceSpecMirroringHealthCheck { + if v == nil { + return nil + } + return v.HealthCheck + }).(TraefikServiceSpecMirroringHealthCheckPtrOutput) +} + // Kind defines the kind of the Service. func (o TraefikServiceSpecMirroringPtrOutput) Kind() pulumi.StringPtrOutput { return o.ApplyT(func(v *TraefikServiceSpecMirroring) *string { @@ -17892,6 +19402,19 @@ func (o TraefikServiceSpecMirroringPtrOutput) NativeLB() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } +// NodePortLB controls, when creating the load-balancer, +// whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. +// It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. +// By default, NodePortLB is false. +func (o TraefikServiceSpecMirroringPtrOutput) NodePortLB() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroring) *bool { + if v == nil { + return nil + } + return v.NodePortLB + }).(pulumi.BoolPtrOutput) +} + // PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. // By default, passHostHeader is true. func (o TraefikServiceSpecMirroringPtrOutput) PassHostHeader() pulumi.BoolPtrOutput { @@ -17948,7 +19471,7 @@ func (o TraefikServiceSpecMirroringPtrOutput) ServersTransport() pulumi.StringPt } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions func (o TraefikServiceSpecMirroringPtrOutput) Sticky() TraefikServiceSpecMirroringStickyPtrOutput { return o.ApplyT(func(v *TraefikServiceSpecMirroring) *TraefikServiceSpecMirroringSticky { if v == nil { @@ -17980,8 +19503,388 @@ func (o TraefikServiceSpecMirroringPtrOutput) Weight() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// Healthcheck defines health checks for ExternalName services. +type TraefikServiceSpecMirroringHealthCheck struct { + // FollowRedirects defines whether redirects should be followed during the health check calls. + // Default: true + FollowRedirects *bool `pulumi:"followRedirects"` + // Headers defines custom headers to be sent to the health check endpoint. + Headers map[string]string `pulumi:"headers"` + // Hostname defines the value of hostname in the Host header of the health check request. + Hostname *string `pulumi:"hostname"` + // Interval defines the frequency of the health check calls. + // Default: 30s + Interval interface{} `pulumi:"interval"` + // Method defines the healthcheck method. + Method *string `pulumi:"method"` + // Mode defines the health check mode. + // If defined to grpc, will use the gRPC health check protocol to probe the server. + // Default: http + Mode *string `pulumi:"mode"` + // Path defines the server URL path for the health check endpoint. + Path *string `pulumi:"path"` + // Port defines the server URL port for the health check endpoint. + Port *int `pulumi:"port"` + // Scheme replaces the server URL scheme for the health check endpoint. + Scheme *string `pulumi:"scheme"` + // Status defines the expected HTTP status code of the response to the health check request. + Status *int `pulumi:"status"` + // Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. + // Default: 5s + Timeout interface{} `pulumi:"timeout"` +} + +// TraefikServiceSpecMirroringHealthCheckInput is an input type that accepts TraefikServiceSpecMirroringHealthCheckArgs and TraefikServiceSpecMirroringHealthCheckOutput values. +// You can construct a concrete instance of `TraefikServiceSpecMirroringHealthCheckInput` via: +// +// TraefikServiceSpecMirroringHealthCheckArgs{...} +type TraefikServiceSpecMirroringHealthCheckInput interface { + pulumi.Input + + ToTraefikServiceSpecMirroringHealthCheckOutput() TraefikServiceSpecMirroringHealthCheckOutput + ToTraefikServiceSpecMirroringHealthCheckOutputWithContext(context.Context) TraefikServiceSpecMirroringHealthCheckOutput +} + +// Healthcheck defines health checks for ExternalName services. +type TraefikServiceSpecMirroringHealthCheckArgs struct { + // FollowRedirects defines whether redirects should be followed during the health check calls. + // Default: true + FollowRedirects pulumi.BoolPtrInput `pulumi:"followRedirects"` + // Headers defines custom headers to be sent to the health check endpoint. + Headers pulumi.StringMapInput `pulumi:"headers"` + // Hostname defines the value of hostname in the Host header of the health check request. + Hostname pulumi.StringPtrInput `pulumi:"hostname"` + // Interval defines the frequency of the health check calls. + // Default: 30s + Interval pulumi.Input `pulumi:"interval"` + // Method defines the healthcheck method. + Method pulumi.StringPtrInput `pulumi:"method"` + // Mode defines the health check mode. + // If defined to grpc, will use the gRPC health check protocol to probe the server. + // Default: http + Mode pulumi.StringPtrInput `pulumi:"mode"` + // Path defines the server URL path for the health check endpoint. + Path pulumi.StringPtrInput `pulumi:"path"` + // Port defines the server URL port for the health check endpoint. + Port pulumi.IntPtrInput `pulumi:"port"` + // Scheme replaces the server URL scheme for the health check endpoint. + Scheme pulumi.StringPtrInput `pulumi:"scheme"` + // Status defines the expected HTTP status code of the response to the health check request. + Status pulumi.IntPtrInput `pulumi:"status"` + // Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. + // Default: 5s + Timeout pulumi.Input `pulumi:"timeout"` +} + +func (TraefikServiceSpecMirroringHealthCheckArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TraefikServiceSpecMirroringHealthCheck)(nil)).Elem() +} + +func (i TraefikServiceSpecMirroringHealthCheckArgs) ToTraefikServiceSpecMirroringHealthCheckOutput() TraefikServiceSpecMirroringHealthCheckOutput { + return i.ToTraefikServiceSpecMirroringHealthCheckOutputWithContext(context.Background()) +} + +func (i TraefikServiceSpecMirroringHealthCheckArgs) ToTraefikServiceSpecMirroringHealthCheckOutputWithContext(ctx context.Context) TraefikServiceSpecMirroringHealthCheckOutput { + return pulumi.ToOutputWithContext(ctx, i).(TraefikServiceSpecMirroringHealthCheckOutput) +} + +func (i TraefikServiceSpecMirroringHealthCheckArgs) ToOutput(ctx context.Context) pulumix.Output[TraefikServiceSpecMirroringHealthCheck] { + return pulumix.Output[TraefikServiceSpecMirroringHealthCheck]{ + OutputState: i.ToTraefikServiceSpecMirroringHealthCheckOutputWithContext(ctx).OutputState, + } +} + +func (i TraefikServiceSpecMirroringHealthCheckArgs) ToTraefikServiceSpecMirroringHealthCheckPtrOutput() TraefikServiceSpecMirroringHealthCheckPtrOutput { + return i.ToTraefikServiceSpecMirroringHealthCheckPtrOutputWithContext(context.Background()) +} + +func (i TraefikServiceSpecMirroringHealthCheckArgs) ToTraefikServiceSpecMirroringHealthCheckPtrOutputWithContext(ctx context.Context) TraefikServiceSpecMirroringHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TraefikServiceSpecMirroringHealthCheckOutput).ToTraefikServiceSpecMirroringHealthCheckPtrOutputWithContext(ctx) +} + +// TraefikServiceSpecMirroringHealthCheckPtrInput is an input type that accepts TraefikServiceSpecMirroringHealthCheckArgs, TraefikServiceSpecMirroringHealthCheckPtr and TraefikServiceSpecMirroringHealthCheckPtrOutput values. +// You can construct a concrete instance of `TraefikServiceSpecMirroringHealthCheckPtrInput` via: +// +// TraefikServiceSpecMirroringHealthCheckArgs{...} +// +// or: +// +// nil +type TraefikServiceSpecMirroringHealthCheckPtrInput interface { + pulumi.Input + + ToTraefikServiceSpecMirroringHealthCheckPtrOutput() TraefikServiceSpecMirroringHealthCheckPtrOutput + ToTraefikServiceSpecMirroringHealthCheckPtrOutputWithContext(context.Context) TraefikServiceSpecMirroringHealthCheckPtrOutput +} + +type traefikServiceSpecMirroringHealthCheckPtrType TraefikServiceSpecMirroringHealthCheckArgs + +func TraefikServiceSpecMirroringHealthCheckPtr(v *TraefikServiceSpecMirroringHealthCheckArgs) TraefikServiceSpecMirroringHealthCheckPtrInput { + return (*traefikServiceSpecMirroringHealthCheckPtrType)(v) +} + +func (*traefikServiceSpecMirroringHealthCheckPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TraefikServiceSpecMirroringHealthCheck)(nil)).Elem() +} + +func (i *traefikServiceSpecMirroringHealthCheckPtrType) ToTraefikServiceSpecMirroringHealthCheckPtrOutput() TraefikServiceSpecMirroringHealthCheckPtrOutput { + return i.ToTraefikServiceSpecMirroringHealthCheckPtrOutputWithContext(context.Background()) +} + +func (i *traefikServiceSpecMirroringHealthCheckPtrType) ToTraefikServiceSpecMirroringHealthCheckPtrOutputWithContext(ctx context.Context) TraefikServiceSpecMirroringHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TraefikServiceSpecMirroringHealthCheckPtrOutput) +} + +func (i *traefikServiceSpecMirroringHealthCheckPtrType) ToOutput(ctx context.Context) pulumix.Output[*TraefikServiceSpecMirroringHealthCheck] { + return pulumix.Output[*TraefikServiceSpecMirroringHealthCheck]{ + OutputState: i.ToTraefikServiceSpecMirroringHealthCheckPtrOutputWithContext(ctx).OutputState, + } +} + +// Healthcheck defines health checks for ExternalName services. +type TraefikServiceSpecMirroringHealthCheckOutput struct{ *pulumi.OutputState } + +func (TraefikServiceSpecMirroringHealthCheckOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TraefikServiceSpecMirroringHealthCheck)(nil)).Elem() +} + +func (o TraefikServiceSpecMirroringHealthCheckOutput) ToTraefikServiceSpecMirroringHealthCheckOutput() TraefikServiceSpecMirroringHealthCheckOutput { + return o +} + +func (o TraefikServiceSpecMirroringHealthCheckOutput) ToTraefikServiceSpecMirroringHealthCheckOutputWithContext(ctx context.Context) TraefikServiceSpecMirroringHealthCheckOutput { + return o +} + +func (o TraefikServiceSpecMirroringHealthCheckOutput) ToTraefikServiceSpecMirroringHealthCheckPtrOutput() TraefikServiceSpecMirroringHealthCheckPtrOutput { + return o.ToTraefikServiceSpecMirroringHealthCheckPtrOutputWithContext(context.Background()) +} + +func (o TraefikServiceSpecMirroringHealthCheckOutput) ToTraefikServiceSpecMirroringHealthCheckPtrOutputWithContext(ctx context.Context) TraefikServiceSpecMirroringHealthCheckPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TraefikServiceSpecMirroringHealthCheck) *TraefikServiceSpecMirroringHealthCheck { + return &v + }).(TraefikServiceSpecMirroringHealthCheckPtrOutput) +} + +func (o TraefikServiceSpecMirroringHealthCheckOutput) ToOutput(ctx context.Context) pulumix.Output[TraefikServiceSpecMirroringHealthCheck] { + return pulumix.Output[TraefikServiceSpecMirroringHealthCheck]{ + OutputState: o.OutputState, + } +} + +// FollowRedirects defines whether redirects should be followed during the health check calls. +// Default: true +func (o TraefikServiceSpecMirroringHealthCheckOutput) FollowRedirects() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringHealthCheck) *bool { return v.FollowRedirects }).(pulumi.BoolPtrOutput) +} + +// Headers defines custom headers to be sent to the health check endpoint. +func (o TraefikServiceSpecMirroringHealthCheckOutput) Headers() pulumi.StringMapOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringHealthCheck) map[string]string { return v.Headers }).(pulumi.StringMapOutput) +} + +// Hostname defines the value of hostname in the Host header of the health check request. +func (o TraefikServiceSpecMirroringHealthCheckOutput) Hostname() pulumi.StringPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringHealthCheck) *string { return v.Hostname }).(pulumi.StringPtrOutput) +} + +// Interval defines the frequency of the health check calls. +// Default: 30s +func (o TraefikServiceSpecMirroringHealthCheckOutput) Interval() pulumi.AnyOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringHealthCheck) interface{} { return v.Interval }).(pulumi.AnyOutput) +} + +// Method defines the healthcheck method. +func (o TraefikServiceSpecMirroringHealthCheckOutput) Method() pulumi.StringPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringHealthCheck) *string { return v.Method }).(pulumi.StringPtrOutput) +} + +// Mode defines the health check mode. +// If defined to grpc, will use the gRPC health check protocol to probe the server. +// Default: http +func (o TraefikServiceSpecMirroringHealthCheckOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringHealthCheck) *string { return v.Mode }).(pulumi.StringPtrOutput) +} + +// Path defines the server URL path for the health check endpoint. +func (o TraefikServiceSpecMirroringHealthCheckOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringHealthCheck) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +// Port defines the server URL port for the health check endpoint. +func (o TraefikServiceSpecMirroringHealthCheckOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringHealthCheck) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// Scheme replaces the server URL scheme for the health check endpoint. +func (o TraefikServiceSpecMirroringHealthCheckOutput) Scheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringHealthCheck) *string { return v.Scheme }).(pulumi.StringPtrOutput) +} + +// Status defines the expected HTTP status code of the response to the health check request. +func (o TraefikServiceSpecMirroringHealthCheckOutput) Status() pulumi.IntPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringHealthCheck) *int { return v.Status }).(pulumi.IntPtrOutput) +} + +// Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. +// Default: 5s +func (o TraefikServiceSpecMirroringHealthCheckOutput) Timeout() pulumi.AnyOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringHealthCheck) interface{} { return v.Timeout }).(pulumi.AnyOutput) +} + +type TraefikServiceSpecMirroringHealthCheckPtrOutput struct{ *pulumi.OutputState } + +func (TraefikServiceSpecMirroringHealthCheckPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TraefikServiceSpecMirroringHealthCheck)(nil)).Elem() +} + +func (o TraefikServiceSpecMirroringHealthCheckPtrOutput) ToTraefikServiceSpecMirroringHealthCheckPtrOutput() TraefikServiceSpecMirroringHealthCheckPtrOutput { + return o +} + +func (o TraefikServiceSpecMirroringHealthCheckPtrOutput) ToTraefikServiceSpecMirroringHealthCheckPtrOutputWithContext(ctx context.Context) TraefikServiceSpecMirroringHealthCheckPtrOutput { + return o +} + +func (o TraefikServiceSpecMirroringHealthCheckPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*TraefikServiceSpecMirroringHealthCheck] { + return pulumix.Output[*TraefikServiceSpecMirroringHealthCheck]{ + OutputState: o.OutputState, + } +} + +func (o TraefikServiceSpecMirroringHealthCheckPtrOutput) Elem() TraefikServiceSpecMirroringHealthCheckOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringHealthCheck) TraefikServiceSpecMirroringHealthCheck { + if v != nil { + return *v + } + var ret TraefikServiceSpecMirroringHealthCheck + return ret + }).(TraefikServiceSpecMirroringHealthCheckOutput) +} + +// FollowRedirects defines whether redirects should be followed during the health check calls. +// Default: true +func (o TraefikServiceSpecMirroringHealthCheckPtrOutput) FollowRedirects() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringHealthCheck) *bool { + if v == nil { + return nil + } + return v.FollowRedirects + }).(pulumi.BoolPtrOutput) +} + +// Headers defines custom headers to be sent to the health check endpoint. +func (o TraefikServiceSpecMirroringHealthCheckPtrOutput) Headers() pulumi.StringMapOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringHealthCheck) map[string]string { + if v == nil { + return nil + } + return v.Headers + }).(pulumi.StringMapOutput) +} + +// Hostname defines the value of hostname in the Host header of the health check request. +func (o TraefikServiceSpecMirroringHealthCheckPtrOutput) Hostname() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringHealthCheck) *string { + if v == nil { + return nil + } + return v.Hostname + }).(pulumi.StringPtrOutput) +} + +// Interval defines the frequency of the health check calls. +// Default: 30s +func (o TraefikServiceSpecMirroringHealthCheckPtrOutput) Interval() pulumi.AnyOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringHealthCheck) interface{} { + if v == nil { + return nil + } + return v.Interval + }).(pulumi.AnyOutput) +} + +// Method defines the healthcheck method. +func (o TraefikServiceSpecMirroringHealthCheckPtrOutput) Method() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringHealthCheck) *string { + if v == nil { + return nil + } + return v.Method + }).(pulumi.StringPtrOutput) +} + +// Mode defines the health check mode. +// If defined to grpc, will use the gRPC health check protocol to probe the server. +// Default: http +func (o TraefikServiceSpecMirroringHealthCheckPtrOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringHealthCheck) *string { + if v == nil { + return nil + } + return v.Mode + }).(pulumi.StringPtrOutput) +} + +// Path defines the server URL path for the health check endpoint. +func (o TraefikServiceSpecMirroringHealthCheckPtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringHealthCheck) *string { + if v == nil { + return nil + } + return v.Path + }).(pulumi.StringPtrOutput) +} + +// Port defines the server URL port for the health check endpoint. +func (o TraefikServiceSpecMirroringHealthCheckPtrOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringHealthCheck) *int { + if v == nil { + return nil + } + return v.Port + }).(pulumi.IntPtrOutput) +} + +// Scheme replaces the server URL scheme for the health check endpoint. +func (o TraefikServiceSpecMirroringHealthCheckPtrOutput) Scheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringHealthCheck) *string { + if v == nil { + return nil + } + return v.Scheme + }).(pulumi.StringPtrOutput) +} + +// Status defines the expected HTTP status code of the response to the health check request. +func (o TraefikServiceSpecMirroringHealthCheckPtrOutput) Status() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringHealthCheck) *int { + if v == nil { + return nil + } + return v.Status + }).(pulumi.IntPtrOutput) +} + +// Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. +// Default: 5s +func (o TraefikServiceSpecMirroringHealthCheckPtrOutput) Timeout() pulumi.AnyOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringHealthCheck) interface{} { + if v == nil { + return nil + } + return v.Timeout + }).(pulumi.AnyOutput) +} + +// Headers defines custom headers to be sent to the health check endpoint. +type TraefikServiceSpecMirroringHealthCheckHeaders struct { +} + // MirrorService holds the mirror configuration. type TraefikServiceSpecMirroringMirrors struct { + // Healthcheck defines health checks for ExternalName services. + HealthCheck *TraefikServiceSpecMirroringMirrorsHealthCheck `pulumi:"healthCheck"` // Kind defines the kind of the Service. Kind *string `pulumi:"kind"` // Name defines the name of the referenced Kubernetes Service or TraefikService. @@ -17994,6 +19897,11 @@ type TraefikServiceSpecMirroringMirrors struct { // The Kubernetes Service itself does load-balance to the pods. // By default, NativeLB is false. NativeLB *bool `pulumi:"nativeLB"` + // NodePortLB controls, when creating the load-balancer, + // whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. + // It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. + // By default, NodePortLB is false. + NodePortLB *bool `pulumi:"nodePortLB"` // PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. // By default, passHostHeader is true. PassHostHeader *bool `pulumi:"passHostHeader"` @@ -18013,7 +19921,7 @@ type TraefikServiceSpecMirroringMirrors struct { // Can only be used on a Kubernetes Service. ServersTransport *string `pulumi:"serversTransport"` // Sticky defines the sticky sessions configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions + // More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions Sticky *TraefikServiceSpecMirroringMirrorsSticky `pulumi:"sticky"` // Strategy defines the load balancing strategy between the servers. // RoundRobin is the only supported value at the moment. @@ -18036,6 +19944,8 @@ type TraefikServiceSpecMirroringMirrorsInput interface { // MirrorService holds the mirror configuration. type TraefikServiceSpecMirroringMirrorsArgs struct { + // Healthcheck defines health checks for ExternalName services. + HealthCheck TraefikServiceSpecMirroringMirrorsHealthCheckPtrInput `pulumi:"healthCheck"` // Kind defines the kind of the Service. Kind pulumi.StringPtrInput `pulumi:"kind"` // Name defines the name of the referenced Kubernetes Service or TraefikService. @@ -18048,6 +19958,11 @@ type TraefikServiceSpecMirroringMirrorsArgs struct { // The Kubernetes Service itself does load-balance to the pods. // By default, NativeLB is false. NativeLB pulumi.BoolPtrInput `pulumi:"nativeLB"` + // NodePortLB controls, when creating the load-balancer, + // whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. + // It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. + // By default, NodePortLB is false. + NodePortLB pulumi.BoolPtrInput `pulumi:"nodePortLB"` // PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. // By default, passHostHeader is true. PassHostHeader pulumi.BoolPtrInput `pulumi:"passHostHeader"` @@ -18067,7 +19982,7 @@ type TraefikServiceSpecMirroringMirrorsArgs struct { // Can only be used on a Kubernetes Service. ServersTransport pulumi.StringPtrInput `pulumi:"serversTransport"` // Sticky defines the sticky sessions configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions + // More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions Sticky TraefikServiceSpecMirroringMirrorsStickyPtrInput `pulumi:"sticky"` // Strategy defines the load balancing strategy between the servers. // RoundRobin is the only supported value at the moment. @@ -18147,6 +20062,13 @@ func (o TraefikServiceSpecMirroringMirrorsOutput) ToOutput(ctx context.Context) } } +// Healthcheck defines health checks for ExternalName services. +func (o TraefikServiceSpecMirroringMirrorsOutput) HealthCheck() TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringMirrors) *TraefikServiceSpecMirroringMirrorsHealthCheck { + return v.HealthCheck + }).(TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) +} + // Kind defines the kind of the Service. func (o TraefikServiceSpecMirroringMirrorsOutput) Kind() pulumi.StringPtrOutput { return o.ApplyT(func(v TraefikServiceSpecMirroringMirrors) *string { return v.Kind }).(pulumi.StringPtrOutput) @@ -18171,6 +20093,14 @@ func (o TraefikServiceSpecMirroringMirrorsOutput) NativeLB() pulumi.BoolPtrOutpu return o.ApplyT(func(v TraefikServiceSpecMirroringMirrors) *bool { return v.NativeLB }).(pulumi.BoolPtrOutput) } +// NodePortLB controls, when creating the load-balancer, +// whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. +// It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. +// By default, NodePortLB is false. +func (o TraefikServiceSpecMirroringMirrorsOutput) NodePortLB() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringMirrors) *bool { return v.NodePortLB }).(pulumi.BoolPtrOutput) +} + // PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. // By default, passHostHeader is true. func (o TraefikServiceSpecMirroringMirrorsOutput) PassHostHeader() pulumi.BoolPtrOutput { @@ -18210,7 +20140,7 @@ func (o TraefikServiceSpecMirroringMirrorsOutput) ServersTransport() pulumi.Stri } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions func (o TraefikServiceSpecMirroringMirrorsOutput) Sticky() TraefikServiceSpecMirroringMirrorsStickyPtrOutput { return o.ApplyT(func(v TraefikServiceSpecMirroringMirrors) *TraefikServiceSpecMirroringMirrorsSticky { return v.Sticky }).(TraefikServiceSpecMirroringMirrorsStickyPtrOutput) } @@ -18253,6 +20183,384 @@ func (o TraefikServiceSpecMirroringMirrorsArrayOutput) Index(i pulumi.IntInput) }).(TraefikServiceSpecMirroringMirrorsOutput) } +// Healthcheck defines health checks for ExternalName services. +type TraefikServiceSpecMirroringMirrorsHealthCheck struct { + // FollowRedirects defines whether redirects should be followed during the health check calls. + // Default: true + FollowRedirects *bool `pulumi:"followRedirects"` + // Headers defines custom headers to be sent to the health check endpoint. + Headers map[string]string `pulumi:"headers"` + // Hostname defines the value of hostname in the Host header of the health check request. + Hostname *string `pulumi:"hostname"` + // Interval defines the frequency of the health check calls. + // Default: 30s + Interval interface{} `pulumi:"interval"` + // Method defines the healthcheck method. + Method *string `pulumi:"method"` + // Mode defines the health check mode. + // If defined to grpc, will use the gRPC health check protocol to probe the server. + // Default: http + Mode *string `pulumi:"mode"` + // Path defines the server URL path for the health check endpoint. + Path *string `pulumi:"path"` + // Port defines the server URL port for the health check endpoint. + Port *int `pulumi:"port"` + // Scheme replaces the server URL scheme for the health check endpoint. + Scheme *string `pulumi:"scheme"` + // Status defines the expected HTTP status code of the response to the health check request. + Status *int `pulumi:"status"` + // Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. + // Default: 5s + Timeout interface{} `pulumi:"timeout"` +} + +// TraefikServiceSpecMirroringMirrorsHealthCheckInput is an input type that accepts TraefikServiceSpecMirroringMirrorsHealthCheckArgs and TraefikServiceSpecMirroringMirrorsHealthCheckOutput values. +// You can construct a concrete instance of `TraefikServiceSpecMirroringMirrorsHealthCheckInput` via: +// +// TraefikServiceSpecMirroringMirrorsHealthCheckArgs{...} +type TraefikServiceSpecMirroringMirrorsHealthCheckInput interface { + pulumi.Input + + ToTraefikServiceSpecMirroringMirrorsHealthCheckOutput() TraefikServiceSpecMirroringMirrorsHealthCheckOutput + ToTraefikServiceSpecMirroringMirrorsHealthCheckOutputWithContext(context.Context) TraefikServiceSpecMirroringMirrorsHealthCheckOutput +} + +// Healthcheck defines health checks for ExternalName services. +type TraefikServiceSpecMirroringMirrorsHealthCheckArgs struct { + // FollowRedirects defines whether redirects should be followed during the health check calls. + // Default: true + FollowRedirects pulumi.BoolPtrInput `pulumi:"followRedirects"` + // Headers defines custom headers to be sent to the health check endpoint. + Headers pulumi.StringMapInput `pulumi:"headers"` + // Hostname defines the value of hostname in the Host header of the health check request. + Hostname pulumi.StringPtrInput `pulumi:"hostname"` + // Interval defines the frequency of the health check calls. + // Default: 30s + Interval pulumi.Input `pulumi:"interval"` + // Method defines the healthcheck method. + Method pulumi.StringPtrInput `pulumi:"method"` + // Mode defines the health check mode. + // If defined to grpc, will use the gRPC health check protocol to probe the server. + // Default: http + Mode pulumi.StringPtrInput `pulumi:"mode"` + // Path defines the server URL path for the health check endpoint. + Path pulumi.StringPtrInput `pulumi:"path"` + // Port defines the server URL port for the health check endpoint. + Port pulumi.IntPtrInput `pulumi:"port"` + // Scheme replaces the server URL scheme for the health check endpoint. + Scheme pulumi.StringPtrInput `pulumi:"scheme"` + // Status defines the expected HTTP status code of the response to the health check request. + Status pulumi.IntPtrInput `pulumi:"status"` + // Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. + // Default: 5s + Timeout pulumi.Input `pulumi:"timeout"` +} + +func (TraefikServiceSpecMirroringMirrorsHealthCheckArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TraefikServiceSpecMirroringMirrorsHealthCheck)(nil)).Elem() +} + +func (i TraefikServiceSpecMirroringMirrorsHealthCheckArgs) ToTraefikServiceSpecMirroringMirrorsHealthCheckOutput() TraefikServiceSpecMirroringMirrorsHealthCheckOutput { + return i.ToTraefikServiceSpecMirroringMirrorsHealthCheckOutputWithContext(context.Background()) +} + +func (i TraefikServiceSpecMirroringMirrorsHealthCheckArgs) ToTraefikServiceSpecMirroringMirrorsHealthCheckOutputWithContext(ctx context.Context) TraefikServiceSpecMirroringMirrorsHealthCheckOutput { + return pulumi.ToOutputWithContext(ctx, i).(TraefikServiceSpecMirroringMirrorsHealthCheckOutput) +} + +func (i TraefikServiceSpecMirroringMirrorsHealthCheckArgs) ToOutput(ctx context.Context) pulumix.Output[TraefikServiceSpecMirroringMirrorsHealthCheck] { + return pulumix.Output[TraefikServiceSpecMirroringMirrorsHealthCheck]{ + OutputState: i.ToTraefikServiceSpecMirroringMirrorsHealthCheckOutputWithContext(ctx).OutputState, + } +} + +func (i TraefikServiceSpecMirroringMirrorsHealthCheckArgs) ToTraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput() TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput { + return i.ToTraefikServiceSpecMirroringMirrorsHealthCheckPtrOutputWithContext(context.Background()) +} + +func (i TraefikServiceSpecMirroringMirrorsHealthCheckArgs) ToTraefikServiceSpecMirroringMirrorsHealthCheckPtrOutputWithContext(ctx context.Context) TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TraefikServiceSpecMirroringMirrorsHealthCheckOutput).ToTraefikServiceSpecMirroringMirrorsHealthCheckPtrOutputWithContext(ctx) +} + +// TraefikServiceSpecMirroringMirrorsHealthCheckPtrInput is an input type that accepts TraefikServiceSpecMirroringMirrorsHealthCheckArgs, TraefikServiceSpecMirroringMirrorsHealthCheckPtr and TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput values. +// You can construct a concrete instance of `TraefikServiceSpecMirroringMirrorsHealthCheckPtrInput` via: +// +// TraefikServiceSpecMirroringMirrorsHealthCheckArgs{...} +// +// or: +// +// nil +type TraefikServiceSpecMirroringMirrorsHealthCheckPtrInput interface { + pulumi.Input + + ToTraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput() TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput + ToTraefikServiceSpecMirroringMirrorsHealthCheckPtrOutputWithContext(context.Context) TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput +} + +type traefikServiceSpecMirroringMirrorsHealthCheckPtrType TraefikServiceSpecMirroringMirrorsHealthCheckArgs + +func TraefikServiceSpecMirroringMirrorsHealthCheckPtr(v *TraefikServiceSpecMirroringMirrorsHealthCheckArgs) TraefikServiceSpecMirroringMirrorsHealthCheckPtrInput { + return (*traefikServiceSpecMirroringMirrorsHealthCheckPtrType)(v) +} + +func (*traefikServiceSpecMirroringMirrorsHealthCheckPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TraefikServiceSpecMirroringMirrorsHealthCheck)(nil)).Elem() +} + +func (i *traefikServiceSpecMirroringMirrorsHealthCheckPtrType) ToTraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput() TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput { + return i.ToTraefikServiceSpecMirroringMirrorsHealthCheckPtrOutputWithContext(context.Background()) +} + +func (i *traefikServiceSpecMirroringMirrorsHealthCheckPtrType) ToTraefikServiceSpecMirroringMirrorsHealthCheckPtrOutputWithContext(ctx context.Context) TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) +} + +func (i *traefikServiceSpecMirroringMirrorsHealthCheckPtrType) ToOutput(ctx context.Context) pulumix.Output[*TraefikServiceSpecMirroringMirrorsHealthCheck] { + return pulumix.Output[*TraefikServiceSpecMirroringMirrorsHealthCheck]{ + OutputState: i.ToTraefikServiceSpecMirroringMirrorsHealthCheckPtrOutputWithContext(ctx).OutputState, + } +} + +// Healthcheck defines health checks for ExternalName services. +type TraefikServiceSpecMirroringMirrorsHealthCheckOutput struct{ *pulumi.OutputState } + +func (TraefikServiceSpecMirroringMirrorsHealthCheckOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TraefikServiceSpecMirroringMirrorsHealthCheck)(nil)).Elem() +} + +func (o TraefikServiceSpecMirroringMirrorsHealthCheckOutput) ToTraefikServiceSpecMirroringMirrorsHealthCheckOutput() TraefikServiceSpecMirroringMirrorsHealthCheckOutput { + return o +} + +func (o TraefikServiceSpecMirroringMirrorsHealthCheckOutput) ToTraefikServiceSpecMirroringMirrorsHealthCheckOutputWithContext(ctx context.Context) TraefikServiceSpecMirroringMirrorsHealthCheckOutput { + return o +} + +func (o TraefikServiceSpecMirroringMirrorsHealthCheckOutput) ToTraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput() TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput { + return o.ToTraefikServiceSpecMirroringMirrorsHealthCheckPtrOutputWithContext(context.Background()) +} + +func (o TraefikServiceSpecMirroringMirrorsHealthCheckOutput) ToTraefikServiceSpecMirroringMirrorsHealthCheckPtrOutputWithContext(ctx context.Context) TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TraefikServiceSpecMirroringMirrorsHealthCheck) *TraefikServiceSpecMirroringMirrorsHealthCheck { + return &v + }).(TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) +} + +func (o TraefikServiceSpecMirroringMirrorsHealthCheckOutput) ToOutput(ctx context.Context) pulumix.Output[TraefikServiceSpecMirroringMirrorsHealthCheck] { + return pulumix.Output[TraefikServiceSpecMirroringMirrorsHealthCheck]{ + OutputState: o.OutputState, + } +} + +// FollowRedirects defines whether redirects should be followed during the health check calls. +// Default: true +func (o TraefikServiceSpecMirroringMirrorsHealthCheckOutput) FollowRedirects() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringMirrorsHealthCheck) *bool { return v.FollowRedirects }).(pulumi.BoolPtrOutput) +} + +// Headers defines custom headers to be sent to the health check endpoint. +func (o TraefikServiceSpecMirroringMirrorsHealthCheckOutput) Headers() pulumi.StringMapOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringMirrorsHealthCheck) map[string]string { return v.Headers }).(pulumi.StringMapOutput) +} + +// Hostname defines the value of hostname in the Host header of the health check request. +func (o TraefikServiceSpecMirroringMirrorsHealthCheckOutput) Hostname() pulumi.StringPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringMirrorsHealthCheck) *string { return v.Hostname }).(pulumi.StringPtrOutput) +} + +// Interval defines the frequency of the health check calls. +// Default: 30s +func (o TraefikServiceSpecMirroringMirrorsHealthCheckOutput) Interval() pulumi.AnyOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringMirrorsHealthCheck) interface{} { return v.Interval }).(pulumi.AnyOutput) +} + +// Method defines the healthcheck method. +func (o TraefikServiceSpecMirroringMirrorsHealthCheckOutput) Method() pulumi.StringPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringMirrorsHealthCheck) *string { return v.Method }).(pulumi.StringPtrOutput) +} + +// Mode defines the health check mode. +// If defined to grpc, will use the gRPC health check protocol to probe the server. +// Default: http +func (o TraefikServiceSpecMirroringMirrorsHealthCheckOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringMirrorsHealthCheck) *string { return v.Mode }).(pulumi.StringPtrOutput) +} + +// Path defines the server URL path for the health check endpoint. +func (o TraefikServiceSpecMirroringMirrorsHealthCheckOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringMirrorsHealthCheck) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +// Port defines the server URL port for the health check endpoint. +func (o TraefikServiceSpecMirroringMirrorsHealthCheckOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringMirrorsHealthCheck) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// Scheme replaces the server URL scheme for the health check endpoint. +func (o TraefikServiceSpecMirroringMirrorsHealthCheckOutput) Scheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringMirrorsHealthCheck) *string { return v.Scheme }).(pulumi.StringPtrOutput) +} + +// Status defines the expected HTTP status code of the response to the health check request. +func (o TraefikServiceSpecMirroringMirrorsHealthCheckOutput) Status() pulumi.IntPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringMirrorsHealthCheck) *int { return v.Status }).(pulumi.IntPtrOutput) +} + +// Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. +// Default: 5s +func (o TraefikServiceSpecMirroringMirrorsHealthCheckOutput) Timeout() pulumi.AnyOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringMirrorsHealthCheck) interface{} { return v.Timeout }).(pulumi.AnyOutput) +} + +type TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput struct{ *pulumi.OutputState } + +func (TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TraefikServiceSpecMirroringMirrorsHealthCheck)(nil)).Elem() +} + +func (o TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) ToTraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput() TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput { + return o +} + +func (o TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) ToTraefikServiceSpecMirroringMirrorsHealthCheckPtrOutputWithContext(ctx context.Context) TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput { + return o +} + +func (o TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*TraefikServiceSpecMirroringMirrorsHealthCheck] { + return pulumix.Output[*TraefikServiceSpecMirroringMirrorsHealthCheck]{ + OutputState: o.OutputState, + } +} + +func (o TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) Elem() TraefikServiceSpecMirroringMirrorsHealthCheckOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringMirrorsHealthCheck) TraefikServiceSpecMirroringMirrorsHealthCheck { + if v != nil { + return *v + } + var ret TraefikServiceSpecMirroringMirrorsHealthCheck + return ret + }).(TraefikServiceSpecMirroringMirrorsHealthCheckOutput) +} + +// FollowRedirects defines whether redirects should be followed during the health check calls. +// Default: true +func (o TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) FollowRedirects() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringMirrorsHealthCheck) *bool { + if v == nil { + return nil + } + return v.FollowRedirects + }).(pulumi.BoolPtrOutput) +} + +// Headers defines custom headers to be sent to the health check endpoint. +func (o TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) Headers() pulumi.StringMapOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringMirrorsHealthCheck) map[string]string { + if v == nil { + return nil + } + return v.Headers + }).(pulumi.StringMapOutput) +} + +// Hostname defines the value of hostname in the Host header of the health check request. +func (o TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) Hostname() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringMirrorsHealthCheck) *string { + if v == nil { + return nil + } + return v.Hostname + }).(pulumi.StringPtrOutput) +} + +// Interval defines the frequency of the health check calls. +// Default: 30s +func (o TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) Interval() pulumi.AnyOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringMirrorsHealthCheck) interface{} { + if v == nil { + return nil + } + return v.Interval + }).(pulumi.AnyOutput) +} + +// Method defines the healthcheck method. +func (o TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) Method() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringMirrorsHealthCheck) *string { + if v == nil { + return nil + } + return v.Method + }).(pulumi.StringPtrOutput) +} + +// Mode defines the health check mode. +// If defined to grpc, will use the gRPC health check protocol to probe the server. +// Default: http +func (o TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringMirrorsHealthCheck) *string { + if v == nil { + return nil + } + return v.Mode + }).(pulumi.StringPtrOutput) +} + +// Path defines the server URL path for the health check endpoint. +func (o TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringMirrorsHealthCheck) *string { + if v == nil { + return nil + } + return v.Path + }).(pulumi.StringPtrOutput) +} + +// Port defines the server URL port for the health check endpoint. +func (o TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringMirrorsHealthCheck) *int { + if v == nil { + return nil + } + return v.Port + }).(pulumi.IntPtrOutput) +} + +// Scheme replaces the server URL scheme for the health check endpoint. +func (o TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) Scheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringMirrorsHealthCheck) *string { + if v == nil { + return nil + } + return v.Scheme + }).(pulumi.StringPtrOutput) +} + +// Status defines the expected HTTP status code of the response to the health check request. +func (o TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) Status() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringMirrorsHealthCheck) *int { + if v == nil { + return nil + } + return v.Status + }).(pulumi.IntPtrOutput) +} + +// Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. +// Default: 5s +func (o TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput) Timeout() pulumi.AnyOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringMirrorsHealthCheck) interface{} { + if v == nil { + return nil + } + return v.Timeout + }).(pulumi.AnyOutput) +} + +// Headers defines custom headers to be sent to the health check endpoint. +type TraefikServiceSpecMirroringMirrorsHealthCheckHeaders struct { +} + // ResponseForwarding defines how Traefik forwards the response from the upstream Kubernetes Service to the client. type TraefikServiceSpecMirroringMirrorsResponseForwarding struct { // FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body. @@ -18434,7 +20742,7 @@ func (o TraefikServiceSpecMirroringMirrorsResponseForwardingPtrOutput) FlushInte } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions type TraefikServiceSpecMirroringMirrorsSticky struct { // Cookie defines the sticky cookie configuration. Cookie *TraefikServiceSpecMirroringMirrorsStickyCookie `pulumi:"cookie"` @@ -18452,7 +20760,7 @@ type TraefikServiceSpecMirroringMirrorsStickyInput interface { } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions type TraefikServiceSpecMirroringMirrorsStickyArgs struct { // Cookie defines the sticky cookie configuration. Cookie TraefikServiceSpecMirroringMirrorsStickyCookiePtrInput `pulumi:"cookie"` @@ -18524,7 +20832,7 @@ func (i *traefikServiceSpecMirroringMirrorsStickyPtrType) ToOutput(ctx context.C } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions type TraefikServiceSpecMirroringMirrorsStickyOutput struct{ *pulumi.OutputState } func (TraefikServiceSpecMirroringMirrorsStickyOutput) ElementType() reflect.Type { @@ -18606,6 +20914,10 @@ func (o TraefikServiceSpecMirroringMirrorsStickyPtrOutput) Cookie() TraefikServi type TraefikServiceSpecMirroringMirrorsStickyCookie struct { // HTTPOnly defines whether the cookie can be accessed by client-side APIs, such as JavaScript. HttpOnly *bool `pulumi:"httpOnly"` + // MaxAge indicates the number of seconds until the cookie expires. + // When set to a negative number, the cookie expires immediately. + // When set to zero, the cookie never expires. + MaxAge *int `pulumi:"maxAge"` // Name defines the Cookie name. Name *string `pulumi:"name"` // SameSite defines the same site policy. @@ -18630,6 +20942,10 @@ type TraefikServiceSpecMirroringMirrorsStickyCookieInput interface { type TraefikServiceSpecMirroringMirrorsStickyCookieArgs struct { // HTTPOnly defines whether the cookie can be accessed by client-side APIs, such as JavaScript. HttpOnly pulumi.BoolPtrInput `pulumi:"httpOnly"` + // MaxAge indicates the number of seconds until the cookie expires. + // When set to a negative number, the cookie expires immediately. + // When set to zero, the cookie never expires. + MaxAge pulumi.IntPtrInput `pulumi:"maxAge"` // Name defines the Cookie name. Name pulumi.StringPtrInput `pulumi:"name"` // SameSite defines the same site policy. @@ -18740,6 +21056,13 @@ func (o TraefikServiceSpecMirroringMirrorsStickyCookieOutput) HttpOnly() pulumi. return o.ApplyT(func(v TraefikServiceSpecMirroringMirrorsStickyCookie) *bool { return v.HttpOnly }).(pulumi.BoolPtrOutput) } +// MaxAge indicates the number of seconds until the cookie expires. +// When set to a negative number, the cookie expires immediately. +// When set to zero, the cookie never expires. +func (o TraefikServiceSpecMirroringMirrorsStickyCookieOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringMirrorsStickyCookie) *int { return v.MaxAge }).(pulumi.IntPtrOutput) +} + // Name defines the Cookie name. func (o TraefikServiceSpecMirroringMirrorsStickyCookieOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v TraefikServiceSpecMirroringMirrorsStickyCookie) *string { return v.Name }).(pulumi.StringPtrOutput) @@ -18796,6 +21119,18 @@ func (o TraefikServiceSpecMirroringMirrorsStickyCookiePtrOutput) HttpOnly() pulu }).(pulumi.BoolPtrOutput) } +// MaxAge indicates the number of seconds until the cookie expires. +// When set to a negative number, the cookie expires immediately. +// When set to zero, the cookie never expires. +func (o TraefikServiceSpecMirroringMirrorsStickyCookiePtrOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringMirrorsStickyCookie) *int { + if v == nil { + return nil + } + return v.MaxAge + }).(pulumi.IntPtrOutput) +} + // Name defines the Cookie name. func (o TraefikServiceSpecMirroringMirrorsStickyCookiePtrOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v *TraefikServiceSpecMirroringMirrorsStickyCookie) *string { @@ -19008,7 +21343,7 @@ func (o TraefikServiceSpecMirroringResponseForwardingPtrOutput) FlushInterval() } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions type TraefikServiceSpecMirroringSticky struct { // Cookie defines the sticky cookie configuration. Cookie *TraefikServiceSpecMirroringStickyCookie `pulumi:"cookie"` @@ -19026,7 +21361,7 @@ type TraefikServiceSpecMirroringStickyInput interface { } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions type TraefikServiceSpecMirroringStickyArgs struct { // Cookie defines the sticky cookie configuration. Cookie TraefikServiceSpecMirroringStickyCookiePtrInput `pulumi:"cookie"` @@ -19098,7 +21433,7 @@ func (i *traefikServiceSpecMirroringStickyPtrType) ToOutput(ctx context.Context) } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions type TraefikServiceSpecMirroringStickyOutput struct{ *pulumi.OutputState } func (TraefikServiceSpecMirroringStickyOutput) ElementType() reflect.Type { @@ -19178,6 +21513,10 @@ func (o TraefikServiceSpecMirroringStickyPtrOutput) Cookie() TraefikServiceSpecM type TraefikServiceSpecMirroringStickyCookie struct { // HTTPOnly defines whether the cookie can be accessed by client-side APIs, such as JavaScript. HttpOnly *bool `pulumi:"httpOnly"` + // MaxAge indicates the number of seconds until the cookie expires. + // When set to a negative number, the cookie expires immediately. + // When set to zero, the cookie never expires. + MaxAge *int `pulumi:"maxAge"` // Name defines the Cookie name. Name *string `pulumi:"name"` // SameSite defines the same site policy. @@ -19202,6 +21541,10 @@ type TraefikServiceSpecMirroringStickyCookieInput interface { type TraefikServiceSpecMirroringStickyCookieArgs struct { // HTTPOnly defines whether the cookie can be accessed by client-side APIs, such as JavaScript. HttpOnly pulumi.BoolPtrInput `pulumi:"httpOnly"` + // MaxAge indicates the number of seconds until the cookie expires. + // When set to a negative number, the cookie expires immediately. + // When set to zero, the cookie never expires. + MaxAge pulumi.IntPtrInput `pulumi:"maxAge"` // Name defines the Cookie name. Name pulumi.StringPtrInput `pulumi:"name"` // SameSite defines the same site policy. @@ -19312,6 +21655,13 @@ func (o TraefikServiceSpecMirroringStickyCookieOutput) HttpOnly() pulumi.BoolPtr return o.ApplyT(func(v TraefikServiceSpecMirroringStickyCookie) *bool { return v.HttpOnly }).(pulumi.BoolPtrOutput) } +// MaxAge indicates the number of seconds until the cookie expires. +// When set to a negative number, the cookie expires immediately. +// When set to zero, the cookie never expires. +func (o TraefikServiceSpecMirroringStickyCookieOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecMirroringStickyCookie) *int { return v.MaxAge }).(pulumi.IntPtrOutput) +} + // Name defines the Cookie name. func (o TraefikServiceSpecMirroringStickyCookieOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v TraefikServiceSpecMirroringStickyCookie) *string { return v.Name }).(pulumi.StringPtrOutput) @@ -19368,6 +21718,18 @@ func (o TraefikServiceSpecMirroringStickyCookiePtrOutput) HttpOnly() pulumi.Bool }).(pulumi.BoolPtrOutput) } +// MaxAge indicates the number of seconds until the cookie expires. +// When set to a negative number, the cookie expires immediately. +// When set to zero, the cookie never expires. +func (o TraefikServiceSpecMirroringStickyCookiePtrOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecMirroringStickyCookie) *int { + if v == nil { + return nil + } + return v.MaxAge + }).(pulumi.IntPtrOutput) +} + // Name defines the Cookie name. func (o TraefikServiceSpecMirroringStickyCookiePtrOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v *TraefikServiceSpecMirroringStickyCookie) *string { @@ -19404,7 +21766,7 @@ type TraefikServiceSpecWeighted struct { // Services defines the list of Kubernetes Service and/or TraefikService to load-balance, with weight. Services []TraefikServiceSpecWeightedServices `pulumi:"services"` // Sticky defines whether sticky sessions are enabled. - // More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#stickiness-and-load-balancing + // More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#stickiness-and-load-balancing Sticky *TraefikServiceSpecWeightedSticky `pulumi:"sticky"` } @@ -19424,7 +21786,7 @@ type TraefikServiceSpecWeightedArgs struct { // Services defines the list of Kubernetes Service and/or TraefikService to load-balance, with weight. Services TraefikServiceSpecWeightedServicesArrayInput `pulumi:"services"` // Sticky defines whether sticky sessions are enabled. - // More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#stickiness-and-load-balancing + // More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#stickiness-and-load-balancing Sticky TraefikServiceSpecWeightedStickyPtrInput `pulumi:"sticky"` } @@ -19530,7 +21892,7 @@ func (o TraefikServiceSpecWeightedOutput) Services() TraefikServiceSpecWeightedS } // Sticky defines whether sticky sessions are enabled. -// More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#stickiness-and-load-balancing +// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#stickiness-and-load-balancing func (o TraefikServiceSpecWeightedOutput) Sticky() TraefikServiceSpecWeightedStickyPtrOutput { return o.ApplyT(func(v TraefikServiceSpecWeighted) *TraefikServiceSpecWeightedSticky { return v.Sticky }).(TraefikServiceSpecWeightedStickyPtrOutput) } @@ -19576,7 +21938,7 @@ func (o TraefikServiceSpecWeightedPtrOutput) Services() TraefikServiceSpecWeight } // Sticky defines whether sticky sessions are enabled. -// More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#stickiness-and-load-balancing +// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#stickiness-and-load-balancing func (o TraefikServiceSpecWeightedPtrOutput) Sticky() TraefikServiceSpecWeightedStickyPtrOutput { return o.ApplyT(func(v *TraefikServiceSpecWeighted) *TraefikServiceSpecWeightedSticky { if v == nil { @@ -19588,6 +21950,8 @@ func (o TraefikServiceSpecWeightedPtrOutput) Sticky() TraefikServiceSpecWeighted // Service defines an upstream HTTP service to proxy traffic to. type TraefikServiceSpecWeightedServices struct { + // Healthcheck defines health checks for ExternalName services. + HealthCheck *TraefikServiceSpecWeightedServicesHealthCheck `pulumi:"healthCheck"` // Kind defines the kind of the Service. Kind *string `pulumi:"kind"` // Name defines the name of the referenced Kubernetes Service or TraefikService. @@ -19600,6 +21964,11 @@ type TraefikServiceSpecWeightedServices struct { // The Kubernetes Service itself does load-balance to the pods. // By default, NativeLB is false. NativeLB *bool `pulumi:"nativeLB"` + // NodePortLB controls, when creating the load-balancer, + // whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. + // It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. + // By default, NodePortLB is false. + NodePortLB *bool `pulumi:"nodePortLB"` // PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. // By default, passHostHeader is true. PassHostHeader *bool `pulumi:"passHostHeader"` @@ -19616,7 +21985,7 @@ type TraefikServiceSpecWeightedServices struct { // Can only be used on a Kubernetes Service. ServersTransport *string `pulumi:"serversTransport"` // Sticky defines the sticky sessions configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions + // More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions Sticky *TraefikServiceSpecWeightedServicesSticky `pulumi:"sticky"` // Strategy defines the load balancing strategy between the servers. // RoundRobin is the only supported value at the moment. @@ -19639,6 +22008,8 @@ type TraefikServiceSpecWeightedServicesInput interface { // Service defines an upstream HTTP service to proxy traffic to. type TraefikServiceSpecWeightedServicesArgs struct { + // Healthcheck defines health checks for ExternalName services. + HealthCheck TraefikServiceSpecWeightedServicesHealthCheckPtrInput `pulumi:"healthCheck"` // Kind defines the kind of the Service. Kind pulumi.StringPtrInput `pulumi:"kind"` // Name defines the name of the referenced Kubernetes Service or TraefikService. @@ -19651,6 +22022,11 @@ type TraefikServiceSpecWeightedServicesArgs struct { // The Kubernetes Service itself does load-balance to the pods. // By default, NativeLB is false. NativeLB pulumi.BoolPtrInput `pulumi:"nativeLB"` + // NodePortLB controls, when creating the load-balancer, + // whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. + // It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. + // By default, NodePortLB is false. + NodePortLB pulumi.BoolPtrInput `pulumi:"nodePortLB"` // PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. // By default, passHostHeader is true. PassHostHeader pulumi.BoolPtrInput `pulumi:"passHostHeader"` @@ -19667,7 +22043,7 @@ type TraefikServiceSpecWeightedServicesArgs struct { // Can only be used on a Kubernetes Service. ServersTransport pulumi.StringPtrInput `pulumi:"serversTransport"` // Sticky defines the sticky sessions configuration. - // More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions + // More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions Sticky TraefikServiceSpecWeightedServicesStickyPtrInput `pulumi:"sticky"` // Strategy defines the load balancing strategy between the servers. // RoundRobin is the only supported value at the moment. @@ -19747,6 +22123,13 @@ func (o TraefikServiceSpecWeightedServicesOutput) ToOutput(ctx context.Context) } } +// Healthcheck defines health checks for ExternalName services. +func (o TraefikServiceSpecWeightedServicesOutput) HealthCheck() TraefikServiceSpecWeightedServicesHealthCheckPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecWeightedServices) *TraefikServiceSpecWeightedServicesHealthCheck { + return v.HealthCheck + }).(TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) +} + // Kind defines the kind of the Service. func (o TraefikServiceSpecWeightedServicesOutput) Kind() pulumi.StringPtrOutput { return o.ApplyT(func(v TraefikServiceSpecWeightedServices) *string { return v.Kind }).(pulumi.StringPtrOutput) @@ -19771,6 +22154,14 @@ func (o TraefikServiceSpecWeightedServicesOutput) NativeLB() pulumi.BoolPtrOutpu return o.ApplyT(func(v TraefikServiceSpecWeightedServices) *bool { return v.NativeLB }).(pulumi.BoolPtrOutput) } +// NodePortLB controls, when creating the load-balancer, +// whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort. +// It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. +// By default, NodePortLB is false. +func (o TraefikServiceSpecWeightedServicesOutput) NodePortLB() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecWeightedServices) *bool { return v.NodePortLB }).(pulumi.BoolPtrOutput) +} + // PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service. // By default, passHostHeader is true. func (o TraefikServiceSpecWeightedServicesOutput) PassHostHeader() pulumi.BoolPtrOutput { @@ -19804,7 +22195,7 @@ func (o TraefikServiceSpecWeightedServicesOutput) ServersTransport() pulumi.Stri } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions func (o TraefikServiceSpecWeightedServicesOutput) Sticky() TraefikServiceSpecWeightedServicesStickyPtrOutput { return o.ApplyT(func(v TraefikServiceSpecWeightedServices) *TraefikServiceSpecWeightedServicesSticky { return v.Sticky }).(TraefikServiceSpecWeightedServicesStickyPtrOutput) } @@ -19847,6 +22238,384 @@ func (o TraefikServiceSpecWeightedServicesArrayOutput) Index(i pulumi.IntInput) }).(TraefikServiceSpecWeightedServicesOutput) } +// Healthcheck defines health checks for ExternalName services. +type TraefikServiceSpecWeightedServicesHealthCheck struct { + // FollowRedirects defines whether redirects should be followed during the health check calls. + // Default: true + FollowRedirects *bool `pulumi:"followRedirects"` + // Headers defines custom headers to be sent to the health check endpoint. + Headers map[string]string `pulumi:"headers"` + // Hostname defines the value of hostname in the Host header of the health check request. + Hostname *string `pulumi:"hostname"` + // Interval defines the frequency of the health check calls. + // Default: 30s + Interval interface{} `pulumi:"interval"` + // Method defines the healthcheck method. + Method *string `pulumi:"method"` + // Mode defines the health check mode. + // If defined to grpc, will use the gRPC health check protocol to probe the server. + // Default: http + Mode *string `pulumi:"mode"` + // Path defines the server URL path for the health check endpoint. + Path *string `pulumi:"path"` + // Port defines the server URL port for the health check endpoint. + Port *int `pulumi:"port"` + // Scheme replaces the server URL scheme for the health check endpoint. + Scheme *string `pulumi:"scheme"` + // Status defines the expected HTTP status code of the response to the health check request. + Status *int `pulumi:"status"` + // Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. + // Default: 5s + Timeout interface{} `pulumi:"timeout"` +} + +// TraefikServiceSpecWeightedServicesHealthCheckInput is an input type that accepts TraefikServiceSpecWeightedServicesHealthCheckArgs and TraefikServiceSpecWeightedServicesHealthCheckOutput values. +// You can construct a concrete instance of `TraefikServiceSpecWeightedServicesHealthCheckInput` via: +// +// TraefikServiceSpecWeightedServicesHealthCheckArgs{...} +type TraefikServiceSpecWeightedServicesHealthCheckInput interface { + pulumi.Input + + ToTraefikServiceSpecWeightedServicesHealthCheckOutput() TraefikServiceSpecWeightedServicesHealthCheckOutput + ToTraefikServiceSpecWeightedServicesHealthCheckOutputWithContext(context.Context) TraefikServiceSpecWeightedServicesHealthCheckOutput +} + +// Healthcheck defines health checks for ExternalName services. +type TraefikServiceSpecWeightedServicesHealthCheckArgs struct { + // FollowRedirects defines whether redirects should be followed during the health check calls. + // Default: true + FollowRedirects pulumi.BoolPtrInput `pulumi:"followRedirects"` + // Headers defines custom headers to be sent to the health check endpoint. + Headers pulumi.StringMapInput `pulumi:"headers"` + // Hostname defines the value of hostname in the Host header of the health check request. + Hostname pulumi.StringPtrInput `pulumi:"hostname"` + // Interval defines the frequency of the health check calls. + // Default: 30s + Interval pulumi.Input `pulumi:"interval"` + // Method defines the healthcheck method. + Method pulumi.StringPtrInput `pulumi:"method"` + // Mode defines the health check mode. + // If defined to grpc, will use the gRPC health check protocol to probe the server. + // Default: http + Mode pulumi.StringPtrInput `pulumi:"mode"` + // Path defines the server URL path for the health check endpoint. + Path pulumi.StringPtrInput `pulumi:"path"` + // Port defines the server URL port for the health check endpoint. + Port pulumi.IntPtrInput `pulumi:"port"` + // Scheme replaces the server URL scheme for the health check endpoint. + Scheme pulumi.StringPtrInput `pulumi:"scheme"` + // Status defines the expected HTTP status code of the response to the health check request. + Status pulumi.IntPtrInput `pulumi:"status"` + // Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. + // Default: 5s + Timeout pulumi.Input `pulumi:"timeout"` +} + +func (TraefikServiceSpecWeightedServicesHealthCheckArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TraefikServiceSpecWeightedServicesHealthCheck)(nil)).Elem() +} + +func (i TraefikServiceSpecWeightedServicesHealthCheckArgs) ToTraefikServiceSpecWeightedServicesHealthCheckOutput() TraefikServiceSpecWeightedServicesHealthCheckOutput { + return i.ToTraefikServiceSpecWeightedServicesHealthCheckOutputWithContext(context.Background()) +} + +func (i TraefikServiceSpecWeightedServicesHealthCheckArgs) ToTraefikServiceSpecWeightedServicesHealthCheckOutputWithContext(ctx context.Context) TraefikServiceSpecWeightedServicesHealthCheckOutput { + return pulumi.ToOutputWithContext(ctx, i).(TraefikServiceSpecWeightedServicesHealthCheckOutput) +} + +func (i TraefikServiceSpecWeightedServicesHealthCheckArgs) ToOutput(ctx context.Context) pulumix.Output[TraefikServiceSpecWeightedServicesHealthCheck] { + return pulumix.Output[TraefikServiceSpecWeightedServicesHealthCheck]{ + OutputState: i.ToTraefikServiceSpecWeightedServicesHealthCheckOutputWithContext(ctx).OutputState, + } +} + +func (i TraefikServiceSpecWeightedServicesHealthCheckArgs) ToTraefikServiceSpecWeightedServicesHealthCheckPtrOutput() TraefikServiceSpecWeightedServicesHealthCheckPtrOutput { + return i.ToTraefikServiceSpecWeightedServicesHealthCheckPtrOutputWithContext(context.Background()) +} + +func (i TraefikServiceSpecWeightedServicesHealthCheckArgs) ToTraefikServiceSpecWeightedServicesHealthCheckPtrOutputWithContext(ctx context.Context) TraefikServiceSpecWeightedServicesHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TraefikServiceSpecWeightedServicesHealthCheckOutput).ToTraefikServiceSpecWeightedServicesHealthCheckPtrOutputWithContext(ctx) +} + +// TraefikServiceSpecWeightedServicesHealthCheckPtrInput is an input type that accepts TraefikServiceSpecWeightedServicesHealthCheckArgs, TraefikServiceSpecWeightedServicesHealthCheckPtr and TraefikServiceSpecWeightedServicesHealthCheckPtrOutput values. +// You can construct a concrete instance of `TraefikServiceSpecWeightedServicesHealthCheckPtrInput` via: +// +// TraefikServiceSpecWeightedServicesHealthCheckArgs{...} +// +// or: +// +// nil +type TraefikServiceSpecWeightedServicesHealthCheckPtrInput interface { + pulumi.Input + + ToTraefikServiceSpecWeightedServicesHealthCheckPtrOutput() TraefikServiceSpecWeightedServicesHealthCheckPtrOutput + ToTraefikServiceSpecWeightedServicesHealthCheckPtrOutputWithContext(context.Context) TraefikServiceSpecWeightedServicesHealthCheckPtrOutput +} + +type traefikServiceSpecWeightedServicesHealthCheckPtrType TraefikServiceSpecWeightedServicesHealthCheckArgs + +func TraefikServiceSpecWeightedServicesHealthCheckPtr(v *TraefikServiceSpecWeightedServicesHealthCheckArgs) TraefikServiceSpecWeightedServicesHealthCheckPtrInput { + return (*traefikServiceSpecWeightedServicesHealthCheckPtrType)(v) +} + +func (*traefikServiceSpecWeightedServicesHealthCheckPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TraefikServiceSpecWeightedServicesHealthCheck)(nil)).Elem() +} + +func (i *traefikServiceSpecWeightedServicesHealthCheckPtrType) ToTraefikServiceSpecWeightedServicesHealthCheckPtrOutput() TraefikServiceSpecWeightedServicesHealthCheckPtrOutput { + return i.ToTraefikServiceSpecWeightedServicesHealthCheckPtrOutputWithContext(context.Background()) +} + +func (i *traefikServiceSpecWeightedServicesHealthCheckPtrType) ToTraefikServiceSpecWeightedServicesHealthCheckPtrOutputWithContext(ctx context.Context) TraefikServiceSpecWeightedServicesHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) +} + +func (i *traefikServiceSpecWeightedServicesHealthCheckPtrType) ToOutput(ctx context.Context) pulumix.Output[*TraefikServiceSpecWeightedServicesHealthCheck] { + return pulumix.Output[*TraefikServiceSpecWeightedServicesHealthCheck]{ + OutputState: i.ToTraefikServiceSpecWeightedServicesHealthCheckPtrOutputWithContext(ctx).OutputState, + } +} + +// Healthcheck defines health checks for ExternalName services. +type TraefikServiceSpecWeightedServicesHealthCheckOutput struct{ *pulumi.OutputState } + +func (TraefikServiceSpecWeightedServicesHealthCheckOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TraefikServiceSpecWeightedServicesHealthCheck)(nil)).Elem() +} + +func (o TraefikServiceSpecWeightedServicesHealthCheckOutput) ToTraefikServiceSpecWeightedServicesHealthCheckOutput() TraefikServiceSpecWeightedServicesHealthCheckOutput { + return o +} + +func (o TraefikServiceSpecWeightedServicesHealthCheckOutput) ToTraefikServiceSpecWeightedServicesHealthCheckOutputWithContext(ctx context.Context) TraefikServiceSpecWeightedServicesHealthCheckOutput { + return o +} + +func (o TraefikServiceSpecWeightedServicesHealthCheckOutput) ToTraefikServiceSpecWeightedServicesHealthCheckPtrOutput() TraefikServiceSpecWeightedServicesHealthCheckPtrOutput { + return o.ToTraefikServiceSpecWeightedServicesHealthCheckPtrOutputWithContext(context.Background()) +} + +func (o TraefikServiceSpecWeightedServicesHealthCheckOutput) ToTraefikServiceSpecWeightedServicesHealthCheckPtrOutputWithContext(ctx context.Context) TraefikServiceSpecWeightedServicesHealthCheckPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TraefikServiceSpecWeightedServicesHealthCheck) *TraefikServiceSpecWeightedServicesHealthCheck { + return &v + }).(TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) +} + +func (o TraefikServiceSpecWeightedServicesHealthCheckOutput) ToOutput(ctx context.Context) pulumix.Output[TraefikServiceSpecWeightedServicesHealthCheck] { + return pulumix.Output[TraefikServiceSpecWeightedServicesHealthCheck]{ + OutputState: o.OutputState, + } +} + +// FollowRedirects defines whether redirects should be followed during the health check calls. +// Default: true +func (o TraefikServiceSpecWeightedServicesHealthCheckOutput) FollowRedirects() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecWeightedServicesHealthCheck) *bool { return v.FollowRedirects }).(pulumi.BoolPtrOutput) +} + +// Headers defines custom headers to be sent to the health check endpoint. +func (o TraefikServiceSpecWeightedServicesHealthCheckOutput) Headers() pulumi.StringMapOutput { + return o.ApplyT(func(v TraefikServiceSpecWeightedServicesHealthCheck) map[string]string { return v.Headers }).(pulumi.StringMapOutput) +} + +// Hostname defines the value of hostname in the Host header of the health check request. +func (o TraefikServiceSpecWeightedServicesHealthCheckOutput) Hostname() pulumi.StringPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecWeightedServicesHealthCheck) *string { return v.Hostname }).(pulumi.StringPtrOutput) +} + +// Interval defines the frequency of the health check calls. +// Default: 30s +func (o TraefikServiceSpecWeightedServicesHealthCheckOutput) Interval() pulumi.AnyOutput { + return o.ApplyT(func(v TraefikServiceSpecWeightedServicesHealthCheck) interface{} { return v.Interval }).(pulumi.AnyOutput) +} + +// Method defines the healthcheck method. +func (o TraefikServiceSpecWeightedServicesHealthCheckOutput) Method() pulumi.StringPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecWeightedServicesHealthCheck) *string { return v.Method }).(pulumi.StringPtrOutput) +} + +// Mode defines the health check mode. +// If defined to grpc, will use the gRPC health check protocol to probe the server. +// Default: http +func (o TraefikServiceSpecWeightedServicesHealthCheckOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecWeightedServicesHealthCheck) *string { return v.Mode }).(pulumi.StringPtrOutput) +} + +// Path defines the server URL path for the health check endpoint. +func (o TraefikServiceSpecWeightedServicesHealthCheckOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecWeightedServicesHealthCheck) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +// Port defines the server URL port for the health check endpoint. +func (o TraefikServiceSpecWeightedServicesHealthCheckOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecWeightedServicesHealthCheck) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// Scheme replaces the server URL scheme for the health check endpoint. +func (o TraefikServiceSpecWeightedServicesHealthCheckOutput) Scheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecWeightedServicesHealthCheck) *string { return v.Scheme }).(pulumi.StringPtrOutput) +} + +// Status defines the expected HTTP status code of the response to the health check request. +func (o TraefikServiceSpecWeightedServicesHealthCheckOutput) Status() pulumi.IntPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecWeightedServicesHealthCheck) *int { return v.Status }).(pulumi.IntPtrOutput) +} + +// Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. +// Default: 5s +func (o TraefikServiceSpecWeightedServicesHealthCheckOutput) Timeout() pulumi.AnyOutput { + return o.ApplyT(func(v TraefikServiceSpecWeightedServicesHealthCheck) interface{} { return v.Timeout }).(pulumi.AnyOutput) +} + +type TraefikServiceSpecWeightedServicesHealthCheckPtrOutput struct{ *pulumi.OutputState } + +func (TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TraefikServiceSpecWeightedServicesHealthCheck)(nil)).Elem() +} + +func (o TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) ToTraefikServiceSpecWeightedServicesHealthCheckPtrOutput() TraefikServiceSpecWeightedServicesHealthCheckPtrOutput { + return o +} + +func (o TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) ToTraefikServiceSpecWeightedServicesHealthCheckPtrOutputWithContext(ctx context.Context) TraefikServiceSpecWeightedServicesHealthCheckPtrOutput { + return o +} + +func (o TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*TraefikServiceSpecWeightedServicesHealthCheck] { + return pulumix.Output[*TraefikServiceSpecWeightedServicesHealthCheck]{ + OutputState: o.OutputState, + } +} + +func (o TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) Elem() TraefikServiceSpecWeightedServicesHealthCheckOutput { + return o.ApplyT(func(v *TraefikServiceSpecWeightedServicesHealthCheck) TraefikServiceSpecWeightedServicesHealthCheck { + if v != nil { + return *v + } + var ret TraefikServiceSpecWeightedServicesHealthCheck + return ret + }).(TraefikServiceSpecWeightedServicesHealthCheckOutput) +} + +// FollowRedirects defines whether redirects should be followed during the health check calls. +// Default: true +func (o TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) FollowRedirects() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecWeightedServicesHealthCheck) *bool { + if v == nil { + return nil + } + return v.FollowRedirects + }).(pulumi.BoolPtrOutput) +} + +// Headers defines custom headers to be sent to the health check endpoint. +func (o TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) Headers() pulumi.StringMapOutput { + return o.ApplyT(func(v *TraefikServiceSpecWeightedServicesHealthCheck) map[string]string { + if v == nil { + return nil + } + return v.Headers + }).(pulumi.StringMapOutput) +} + +// Hostname defines the value of hostname in the Host header of the health check request. +func (o TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) Hostname() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecWeightedServicesHealthCheck) *string { + if v == nil { + return nil + } + return v.Hostname + }).(pulumi.StringPtrOutput) +} + +// Interval defines the frequency of the health check calls. +// Default: 30s +func (o TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) Interval() pulumi.AnyOutput { + return o.ApplyT(func(v *TraefikServiceSpecWeightedServicesHealthCheck) interface{} { + if v == nil { + return nil + } + return v.Interval + }).(pulumi.AnyOutput) +} + +// Method defines the healthcheck method. +func (o TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) Method() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecWeightedServicesHealthCheck) *string { + if v == nil { + return nil + } + return v.Method + }).(pulumi.StringPtrOutput) +} + +// Mode defines the health check mode. +// If defined to grpc, will use the gRPC health check protocol to probe the server. +// Default: http +func (o TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecWeightedServicesHealthCheck) *string { + if v == nil { + return nil + } + return v.Mode + }).(pulumi.StringPtrOutput) +} + +// Path defines the server URL path for the health check endpoint. +func (o TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecWeightedServicesHealthCheck) *string { + if v == nil { + return nil + } + return v.Path + }).(pulumi.StringPtrOutput) +} + +// Port defines the server URL port for the health check endpoint. +func (o TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecWeightedServicesHealthCheck) *int { + if v == nil { + return nil + } + return v.Port + }).(pulumi.IntPtrOutput) +} + +// Scheme replaces the server URL scheme for the health check endpoint. +func (o TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) Scheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecWeightedServicesHealthCheck) *string { + if v == nil { + return nil + } + return v.Scheme + }).(pulumi.StringPtrOutput) +} + +// Status defines the expected HTTP status code of the response to the health check request. +func (o TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) Status() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecWeightedServicesHealthCheck) *int { + if v == nil { + return nil + } + return v.Status + }).(pulumi.IntPtrOutput) +} + +// Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy. +// Default: 5s +func (o TraefikServiceSpecWeightedServicesHealthCheckPtrOutput) Timeout() pulumi.AnyOutput { + return o.ApplyT(func(v *TraefikServiceSpecWeightedServicesHealthCheck) interface{} { + if v == nil { + return nil + } + return v.Timeout + }).(pulumi.AnyOutput) +} + +// Headers defines custom headers to be sent to the health check endpoint. +type TraefikServiceSpecWeightedServicesHealthCheckHeaders struct { +} + // ResponseForwarding defines how Traefik forwards the response from the upstream Kubernetes Service to the client. type TraefikServiceSpecWeightedServicesResponseForwarding struct { // FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body. @@ -20028,7 +22797,7 @@ func (o TraefikServiceSpecWeightedServicesResponseForwardingPtrOutput) FlushInte } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions type TraefikServiceSpecWeightedServicesSticky struct { // Cookie defines the sticky cookie configuration. Cookie *TraefikServiceSpecWeightedServicesStickyCookie `pulumi:"cookie"` @@ -20046,7 +22815,7 @@ type TraefikServiceSpecWeightedServicesStickyInput interface { } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions type TraefikServiceSpecWeightedServicesStickyArgs struct { // Cookie defines the sticky cookie configuration. Cookie TraefikServiceSpecWeightedServicesStickyCookiePtrInput `pulumi:"cookie"` @@ -20118,7 +22887,7 @@ func (i *traefikServiceSpecWeightedServicesStickyPtrType) ToOutput(ctx context.C } // Sticky defines the sticky sessions configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions type TraefikServiceSpecWeightedServicesStickyOutput struct{ *pulumi.OutputState } func (TraefikServiceSpecWeightedServicesStickyOutput) ElementType() reflect.Type { @@ -20200,6 +22969,10 @@ func (o TraefikServiceSpecWeightedServicesStickyPtrOutput) Cookie() TraefikServi type TraefikServiceSpecWeightedServicesStickyCookie struct { // HTTPOnly defines whether the cookie can be accessed by client-side APIs, such as JavaScript. HttpOnly *bool `pulumi:"httpOnly"` + // MaxAge indicates the number of seconds until the cookie expires. + // When set to a negative number, the cookie expires immediately. + // When set to zero, the cookie never expires. + MaxAge *int `pulumi:"maxAge"` // Name defines the Cookie name. Name *string `pulumi:"name"` // SameSite defines the same site policy. @@ -20224,6 +22997,10 @@ type TraefikServiceSpecWeightedServicesStickyCookieInput interface { type TraefikServiceSpecWeightedServicesStickyCookieArgs struct { // HTTPOnly defines whether the cookie can be accessed by client-side APIs, such as JavaScript. HttpOnly pulumi.BoolPtrInput `pulumi:"httpOnly"` + // MaxAge indicates the number of seconds until the cookie expires. + // When set to a negative number, the cookie expires immediately. + // When set to zero, the cookie never expires. + MaxAge pulumi.IntPtrInput `pulumi:"maxAge"` // Name defines the Cookie name. Name pulumi.StringPtrInput `pulumi:"name"` // SameSite defines the same site policy. @@ -20334,6 +23111,13 @@ func (o TraefikServiceSpecWeightedServicesStickyCookieOutput) HttpOnly() pulumi. return o.ApplyT(func(v TraefikServiceSpecWeightedServicesStickyCookie) *bool { return v.HttpOnly }).(pulumi.BoolPtrOutput) } +// MaxAge indicates the number of seconds until the cookie expires. +// When set to a negative number, the cookie expires immediately. +// When set to zero, the cookie never expires. +func (o TraefikServiceSpecWeightedServicesStickyCookieOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecWeightedServicesStickyCookie) *int { return v.MaxAge }).(pulumi.IntPtrOutput) +} + // Name defines the Cookie name. func (o TraefikServiceSpecWeightedServicesStickyCookieOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v TraefikServiceSpecWeightedServicesStickyCookie) *string { return v.Name }).(pulumi.StringPtrOutput) @@ -20390,6 +23174,18 @@ func (o TraefikServiceSpecWeightedServicesStickyCookiePtrOutput) HttpOnly() pulu }).(pulumi.BoolPtrOutput) } +// MaxAge indicates the number of seconds until the cookie expires. +// When set to a negative number, the cookie expires immediately. +// When set to zero, the cookie never expires. +func (o TraefikServiceSpecWeightedServicesStickyCookiePtrOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecWeightedServicesStickyCookie) *int { + if v == nil { + return nil + } + return v.MaxAge + }).(pulumi.IntPtrOutput) +} + // Name defines the Cookie name. func (o TraefikServiceSpecWeightedServicesStickyCookiePtrOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v *TraefikServiceSpecWeightedServicesStickyCookie) *string { @@ -20422,7 +23218,7 @@ func (o TraefikServiceSpecWeightedServicesStickyCookiePtrOutput) Secure() pulumi } // Sticky defines whether sticky sessions are enabled. -// More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#stickiness-and-load-balancing +// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#stickiness-and-load-balancing type TraefikServiceSpecWeightedSticky struct { // Cookie defines the sticky cookie configuration. Cookie *TraefikServiceSpecWeightedStickyCookie `pulumi:"cookie"` @@ -20440,7 +23236,7 @@ type TraefikServiceSpecWeightedStickyInput interface { } // Sticky defines whether sticky sessions are enabled. -// More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#stickiness-and-load-balancing +// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#stickiness-and-load-balancing type TraefikServiceSpecWeightedStickyArgs struct { // Cookie defines the sticky cookie configuration. Cookie TraefikServiceSpecWeightedStickyCookiePtrInput `pulumi:"cookie"` @@ -20512,7 +23308,7 @@ func (i *traefikServiceSpecWeightedStickyPtrType) ToOutput(ctx context.Context) } // Sticky defines whether sticky sessions are enabled. -// More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#stickiness-and-load-balancing +// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#stickiness-and-load-balancing type TraefikServiceSpecWeightedStickyOutput struct{ *pulumi.OutputState } func (TraefikServiceSpecWeightedStickyOutput) ElementType() reflect.Type { @@ -20592,6 +23388,10 @@ func (o TraefikServiceSpecWeightedStickyPtrOutput) Cookie() TraefikServiceSpecWe type TraefikServiceSpecWeightedStickyCookie struct { // HTTPOnly defines whether the cookie can be accessed by client-side APIs, such as JavaScript. HttpOnly *bool `pulumi:"httpOnly"` + // MaxAge indicates the number of seconds until the cookie expires. + // When set to a negative number, the cookie expires immediately. + // When set to zero, the cookie never expires. + MaxAge *int `pulumi:"maxAge"` // Name defines the Cookie name. Name *string `pulumi:"name"` // SameSite defines the same site policy. @@ -20616,6 +23416,10 @@ type TraefikServiceSpecWeightedStickyCookieInput interface { type TraefikServiceSpecWeightedStickyCookieArgs struct { // HTTPOnly defines whether the cookie can be accessed by client-side APIs, such as JavaScript. HttpOnly pulumi.BoolPtrInput `pulumi:"httpOnly"` + // MaxAge indicates the number of seconds until the cookie expires. + // When set to a negative number, the cookie expires immediately. + // When set to zero, the cookie never expires. + MaxAge pulumi.IntPtrInput `pulumi:"maxAge"` // Name defines the Cookie name. Name pulumi.StringPtrInput `pulumi:"name"` // SameSite defines the same site policy. @@ -20726,6 +23530,13 @@ func (o TraefikServiceSpecWeightedStickyCookieOutput) HttpOnly() pulumi.BoolPtrO return o.ApplyT(func(v TraefikServiceSpecWeightedStickyCookie) *bool { return v.HttpOnly }).(pulumi.BoolPtrOutput) } +// MaxAge indicates the number of seconds until the cookie expires. +// When set to a negative number, the cookie expires immediately. +// When set to zero, the cookie never expires. +func (o TraefikServiceSpecWeightedStickyCookieOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v TraefikServiceSpecWeightedStickyCookie) *int { return v.MaxAge }).(pulumi.IntPtrOutput) +} + // Name defines the Cookie name. func (o TraefikServiceSpecWeightedStickyCookieOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v TraefikServiceSpecWeightedStickyCookie) *string { return v.Name }).(pulumi.StringPtrOutput) @@ -20782,6 +23593,18 @@ func (o TraefikServiceSpecWeightedStickyCookiePtrOutput) HttpOnly() pulumi.BoolP }).(pulumi.BoolPtrOutput) } +// MaxAge indicates the number of seconds until the cookie expires. +// When set to a negative number, the cookie expires immediately. +// When set to zero, the cookie never expires. +func (o TraefikServiceSpecWeightedStickyCookiePtrOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TraefikServiceSpecWeightedStickyCookie) *int { + if v == nil { + return nil + } + return v.MaxAge + }).(pulumi.IntPtrOutput) +} + // Name defines the Cookie name. func (o TraefikServiceSpecWeightedStickyCookiePtrOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v *TraefikServiceSpecWeightedStickyCookie) *string { @@ -20822,6 +23645,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*IngressRouteSpecRoutesMiddlewaresArrayInput)(nil)).Elem(), IngressRouteSpecRoutesMiddlewaresArray{}) pulumi.RegisterInputType(reflect.TypeOf((*IngressRouteSpecRoutesServicesInput)(nil)).Elem(), IngressRouteSpecRoutesServicesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*IngressRouteSpecRoutesServicesArrayInput)(nil)).Elem(), IngressRouteSpecRoutesServicesArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*IngressRouteSpecRoutesServicesHealthCheckInput)(nil)).Elem(), IngressRouteSpecRoutesServicesHealthCheckArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*IngressRouteSpecRoutesServicesHealthCheckPtrInput)(nil)).Elem(), IngressRouteSpecRoutesServicesHealthCheckArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*IngressRouteSpecRoutesServicesResponseForwardingInput)(nil)).Elem(), IngressRouteSpecRoutesServicesResponseForwardingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*IngressRouteSpecRoutesServicesResponseForwardingPtrInput)(nil)).Elem(), IngressRouteSpecRoutesServicesResponseForwardingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*IngressRouteSpecRoutesServicesStickyInput)(nil)).Elem(), IngressRouteSpecRoutesServicesStickyArgs{}) @@ -20884,6 +23709,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*MiddlewareSpecErrorsPtrInput)(nil)).Elem(), MiddlewareSpecErrorsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MiddlewareSpecErrorsServiceInput)(nil)).Elem(), MiddlewareSpecErrorsServiceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MiddlewareSpecErrorsServicePtrInput)(nil)).Elem(), MiddlewareSpecErrorsServiceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MiddlewareSpecErrorsServiceHealthCheckInput)(nil)).Elem(), MiddlewareSpecErrorsServiceHealthCheckArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MiddlewareSpecErrorsServiceHealthCheckPtrInput)(nil)).Elem(), MiddlewareSpecErrorsServiceHealthCheckArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MiddlewareSpecErrorsServiceResponseForwardingInput)(nil)).Elem(), MiddlewareSpecErrorsServiceResponseForwardingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MiddlewareSpecErrorsServiceResponseForwardingPtrInput)(nil)).Elem(), MiddlewareSpecErrorsServiceResponseForwardingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MiddlewareSpecErrorsServiceStickyInput)(nil)).Elem(), MiddlewareSpecErrorsServiceStickyArgs{}) @@ -20894,6 +23721,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*MiddlewareSpecForwardAuthPtrInput)(nil)).Elem(), MiddlewareSpecForwardAuthArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MiddlewareSpecForwardAuthTlsInput)(nil)).Elem(), MiddlewareSpecForwardAuthTlsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MiddlewareSpecForwardAuthTlsPtrInput)(nil)).Elem(), MiddlewareSpecForwardAuthTlsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MiddlewareSpecGrpcWebInput)(nil)).Elem(), MiddlewareSpecGrpcWebArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MiddlewareSpecGrpcWebPtrInput)(nil)).Elem(), MiddlewareSpecGrpcWebArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MiddlewareSpecHeadersInput)(nil)).Elem(), MiddlewareSpecHeadersArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MiddlewareSpecHeadersPtrInput)(nil)).Elem(), MiddlewareSpecHeadersArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MiddlewareSpecInFlightReqInput)(nil)).Elem(), MiddlewareSpecInFlightReqArgs{}) @@ -20950,6 +23779,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ServersTransportSpecPtrInput)(nil)).Elem(), ServersTransportSpecArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServersTransportSpecForwardingTimeoutsInput)(nil)).Elem(), ServersTransportSpecForwardingTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServersTransportSpecForwardingTimeoutsPtrInput)(nil)).Elem(), ServersTransportSpecForwardingTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServersTransportSpecSpiffeInput)(nil)).Elem(), ServersTransportSpecSpiffeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServersTransportSpecSpiffePtrInput)(nil)).Elem(), ServersTransportSpecSpiffeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServersTransportTCPSpecInput)(nil)).Elem(), ServersTransportTCPSpecArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServersTransportTCPSpecPtrInput)(nil)).Elem(), ServersTransportTCPSpecArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServersTransportTCPSpecTlsInput)(nil)).Elem(), ServersTransportTCPSpecTlsArgs{}) @@ -20974,8 +23805,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecPtrInput)(nil)).Elem(), TraefikServiceSpecArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecMirroringInput)(nil)).Elem(), TraefikServiceSpecMirroringArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecMirroringPtrInput)(nil)).Elem(), TraefikServiceSpecMirroringArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecMirroringHealthCheckInput)(nil)).Elem(), TraefikServiceSpecMirroringHealthCheckArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecMirroringHealthCheckPtrInput)(nil)).Elem(), TraefikServiceSpecMirroringHealthCheckArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecMirroringMirrorsInput)(nil)).Elem(), TraefikServiceSpecMirroringMirrorsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecMirroringMirrorsArrayInput)(nil)).Elem(), TraefikServiceSpecMirroringMirrorsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecMirroringMirrorsHealthCheckInput)(nil)).Elem(), TraefikServiceSpecMirroringMirrorsHealthCheckArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecMirroringMirrorsHealthCheckPtrInput)(nil)).Elem(), TraefikServiceSpecMirroringMirrorsHealthCheckArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecMirroringMirrorsResponseForwardingInput)(nil)).Elem(), TraefikServiceSpecMirroringMirrorsResponseForwardingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecMirroringMirrorsResponseForwardingPtrInput)(nil)).Elem(), TraefikServiceSpecMirroringMirrorsResponseForwardingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecMirroringMirrorsStickyInput)(nil)).Elem(), TraefikServiceSpecMirroringMirrorsStickyArgs{}) @@ -20992,6 +23827,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecWeightedPtrInput)(nil)).Elem(), TraefikServiceSpecWeightedArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecWeightedServicesInput)(nil)).Elem(), TraefikServiceSpecWeightedServicesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecWeightedServicesArrayInput)(nil)).Elem(), TraefikServiceSpecWeightedServicesArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecWeightedServicesHealthCheckInput)(nil)).Elem(), TraefikServiceSpecWeightedServicesHealthCheckArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecWeightedServicesHealthCheckPtrInput)(nil)).Elem(), TraefikServiceSpecWeightedServicesHealthCheckArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecWeightedServicesResponseForwardingInput)(nil)).Elem(), TraefikServiceSpecWeightedServicesResponseForwardingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecWeightedServicesResponseForwardingPtrInput)(nil)).Elem(), TraefikServiceSpecWeightedServicesResponseForwardingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TraefikServiceSpecWeightedServicesStickyInput)(nil)).Elem(), TraefikServiceSpecWeightedServicesStickyArgs{}) @@ -21010,6 +23847,8 @@ func init() { pulumi.RegisterOutputType(IngressRouteSpecRoutesMiddlewaresArrayOutput{}) pulumi.RegisterOutputType(IngressRouteSpecRoutesServicesOutput{}) pulumi.RegisterOutputType(IngressRouteSpecRoutesServicesArrayOutput{}) + pulumi.RegisterOutputType(IngressRouteSpecRoutesServicesHealthCheckOutput{}) + pulumi.RegisterOutputType(IngressRouteSpecRoutesServicesHealthCheckPtrOutput{}) pulumi.RegisterOutputType(IngressRouteSpecRoutesServicesResponseForwardingOutput{}) pulumi.RegisterOutputType(IngressRouteSpecRoutesServicesResponseForwardingPtrOutput{}) pulumi.RegisterOutputType(IngressRouteSpecRoutesServicesStickyOutput{}) @@ -21072,6 +23911,8 @@ func init() { pulumi.RegisterOutputType(MiddlewareSpecErrorsPtrOutput{}) pulumi.RegisterOutputType(MiddlewareSpecErrorsServiceOutput{}) pulumi.RegisterOutputType(MiddlewareSpecErrorsServicePtrOutput{}) + pulumi.RegisterOutputType(MiddlewareSpecErrorsServiceHealthCheckOutput{}) + pulumi.RegisterOutputType(MiddlewareSpecErrorsServiceHealthCheckPtrOutput{}) pulumi.RegisterOutputType(MiddlewareSpecErrorsServiceResponseForwardingOutput{}) pulumi.RegisterOutputType(MiddlewareSpecErrorsServiceResponseForwardingPtrOutput{}) pulumi.RegisterOutputType(MiddlewareSpecErrorsServiceStickyOutput{}) @@ -21082,6 +23923,8 @@ func init() { pulumi.RegisterOutputType(MiddlewareSpecForwardAuthPtrOutput{}) pulumi.RegisterOutputType(MiddlewareSpecForwardAuthTlsOutput{}) pulumi.RegisterOutputType(MiddlewareSpecForwardAuthTlsPtrOutput{}) + pulumi.RegisterOutputType(MiddlewareSpecGrpcWebOutput{}) + pulumi.RegisterOutputType(MiddlewareSpecGrpcWebPtrOutput{}) pulumi.RegisterOutputType(MiddlewareSpecHeadersOutput{}) pulumi.RegisterOutputType(MiddlewareSpecHeadersPtrOutput{}) pulumi.RegisterOutputType(MiddlewareSpecInFlightReqOutput{}) @@ -21138,6 +23981,8 @@ func init() { pulumi.RegisterOutputType(ServersTransportSpecPtrOutput{}) pulumi.RegisterOutputType(ServersTransportSpecForwardingTimeoutsOutput{}) pulumi.RegisterOutputType(ServersTransportSpecForwardingTimeoutsPtrOutput{}) + pulumi.RegisterOutputType(ServersTransportSpecSpiffeOutput{}) + pulumi.RegisterOutputType(ServersTransportSpecSpiffePtrOutput{}) pulumi.RegisterOutputType(ServersTransportTCPSpecOutput{}) pulumi.RegisterOutputType(ServersTransportTCPSpecPtrOutput{}) pulumi.RegisterOutputType(ServersTransportTCPSpecTlsOutput{}) @@ -21162,8 +24007,12 @@ func init() { pulumi.RegisterOutputType(TraefikServiceSpecPtrOutput{}) pulumi.RegisterOutputType(TraefikServiceSpecMirroringOutput{}) pulumi.RegisterOutputType(TraefikServiceSpecMirroringPtrOutput{}) + pulumi.RegisterOutputType(TraefikServiceSpecMirroringHealthCheckOutput{}) + pulumi.RegisterOutputType(TraefikServiceSpecMirroringHealthCheckPtrOutput{}) pulumi.RegisterOutputType(TraefikServiceSpecMirroringMirrorsOutput{}) pulumi.RegisterOutputType(TraefikServiceSpecMirroringMirrorsArrayOutput{}) + pulumi.RegisterOutputType(TraefikServiceSpecMirroringMirrorsHealthCheckOutput{}) + pulumi.RegisterOutputType(TraefikServiceSpecMirroringMirrorsHealthCheckPtrOutput{}) pulumi.RegisterOutputType(TraefikServiceSpecMirroringMirrorsResponseForwardingOutput{}) pulumi.RegisterOutputType(TraefikServiceSpecMirroringMirrorsResponseForwardingPtrOutput{}) pulumi.RegisterOutputType(TraefikServiceSpecMirroringMirrorsStickyOutput{}) @@ -21180,6 +24029,8 @@ func init() { pulumi.RegisterOutputType(TraefikServiceSpecWeightedPtrOutput{}) pulumi.RegisterOutputType(TraefikServiceSpecWeightedServicesOutput{}) pulumi.RegisterOutputType(TraefikServiceSpecWeightedServicesArrayOutput{}) + pulumi.RegisterOutputType(TraefikServiceSpecWeightedServicesHealthCheckOutput{}) + pulumi.RegisterOutputType(TraefikServiceSpecWeightedServicesHealthCheckPtrOutput{}) pulumi.RegisterOutputType(TraefikServiceSpecWeightedServicesResponseForwardingOutput{}) pulumi.RegisterOutputType(TraefikServiceSpecWeightedServicesResponseForwardingPtrOutput{}) pulumi.RegisterOutputType(TraefikServiceSpecWeightedServicesStickyOutput{}) diff --git a/crds/kubernetes/traefik/v1alpha1/serversTransport.go b/crds/kubernetes/traefik/v1alpha1/serversTransport.go index a5cc5b2..97e4e2a 100644 --- a/crds/kubernetes/traefik/v1alpha1/serversTransport.go +++ b/crds/kubernetes/traefik/v1alpha1/serversTransport.go @@ -16,7 +16,7 @@ import ( // ServersTransport is the CRD implementation of a ServersTransport. // If no serversTransport is specified, the default@internal will be used. // The default@internal serversTransport is created from the static configuration. -// More info: https://doc.traefik.io/traefik/v2.11/routing/services/#serverstransport_1 +// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#serverstransport_1 type ServersTransport struct { pulumi.CustomResourceState diff --git a/crds/kubernetes/traefik/v1alpha1/tlsoption.go b/crds/kubernetes/traefik/v1alpha1/tlsoption.go index aa8ef73..6bd57d8 100644 --- a/crds/kubernetes/traefik/v1alpha1/tlsoption.go +++ b/crds/kubernetes/traefik/v1alpha1/tlsoption.go @@ -14,7 +14,7 @@ import ( ) // TLSOption is the CRD implementation of a Traefik TLS Option, allowing to configure some parameters of the TLS connection. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#tls-options type TLSOption struct { pulumi.CustomResourceState diff --git a/crds/kubernetes/traefik/v1alpha1/tlsstore.go b/crds/kubernetes/traefik/v1alpha1/tlsstore.go index 6698a8b..8a693b0 100644 --- a/crds/kubernetes/traefik/v1alpha1/tlsstore.go +++ b/crds/kubernetes/traefik/v1alpha1/tlsstore.go @@ -16,7 +16,7 @@ import ( // TLSStore is the CRD implementation of a Traefik TLS Store. // For the time being, only the TLSStore named default is supported. // This means that you cannot have two stores that are named default in different Kubernetes namespaces. -// More info: https://doc.traefik.io/traefik/v2.11/https/tls/#certificates-stores +// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#certificates-stores type TLSStore struct { pulumi.CustomResourceState diff --git a/crds/kubernetes/traefik/v1alpha1/traefikService.go b/crds/kubernetes/traefik/v1alpha1/traefikService.go index c61694e..41310f3 100644 --- a/crds/kubernetes/traefik/v1alpha1/traefikService.go +++ b/crds/kubernetes/traefik/v1alpha1/traefikService.go @@ -17,7 +17,7 @@ import ( // TraefikService object allows to: // - Apply weight to Services on load-balancing // - Mirror traffic on services -// More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-traefikservice +// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-traefikservice type TraefikService struct { pulumi.CustomResourceState diff --git a/go.mod b/go.mod index 13961b1..8a6418b 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.22.2 require ( github.com/blang/semver v3.5.1+incompatible - github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.13.1 + github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.18.1 github.com/pulumi/pulumi/sdk/v3 v3.132.0 ) @@ -42,7 +42,7 @@ require ( github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-localereader v0.0.1 // indirect github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect @@ -60,7 +60,7 @@ require ( github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect github.com/pulumi/esc v0.9.1 // indirect github.com/rivo/uniseg v0.4.4 // indirect - github.com/rogpeppe/go-internal v1.11.0 // indirect + github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect @@ -73,13 +73,13 @@ require ( github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/zclconf/go-cty v1.13.2 // indirect go.uber.org/atomic v1.9.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect golang.org/x/mod v0.18.0 // indirect - golang.org/x/net v0.26.0 // indirect + golang.org/x/net v0.27.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.22.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect diff --git a/go.sum b/go.sum index 5ae74f0..78e6674 100644 --- a/go.sum +++ b/go.sum @@ -52,8 +52,8 @@ github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/El github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= -github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= -github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE= github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= @@ -109,8 +109,8 @@ github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxec github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= -github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= @@ -150,16 +150,16 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435 github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/esc v0.9.1 h1:HH5eEv8sgyxSpY5a8yePyqFXzA8cvBvapfH8457+mIs= github.com/pulumi/esc v0.9.1/go.mod h1:oEJ6bOsjYlQUpjf70GiX+CXn3VBmpwFDxUTlmtUN84c= -github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.13.1 h1:Fp7siNqQBjwIoY/7Jaml/v1frOyGO+kYeeMrO4d2k7k= -github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.13.1/go.mod h1:MZ+ci9Iq8f0K1aOTXgD3X+ENo2+dFbgQQ7Ahh0YZ8/g= +github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.18.1 h1:WIvq/l2ls8SVkcxG7kr8lE3Dq9rsmY9004mNSa9iUc4= +github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.18.1/go.mod h1:vUaV6NmzM//lS3WHB/QxkKr/CHehhsWw/wst3XGIn6I= github.com/pulumi/pulumi/sdk/v3 v3.132.0 h1:UDZHa+WpIEVxWJp+PCbsMxnTUeKMX3xBCcqIHxeAdzI= github.com/pulumi/pulumi/sdk/v3 v3.132.0/go.mod h1:J5kQEX8v87aeUhk6NdQXnjCo1DbiOnOiL3Sf2DuDda8= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI= github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+ePHsJ1keEjQtpvf9HHw0f4ZeJ0TLRsxhunSI2hYJSs= @@ -205,8 +205,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= @@ -228,8 +228,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -257,15 +257,15 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=