github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/iam/openIdConnectProvider.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package iam
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Provides an IAM OpenID Connect provider.
    16  //
    17  // ## Example Usage
    18  //
    19  // <!--Start PulumiCodeChooser -->
    20  // ```go
    21  // package main
    22  //
    23  // import (
    24  //
    25  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
    26  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    27  //
    28  // )
    29  //
    30  //	func main() {
    31  //		pulumi.Run(func(ctx *pulumi.Context) error {
    32  //			_, err := iam.NewOpenIdConnectProvider(ctx, "default", &iam.OpenIdConnectProviderArgs{
    33  //				Url: pulumi.String("https://accounts.google.com"),
    34  //				ClientIdLists: pulumi.StringArray{
    35  //					pulumi.String("266362248691-342342xasdasdasda-apps.googleusercontent.com"),
    36  //				},
    37  //				ThumbprintLists: pulumi.StringArray{
    38  //					pulumi.String("cf23df2207d99a74fbe169e3eba035e633b65d94"),
    39  //				},
    40  //			})
    41  //			if err != nil {
    42  //				return err
    43  //			}
    44  //			return nil
    45  //		})
    46  //	}
    47  //
    48  // ```
    49  // <!--End PulumiCodeChooser -->
    50  //
    51  // ## Import
    52  //
    53  // Using `pulumi import`, import IAM OpenID Connect Providers using the `arn`. For example:
    54  //
    55  // ```sh
    56  // $ pulumi import aws:iam/openIdConnectProvider:OpenIdConnectProvider default arn:aws:iam::123456789012:oidc-provider/accounts.google.com
    57  // ```
    58  type OpenIdConnectProvider struct {
    59  	pulumi.CustomResourceState
    60  
    61  	// The ARN assigned by AWS for this provider.
    62  	Arn pulumi.StringOutput `pulumi:"arn"`
    63  	// A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the clientId parameter on OAuth requests.)
    64  	ClientIdLists pulumi.StringArrayOutput `pulumi:"clientIdLists"`
    65  	// Map of resource tags for the IAM OIDC provider. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    66  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    67  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    68  	//
    69  	// Deprecated: Please use `tags` instead.
    70  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
    71  	// A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s).
    72  	ThumbprintLists pulumi.StringArrayOutput `pulumi:"thumbprintLists"`
    73  	// The URL of the identity provider. Corresponds to the _iss_ claim.
    74  	Url pulumi.StringOutput `pulumi:"url"`
    75  }
    76  
    77  // NewOpenIdConnectProvider registers a new resource with the given unique name, arguments, and options.
    78  func NewOpenIdConnectProvider(ctx *pulumi.Context,
    79  	name string, args *OpenIdConnectProviderArgs, opts ...pulumi.ResourceOption) (*OpenIdConnectProvider, error) {
    80  	if args == nil {
    81  		return nil, errors.New("missing one or more required arguments")
    82  	}
    83  
    84  	if args.ClientIdLists == nil {
    85  		return nil, errors.New("invalid value for required argument 'ClientIdLists'")
    86  	}
    87  	if args.ThumbprintLists == nil {
    88  		return nil, errors.New("invalid value for required argument 'ThumbprintLists'")
    89  	}
    90  	if args.Url == nil {
    91  		return nil, errors.New("invalid value for required argument 'Url'")
    92  	}
    93  	opts = internal.PkgResourceDefaultOpts(opts)
    94  	var resource OpenIdConnectProvider
    95  	err := ctx.RegisterResource("aws:iam/openIdConnectProvider:OpenIdConnectProvider", name, args, &resource, opts...)
    96  	if err != nil {
    97  		return nil, err
    98  	}
    99  	return &resource, nil
   100  }
   101  
   102  // GetOpenIdConnectProvider gets an existing OpenIdConnectProvider resource's state with the given name, ID, and optional
   103  // state properties that are used to uniquely qualify the lookup (nil if not required).
   104  func GetOpenIdConnectProvider(ctx *pulumi.Context,
   105  	name string, id pulumi.IDInput, state *OpenIdConnectProviderState, opts ...pulumi.ResourceOption) (*OpenIdConnectProvider, error) {
   106  	var resource OpenIdConnectProvider
   107  	err := ctx.ReadResource("aws:iam/openIdConnectProvider:OpenIdConnectProvider", name, id, state, &resource, opts...)
   108  	if err != nil {
   109  		return nil, err
   110  	}
   111  	return &resource, nil
   112  }
   113  
   114  // Input properties used for looking up and filtering OpenIdConnectProvider resources.
   115  type openIdConnectProviderState struct {
   116  	// The ARN assigned by AWS for this provider.
   117  	Arn *string `pulumi:"arn"`
   118  	// A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the clientId parameter on OAuth requests.)
   119  	ClientIdLists []string `pulumi:"clientIdLists"`
   120  	// Map of resource tags for the IAM OIDC provider. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   121  	Tags map[string]string `pulumi:"tags"`
   122  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   123  	//
   124  	// Deprecated: Please use `tags` instead.
   125  	TagsAll map[string]string `pulumi:"tagsAll"`
   126  	// A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s).
   127  	ThumbprintLists []string `pulumi:"thumbprintLists"`
   128  	// The URL of the identity provider. Corresponds to the _iss_ claim.
   129  	Url *string `pulumi:"url"`
   130  }
   131  
   132  type OpenIdConnectProviderState struct {
   133  	// The ARN assigned by AWS for this provider.
   134  	Arn pulumi.StringPtrInput
   135  	// A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the clientId parameter on OAuth requests.)
   136  	ClientIdLists pulumi.StringArrayInput
   137  	// Map of resource tags for the IAM OIDC provider. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   138  	Tags pulumi.StringMapInput
   139  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   140  	//
   141  	// Deprecated: Please use `tags` instead.
   142  	TagsAll pulumi.StringMapInput
   143  	// A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s).
   144  	ThumbprintLists pulumi.StringArrayInput
   145  	// The URL of the identity provider. Corresponds to the _iss_ claim.
   146  	Url pulumi.StringPtrInput
   147  }
   148  
   149  func (OpenIdConnectProviderState) ElementType() reflect.Type {
   150  	return reflect.TypeOf((*openIdConnectProviderState)(nil)).Elem()
   151  }
   152  
   153  type openIdConnectProviderArgs struct {
   154  	// A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the clientId parameter on OAuth requests.)
   155  	ClientIdLists []string `pulumi:"clientIdLists"`
   156  	// Map of resource tags for the IAM OIDC provider. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   157  	Tags map[string]string `pulumi:"tags"`
   158  	// A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s).
   159  	ThumbprintLists []string `pulumi:"thumbprintLists"`
   160  	// The URL of the identity provider. Corresponds to the _iss_ claim.
   161  	Url string `pulumi:"url"`
   162  }
   163  
   164  // The set of arguments for constructing a OpenIdConnectProvider resource.
   165  type OpenIdConnectProviderArgs struct {
   166  	// A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the clientId parameter on OAuth requests.)
   167  	ClientIdLists pulumi.StringArrayInput
   168  	// Map of resource tags for the IAM OIDC provider. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   169  	Tags pulumi.StringMapInput
   170  	// A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s).
   171  	ThumbprintLists pulumi.StringArrayInput
   172  	// The URL of the identity provider. Corresponds to the _iss_ claim.
   173  	Url pulumi.StringInput
   174  }
   175  
   176  func (OpenIdConnectProviderArgs) ElementType() reflect.Type {
   177  	return reflect.TypeOf((*openIdConnectProviderArgs)(nil)).Elem()
   178  }
   179  
   180  type OpenIdConnectProviderInput interface {
   181  	pulumi.Input
   182  
   183  	ToOpenIdConnectProviderOutput() OpenIdConnectProviderOutput
   184  	ToOpenIdConnectProviderOutputWithContext(ctx context.Context) OpenIdConnectProviderOutput
   185  }
   186  
   187  func (*OpenIdConnectProvider) ElementType() reflect.Type {
   188  	return reflect.TypeOf((**OpenIdConnectProvider)(nil)).Elem()
   189  }
   190  
   191  func (i *OpenIdConnectProvider) ToOpenIdConnectProviderOutput() OpenIdConnectProviderOutput {
   192  	return i.ToOpenIdConnectProviderOutputWithContext(context.Background())
   193  }
   194  
   195  func (i *OpenIdConnectProvider) ToOpenIdConnectProviderOutputWithContext(ctx context.Context) OpenIdConnectProviderOutput {
   196  	return pulumi.ToOutputWithContext(ctx, i).(OpenIdConnectProviderOutput)
   197  }
   198  
   199  // OpenIdConnectProviderArrayInput is an input type that accepts OpenIdConnectProviderArray and OpenIdConnectProviderArrayOutput values.
   200  // You can construct a concrete instance of `OpenIdConnectProviderArrayInput` via:
   201  //
   202  //	OpenIdConnectProviderArray{ OpenIdConnectProviderArgs{...} }
   203  type OpenIdConnectProviderArrayInput interface {
   204  	pulumi.Input
   205  
   206  	ToOpenIdConnectProviderArrayOutput() OpenIdConnectProviderArrayOutput
   207  	ToOpenIdConnectProviderArrayOutputWithContext(context.Context) OpenIdConnectProviderArrayOutput
   208  }
   209  
   210  type OpenIdConnectProviderArray []OpenIdConnectProviderInput
   211  
   212  func (OpenIdConnectProviderArray) ElementType() reflect.Type {
   213  	return reflect.TypeOf((*[]*OpenIdConnectProvider)(nil)).Elem()
   214  }
   215  
   216  func (i OpenIdConnectProviderArray) ToOpenIdConnectProviderArrayOutput() OpenIdConnectProviderArrayOutput {
   217  	return i.ToOpenIdConnectProviderArrayOutputWithContext(context.Background())
   218  }
   219  
   220  func (i OpenIdConnectProviderArray) ToOpenIdConnectProviderArrayOutputWithContext(ctx context.Context) OpenIdConnectProviderArrayOutput {
   221  	return pulumi.ToOutputWithContext(ctx, i).(OpenIdConnectProviderArrayOutput)
   222  }
   223  
   224  // OpenIdConnectProviderMapInput is an input type that accepts OpenIdConnectProviderMap and OpenIdConnectProviderMapOutput values.
   225  // You can construct a concrete instance of `OpenIdConnectProviderMapInput` via:
   226  //
   227  //	OpenIdConnectProviderMap{ "key": OpenIdConnectProviderArgs{...} }
   228  type OpenIdConnectProviderMapInput interface {
   229  	pulumi.Input
   230  
   231  	ToOpenIdConnectProviderMapOutput() OpenIdConnectProviderMapOutput
   232  	ToOpenIdConnectProviderMapOutputWithContext(context.Context) OpenIdConnectProviderMapOutput
   233  }
   234  
   235  type OpenIdConnectProviderMap map[string]OpenIdConnectProviderInput
   236  
   237  func (OpenIdConnectProviderMap) ElementType() reflect.Type {
   238  	return reflect.TypeOf((*map[string]*OpenIdConnectProvider)(nil)).Elem()
   239  }
   240  
   241  func (i OpenIdConnectProviderMap) ToOpenIdConnectProviderMapOutput() OpenIdConnectProviderMapOutput {
   242  	return i.ToOpenIdConnectProviderMapOutputWithContext(context.Background())
   243  }
   244  
   245  func (i OpenIdConnectProviderMap) ToOpenIdConnectProviderMapOutputWithContext(ctx context.Context) OpenIdConnectProviderMapOutput {
   246  	return pulumi.ToOutputWithContext(ctx, i).(OpenIdConnectProviderMapOutput)
   247  }
   248  
   249  type OpenIdConnectProviderOutput struct{ *pulumi.OutputState }
   250  
   251  func (OpenIdConnectProviderOutput) ElementType() reflect.Type {
   252  	return reflect.TypeOf((**OpenIdConnectProvider)(nil)).Elem()
   253  }
   254  
   255  func (o OpenIdConnectProviderOutput) ToOpenIdConnectProviderOutput() OpenIdConnectProviderOutput {
   256  	return o
   257  }
   258  
   259  func (o OpenIdConnectProviderOutput) ToOpenIdConnectProviderOutputWithContext(ctx context.Context) OpenIdConnectProviderOutput {
   260  	return o
   261  }
   262  
   263  // The ARN assigned by AWS for this provider.
   264  func (o OpenIdConnectProviderOutput) Arn() pulumi.StringOutput {
   265  	return o.ApplyT(func(v *OpenIdConnectProvider) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   266  }
   267  
   268  // A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the clientId parameter on OAuth requests.)
   269  func (o OpenIdConnectProviderOutput) ClientIdLists() pulumi.StringArrayOutput {
   270  	return o.ApplyT(func(v *OpenIdConnectProvider) pulumi.StringArrayOutput { return v.ClientIdLists }).(pulumi.StringArrayOutput)
   271  }
   272  
   273  // Map of resource tags for the IAM OIDC provider. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   274  func (o OpenIdConnectProviderOutput) Tags() pulumi.StringMapOutput {
   275  	return o.ApplyT(func(v *OpenIdConnectProvider) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   276  }
   277  
   278  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   279  //
   280  // Deprecated: Please use `tags` instead.
   281  func (o OpenIdConnectProviderOutput) TagsAll() pulumi.StringMapOutput {
   282  	return o.ApplyT(func(v *OpenIdConnectProvider) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   283  }
   284  
   285  // A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s).
   286  func (o OpenIdConnectProviderOutput) ThumbprintLists() pulumi.StringArrayOutput {
   287  	return o.ApplyT(func(v *OpenIdConnectProvider) pulumi.StringArrayOutput { return v.ThumbprintLists }).(pulumi.StringArrayOutput)
   288  }
   289  
   290  // The URL of the identity provider. Corresponds to the _iss_ claim.
   291  func (o OpenIdConnectProviderOutput) Url() pulumi.StringOutput {
   292  	return o.ApplyT(func(v *OpenIdConnectProvider) pulumi.StringOutput { return v.Url }).(pulumi.StringOutput)
   293  }
   294  
   295  type OpenIdConnectProviderArrayOutput struct{ *pulumi.OutputState }
   296  
   297  func (OpenIdConnectProviderArrayOutput) ElementType() reflect.Type {
   298  	return reflect.TypeOf((*[]*OpenIdConnectProvider)(nil)).Elem()
   299  }
   300  
   301  func (o OpenIdConnectProviderArrayOutput) ToOpenIdConnectProviderArrayOutput() OpenIdConnectProviderArrayOutput {
   302  	return o
   303  }
   304  
   305  func (o OpenIdConnectProviderArrayOutput) ToOpenIdConnectProviderArrayOutputWithContext(ctx context.Context) OpenIdConnectProviderArrayOutput {
   306  	return o
   307  }
   308  
   309  func (o OpenIdConnectProviderArrayOutput) Index(i pulumi.IntInput) OpenIdConnectProviderOutput {
   310  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *OpenIdConnectProvider {
   311  		return vs[0].([]*OpenIdConnectProvider)[vs[1].(int)]
   312  	}).(OpenIdConnectProviderOutput)
   313  }
   314  
   315  type OpenIdConnectProviderMapOutput struct{ *pulumi.OutputState }
   316  
   317  func (OpenIdConnectProviderMapOutput) ElementType() reflect.Type {
   318  	return reflect.TypeOf((*map[string]*OpenIdConnectProvider)(nil)).Elem()
   319  }
   320  
   321  func (o OpenIdConnectProviderMapOutput) ToOpenIdConnectProviderMapOutput() OpenIdConnectProviderMapOutput {
   322  	return o
   323  }
   324  
   325  func (o OpenIdConnectProviderMapOutput) ToOpenIdConnectProviderMapOutputWithContext(ctx context.Context) OpenIdConnectProviderMapOutput {
   326  	return o
   327  }
   328  
   329  func (o OpenIdConnectProviderMapOutput) MapIndex(k pulumi.StringInput) OpenIdConnectProviderOutput {
   330  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *OpenIdConnectProvider {
   331  		return vs[0].(map[string]*OpenIdConnectProvider)[vs[1].(string)]
   332  	}).(OpenIdConnectProviderOutput)
   333  }
   334  
   335  func init() {
   336  	pulumi.RegisterInputType(reflect.TypeOf((*OpenIdConnectProviderInput)(nil)).Elem(), &OpenIdConnectProvider{})
   337  	pulumi.RegisterInputType(reflect.TypeOf((*OpenIdConnectProviderArrayInput)(nil)).Elem(), OpenIdConnectProviderArray{})
   338  	pulumi.RegisterInputType(reflect.TypeOf((*OpenIdConnectProviderMapInput)(nil)).Elem(), OpenIdConnectProviderMap{})
   339  	pulumi.RegisterOutputType(OpenIdConnectProviderOutput{})
   340  	pulumi.RegisterOutputType(OpenIdConnectProviderArrayOutput{})
   341  	pulumi.RegisterOutputType(OpenIdConnectProviderMapOutput{})
   342  }