github.com/pulumi/pulumi-kubernetes/sdk/v3@v3.30.2/go/kubernetes/certificates/v1/certificateSigningRequest.go (about)

     1  // Code generated by pulumigen DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package v1
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/meta/v1"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // CertificateSigningRequest objects provide a mechanism to obtain x509 certificates by submitting a certificate signing request, and having it asynchronously approved and issued.
    16  //
    17  // Kubelets use this API to obtain:
    18  //  1. client certificates to authenticate to kube-apiserver (with the "kubernetes.io/kube-apiserver-client-kubelet" signerName).
    19  //  2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the "kubernetes.io/kubelet-serving" signerName).
    20  //
    21  // This API can be used to request client certificates to authenticate to kube-apiserver (with the "kubernetes.io/kube-apiserver-client" signerName), or to obtain certificates from custom non-Kubernetes signers.
    22  type CertificateSigningRequest struct {
    23  	pulumi.CustomResourceState
    24  
    25  	// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
    26  	ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"`
    27  	// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
    28  	Kind     pulumi.StringPtrOutput     `pulumi:"kind"`
    29  	Metadata metav1.ObjectMetaPtrOutput `pulumi:"metadata"`
    30  	// spec contains the certificate request, and is immutable after creation. Only the request, signerName, expirationSeconds, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users.
    31  	Spec CertificateSigningRequestSpecOutput `pulumi:"spec"`
    32  	// status contains information about whether the request is approved or denied, and the certificate issued by the signer, or the failure condition indicating signer failure.
    33  	Status CertificateSigningRequestStatusPtrOutput `pulumi:"status"`
    34  }
    35  
    36  // NewCertificateSigningRequest registers a new resource with the given unique name, arguments, and options.
    37  func NewCertificateSigningRequest(ctx *pulumi.Context,
    38  	name string, args *CertificateSigningRequestArgs, opts ...pulumi.ResourceOption) (*CertificateSigningRequest, error) {
    39  	if args == nil {
    40  		return nil, errors.New("missing one or more required arguments")
    41  	}
    42  
    43  	if args.Spec == nil {
    44  		return nil, errors.New("invalid value for required argument 'Spec'")
    45  	}
    46  	args.ApiVersion = pulumi.StringPtr("certificates.k8s.io/v1")
    47  	args.Kind = pulumi.StringPtr("CertificateSigningRequest")
    48  	aliases := pulumi.Aliases([]pulumi.Alias{
    49  		{
    50  			Type: pulumi.String("kubernetes:certificates.k8s.io/v1beta1:CertificateSigningRequest"),
    51  		},
    52  	})
    53  	opts = append(opts, aliases)
    54  	var resource CertificateSigningRequest
    55  	err := ctx.RegisterResource("kubernetes:certificates.k8s.io/v1:CertificateSigningRequest", name, args, &resource, opts...)
    56  	if err != nil {
    57  		return nil, err
    58  	}
    59  	return &resource, nil
    60  }
    61  
    62  // GetCertificateSigningRequest gets an existing CertificateSigningRequest resource's state with the given name, ID, and optional
    63  // state properties that are used to uniquely qualify the lookup (nil if not required).
    64  func GetCertificateSigningRequest(ctx *pulumi.Context,
    65  	name string, id pulumi.IDInput, state *CertificateSigningRequestState, opts ...pulumi.ResourceOption) (*CertificateSigningRequest, error) {
    66  	var resource CertificateSigningRequest
    67  	err := ctx.ReadResource("kubernetes:certificates.k8s.io/v1:CertificateSigningRequest", name, id, state, &resource, opts...)
    68  	if err != nil {
    69  		return nil, err
    70  	}
    71  	return &resource, nil
    72  }
    73  
    74  // Input properties used for looking up and filtering CertificateSigningRequest resources.
    75  type certificateSigningRequestState struct {
    76  }
    77  
    78  type CertificateSigningRequestState struct {
    79  }
    80  
    81  func (CertificateSigningRequestState) ElementType() reflect.Type {
    82  	return reflect.TypeOf((*certificateSigningRequestState)(nil)).Elem()
    83  }
    84  
    85  type certificateSigningRequestArgs struct {
    86  	// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
    87  	ApiVersion *string `pulumi:"apiVersion"`
    88  	// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
    89  	Kind     *string            `pulumi:"kind"`
    90  	Metadata *metav1.ObjectMeta `pulumi:"metadata"`
    91  	// spec contains the certificate request, and is immutable after creation. Only the request, signerName, expirationSeconds, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users.
    92  	Spec CertificateSigningRequestSpec `pulumi:"spec"`
    93  }
    94  
    95  // The set of arguments for constructing a CertificateSigningRequest resource.
    96  type CertificateSigningRequestArgs struct {
    97  	// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
    98  	ApiVersion pulumi.StringPtrInput
    99  	// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
   100  	Kind     pulumi.StringPtrInput
   101  	Metadata metav1.ObjectMetaPtrInput
   102  	// spec contains the certificate request, and is immutable after creation. Only the request, signerName, expirationSeconds, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users.
   103  	Spec CertificateSigningRequestSpecInput
   104  }
   105  
   106  func (CertificateSigningRequestArgs) ElementType() reflect.Type {
   107  	return reflect.TypeOf((*certificateSigningRequestArgs)(nil)).Elem()
   108  }
   109  
   110  type CertificateSigningRequestInput interface {
   111  	pulumi.Input
   112  
   113  	ToCertificateSigningRequestOutput() CertificateSigningRequestOutput
   114  	ToCertificateSigningRequestOutputWithContext(ctx context.Context) CertificateSigningRequestOutput
   115  }
   116  
   117  func (*CertificateSigningRequest) ElementType() reflect.Type {
   118  	return reflect.TypeOf((**CertificateSigningRequest)(nil)).Elem()
   119  }
   120  
   121  func (i *CertificateSigningRequest) ToCertificateSigningRequestOutput() CertificateSigningRequestOutput {
   122  	return i.ToCertificateSigningRequestOutputWithContext(context.Background())
   123  }
   124  
   125  func (i *CertificateSigningRequest) ToCertificateSigningRequestOutputWithContext(ctx context.Context) CertificateSigningRequestOutput {
   126  	return pulumi.ToOutputWithContext(ctx, i).(CertificateSigningRequestOutput)
   127  }
   128  
   129  // CertificateSigningRequestArrayInput is an input type that accepts CertificateSigningRequestArray and CertificateSigningRequestArrayOutput values.
   130  // You can construct a concrete instance of `CertificateSigningRequestArrayInput` via:
   131  //
   132  //	CertificateSigningRequestArray{ CertificateSigningRequestArgs{...} }
   133  type CertificateSigningRequestArrayInput interface {
   134  	pulumi.Input
   135  
   136  	ToCertificateSigningRequestArrayOutput() CertificateSigningRequestArrayOutput
   137  	ToCertificateSigningRequestArrayOutputWithContext(context.Context) CertificateSigningRequestArrayOutput
   138  }
   139  
   140  type CertificateSigningRequestArray []CertificateSigningRequestInput
   141  
   142  func (CertificateSigningRequestArray) ElementType() reflect.Type {
   143  	return reflect.TypeOf((*[]*CertificateSigningRequest)(nil)).Elem()
   144  }
   145  
   146  func (i CertificateSigningRequestArray) ToCertificateSigningRequestArrayOutput() CertificateSigningRequestArrayOutput {
   147  	return i.ToCertificateSigningRequestArrayOutputWithContext(context.Background())
   148  }
   149  
   150  func (i CertificateSigningRequestArray) ToCertificateSigningRequestArrayOutputWithContext(ctx context.Context) CertificateSigningRequestArrayOutput {
   151  	return pulumi.ToOutputWithContext(ctx, i).(CertificateSigningRequestArrayOutput)
   152  }
   153  
   154  // CertificateSigningRequestMapInput is an input type that accepts CertificateSigningRequestMap and CertificateSigningRequestMapOutput values.
   155  // You can construct a concrete instance of `CertificateSigningRequestMapInput` via:
   156  //
   157  //	CertificateSigningRequestMap{ "key": CertificateSigningRequestArgs{...} }
   158  type CertificateSigningRequestMapInput interface {
   159  	pulumi.Input
   160  
   161  	ToCertificateSigningRequestMapOutput() CertificateSigningRequestMapOutput
   162  	ToCertificateSigningRequestMapOutputWithContext(context.Context) CertificateSigningRequestMapOutput
   163  }
   164  
   165  type CertificateSigningRequestMap map[string]CertificateSigningRequestInput
   166  
   167  func (CertificateSigningRequestMap) ElementType() reflect.Type {
   168  	return reflect.TypeOf((*map[string]*CertificateSigningRequest)(nil)).Elem()
   169  }
   170  
   171  func (i CertificateSigningRequestMap) ToCertificateSigningRequestMapOutput() CertificateSigningRequestMapOutput {
   172  	return i.ToCertificateSigningRequestMapOutputWithContext(context.Background())
   173  }
   174  
   175  func (i CertificateSigningRequestMap) ToCertificateSigningRequestMapOutputWithContext(ctx context.Context) CertificateSigningRequestMapOutput {
   176  	return pulumi.ToOutputWithContext(ctx, i).(CertificateSigningRequestMapOutput)
   177  }
   178  
   179  type CertificateSigningRequestOutput struct{ *pulumi.OutputState }
   180  
   181  func (CertificateSigningRequestOutput) ElementType() reflect.Type {
   182  	return reflect.TypeOf((**CertificateSigningRequest)(nil)).Elem()
   183  }
   184  
   185  func (o CertificateSigningRequestOutput) ToCertificateSigningRequestOutput() CertificateSigningRequestOutput {
   186  	return o
   187  }
   188  
   189  func (o CertificateSigningRequestOutput) ToCertificateSigningRequestOutputWithContext(ctx context.Context) CertificateSigningRequestOutput {
   190  	return o
   191  }
   192  
   193  // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
   194  func (o CertificateSigningRequestOutput) ApiVersion() pulumi.StringPtrOutput {
   195  	return o.ApplyT(func(v *CertificateSigningRequest) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput)
   196  }
   197  
   198  // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
   199  func (o CertificateSigningRequestOutput) Kind() pulumi.StringPtrOutput {
   200  	return o.ApplyT(func(v *CertificateSigningRequest) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput)
   201  }
   202  
   203  func (o CertificateSigningRequestOutput) Metadata() metav1.ObjectMetaPtrOutput {
   204  	return o.ApplyT(func(v *CertificateSigningRequest) metav1.ObjectMetaPtrOutput { return v.Metadata }).(metav1.ObjectMetaPtrOutput)
   205  }
   206  
   207  // spec contains the certificate request, and is immutable after creation. Only the request, signerName, expirationSeconds, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users.
   208  func (o CertificateSigningRequestOutput) Spec() CertificateSigningRequestSpecOutput {
   209  	return o.ApplyT(func(v *CertificateSigningRequest) CertificateSigningRequestSpecOutput { return v.Spec }).(CertificateSigningRequestSpecOutput)
   210  }
   211  
   212  // status contains information about whether the request is approved or denied, and the certificate issued by the signer, or the failure condition indicating signer failure.
   213  func (o CertificateSigningRequestOutput) Status() CertificateSigningRequestStatusPtrOutput {
   214  	return o.ApplyT(func(v *CertificateSigningRequest) CertificateSigningRequestStatusPtrOutput { return v.Status }).(CertificateSigningRequestStatusPtrOutput)
   215  }
   216  
   217  type CertificateSigningRequestArrayOutput struct{ *pulumi.OutputState }
   218  
   219  func (CertificateSigningRequestArrayOutput) ElementType() reflect.Type {
   220  	return reflect.TypeOf((*[]*CertificateSigningRequest)(nil)).Elem()
   221  }
   222  
   223  func (o CertificateSigningRequestArrayOutput) ToCertificateSigningRequestArrayOutput() CertificateSigningRequestArrayOutput {
   224  	return o
   225  }
   226  
   227  func (o CertificateSigningRequestArrayOutput) ToCertificateSigningRequestArrayOutputWithContext(ctx context.Context) CertificateSigningRequestArrayOutput {
   228  	return o
   229  }
   230  
   231  func (o CertificateSigningRequestArrayOutput) Index(i pulumi.IntInput) CertificateSigningRequestOutput {
   232  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *CertificateSigningRequest {
   233  		return vs[0].([]*CertificateSigningRequest)[vs[1].(int)]
   234  	}).(CertificateSigningRequestOutput)
   235  }
   236  
   237  type CertificateSigningRequestMapOutput struct{ *pulumi.OutputState }
   238  
   239  func (CertificateSigningRequestMapOutput) ElementType() reflect.Type {
   240  	return reflect.TypeOf((*map[string]*CertificateSigningRequest)(nil)).Elem()
   241  }
   242  
   243  func (o CertificateSigningRequestMapOutput) ToCertificateSigningRequestMapOutput() CertificateSigningRequestMapOutput {
   244  	return o
   245  }
   246  
   247  func (o CertificateSigningRequestMapOutput) ToCertificateSigningRequestMapOutputWithContext(ctx context.Context) CertificateSigningRequestMapOutput {
   248  	return o
   249  }
   250  
   251  func (o CertificateSigningRequestMapOutput) MapIndex(k pulumi.StringInput) CertificateSigningRequestOutput {
   252  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *CertificateSigningRequest {
   253  		return vs[0].(map[string]*CertificateSigningRequest)[vs[1].(string)]
   254  	}).(CertificateSigningRequestOutput)
   255  }
   256  
   257  func init() {
   258  	pulumi.RegisterInputType(reflect.TypeOf((*CertificateSigningRequestInput)(nil)).Elem(), &CertificateSigningRequest{})
   259  	pulumi.RegisterInputType(reflect.TypeOf((*CertificateSigningRequestArrayInput)(nil)).Elem(), CertificateSigningRequestArray{})
   260  	pulumi.RegisterInputType(reflect.TypeOf((*CertificateSigningRequestMapInput)(nil)).Elem(), CertificateSigningRequestMap{})
   261  	pulumi.RegisterOutputType(CertificateSigningRequestOutput{})
   262  	pulumi.RegisterOutputType(CertificateSigningRequestArrayOutput{})
   263  	pulumi.RegisterOutputType(CertificateSigningRequestMapOutput{})
   264  }