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 }