github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/sns/platformApplication.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 sns
     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 SNS platform application resource
    16  //
    17  // ## Example Usage
    18  //
    19  // ### Apple Push Notification Service (APNS) using certificate-based authentication
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
    28  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    29  //
    30  // )
    31  //
    32  //	func main() {
    33  //		pulumi.Run(func(ctx *pulumi.Context) error {
    34  //			_, err := sns.NewPlatformApplication(ctx, "apns_application", &sns.PlatformApplicationArgs{
    35  //				Name:               pulumi.String("apns_application"),
    36  //				Platform:           pulumi.String("APNS"),
    37  //				PlatformCredential: pulumi.String("<APNS PRIVATE KEY>"),
    38  //				PlatformPrincipal:  pulumi.String("<APNS CERTIFICATE>"),
    39  //			})
    40  //			if err != nil {
    41  //				return err
    42  //			}
    43  //			return nil
    44  //		})
    45  //	}
    46  //
    47  // ```
    48  // <!--End PulumiCodeChooser -->
    49  //
    50  // ### Apple Push Notification Service (APNS) using token-based authentication
    51  //
    52  // <!--Start PulumiCodeChooser -->
    53  // ```go
    54  // package main
    55  //
    56  // import (
    57  //
    58  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
    59  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    60  //
    61  // )
    62  //
    63  //	func main() {
    64  //		pulumi.Run(func(ctx *pulumi.Context) error {
    65  //			_, err := sns.NewPlatformApplication(ctx, "apns_application", &sns.PlatformApplicationArgs{
    66  //				Name:                  pulumi.String("apns_application"),
    67  //				Platform:              pulumi.String("APNS"),
    68  //				PlatformCredential:    pulumi.String("<APNS SIGNING KEY>"),
    69  //				PlatformPrincipal:     pulumi.String("<APNS SIGNING KEY ID>"),
    70  //				ApplePlatformTeamId:   pulumi.String("<APPLE TEAM ID>"),
    71  //				ApplePlatformBundleId: pulumi.String("<APPLE BUNDLE ID>"),
    72  //			})
    73  //			if err != nil {
    74  //				return err
    75  //			}
    76  //			return nil
    77  //		})
    78  //	}
    79  //
    80  // ```
    81  // <!--End PulumiCodeChooser -->
    82  //
    83  // ### Google Cloud Messaging (GCM)
    84  //
    85  // <!--Start PulumiCodeChooser -->
    86  // ```go
    87  // package main
    88  //
    89  // import (
    90  //
    91  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
    92  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    93  //
    94  // )
    95  //
    96  //	func main() {
    97  //		pulumi.Run(func(ctx *pulumi.Context) error {
    98  //			_, err := sns.NewPlatformApplication(ctx, "gcm_application", &sns.PlatformApplicationArgs{
    99  //				Name:               pulumi.String("gcm_application"),
   100  //				Platform:           pulumi.String("GCM"),
   101  //				PlatformCredential: pulumi.String("<GCM API KEY>"),
   102  //			})
   103  //			if err != nil {
   104  //				return err
   105  //			}
   106  //			return nil
   107  //		})
   108  //	}
   109  //
   110  // ```
   111  // <!--End PulumiCodeChooser -->
   112  //
   113  // ## Import
   114  //
   115  // Using `pulumi import`, import SNS platform applications using the ARN. For example:
   116  //
   117  // ```sh
   118  // $ pulumi import aws:sns/platformApplication:PlatformApplication gcm_application arn:aws:sns:us-west-2:0123456789012:app/GCM/gcm_application
   119  // ```
   120  type PlatformApplication struct {
   121  	pulumi.CustomResourceState
   122  
   123  	// The bundle identifier that's assigned to your iOS app. May only include alphanumeric characters, hyphens (-), and periods (.).
   124  	ApplePlatformBundleId pulumi.StringPtrOutput `pulumi:"applePlatformBundleId"`
   125  	// The identifier that's assigned to your Apple developer account team. Must be 10 alphanumeric characters.
   126  	ApplePlatformTeamId pulumi.StringPtrOutput `pulumi:"applePlatformTeamId"`
   127  	// The ARN of the SNS platform application
   128  	Arn pulumi.StringOutput `pulumi:"arn"`
   129  	// The ARN of the SNS Topic triggered when a delivery to any of the platform endpoints associated with your platform application encounters a permanent failure.
   130  	EventDeliveryFailureTopicArn pulumi.StringPtrOutput `pulumi:"eventDeliveryFailureTopicArn"`
   131  	// The ARN of the SNS Topic triggered when a new platform endpoint is added to your platform application.
   132  	EventEndpointCreatedTopicArn pulumi.StringPtrOutput `pulumi:"eventEndpointCreatedTopicArn"`
   133  	// The ARN of the SNS Topic triggered when an existing platform endpoint is deleted from your platform application.
   134  	EventEndpointDeletedTopicArn pulumi.StringPtrOutput `pulumi:"eventEndpointDeletedTopicArn"`
   135  	// The ARN of the SNS Topic triggered when an existing platform endpoint is changed from your platform application.
   136  	EventEndpointUpdatedTopicArn pulumi.StringPtrOutput `pulumi:"eventEndpointUpdatedTopicArn"`
   137  	// The IAM role ARN permitted to receive failure feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
   138  	FailureFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"failureFeedbackRoleArn"`
   139  	// The friendly name for the SNS platform application
   140  	Name pulumi.StringOutput `pulumi:"name"`
   141  	// The platform that the app is registered with. See [Platform](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for supported platforms.
   142  	Platform pulumi.StringOutput `pulumi:"platform"`
   143  	// Application Platform credential. See [Credential](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for type of credential required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
   144  	PlatformCredential pulumi.StringOutput `pulumi:"platformCredential"`
   145  	// Application Platform principal. See [Principal](http://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html) for type of principal required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
   146  	PlatformPrincipal pulumi.StringPtrOutput `pulumi:"platformPrincipal"`
   147  	// The IAM role ARN permitted to receive success feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
   148  	SuccessFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"successFeedbackRoleArn"`
   149  	// The sample rate percentage (0-100) of successfully delivered messages.
   150  	//
   151  	// The following attributes are needed only when using APNS token credentials:
   152  	SuccessFeedbackSampleRate pulumi.StringPtrOutput `pulumi:"successFeedbackSampleRate"`
   153  }
   154  
   155  // NewPlatformApplication registers a new resource with the given unique name, arguments, and options.
   156  func NewPlatformApplication(ctx *pulumi.Context,
   157  	name string, args *PlatformApplicationArgs, opts ...pulumi.ResourceOption) (*PlatformApplication, error) {
   158  	if args == nil {
   159  		return nil, errors.New("missing one or more required arguments")
   160  	}
   161  
   162  	if args.Platform == nil {
   163  		return nil, errors.New("invalid value for required argument 'Platform'")
   164  	}
   165  	if args.PlatformCredential == nil {
   166  		return nil, errors.New("invalid value for required argument 'PlatformCredential'")
   167  	}
   168  	if args.PlatformCredential != nil {
   169  		args.PlatformCredential = pulumi.ToSecret(args.PlatformCredential).(pulumi.StringInput)
   170  	}
   171  	if args.PlatformPrincipal != nil {
   172  		args.PlatformPrincipal = pulumi.ToSecret(args.PlatformPrincipal).(pulumi.StringPtrInput)
   173  	}
   174  	secrets := pulumi.AdditionalSecretOutputs([]string{
   175  		"platformCredential",
   176  		"platformPrincipal",
   177  	})
   178  	opts = append(opts, secrets)
   179  	opts = internal.PkgResourceDefaultOpts(opts)
   180  	var resource PlatformApplication
   181  	err := ctx.RegisterResource("aws:sns/platformApplication:PlatformApplication", name, args, &resource, opts...)
   182  	if err != nil {
   183  		return nil, err
   184  	}
   185  	return &resource, nil
   186  }
   187  
   188  // GetPlatformApplication gets an existing PlatformApplication resource's state with the given name, ID, and optional
   189  // state properties that are used to uniquely qualify the lookup (nil if not required).
   190  func GetPlatformApplication(ctx *pulumi.Context,
   191  	name string, id pulumi.IDInput, state *PlatformApplicationState, opts ...pulumi.ResourceOption) (*PlatformApplication, error) {
   192  	var resource PlatformApplication
   193  	err := ctx.ReadResource("aws:sns/platformApplication:PlatformApplication", name, id, state, &resource, opts...)
   194  	if err != nil {
   195  		return nil, err
   196  	}
   197  	return &resource, nil
   198  }
   199  
   200  // Input properties used for looking up and filtering PlatformApplication resources.
   201  type platformApplicationState struct {
   202  	// The bundle identifier that's assigned to your iOS app. May only include alphanumeric characters, hyphens (-), and periods (.).
   203  	ApplePlatformBundleId *string `pulumi:"applePlatformBundleId"`
   204  	// The identifier that's assigned to your Apple developer account team. Must be 10 alphanumeric characters.
   205  	ApplePlatformTeamId *string `pulumi:"applePlatformTeamId"`
   206  	// The ARN of the SNS platform application
   207  	Arn *string `pulumi:"arn"`
   208  	// The ARN of the SNS Topic triggered when a delivery to any of the platform endpoints associated with your platform application encounters a permanent failure.
   209  	EventDeliveryFailureTopicArn *string `pulumi:"eventDeliveryFailureTopicArn"`
   210  	// The ARN of the SNS Topic triggered when a new platform endpoint is added to your platform application.
   211  	EventEndpointCreatedTopicArn *string `pulumi:"eventEndpointCreatedTopicArn"`
   212  	// The ARN of the SNS Topic triggered when an existing platform endpoint is deleted from your platform application.
   213  	EventEndpointDeletedTopicArn *string `pulumi:"eventEndpointDeletedTopicArn"`
   214  	// The ARN of the SNS Topic triggered when an existing platform endpoint is changed from your platform application.
   215  	EventEndpointUpdatedTopicArn *string `pulumi:"eventEndpointUpdatedTopicArn"`
   216  	// The IAM role ARN permitted to receive failure feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
   217  	FailureFeedbackRoleArn *string `pulumi:"failureFeedbackRoleArn"`
   218  	// The friendly name for the SNS platform application
   219  	Name *string `pulumi:"name"`
   220  	// The platform that the app is registered with. See [Platform](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for supported platforms.
   221  	Platform *string `pulumi:"platform"`
   222  	// Application Platform credential. See [Credential](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for type of credential required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
   223  	PlatformCredential *string `pulumi:"platformCredential"`
   224  	// Application Platform principal. See [Principal](http://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html) for type of principal required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
   225  	PlatformPrincipal *string `pulumi:"platformPrincipal"`
   226  	// The IAM role ARN permitted to receive success feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
   227  	SuccessFeedbackRoleArn *string `pulumi:"successFeedbackRoleArn"`
   228  	// The sample rate percentage (0-100) of successfully delivered messages.
   229  	//
   230  	// The following attributes are needed only when using APNS token credentials:
   231  	SuccessFeedbackSampleRate *string `pulumi:"successFeedbackSampleRate"`
   232  }
   233  
   234  type PlatformApplicationState struct {
   235  	// The bundle identifier that's assigned to your iOS app. May only include alphanumeric characters, hyphens (-), and periods (.).
   236  	ApplePlatformBundleId pulumi.StringPtrInput
   237  	// The identifier that's assigned to your Apple developer account team. Must be 10 alphanumeric characters.
   238  	ApplePlatformTeamId pulumi.StringPtrInput
   239  	// The ARN of the SNS platform application
   240  	Arn pulumi.StringPtrInput
   241  	// The ARN of the SNS Topic triggered when a delivery to any of the platform endpoints associated with your platform application encounters a permanent failure.
   242  	EventDeliveryFailureTopicArn pulumi.StringPtrInput
   243  	// The ARN of the SNS Topic triggered when a new platform endpoint is added to your platform application.
   244  	EventEndpointCreatedTopicArn pulumi.StringPtrInput
   245  	// The ARN of the SNS Topic triggered when an existing platform endpoint is deleted from your platform application.
   246  	EventEndpointDeletedTopicArn pulumi.StringPtrInput
   247  	// The ARN of the SNS Topic triggered when an existing platform endpoint is changed from your platform application.
   248  	EventEndpointUpdatedTopicArn pulumi.StringPtrInput
   249  	// The IAM role ARN permitted to receive failure feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
   250  	FailureFeedbackRoleArn pulumi.StringPtrInput
   251  	// The friendly name for the SNS platform application
   252  	Name pulumi.StringPtrInput
   253  	// The platform that the app is registered with. See [Platform](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for supported platforms.
   254  	Platform pulumi.StringPtrInput
   255  	// Application Platform credential. See [Credential](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for type of credential required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
   256  	PlatformCredential pulumi.StringPtrInput
   257  	// Application Platform principal. See [Principal](http://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html) for type of principal required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
   258  	PlatformPrincipal pulumi.StringPtrInput
   259  	// The IAM role ARN permitted to receive success feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
   260  	SuccessFeedbackRoleArn pulumi.StringPtrInput
   261  	// The sample rate percentage (0-100) of successfully delivered messages.
   262  	//
   263  	// The following attributes are needed only when using APNS token credentials:
   264  	SuccessFeedbackSampleRate pulumi.StringPtrInput
   265  }
   266  
   267  func (PlatformApplicationState) ElementType() reflect.Type {
   268  	return reflect.TypeOf((*platformApplicationState)(nil)).Elem()
   269  }
   270  
   271  type platformApplicationArgs struct {
   272  	// The bundle identifier that's assigned to your iOS app. May only include alphanumeric characters, hyphens (-), and periods (.).
   273  	ApplePlatformBundleId *string `pulumi:"applePlatformBundleId"`
   274  	// The identifier that's assigned to your Apple developer account team. Must be 10 alphanumeric characters.
   275  	ApplePlatformTeamId *string `pulumi:"applePlatformTeamId"`
   276  	// The ARN of the SNS Topic triggered when a delivery to any of the platform endpoints associated with your platform application encounters a permanent failure.
   277  	EventDeliveryFailureTopicArn *string `pulumi:"eventDeliveryFailureTopicArn"`
   278  	// The ARN of the SNS Topic triggered when a new platform endpoint is added to your platform application.
   279  	EventEndpointCreatedTopicArn *string `pulumi:"eventEndpointCreatedTopicArn"`
   280  	// The ARN of the SNS Topic triggered when an existing platform endpoint is deleted from your platform application.
   281  	EventEndpointDeletedTopicArn *string `pulumi:"eventEndpointDeletedTopicArn"`
   282  	// The ARN of the SNS Topic triggered when an existing platform endpoint is changed from your platform application.
   283  	EventEndpointUpdatedTopicArn *string `pulumi:"eventEndpointUpdatedTopicArn"`
   284  	// The IAM role ARN permitted to receive failure feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
   285  	FailureFeedbackRoleArn *string `pulumi:"failureFeedbackRoleArn"`
   286  	// The friendly name for the SNS platform application
   287  	Name *string `pulumi:"name"`
   288  	// The platform that the app is registered with. See [Platform](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for supported platforms.
   289  	Platform string `pulumi:"platform"`
   290  	// Application Platform credential. See [Credential](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for type of credential required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
   291  	PlatformCredential string `pulumi:"platformCredential"`
   292  	// Application Platform principal. See [Principal](http://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html) for type of principal required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
   293  	PlatformPrincipal *string `pulumi:"platformPrincipal"`
   294  	// The IAM role ARN permitted to receive success feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
   295  	SuccessFeedbackRoleArn *string `pulumi:"successFeedbackRoleArn"`
   296  	// The sample rate percentage (0-100) of successfully delivered messages.
   297  	//
   298  	// The following attributes are needed only when using APNS token credentials:
   299  	SuccessFeedbackSampleRate *string `pulumi:"successFeedbackSampleRate"`
   300  }
   301  
   302  // The set of arguments for constructing a PlatformApplication resource.
   303  type PlatformApplicationArgs struct {
   304  	// The bundle identifier that's assigned to your iOS app. May only include alphanumeric characters, hyphens (-), and periods (.).
   305  	ApplePlatformBundleId pulumi.StringPtrInput
   306  	// The identifier that's assigned to your Apple developer account team. Must be 10 alphanumeric characters.
   307  	ApplePlatformTeamId pulumi.StringPtrInput
   308  	// The ARN of the SNS Topic triggered when a delivery to any of the platform endpoints associated with your platform application encounters a permanent failure.
   309  	EventDeliveryFailureTopicArn pulumi.StringPtrInput
   310  	// The ARN of the SNS Topic triggered when a new platform endpoint is added to your platform application.
   311  	EventEndpointCreatedTopicArn pulumi.StringPtrInput
   312  	// The ARN of the SNS Topic triggered when an existing platform endpoint is deleted from your platform application.
   313  	EventEndpointDeletedTopicArn pulumi.StringPtrInput
   314  	// The ARN of the SNS Topic triggered when an existing platform endpoint is changed from your platform application.
   315  	EventEndpointUpdatedTopicArn pulumi.StringPtrInput
   316  	// The IAM role ARN permitted to receive failure feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
   317  	FailureFeedbackRoleArn pulumi.StringPtrInput
   318  	// The friendly name for the SNS platform application
   319  	Name pulumi.StringPtrInput
   320  	// The platform that the app is registered with. See [Platform](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for supported platforms.
   321  	Platform pulumi.StringInput
   322  	// Application Platform credential. See [Credential](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for type of credential required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
   323  	PlatformCredential pulumi.StringInput
   324  	// Application Platform principal. See [Principal](http://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html) for type of principal required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
   325  	PlatformPrincipal pulumi.StringPtrInput
   326  	// The IAM role ARN permitted to receive success feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
   327  	SuccessFeedbackRoleArn pulumi.StringPtrInput
   328  	// The sample rate percentage (0-100) of successfully delivered messages.
   329  	//
   330  	// The following attributes are needed only when using APNS token credentials:
   331  	SuccessFeedbackSampleRate pulumi.StringPtrInput
   332  }
   333  
   334  func (PlatformApplicationArgs) ElementType() reflect.Type {
   335  	return reflect.TypeOf((*platformApplicationArgs)(nil)).Elem()
   336  }
   337  
   338  type PlatformApplicationInput interface {
   339  	pulumi.Input
   340  
   341  	ToPlatformApplicationOutput() PlatformApplicationOutput
   342  	ToPlatformApplicationOutputWithContext(ctx context.Context) PlatformApplicationOutput
   343  }
   344  
   345  func (*PlatformApplication) ElementType() reflect.Type {
   346  	return reflect.TypeOf((**PlatformApplication)(nil)).Elem()
   347  }
   348  
   349  func (i *PlatformApplication) ToPlatformApplicationOutput() PlatformApplicationOutput {
   350  	return i.ToPlatformApplicationOutputWithContext(context.Background())
   351  }
   352  
   353  func (i *PlatformApplication) ToPlatformApplicationOutputWithContext(ctx context.Context) PlatformApplicationOutput {
   354  	return pulumi.ToOutputWithContext(ctx, i).(PlatformApplicationOutput)
   355  }
   356  
   357  // PlatformApplicationArrayInput is an input type that accepts PlatformApplicationArray and PlatformApplicationArrayOutput values.
   358  // You can construct a concrete instance of `PlatformApplicationArrayInput` via:
   359  //
   360  //	PlatformApplicationArray{ PlatformApplicationArgs{...} }
   361  type PlatformApplicationArrayInput interface {
   362  	pulumi.Input
   363  
   364  	ToPlatformApplicationArrayOutput() PlatformApplicationArrayOutput
   365  	ToPlatformApplicationArrayOutputWithContext(context.Context) PlatformApplicationArrayOutput
   366  }
   367  
   368  type PlatformApplicationArray []PlatformApplicationInput
   369  
   370  func (PlatformApplicationArray) ElementType() reflect.Type {
   371  	return reflect.TypeOf((*[]*PlatformApplication)(nil)).Elem()
   372  }
   373  
   374  func (i PlatformApplicationArray) ToPlatformApplicationArrayOutput() PlatformApplicationArrayOutput {
   375  	return i.ToPlatformApplicationArrayOutputWithContext(context.Background())
   376  }
   377  
   378  func (i PlatformApplicationArray) ToPlatformApplicationArrayOutputWithContext(ctx context.Context) PlatformApplicationArrayOutput {
   379  	return pulumi.ToOutputWithContext(ctx, i).(PlatformApplicationArrayOutput)
   380  }
   381  
   382  // PlatformApplicationMapInput is an input type that accepts PlatformApplicationMap and PlatformApplicationMapOutput values.
   383  // You can construct a concrete instance of `PlatformApplicationMapInput` via:
   384  //
   385  //	PlatformApplicationMap{ "key": PlatformApplicationArgs{...} }
   386  type PlatformApplicationMapInput interface {
   387  	pulumi.Input
   388  
   389  	ToPlatformApplicationMapOutput() PlatformApplicationMapOutput
   390  	ToPlatformApplicationMapOutputWithContext(context.Context) PlatformApplicationMapOutput
   391  }
   392  
   393  type PlatformApplicationMap map[string]PlatformApplicationInput
   394  
   395  func (PlatformApplicationMap) ElementType() reflect.Type {
   396  	return reflect.TypeOf((*map[string]*PlatformApplication)(nil)).Elem()
   397  }
   398  
   399  func (i PlatformApplicationMap) ToPlatformApplicationMapOutput() PlatformApplicationMapOutput {
   400  	return i.ToPlatformApplicationMapOutputWithContext(context.Background())
   401  }
   402  
   403  func (i PlatformApplicationMap) ToPlatformApplicationMapOutputWithContext(ctx context.Context) PlatformApplicationMapOutput {
   404  	return pulumi.ToOutputWithContext(ctx, i).(PlatformApplicationMapOutput)
   405  }
   406  
   407  type PlatformApplicationOutput struct{ *pulumi.OutputState }
   408  
   409  func (PlatformApplicationOutput) ElementType() reflect.Type {
   410  	return reflect.TypeOf((**PlatformApplication)(nil)).Elem()
   411  }
   412  
   413  func (o PlatformApplicationOutput) ToPlatformApplicationOutput() PlatformApplicationOutput {
   414  	return o
   415  }
   416  
   417  func (o PlatformApplicationOutput) ToPlatformApplicationOutputWithContext(ctx context.Context) PlatformApplicationOutput {
   418  	return o
   419  }
   420  
   421  // The bundle identifier that's assigned to your iOS app. May only include alphanumeric characters, hyphens (-), and periods (.).
   422  func (o PlatformApplicationOutput) ApplePlatformBundleId() pulumi.StringPtrOutput {
   423  	return o.ApplyT(func(v *PlatformApplication) pulumi.StringPtrOutput { return v.ApplePlatformBundleId }).(pulumi.StringPtrOutput)
   424  }
   425  
   426  // The identifier that's assigned to your Apple developer account team. Must be 10 alphanumeric characters.
   427  func (o PlatformApplicationOutput) ApplePlatformTeamId() pulumi.StringPtrOutput {
   428  	return o.ApplyT(func(v *PlatformApplication) pulumi.StringPtrOutput { return v.ApplePlatformTeamId }).(pulumi.StringPtrOutput)
   429  }
   430  
   431  // The ARN of the SNS platform application
   432  func (o PlatformApplicationOutput) Arn() pulumi.StringOutput {
   433  	return o.ApplyT(func(v *PlatformApplication) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   434  }
   435  
   436  // The ARN of the SNS Topic triggered when a delivery to any of the platform endpoints associated with your platform application encounters a permanent failure.
   437  func (o PlatformApplicationOutput) EventDeliveryFailureTopicArn() pulumi.StringPtrOutput {
   438  	return o.ApplyT(func(v *PlatformApplication) pulumi.StringPtrOutput { return v.EventDeliveryFailureTopicArn }).(pulumi.StringPtrOutput)
   439  }
   440  
   441  // The ARN of the SNS Topic triggered when a new platform endpoint is added to your platform application.
   442  func (o PlatformApplicationOutput) EventEndpointCreatedTopicArn() pulumi.StringPtrOutput {
   443  	return o.ApplyT(func(v *PlatformApplication) pulumi.StringPtrOutput { return v.EventEndpointCreatedTopicArn }).(pulumi.StringPtrOutput)
   444  }
   445  
   446  // The ARN of the SNS Topic triggered when an existing platform endpoint is deleted from your platform application.
   447  func (o PlatformApplicationOutput) EventEndpointDeletedTopicArn() pulumi.StringPtrOutput {
   448  	return o.ApplyT(func(v *PlatformApplication) pulumi.StringPtrOutput { return v.EventEndpointDeletedTopicArn }).(pulumi.StringPtrOutput)
   449  }
   450  
   451  // The ARN of the SNS Topic triggered when an existing platform endpoint is changed from your platform application.
   452  func (o PlatformApplicationOutput) EventEndpointUpdatedTopicArn() pulumi.StringPtrOutput {
   453  	return o.ApplyT(func(v *PlatformApplication) pulumi.StringPtrOutput { return v.EventEndpointUpdatedTopicArn }).(pulumi.StringPtrOutput)
   454  }
   455  
   456  // The IAM role ARN permitted to receive failure feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
   457  func (o PlatformApplicationOutput) FailureFeedbackRoleArn() pulumi.StringPtrOutput {
   458  	return o.ApplyT(func(v *PlatformApplication) pulumi.StringPtrOutput { return v.FailureFeedbackRoleArn }).(pulumi.StringPtrOutput)
   459  }
   460  
   461  // The friendly name for the SNS platform application
   462  func (o PlatformApplicationOutput) Name() pulumi.StringOutput {
   463  	return o.ApplyT(func(v *PlatformApplication) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   464  }
   465  
   466  // The platform that the app is registered with. See [Platform](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for supported platforms.
   467  func (o PlatformApplicationOutput) Platform() pulumi.StringOutput {
   468  	return o.ApplyT(func(v *PlatformApplication) pulumi.StringOutput { return v.Platform }).(pulumi.StringOutput)
   469  }
   470  
   471  // Application Platform credential. See [Credential](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for type of credential required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
   472  func (o PlatformApplicationOutput) PlatformCredential() pulumi.StringOutput {
   473  	return o.ApplyT(func(v *PlatformApplication) pulumi.StringOutput { return v.PlatformCredential }).(pulumi.StringOutput)
   474  }
   475  
   476  // Application Platform principal. See [Principal](http://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html) for type of principal required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
   477  func (o PlatformApplicationOutput) PlatformPrincipal() pulumi.StringPtrOutput {
   478  	return o.ApplyT(func(v *PlatformApplication) pulumi.StringPtrOutput { return v.PlatformPrincipal }).(pulumi.StringPtrOutput)
   479  }
   480  
   481  // The IAM role ARN permitted to receive success feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
   482  func (o PlatformApplicationOutput) SuccessFeedbackRoleArn() pulumi.StringPtrOutput {
   483  	return o.ApplyT(func(v *PlatformApplication) pulumi.StringPtrOutput { return v.SuccessFeedbackRoleArn }).(pulumi.StringPtrOutput)
   484  }
   485  
   486  // The sample rate percentage (0-100) of successfully delivered messages.
   487  //
   488  // The following attributes are needed only when using APNS token credentials:
   489  func (o PlatformApplicationOutput) SuccessFeedbackSampleRate() pulumi.StringPtrOutput {
   490  	return o.ApplyT(func(v *PlatformApplication) pulumi.StringPtrOutput { return v.SuccessFeedbackSampleRate }).(pulumi.StringPtrOutput)
   491  }
   492  
   493  type PlatformApplicationArrayOutput struct{ *pulumi.OutputState }
   494  
   495  func (PlatformApplicationArrayOutput) ElementType() reflect.Type {
   496  	return reflect.TypeOf((*[]*PlatformApplication)(nil)).Elem()
   497  }
   498  
   499  func (o PlatformApplicationArrayOutput) ToPlatformApplicationArrayOutput() PlatformApplicationArrayOutput {
   500  	return o
   501  }
   502  
   503  func (o PlatformApplicationArrayOutput) ToPlatformApplicationArrayOutputWithContext(ctx context.Context) PlatformApplicationArrayOutput {
   504  	return o
   505  }
   506  
   507  func (o PlatformApplicationArrayOutput) Index(i pulumi.IntInput) PlatformApplicationOutput {
   508  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *PlatformApplication {
   509  		return vs[0].([]*PlatformApplication)[vs[1].(int)]
   510  	}).(PlatformApplicationOutput)
   511  }
   512  
   513  type PlatformApplicationMapOutput struct{ *pulumi.OutputState }
   514  
   515  func (PlatformApplicationMapOutput) ElementType() reflect.Type {
   516  	return reflect.TypeOf((*map[string]*PlatformApplication)(nil)).Elem()
   517  }
   518  
   519  func (o PlatformApplicationMapOutput) ToPlatformApplicationMapOutput() PlatformApplicationMapOutput {
   520  	return o
   521  }
   522  
   523  func (o PlatformApplicationMapOutput) ToPlatformApplicationMapOutputWithContext(ctx context.Context) PlatformApplicationMapOutput {
   524  	return o
   525  }
   526  
   527  func (o PlatformApplicationMapOutput) MapIndex(k pulumi.StringInput) PlatformApplicationOutput {
   528  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *PlatformApplication {
   529  		return vs[0].(map[string]*PlatformApplication)[vs[1].(string)]
   530  	}).(PlatformApplicationOutput)
   531  }
   532  
   533  func init() {
   534  	pulumi.RegisterInputType(reflect.TypeOf((*PlatformApplicationInput)(nil)).Elem(), &PlatformApplication{})
   535  	pulumi.RegisterInputType(reflect.TypeOf((*PlatformApplicationArrayInput)(nil)).Elem(), PlatformApplicationArray{})
   536  	pulumi.RegisterInputType(reflect.TypeOf((*PlatformApplicationMapInput)(nil)).Elem(), PlatformApplicationMap{})
   537  	pulumi.RegisterOutputType(PlatformApplicationOutput{})
   538  	pulumi.RegisterOutputType(PlatformApplicationArrayOutput{})
   539  	pulumi.RegisterOutputType(PlatformApplicationMapOutput{})
   540  }