github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/networkfirewall/getFirewallPolicy.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 networkfirewall
     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  // Retrieve information about a firewall policy.
    15  //
    16  // ## Example Usage
    17  //
    18  // ### Find firewall policy by name
    19  //
    20  // <!--Start PulumiCodeChooser -->
    21  // ```go
    22  // package main
    23  //
    24  // import (
    25  //
    26  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall"
    27  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    28  //
    29  // )
    30  //
    31  //	func main() {
    32  //		pulumi.Run(func(ctx *pulumi.Context) error {
    33  //			_, err := networkfirewall.LookupFirewallPolicy(ctx, &networkfirewall.LookupFirewallPolicyArgs{
    34  //				Name: pulumi.StringRef(firewallPolicyName),
    35  //			}, nil)
    36  //			if err != nil {
    37  //				return err
    38  //			}
    39  //			return nil
    40  //		})
    41  //	}
    42  //
    43  // ```
    44  // <!--End PulumiCodeChooser -->
    45  //
    46  // ### Find firewall policy by ARN
    47  //
    48  // <!--Start PulumiCodeChooser -->
    49  // ```go
    50  // package main
    51  //
    52  // import (
    53  //
    54  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall"
    55  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    56  //
    57  // )
    58  //
    59  //	func main() {
    60  //		pulumi.Run(func(ctx *pulumi.Context) error {
    61  //			_, err := networkfirewall.LookupFirewallPolicy(ctx, &networkfirewall.LookupFirewallPolicyArgs{
    62  //				Arn: pulumi.StringRef(firewallPolicyArn),
    63  //			}, nil)
    64  //			if err != nil {
    65  //				return err
    66  //			}
    67  //			return nil
    68  //		})
    69  //	}
    70  //
    71  // ```
    72  // <!--End PulumiCodeChooser -->
    73  //
    74  // ### Find firewall policy by name and ARN
    75  //
    76  // <!--Start PulumiCodeChooser -->
    77  // ```go
    78  // package main
    79  //
    80  // import (
    81  //
    82  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall"
    83  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    84  //
    85  // )
    86  //
    87  //	func main() {
    88  //		pulumi.Run(func(ctx *pulumi.Context) error {
    89  //			_, err := networkfirewall.LookupFirewallPolicy(ctx, &networkfirewall.LookupFirewallPolicyArgs{
    90  //				Arn:  pulumi.StringRef(firewallPolicyArn),
    91  //				Name: pulumi.StringRef(firewallPolicyName),
    92  //			}, nil)
    93  //			if err != nil {
    94  //				return err
    95  //			}
    96  //			return nil
    97  //		})
    98  //	}
    99  //
   100  // ```
   101  // <!--End PulumiCodeChooser -->
   102  //
   103  // AWS Network Firewall does not allow multiple firewall policies with the same name to be created in an account. It is possible, however, to have multiple firewall policies available in a single account with identical `name` values but distinct `arn` values, e.g. firewall policies shared via a [Resource Access Manager (RAM) share][1]. In that case specifying `arn`, or `name` and `arn`, is recommended.
   104  //
   105  // > **Note:** If there are multiple firewall policies in an account with the same `name`, and `arn` is not specified, the default behavior will return the firewall policy with `name` that was created in the account.
   106  func LookupFirewallPolicy(ctx *pulumi.Context, args *LookupFirewallPolicyArgs, opts ...pulumi.InvokeOption) (*LookupFirewallPolicyResult, error) {
   107  	opts = internal.PkgInvokeDefaultOpts(opts)
   108  	var rv LookupFirewallPolicyResult
   109  	err := ctx.Invoke("aws:networkfirewall/getFirewallPolicy:getFirewallPolicy", args, &rv, opts...)
   110  	if err != nil {
   111  		return nil, err
   112  	}
   113  	return &rv, nil
   114  }
   115  
   116  // A collection of arguments for invoking getFirewallPolicy.
   117  type LookupFirewallPolicyArgs struct {
   118  	// ARN of the firewall policy.
   119  	Arn *string `pulumi:"arn"`
   120  	// Descriptive name of the firewall policy.
   121  	Name *string `pulumi:"name"`
   122  	// Key-value tags for the firewall policy.
   123  	Tags map[string]string `pulumi:"tags"`
   124  }
   125  
   126  // A collection of values returned by getFirewallPolicy.
   127  type LookupFirewallPolicyResult struct {
   128  	Arn *string `pulumi:"arn"`
   129  	// Description of the firewall policy.
   130  	Description string `pulumi:"description"`
   131  	// The [policy][2] for the specified firewall policy.
   132  	FirewallPolicies []GetFirewallPolicyFirewallPolicy `pulumi:"firewallPolicies"`
   133  	// The provider-assigned unique ID for this managed resource.
   134  	Id   string  `pulumi:"id"`
   135  	Name *string `pulumi:"name"`
   136  	// Key-value tags for the firewall policy.
   137  	Tags map[string]string `pulumi:"tags"`
   138  	// Token used for optimistic locking.
   139  	UpdateToken string `pulumi:"updateToken"`
   140  }
   141  
   142  func LookupFirewallPolicyOutput(ctx *pulumi.Context, args LookupFirewallPolicyOutputArgs, opts ...pulumi.InvokeOption) LookupFirewallPolicyResultOutput {
   143  	return pulumi.ToOutputWithContext(context.Background(), args).
   144  		ApplyT(func(v interface{}) (LookupFirewallPolicyResult, error) {
   145  			args := v.(LookupFirewallPolicyArgs)
   146  			r, err := LookupFirewallPolicy(ctx, &args, opts...)
   147  			var s LookupFirewallPolicyResult
   148  			if r != nil {
   149  				s = *r
   150  			}
   151  			return s, err
   152  		}).(LookupFirewallPolicyResultOutput)
   153  }
   154  
   155  // A collection of arguments for invoking getFirewallPolicy.
   156  type LookupFirewallPolicyOutputArgs struct {
   157  	// ARN of the firewall policy.
   158  	Arn pulumi.StringPtrInput `pulumi:"arn"`
   159  	// Descriptive name of the firewall policy.
   160  	Name pulumi.StringPtrInput `pulumi:"name"`
   161  	// Key-value tags for the firewall policy.
   162  	Tags pulumi.StringMapInput `pulumi:"tags"`
   163  }
   164  
   165  func (LookupFirewallPolicyOutputArgs) ElementType() reflect.Type {
   166  	return reflect.TypeOf((*LookupFirewallPolicyArgs)(nil)).Elem()
   167  }
   168  
   169  // A collection of values returned by getFirewallPolicy.
   170  type LookupFirewallPolicyResultOutput struct{ *pulumi.OutputState }
   171  
   172  func (LookupFirewallPolicyResultOutput) ElementType() reflect.Type {
   173  	return reflect.TypeOf((*LookupFirewallPolicyResult)(nil)).Elem()
   174  }
   175  
   176  func (o LookupFirewallPolicyResultOutput) ToLookupFirewallPolicyResultOutput() LookupFirewallPolicyResultOutput {
   177  	return o
   178  }
   179  
   180  func (o LookupFirewallPolicyResultOutput) ToLookupFirewallPolicyResultOutputWithContext(ctx context.Context) LookupFirewallPolicyResultOutput {
   181  	return o
   182  }
   183  
   184  func (o LookupFirewallPolicyResultOutput) Arn() pulumi.StringPtrOutput {
   185  	return o.ApplyT(func(v LookupFirewallPolicyResult) *string { return v.Arn }).(pulumi.StringPtrOutput)
   186  }
   187  
   188  // Description of the firewall policy.
   189  func (o LookupFirewallPolicyResultOutput) Description() pulumi.StringOutput {
   190  	return o.ApplyT(func(v LookupFirewallPolicyResult) string { return v.Description }).(pulumi.StringOutput)
   191  }
   192  
   193  // The [policy][2] for the specified firewall policy.
   194  func (o LookupFirewallPolicyResultOutput) FirewallPolicies() GetFirewallPolicyFirewallPolicyArrayOutput {
   195  	return o.ApplyT(func(v LookupFirewallPolicyResult) []GetFirewallPolicyFirewallPolicy { return v.FirewallPolicies }).(GetFirewallPolicyFirewallPolicyArrayOutput)
   196  }
   197  
   198  // The provider-assigned unique ID for this managed resource.
   199  func (o LookupFirewallPolicyResultOutput) Id() pulumi.StringOutput {
   200  	return o.ApplyT(func(v LookupFirewallPolicyResult) string { return v.Id }).(pulumi.StringOutput)
   201  }
   202  
   203  func (o LookupFirewallPolicyResultOutput) Name() pulumi.StringPtrOutput {
   204  	return o.ApplyT(func(v LookupFirewallPolicyResult) *string { return v.Name }).(pulumi.StringPtrOutput)
   205  }
   206  
   207  // Key-value tags for the firewall policy.
   208  func (o LookupFirewallPolicyResultOutput) Tags() pulumi.StringMapOutput {
   209  	return o.ApplyT(func(v LookupFirewallPolicyResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput)
   210  }
   211  
   212  // Token used for optimistic locking.
   213  func (o LookupFirewallPolicyResultOutput) UpdateToken() pulumi.StringOutput {
   214  	return o.ApplyT(func(v LookupFirewallPolicyResult) string { return v.UpdateToken }).(pulumi.StringOutput)
   215  }
   216  
   217  func init() {
   218  	pulumi.RegisterOutputType(LookupFirewallPolicyResultOutput{})
   219  }