// Code generated by test DO NOT EDIT. // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** package kubernetes import ( "context" "reflect" "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The provider type for the kubernetes package. type Provider struct { pulumi.ProviderResourceState } // NewProvider registers a new resource with the given unique name, arguments, and options. func NewProvider(ctx *pulumi.Context, name string, args *ProviderArgs, opts ...pulumi.ResourceOption) (*Provider, error) { if args == nil { args = &ProviderArgs{} } if args.KubeClientSettings != nil { args.KubeClientSettings = args.KubeClientSettings.ToKubeClientSettingsPtrOutput().ApplyT(func(v *KubeClientSettings) *KubeClientSettings { return v.Defaults() }).(KubeClientSettingsPtrOutput) } if args.Kubeconfig == nil { if d := utilities.GetEnvOrDefault(nil, nil, "KUBECONFIG"); d != nil { args.Kubeconfig = pulumi.StringPtr(d.(string)) } } opts = utilities.PkgResourceDefaultOpts(opts) var resource Provider err := ctx.RegisterResource("pulumi:providers:kubernetes", name, args, &resource, opts...) if err != nil { return nil, err } return &resource, nil } type providerArgs struct { // Options for tuning the Kubernetes client used by a Provider. KubeClientSettings *KubeClientSettings `pulumi:"kubeClientSettings"` // The contents of a kubeconfig file or the path to a kubeconfig file. Kubeconfig *string `pulumi:"kubeconfig"` // If present, the default namespace to use. This flag is ignored for cluster-scoped resources. // // A namespace can be specified in multiple places, and the precedence is as follows: // 1. `.metadata.namespace` set on the resource. // 2. This `namespace` parameter. // 3. `namespace` set for the active context in the kubeconfig. Namespace *string `pulumi:"namespace"` } // The set of arguments for constructing a Provider resource. type ProviderArgs struct { // Options for tuning the Kubernetes client used by a Provider. KubeClientSettings KubeClientSettingsPtrInput // The contents of a kubeconfig file or the path to a kubeconfig file. Kubeconfig pulumi.StringPtrInput // If present, the default namespace to use. This flag is ignored for cluster-scoped resources. // // A namespace can be specified in multiple places, and the precedence is as follows: // 1. `.metadata.namespace` set on the resource. // 2. This `namespace` parameter. // 3. `namespace` set for the active context in the kubeconfig. Namespace pulumi.StringPtrInput } func (ProviderArgs) ElementType() reflect.Type { return reflect.TypeOf((*providerArgs)(nil)).Elem() } type ProviderInput interface { pulumi.Input ToProviderOutput() ProviderOutput ToProviderOutputWithContext(ctx context.Context) ProviderOutput } func (*Provider) ElementType() reflect.Type { return reflect.TypeOf((**Provider)(nil)).Elem() } func (i *Provider) ToProviderOutput() ProviderOutput { return i.ToProviderOutputWithContext(context.Background()) } func (i *Provider) ToProviderOutputWithContext(ctx context.Context) ProviderOutput { return pulumi.ToOutputWithContext(ctx, i).(ProviderOutput) } type ProviderOutput struct{ *pulumi.OutputState } func (ProviderOutput) ElementType() reflect.Type { return reflect.TypeOf((**Provider)(nil)).Elem() } func (o ProviderOutput) ToProviderOutput() ProviderOutput { return o } func (o ProviderOutput) ToProviderOutputWithContext(ctx context.Context) ProviderOutput { return o } func init() { pulumi.RegisterInputType(reflect.TypeOf((*ProviderInput)(nil)).Elem(), &Provider{}) pulumi.RegisterOutputType(ProviderOutput{}) }