package awsautoscalinghooktargets import ( _init_ "github.com/aws/aws-cdk-go/awscdk/v2/jsii" _jsii_ "github.com/aws/jsii-runtime-go/runtime" "github.com/aws/aws-cdk-go/awscdk/v2/awsautoscaling" "github.com/aws/aws-cdk-go/awscdk/v2/awsautoscalinghooktargets/internal" "github.com/aws/aws-cdk-go/awscdk/v2/awssns" "github.com/aws/constructs-go/constructs/v10" ) // Use an SNS topic as a hook target. // // Example: // // The code below shows an example of how to instantiate this type. // // The values are placeholders you should change. // import "github.com/aws/aws-cdk-go/awscdk" // import "github.com/aws/aws-cdk-go/awscdk" // // var topic topic // // topicHook := awscdk.Aws_autoscaling_hooktargets.NewTopicHook(topic) // type TopicHook interface { awsautoscaling.ILifecycleHookTarget // If an `IRole` is found in `options`, grant it topic publishing permissions. // // Otherwise, create a new `IRole` and grant it topic publishing permissions. // // Returns: the `IRole` with topic publishing permissions and the ARN of the topic it has publishing permission to. Bind(_scope constructs.Construct, options *awsautoscaling.BindHookTargetOptions) *awsautoscaling.LifecycleHookTargetConfig } // The jsii proxy struct for TopicHook type jsiiProxy_TopicHook struct { internal.Type__awsautoscalingILifecycleHookTarget } func NewTopicHook(topic awssns.ITopic) TopicHook { _init_.Initialize() if err := validateNewTopicHookParameters(topic); err != nil { panic(err) } j := jsiiProxy_TopicHook{} _jsii_.Create( "aws-cdk-lib.aws_autoscaling_hooktargets.TopicHook", []interface{}{topic}, &j, ) return &j } func NewTopicHook_Override(t TopicHook, topic awssns.ITopic) { _init_.Initialize() _jsii_.Create( "aws-cdk-lib.aws_autoscaling_hooktargets.TopicHook", []interface{}{topic}, t, ) } func (t *jsiiProxy_TopicHook) Bind(_scope constructs.Construct, options *awsautoscaling.BindHookTargetOptions) *awsautoscaling.LifecycleHookTargetConfig { if err := t.validateBindParameters(_scope, options); err != nil { panic(err) } var returns *awsautoscaling.LifecycleHookTargetConfig _jsii_.Invoke( t, "bind", []interface{}{_scope, options}, &returns, ) return returns }