github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/wafregional/getSubscribedRuleGroup.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 wafregional
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // `wafregional.getSubscribedRuleGroup` retrieves information about a Managed WAF Rule Group from AWS Marketplace for use in WAF Regional (needs to be subscribed to first).
    15  //
    16  // ## Example Usage
    17  //
    18  // <!--Start PulumiCodeChooser -->
    19  // ```go
    20  // package main
    21  //
    22  // import (
    23  //
    24  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/wafregional"
    25  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    26  //
    27  // )
    28  //
    29  //	func main() {
    30  //		pulumi.Run(func(ctx *pulumi.Context) error {
    31  //			byName, err := wafregional.GetSubscribedRuleGroup(ctx, &wafregional.GetSubscribedRuleGroupArgs{
    32  //				Name: pulumi.StringRef("F5 Bot Detection Signatures For AWS WAF"),
    33  //			}, nil)
    34  //			if err != nil {
    35  //				return err
    36  //			}
    37  //			byMetricName, err := wafregional.GetSubscribedRuleGroup(ctx, &wafregional.GetSubscribedRuleGroupArgs{
    38  //				MetricName: pulumi.StringRef("F5BotDetectionSignatures"),
    39  //			}, nil)
    40  //			if err != nil {
    41  //				return err
    42  //			}
    43  //			_, err = wafregional.NewWebAcl(ctx, "acl", &wafregional.WebAclArgs{
    44  //				Rules: wafregional.WebAclRuleArray{
    45  //					&wafregional.WebAclRuleArgs{
    46  //						Priority: pulumi.Int(1),
    47  //						RuleId:   pulumi.String(byName.Id),
    48  //						Type:     pulumi.String("GROUP"),
    49  //					},
    50  //					&wafregional.WebAclRuleArgs{
    51  //						Priority: pulumi.Int(2),
    52  //						RuleId:   pulumi.String(byMetricName.Id),
    53  //						Type:     pulumi.String("GROUP"),
    54  //					},
    55  //				},
    56  //			})
    57  //			if err != nil {
    58  //				return err
    59  //			}
    60  //			return nil
    61  //		})
    62  //	}
    63  //
    64  // ```
    65  // <!--End PulumiCodeChooser -->
    66  func GetSubscribedRuleGroup(ctx *pulumi.Context, args *GetSubscribedRuleGroupArgs, opts ...pulumi.InvokeOption) (*GetSubscribedRuleGroupResult, error) {
    67  	opts = internal.PkgInvokeDefaultOpts(opts)
    68  	var rv GetSubscribedRuleGroupResult
    69  	err := ctx.Invoke("aws:wafregional/getSubscribedRuleGroup:getSubscribedRuleGroup", args, &rv, opts...)
    70  	if err != nil {
    71  		return nil, err
    72  	}
    73  	return &rv, nil
    74  }
    75  
    76  // A collection of arguments for invoking getSubscribedRuleGroup.
    77  type GetSubscribedRuleGroupArgs struct {
    78  	// Name of the WAF rule group.
    79  	MetricName *string `pulumi:"metricName"`
    80  	// Name of the WAF rule group.
    81  	Name *string `pulumi:"name"`
    82  }
    83  
    84  // A collection of values returned by getSubscribedRuleGroup.
    85  type GetSubscribedRuleGroupResult struct {
    86  	// The provider-assigned unique ID for this managed resource.
    87  	Id         string  `pulumi:"id"`
    88  	MetricName *string `pulumi:"metricName"`
    89  	Name       *string `pulumi:"name"`
    90  }
    91  
    92  func GetSubscribedRuleGroupOutput(ctx *pulumi.Context, args GetSubscribedRuleGroupOutputArgs, opts ...pulumi.InvokeOption) GetSubscribedRuleGroupResultOutput {
    93  	return pulumi.ToOutputWithContext(context.Background(), args).
    94  		ApplyT(func(v interface{}) (GetSubscribedRuleGroupResult, error) {
    95  			args := v.(GetSubscribedRuleGroupArgs)
    96  			r, err := GetSubscribedRuleGroup(ctx, &args, opts...)
    97  			var s GetSubscribedRuleGroupResult
    98  			if r != nil {
    99  				s = *r
   100  			}
   101  			return s, err
   102  		}).(GetSubscribedRuleGroupResultOutput)
   103  }
   104  
   105  // A collection of arguments for invoking getSubscribedRuleGroup.
   106  type GetSubscribedRuleGroupOutputArgs struct {
   107  	// Name of the WAF rule group.
   108  	MetricName pulumi.StringPtrInput `pulumi:"metricName"`
   109  	// Name of the WAF rule group.
   110  	Name pulumi.StringPtrInput `pulumi:"name"`
   111  }
   112  
   113  func (GetSubscribedRuleGroupOutputArgs) ElementType() reflect.Type {
   114  	return reflect.TypeOf((*GetSubscribedRuleGroupArgs)(nil)).Elem()
   115  }
   116  
   117  // A collection of values returned by getSubscribedRuleGroup.
   118  type GetSubscribedRuleGroupResultOutput struct{ *pulumi.OutputState }
   119  
   120  func (GetSubscribedRuleGroupResultOutput) ElementType() reflect.Type {
   121  	return reflect.TypeOf((*GetSubscribedRuleGroupResult)(nil)).Elem()
   122  }
   123  
   124  func (o GetSubscribedRuleGroupResultOutput) ToGetSubscribedRuleGroupResultOutput() GetSubscribedRuleGroupResultOutput {
   125  	return o
   126  }
   127  
   128  func (o GetSubscribedRuleGroupResultOutput) ToGetSubscribedRuleGroupResultOutputWithContext(ctx context.Context) GetSubscribedRuleGroupResultOutput {
   129  	return o
   130  }
   131  
   132  // The provider-assigned unique ID for this managed resource.
   133  func (o GetSubscribedRuleGroupResultOutput) Id() pulumi.StringOutput {
   134  	return o.ApplyT(func(v GetSubscribedRuleGroupResult) string { return v.Id }).(pulumi.StringOutput)
   135  }
   136  
   137  func (o GetSubscribedRuleGroupResultOutput) MetricName() pulumi.StringPtrOutput {
   138  	return o.ApplyT(func(v GetSubscribedRuleGroupResult) *string { return v.MetricName }).(pulumi.StringPtrOutput)
   139  }
   140  
   141  func (o GetSubscribedRuleGroupResultOutput) Name() pulumi.StringPtrOutput {
   142  	return o.ApplyT(func(v GetSubscribedRuleGroupResult) *string { return v.Name }).(pulumi.StringPtrOutput)
   143  }
   144  
   145  func init() {
   146  	pulumi.RegisterOutputType(GetSubscribedRuleGroupResultOutput{})
   147  }