github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/neptune/eventSubscription.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 neptune 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 // ## Example Usage 16 // 17 // <!--Start PulumiCodeChooser --> 18 // ```go 19 // package main 20 // 21 // import ( 22 // 23 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/neptune" 24 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns" 25 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 26 // 27 // ) 28 // 29 // func main() { 30 // pulumi.Run(func(ctx *pulumi.Context) error { 31 // _, err := neptune.NewCluster(ctx, "default", &neptune.ClusterArgs{ 32 // ClusterIdentifier: pulumi.String("neptune-cluster-demo"), 33 // Engine: pulumi.String("neptune"), 34 // BackupRetentionPeriod: pulumi.Int(5), 35 // PreferredBackupWindow: pulumi.String("07:00-09:00"), 36 // SkipFinalSnapshot: pulumi.Bool(true), 37 // IamDatabaseAuthenticationEnabled: pulumi.Bool(true), 38 // ApplyImmediately: pulumi.Bool(true), 39 // }) 40 // if err != nil { 41 // return err 42 // } 43 // example, err := neptune.NewClusterInstance(ctx, "example", &neptune.ClusterInstanceArgs{ 44 // ClusterIdentifier: _default.ID(), 45 // Engine: pulumi.String("neptune"), 46 // InstanceClass: pulumi.String("db.r4.large"), 47 // ApplyImmediately: pulumi.Bool(true), 48 // }) 49 // if err != nil { 50 // return err 51 // } 52 // defaultTopic, err := sns.NewTopic(ctx, "default", &sns.TopicArgs{ 53 // Name: pulumi.String("neptune-events"), 54 // }) 55 // if err != nil { 56 // return err 57 // } 58 // _, err = neptune.NewEventSubscription(ctx, "default", &neptune.EventSubscriptionArgs{ 59 // Name: pulumi.String("neptune-event-sub"), 60 // SnsTopicArn: defaultTopic.Arn, 61 // SourceType: pulumi.String("db-instance"), 62 // SourceIds: pulumi.StringArray{ 63 // example.ID(), 64 // }, 65 // EventCategories: pulumi.StringArray{ 66 // pulumi.String("maintenance"), 67 // pulumi.String("availability"), 68 // pulumi.String("creation"), 69 // pulumi.String("backup"), 70 // pulumi.String("restoration"), 71 // pulumi.String("recovery"), 72 // pulumi.String("deletion"), 73 // pulumi.String("failover"), 74 // pulumi.String("failure"), 75 // pulumi.String("notification"), 76 // pulumi.String("configuration change"), 77 // pulumi.String("read replica"), 78 // }, 79 // Tags: pulumi.StringMap{ 80 // "env": pulumi.String("test"), 81 // }, 82 // }) 83 // if err != nil { 84 // return err 85 // } 86 // return nil 87 // }) 88 // } 89 // 90 // ``` 91 // <!--End PulumiCodeChooser --> 92 // 93 // ## Import 94 // 95 // Using `pulumi import`, import `aws_neptune_event_subscription` using the event subscription name. For example: 96 // 97 // ```sh 98 // $ pulumi import aws:neptune/eventSubscription:EventSubscription example my-event-subscription 99 // ``` 100 type EventSubscription struct { 101 pulumi.CustomResourceState 102 103 // The Amazon Resource Name of the Neptune event notification subscription. 104 Arn pulumi.StringOutput `pulumi:"arn"` 105 // The AWS customer account associated with the Neptune event notification subscription. 106 CustomerAwsId pulumi.StringOutput `pulumi:"customerAwsId"` 107 // A boolean flag to enable/disable the subscription. Defaults to true. 108 Enabled pulumi.BoolPtrOutput `pulumi:"enabled"` 109 // A list of event categories for a `sourceType` that you want to subscribe to. Run `aws neptune describe-event-categories` to find all the event categories. 110 EventCategories pulumi.StringArrayOutput `pulumi:"eventCategories"` 111 // The name of the Neptune event subscription. By default generated by this provider. 112 Name pulumi.StringOutput `pulumi:"name"` 113 // The name of the Neptune event subscription. Conflicts with `name`. 114 NamePrefix pulumi.StringOutput `pulumi:"namePrefix"` 115 // The ARN of the SNS topic to send events to. 116 SnsTopicArn pulumi.StringOutput `pulumi:"snsTopicArn"` 117 // A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a `sourceType` must also be specified. 118 SourceIds pulumi.StringArrayOutput `pulumi:"sourceIds"` 119 // The type of source that will be generating the events. Valid options are `db-instance`, `db-security-group`, `db-parameter-group`, `db-snapshot`, `db-cluster` or `db-cluster-snapshot`. If not set, all sources will be subscribed to. 120 SourceType pulumi.StringPtrOutput `pulumi:"sourceType"` 121 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 122 Tags pulumi.StringMapOutput `pulumi:"tags"` 123 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 124 // 125 // Deprecated: Please use `tags` instead. 126 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 127 } 128 129 // NewEventSubscription registers a new resource with the given unique name, arguments, and options. 130 func NewEventSubscription(ctx *pulumi.Context, 131 name string, args *EventSubscriptionArgs, opts ...pulumi.ResourceOption) (*EventSubscription, error) { 132 if args == nil { 133 return nil, errors.New("missing one or more required arguments") 134 } 135 136 if args.SnsTopicArn == nil { 137 return nil, errors.New("invalid value for required argument 'SnsTopicArn'") 138 } 139 opts = internal.PkgResourceDefaultOpts(opts) 140 var resource EventSubscription 141 err := ctx.RegisterResource("aws:neptune/eventSubscription:EventSubscription", name, args, &resource, opts...) 142 if err != nil { 143 return nil, err 144 } 145 return &resource, nil 146 } 147 148 // GetEventSubscription gets an existing EventSubscription resource's state with the given name, ID, and optional 149 // state properties that are used to uniquely qualify the lookup (nil if not required). 150 func GetEventSubscription(ctx *pulumi.Context, 151 name string, id pulumi.IDInput, state *EventSubscriptionState, opts ...pulumi.ResourceOption) (*EventSubscription, error) { 152 var resource EventSubscription 153 err := ctx.ReadResource("aws:neptune/eventSubscription:EventSubscription", name, id, state, &resource, opts...) 154 if err != nil { 155 return nil, err 156 } 157 return &resource, nil 158 } 159 160 // Input properties used for looking up and filtering EventSubscription resources. 161 type eventSubscriptionState struct { 162 // The Amazon Resource Name of the Neptune event notification subscription. 163 Arn *string `pulumi:"arn"` 164 // The AWS customer account associated with the Neptune event notification subscription. 165 CustomerAwsId *string `pulumi:"customerAwsId"` 166 // A boolean flag to enable/disable the subscription. Defaults to true. 167 Enabled *bool `pulumi:"enabled"` 168 // A list of event categories for a `sourceType` that you want to subscribe to. Run `aws neptune describe-event-categories` to find all the event categories. 169 EventCategories []string `pulumi:"eventCategories"` 170 // The name of the Neptune event subscription. By default generated by this provider. 171 Name *string `pulumi:"name"` 172 // The name of the Neptune event subscription. Conflicts with `name`. 173 NamePrefix *string `pulumi:"namePrefix"` 174 // The ARN of the SNS topic to send events to. 175 SnsTopicArn *string `pulumi:"snsTopicArn"` 176 // A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a `sourceType` must also be specified. 177 SourceIds []string `pulumi:"sourceIds"` 178 // The type of source that will be generating the events. Valid options are `db-instance`, `db-security-group`, `db-parameter-group`, `db-snapshot`, `db-cluster` or `db-cluster-snapshot`. If not set, all sources will be subscribed to. 179 SourceType *string `pulumi:"sourceType"` 180 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 181 Tags map[string]string `pulumi:"tags"` 182 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 183 // 184 // Deprecated: Please use `tags` instead. 185 TagsAll map[string]string `pulumi:"tagsAll"` 186 } 187 188 type EventSubscriptionState struct { 189 // The Amazon Resource Name of the Neptune event notification subscription. 190 Arn pulumi.StringPtrInput 191 // The AWS customer account associated with the Neptune event notification subscription. 192 CustomerAwsId pulumi.StringPtrInput 193 // A boolean flag to enable/disable the subscription. Defaults to true. 194 Enabled pulumi.BoolPtrInput 195 // A list of event categories for a `sourceType` that you want to subscribe to. Run `aws neptune describe-event-categories` to find all the event categories. 196 EventCategories pulumi.StringArrayInput 197 // The name of the Neptune event subscription. By default generated by this provider. 198 Name pulumi.StringPtrInput 199 // The name of the Neptune event subscription. Conflicts with `name`. 200 NamePrefix pulumi.StringPtrInput 201 // The ARN of the SNS topic to send events to. 202 SnsTopicArn pulumi.StringPtrInput 203 // A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a `sourceType` must also be specified. 204 SourceIds pulumi.StringArrayInput 205 // The type of source that will be generating the events. Valid options are `db-instance`, `db-security-group`, `db-parameter-group`, `db-snapshot`, `db-cluster` or `db-cluster-snapshot`. If not set, all sources will be subscribed to. 206 SourceType pulumi.StringPtrInput 207 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 208 Tags pulumi.StringMapInput 209 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 210 // 211 // Deprecated: Please use `tags` instead. 212 TagsAll pulumi.StringMapInput 213 } 214 215 func (EventSubscriptionState) ElementType() reflect.Type { 216 return reflect.TypeOf((*eventSubscriptionState)(nil)).Elem() 217 } 218 219 type eventSubscriptionArgs struct { 220 // A boolean flag to enable/disable the subscription. Defaults to true. 221 Enabled *bool `pulumi:"enabled"` 222 // A list of event categories for a `sourceType` that you want to subscribe to. Run `aws neptune describe-event-categories` to find all the event categories. 223 EventCategories []string `pulumi:"eventCategories"` 224 // The name of the Neptune event subscription. By default generated by this provider. 225 Name *string `pulumi:"name"` 226 // The name of the Neptune event subscription. Conflicts with `name`. 227 NamePrefix *string `pulumi:"namePrefix"` 228 // The ARN of the SNS topic to send events to. 229 SnsTopicArn string `pulumi:"snsTopicArn"` 230 // A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a `sourceType` must also be specified. 231 SourceIds []string `pulumi:"sourceIds"` 232 // The type of source that will be generating the events. Valid options are `db-instance`, `db-security-group`, `db-parameter-group`, `db-snapshot`, `db-cluster` or `db-cluster-snapshot`. If not set, all sources will be subscribed to. 233 SourceType *string `pulumi:"sourceType"` 234 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 235 Tags map[string]string `pulumi:"tags"` 236 } 237 238 // The set of arguments for constructing a EventSubscription resource. 239 type EventSubscriptionArgs struct { 240 // A boolean flag to enable/disable the subscription. Defaults to true. 241 Enabled pulumi.BoolPtrInput 242 // A list of event categories for a `sourceType` that you want to subscribe to. Run `aws neptune describe-event-categories` to find all the event categories. 243 EventCategories pulumi.StringArrayInput 244 // The name of the Neptune event subscription. By default generated by this provider. 245 Name pulumi.StringPtrInput 246 // The name of the Neptune event subscription. Conflicts with `name`. 247 NamePrefix pulumi.StringPtrInput 248 // The ARN of the SNS topic to send events to. 249 SnsTopicArn pulumi.StringInput 250 // A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a `sourceType` must also be specified. 251 SourceIds pulumi.StringArrayInput 252 // The type of source that will be generating the events. Valid options are `db-instance`, `db-security-group`, `db-parameter-group`, `db-snapshot`, `db-cluster` or `db-cluster-snapshot`. If not set, all sources will be subscribed to. 253 SourceType pulumi.StringPtrInput 254 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 255 Tags pulumi.StringMapInput 256 } 257 258 func (EventSubscriptionArgs) ElementType() reflect.Type { 259 return reflect.TypeOf((*eventSubscriptionArgs)(nil)).Elem() 260 } 261 262 type EventSubscriptionInput interface { 263 pulumi.Input 264 265 ToEventSubscriptionOutput() EventSubscriptionOutput 266 ToEventSubscriptionOutputWithContext(ctx context.Context) EventSubscriptionOutput 267 } 268 269 func (*EventSubscription) ElementType() reflect.Type { 270 return reflect.TypeOf((**EventSubscription)(nil)).Elem() 271 } 272 273 func (i *EventSubscription) ToEventSubscriptionOutput() EventSubscriptionOutput { 274 return i.ToEventSubscriptionOutputWithContext(context.Background()) 275 } 276 277 func (i *EventSubscription) ToEventSubscriptionOutputWithContext(ctx context.Context) EventSubscriptionOutput { 278 return pulumi.ToOutputWithContext(ctx, i).(EventSubscriptionOutput) 279 } 280 281 // EventSubscriptionArrayInput is an input type that accepts EventSubscriptionArray and EventSubscriptionArrayOutput values. 282 // You can construct a concrete instance of `EventSubscriptionArrayInput` via: 283 // 284 // EventSubscriptionArray{ EventSubscriptionArgs{...} } 285 type EventSubscriptionArrayInput interface { 286 pulumi.Input 287 288 ToEventSubscriptionArrayOutput() EventSubscriptionArrayOutput 289 ToEventSubscriptionArrayOutputWithContext(context.Context) EventSubscriptionArrayOutput 290 } 291 292 type EventSubscriptionArray []EventSubscriptionInput 293 294 func (EventSubscriptionArray) ElementType() reflect.Type { 295 return reflect.TypeOf((*[]*EventSubscription)(nil)).Elem() 296 } 297 298 func (i EventSubscriptionArray) ToEventSubscriptionArrayOutput() EventSubscriptionArrayOutput { 299 return i.ToEventSubscriptionArrayOutputWithContext(context.Background()) 300 } 301 302 func (i EventSubscriptionArray) ToEventSubscriptionArrayOutputWithContext(ctx context.Context) EventSubscriptionArrayOutput { 303 return pulumi.ToOutputWithContext(ctx, i).(EventSubscriptionArrayOutput) 304 } 305 306 // EventSubscriptionMapInput is an input type that accepts EventSubscriptionMap and EventSubscriptionMapOutput values. 307 // You can construct a concrete instance of `EventSubscriptionMapInput` via: 308 // 309 // EventSubscriptionMap{ "key": EventSubscriptionArgs{...} } 310 type EventSubscriptionMapInput interface { 311 pulumi.Input 312 313 ToEventSubscriptionMapOutput() EventSubscriptionMapOutput 314 ToEventSubscriptionMapOutputWithContext(context.Context) EventSubscriptionMapOutput 315 } 316 317 type EventSubscriptionMap map[string]EventSubscriptionInput 318 319 func (EventSubscriptionMap) ElementType() reflect.Type { 320 return reflect.TypeOf((*map[string]*EventSubscription)(nil)).Elem() 321 } 322 323 func (i EventSubscriptionMap) ToEventSubscriptionMapOutput() EventSubscriptionMapOutput { 324 return i.ToEventSubscriptionMapOutputWithContext(context.Background()) 325 } 326 327 func (i EventSubscriptionMap) ToEventSubscriptionMapOutputWithContext(ctx context.Context) EventSubscriptionMapOutput { 328 return pulumi.ToOutputWithContext(ctx, i).(EventSubscriptionMapOutput) 329 } 330 331 type EventSubscriptionOutput struct{ *pulumi.OutputState } 332 333 func (EventSubscriptionOutput) ElementType() reflect.Type { 334 return reflect.TypeOf((**EventSubscription)(nil)).Elem() 335 } 336 337 func (o EventSubscriptionOutput) ToEventSubscriptionOutput() EventSubscriptionOutput { 338 return o 339 } 340 341 func (o EventSubscriptionOutput) ToEventSubscriptionOutputWithContext(ctx context.Context) EventSubscriptionOutput { 342 return o 343 } 344 345 // The Amazon Resource Name of the Neptune event notification subscription. 346 func (o EventSubscriptionOutput) Arn() pulumi.StringOutput { 347 return o.ApplyT(func(v *EventSubscription) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 348 } 349 350 // The AWS customer account associated with the Neptune event notification subscription. 351 func (o EventSubscriptionOutput) CustomerAwsId() pulumi.StringOutput { 352 return o.ApplyT(func(v *EventSubscription) pulumi.StringOutput { return v.CustomerAwsId }).(pulumi.StringOutput) 353 } 354 355 // A boolean flag to enable/disable the subscription. Defaults to true. 356 func (o EventSubscriptionOutput) Enabled() pulumi.BoolPtrOutput { 357 return o.ApplyT(func(v *EventSubscription) pulumi.BoolPtrOutput { return v.Enabled }).(pulumi.BoolPtrOutput) 358 } 359 360 // A list of event categories for a `sourceType` that you want to subscribe to. Run `aws neptune describe-event-categories` to find all the event categories. 361 func (o EventSubscriptionOutput) EventCategories() pulumi.StringArrayOutput { 362 return o.ApplyT(func(v *EventSubscription) pulumi.StringArrayOutput { return v.EventCategories }).(pulumi.StringArrayOutput) 363 } 364 365 // The name of the Neptune event subscription. By default generated by this provider. 366 func (o EventSubscriptionOutput) Name() pulumi.StringOutput { 367 return o.ApplyT(func(v *EventSubscription) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 368 } 369 370 // The name of the Neptune event subscription. Conflicts with `name`. 371 func (o EventSubscriptionOutput) NamePrefix() pulumi.StringOutput { 372 return o.ApplyT(func(v *EventSubscription) pulumi.StringOutput { return v.NamePrefix }).(pulumi.StringOutput) 373 } 374 375 // The ARN of the SNS topic to send events to. 376 func (o EventSubscriptionOutput) SnsTopicArn() pulumi.StringOutput { 377 return o.ApplyT(func(v *EventSubscription) pulumi.StringOutput { return v.SnsTopicArn }).(pulumi.StringOutput) 378 } 379 380 // A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a `sourceType` must also be specified. 381 func (o EventSubscriptionOutput) SourceIds() pulumi.StringArrayOutput { 382 return o.ApplyT(func(v *EventSubscription) pulumi.StringArrayOutput { return v.SourceIds }).(pulumi.StringArrayOutput) 383 } 384 385 // The type of source that will be generating the events. Valid options are `db-instance`, `db-security-group`, `db-parameter-group`, `db-snapshot`, `db-cluster` or `db-cluster-snapshot`. If not set, all sources will be subscribed to. 386 func (o EventSubscriptionOutput) SourceType() pulumi.StringPtrOutput { 387 return o.ApplyT(func(v *EventSubscription) pulumi.StringPtrOutput { return v.SourceType }).(pulumi.StringPtrOutput) 388 } 389 390 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 391 func (o EventSubscriptionOutput) Tags() pulumi.StringMapOutput { 392 return o.ApplyT(func(v *EventSubscription) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 393 } 394 395 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 396 // 397 // Deprecated: Please use `tags` instead. 398 func (o EventSubscriptionOutput) TagsAll() pulumi.StringMapOutput { 399 return o.ApplyT(func(v *EventSubscription) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 400 } 401 402 type EventSubscriptionArrayOutput struct{ *pulumi.OutputState } 403 404 func (EventSubscriptionArrayOutput) ElementType() reflect.Type { 405 return reflect.TypeOf((*[]*EventSubscription)(nil)).Elem() 406 } 407 408 func (o EventSubscriptionArrayOutput) ToEventSubscriptionArrayOutput() EventSubscriptionArrayOutput { 409 return o 410 } 411 412 func (o EventSubscriptionArrayOutput) ToEventSubscriptionArrayOutputWithContext(ctx context.Context) EventSubscriptionArrayOutput { 413 return o 414 } 415 416 func (o EventSubscriptionArrayOutput) Index(i pulumi.IntInput) EventSubscriptionOutput { 417 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EventSubscription { 418 return vs[0].([]*EventSubscription)[vs[1].(int)] 419 }).(EventSubscriptionOutput) 420 } 421 422 type EventSubscriptionMapOutput struct{ *pulumi.OutputState } 423 424 func (EventSubscriptionMapOutput) ElementType() reflect.Type { 425 return reflect.TypeOf((*map[string]*EventSubscription)(nil)).Elem() 426 } 427 428 func (o EventSubscriptionMapOutput) ToEventSubscriptionMapOutput() EventSubscriptionMapOutput { 429 return o 430 } 431 432 func (o EventSubscriptionMapOutput) ToEventSubscriptionMapOutputWithContext(ctx context.Context) EventSubscriptionMapOutput { 433 return o 434 } 435 436 func (o EventSubscriptionMapOutput) MapIndex(k pulumi.StringInput) EventSubscriptionOutput { 437 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EventSubscription { 438 return vs[0].(map[string]*EventSubscription)[vs[1].(string)] 439 }).(EventSubscriptionOutput) 440 } 441 442 func init() { 443 pulumi.RegisterInputType(reflect.TypeOf((*EventSubscriptionInput)(nil)).Elem(), &EventSubscription{}) 444 pulumi.RegisterInputType(reflect.TypeOf((*EventSubscriptionArrayInput)(nil)).Elem(), EventSubscriptionArray{}) 445 pulumi.RegisterInputType(reflect.TypeOf((*EventSubscriptionMapInput)(nil)).Elem(), EventSubscriptionMap{}) 446 pulumi.RegisterOutputType(EventSubscriptionOutput{}) 447 pulumi.RegisterOutputType(EventSubscriptionArrayOutput{}) 448 pulumi.RegisterOutputType(EventSubscriptionMapOutput{}) 449 }