github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/networkfirewall/loggingConfiguration.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 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // Provides an AWS Network Firewall Logging Configuration Resource 16 // 17 // ## Example Usage 18 // 19 // ### Logging to S3 20 // 21 // <!--Start PulumiCodeChooser --> 22 // ```go 23 // package main 24 // 25 // import ( 26 // 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall" 28 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 29 // 30 // ) 31 // 32 // func main() { 33 // pulumi.Run(func(ctx *pulumi.Context) error { 34 // _, err := networkfirewall.NewLoggingConfiguration(ctx, "example", &networkfirewall.LoggingConfigurationArgs{ 35 // FirewallArn: pulumi.Any(exampleAwsNetworkfirewallFirewall.Arn), 36 // LoggingConfiguration: &networkfirewall.LoggingConfigurationLoggingConfigurationArgs{ 37 // LogDestinationConfigs: networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArray{ 38 // &networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs{ 39 // LogDestination: pulumi.StringMap{ 40 // "bucketName": pulumi.Any(exampleAwsS3Bucket.Bucket), 41 // "prefix": pulumi.String("/example"), 42 // }, 43 // LogDestinationType: pulumi.String("S3"), 44 // LogType: pulumi.String("FLOW"), 45 // }, 46 // }, 47 // }, 48 // }) 49 // if err != nil { 50 // return err 51 // } 52 // return nil 53 // }) 54 // } 55 // 56 // ``` 57 // <!--End PulumiCodeChooser --> 58 // 59 // ### Logging to CloudWatch 60 // 61 // <!--Start PulumiCodeChooser --> 62 // ```go 63 // package main 64 // 65 // import ( 66 // 67 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall" 68 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 69 // 70 // ) 71 // 72 // func main() { 73 // pulumi.Run(func(ctx *pulumi.Context) error { 74 // _, err := networkfirewall.NewLoggingConfiguration(ctx, "example", &networkfirewall.LoggingConfigurationArgs{ 75 // FirewallArn: pulumi.Any(exampleAwsNetworkfirewallFirewall.Arn), 76 // LoggingConfiguration: &networkfirewall.LoggingConfigurationLoggingConfigurationArgs{ 77 // LogDestinationConfigs: networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArray{ 78 // &networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs{ 79 // LogDestination: pulumi.StringMap{ 80 // "logGroup": pulumi.Any(exampleAwsCloudwatchLogGroup.Name), 81 // }, 82 // LogDestinationType: pulumi.String("CloudWatchLogs"), 83 // LogType: pulumi.String("ALERT"), 84 // }, 85 // }, 86 // }, 87 // }) 88 // if err != nil { 89 // return err 90 // } 91 // return nil 92 // }) 93 // } 94 // 95 // ``` 96 // <!--End PulumiCodeChooser --> 97 // 98 // ### Logging to Kinesis Data Firehose 99 // 100 // <!--Start PulumiCodeChooser --> 101 // ```go 102 // package main 103 // 104 // import ( 105 // 106 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall" 107 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 108 // 109 // ) 110 // 111 // func main() { 112 // pulumi.Run(func(ctx *pulumi.Context) error { 113 // _, err := networkfirewall.NewLoggingConfiguration(ctx, "example", &networkfirewall.LoggingConfigurationArgs{ 114 // FirewallArn: pulumi.Any(exampleAwsNetworkfirewallFirewall.Arn), 115 // LoggingConfiguration: &networkfirewall.LoggingConfigurationLoggingConfigurationArgs{ 116 // LogDestinationConfigs: networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArray{ 117 // &networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs{ 118 // LogDestination: pulumi.StringMap{ 119 // "deliveryStream": pulumi.Any(exampleAwsKinesisFirehoseDeliveryStream.Name), 120 // }, 121 // LogDestinationType: pulumi.String("KinesisDataFirehose"), 122 // LogType: pulumi.String("ALERT"), 123 // }, 124 // }, 125 // }, 126 // }) 127 // if err != nil { 128 // return err 129 // } 130 // return nil 131 // }) 132 // } 133 // 134 // ``` 135 // <!--End PulumiCodeChooser --> 136 // 137 // ## Import 138 // 139 // Using `pulumi import`, import Network Firewall Logging Configurations using the `firewall_arn`. For example: 140 // 141 // ```sh 142 // $ pulumi import aws:networkfirewall/loggingConfiguration:LoggingConfiguration example arn:aws:network-firewall:us-west-1:123456789012:firewall/example 143 // ``` 144 type LoggingConfiguration struct { 145 pulumi.CustomResourceState 146 147 // The Amazon Resource Name (ARN) of the Network Firewall firewall. 148 FirewallArn pulumi.StringOutput `pulumi:"firewallArn"` 149 // A configuration block describing how AWS Network Firewall performs logging for a firewall. See Logging Configuration below for details. 150 LoggingConfiguration LoggingConfigurationLoggingConfigurationOutput `pulumi:"loggingConfiguration"` 151 } 152 153 // NewLoggingConfiguration registers a new resource with the given unique name, arguments, and options. 154 func NewLoggingConfiguration(ctx *pulumi.Context, 155 name string, args *LoggingConfigurationArgs, opts ...pulumi.ResourceOption) (*LoggingConfiguration, error) { 156 if args == nil { 157 return nil, errors.New("missing one or more required arguments") 158 } 159 160 if args.FirewallArn == nil { 161 return nil, errors.New("invalid value for required argument 'FirewallArn'") 162 } 163 if args.LoggingConfiguration == nil { 164 return nil, errors.New("invalid value for required argument 'LoggingConfiguration'") 165 } 166 opts = internal.PkgResourceDefaultOpts(opts) 167 var resource LoggingConfiguration 168 err := ctx.RegisterResource("aws:networkfirewall/loggingConfiguration:LoggingConfiguration", name, args, &resource, opts...) 169 if err != nil { 170 return nil, err 171 } 172 return &resource, nil 173 } 174 175 // GetLoggingConfiguration gets an existing LoggingConfiguration resource's state with the given name, ID, and optional 176 // state properties that are used to uniquely qualify the lookup (nil if not required). 177 func GetLoggingConfiguration(ctx *pulumi.Context, 178 name string, id pulumi.IDInput, state *LoggingConfigurationState, opts ...pulumi.ResourceOption) (*LoggingConfiguration, error) { 179 var resource LoggingConfiguration 180 err := ctx.ReadResource("aws:networkfirewall/loggingConfiguration:LoggingConfiguration", name, id, state, &resource, opts...) 181 if err != nil { 182 return nil, err 183 } 184 return &resource, nil 185 } 186 187 // Input properties used for looking up and filtering LoggingConfiguration resources. 188 type loggingConfigurationState struct { 189 // The Amazon Resource Name (ARN) of the Network Firewall firewall. 190 FirewallArn *string `pulumi:"firewallArn"` 191 // A configuration block describing how AWS Network Firewall performs logging for a firewall. See Logging Configuration below for details. 192 LoggingConfiguration *LoggingConfigurationLoggingConfiguration `pulumi:"loggingConfiguration"` 193 } 194 195 type LoggingConfigurationState struct { 196 // The Amazon Resource Name (ARN) of the Network Firewall firewall. 197 FirewallArn pulumi.StringPtrInput 198 // A configuration block describing how AWS Network Firewall performs logging for a firewall. See Logging Configuration below for details. 199 LoggingConfiguration LoggingConfigurationLoggingConfigurationPtrInput 200 } 201 202 func (LoggingConfigurationState) ElementType() reflect.Type { 203 return reflect.TypeOf((*loggingConfigurationState)(nil)).Elem() 204 } 205 206 type loggingConfigurationArgs struct { 207 // The Amazon Resource Name (ARN) of the Network Firewall firewall. 208 FirewallArn string `pulumi:"firewallArn"` 209 // A configuration block describing how AWS Network Firewall performs logging for a firewall. See Logging Configuration below for details. 210 LoggingConfiguration LoggingConfigurationLoggingConfiguration `pulumi:"loggingConfiguration"` 211 } 212 213 // The set of arguments for constructing a LoggingConfiguration resource. 214 type LoggingConfigurationArgs struct { 215 // The Amazon Resource Name (ARN) of the Network Firewall firewall. 216 FirewallArn pulumi.StringInput 217 // A configuration block describing how AWS Network Firewall performs logging for a firewall. See Logging Configuration below for details. 218 LoggingConfiguration LoggingConfigurationLoggingConfigurationInput 219 } 220 221 func (LoggingConfigurationArgs) ElementType() reflect.Type { 222 return reflect.TypeOf((*loggingConfigurationArgs)(nil)).Elem() 223 } 224 225 type LoggingConfigurationInput interface { 226 pulumi.Input 227 228 ToLoggingConfigurationOutput() LoggingConfigurationOutput 229 ToLoggingConfigurationOutputWithContext(ctx context.Context) LoggingConfigurationOutput 230 } 231 232 func (*LoggingConfiguration) ElementType() reflect.Type { 233 return reflect.TypeOf((**LoggingConfiguration)(nil)).Elem() 234 } 235 236 func (i *LoggingConfiguration) ToLoggingConfigurationOutput() LoggingConfigurationOutput { 237 return i.ToLoggingConfigurationOutputWithContext(context.Background()) 238 } 239 240 func (i *LoggingConfiguration) ToLoggingConfigurationOutputWithContext(ctx context.Context) LoggingConfigurationOutput { 241 return pulumi.ToOutputWithContext(ctx, i).(LoggingConfigurationOutput) 242 } 243 244 // LoggingConfigurationArrayInput is an input type that accepts LoggingConfigurationArray and LoggingConfigurationArrayOutput values. 245 // You can construct a concrete instance of `LoggingConfigurationArrayInput` via: 246 // 247 // LoggingConfigurationArray{ LoggingConfigurationArgs{...} } 248 type LoggingConfigurationArrayInput interface { 249 pulumi.Input 250 251 ToLoggingConfigurationArrayOutput() LoggingConfigurationArrayOutput 252 ToLoggingConfigurationArrayOutputWithContext(context.Context) LoggingConfigurationArrayOutput 253 } 254 255 type LoggingConfigurationArray []LoggingConfigurationInput 256 257 func (LoggingConfigurationArray) ElementType() reflect.Type { 258 return reflect.TypeOf((*[]*LoggingConfiguration)(nil)).Elem() 259 } 260 261 func (i LoggingConfigurationArray) ToLoggingConfigurationArrayOutput() LoggingConfigurationArrayOutput { 262 return i.ToLoggingConfigurationArrayOutputWithContext(context.Background()) 263 } 264 265 func (i LoggingConfigurationArray) ToLoggingConfigurationArrayOutputWithContext(ctx context.Context) LoggingConfigurationArrayOutput { 266 return pulumi.ToOutputWithContext(ctx, i).(LoggingConfigurationArrayOutput) 267 } 268 269 // LoggingConfigurationMapInput is an input type that accepts LoggingConfigurationMap and LoggingConfigurationMapOutput values. 270 // You can construct a concrete instance of `LoggingConfigurationMapInput` via: 271 // 272 // LoggingConfigurationMap{ "key": LoggingConfigurationArgs{...} } 273 type LoggingConfigurationMapInput interface { 274 pulumi.Input 275 276 ToLoggingConfigurationMapOutput() LoggingConfigurationMapOutput 277 ToLoggingConfigurationMapOutputWithContext(context.Context) LoggingConfigurationMapOutput 278 } 279 280 type LoggingConfigurationMap map[string]LoggingConfigurationInput 281 282 func (LoggingConfigurationMap) ElementType() reflect.Type { 283 return reflect.TypeOf((*map[string]*LoggingConfiguration)(nil)).Elem() 284 } 285 286 func (i LoggingConfigurationMap) ToLoggingConfigurationMapOutput() LoggingConfigurationMapOutput { 287 return i.ToLoggingConfigurationMapOutputWithContext(context.Background()) 288 } 289 290 func (i LoggingConfigurationMap) ToLoggingConfigurationMapOutputWithContext(ctx context.Context) LoggingConfigurationMapOutput { 291 return pulumi.ToOutputWithContext(ctx, i).(LoggingConfigurationMapOutput) 292 } 293 294 type LoggingConfigurationOutput struct{ *pulumi.OutputState } 295 296 func (LoggingConfigurationOutput) ElementType() reflect.Type { 297 return reflect.TypeOf((**LoggingConfiguration)(nil)).Elem() 298 } 299 300 func (o LoggingConfigurationOutput) ToLoggingConfigurationOutput() LoggingConfigurationOutput { 301 return o 302 } 303 304 func (o LoggingConfigurationOutput) ToLoggingConfigurationOutputWithContext(ctx context.Context) LoggingConfigurationOutput { 305 return o 306 } 307 308 // The Amazon Resource Name (ARN) of the Network Firewall firewall. 309 func (o LoggingConfigurationOutput) FirewallArn() pulumi.StringOutput { 310 return o.ApplyT(func(v *LoggingConfiguration) pulumi.StringOutput { return v.FirewallArn }).(pulumi.StringOutput) 311 } 312 313 // A configuration block describing how AWS Network Firewall performs logging for a firewall. See Logging Configuration below for details. 314 func (o LoggingConfigurationOutput) LoggingConfiguration() LoggingConfigurationLoggingConfigurationOutput { 315 return o.ApplyT(func(v *LoggingConfiguration) LoggingConfigurationLoggingConfigurationOutput { 316 return v.LoggingConfiguration 317 }).(LoggingConfigurationLoggingConfigurationOutput) 318 } 319 320 type LoggingConfigurationArrayOutput struct{ *pulumi.OutputState } 321 322 func (LoggingConfigurationArrayOutput) ElementType() reflect.Type { 323 return reflect.TypeOf((*[]*LoggingConfiguration)(nil)).Elem() 324 } 325 326 func (o LoggingConfigurationArrayOutput) ToLoggingConfigurationArrayOutput() LoggingConfigurationArrayOutput { 327 return o 328 } 329 330 func (o LoggingConfigurationArrayOutput) ToLoggingConfigurationArrayOutputWithContext(ctx context.Context) LoggingConfigurationArrayOutput { 331 return o 332 } 333 334 func (o LoggingConfigurationArrayOutput) Index(i pulumi.IntInput) LoggingConfigurationOutput { 335 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LoggingConfiguration { 336 return vs[0].([]*LoggingConfiguration)[vs[1].(int)] 337 }).(LoggingConfigurationOutput) 338 } 339 340 type LoggingConfigurationMapOutput struct{ *pulumi.OutputState } 341 342 func (LoggingConfigurationMapOutput) ElementType() reflect.Type { 343 return reflect.TypeOf((*map[string]*LoggingConfiguration)(nil)).Elem() 344 } 345 346 func (o LoggingConfigurationMapOutput) ToLoggingConfigurationMapOutput() LoggingConfigurationMapOutput { 347 return o 348 } 349 350 func (o LoggingConfigurationMapOutput) ToLoggingConfigurationMapOutputWithContext(ctx context.Context) LoggingConfigurationMapOutput { 351 return o 352 } 353 354 func (o LoggingConfigurationMapOutput) MapIndex(k pulumi.StringInput) LoggingConfigurationOutput { 355 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LoggingConfiguration { 356 return vs[0].(map[string]*LoggingConfiguration)[vs[1].(string)] 357 }).(LoggingConfigurationOutput) 358 } 359 360 func init() { 361 pulumi.RegisterInputType(reflect.TypeOf((*LoggingConfigurationInput)(nil)).Elem(), &LoggingConfiguration{}) 362 pulumi.RegisterInputType(reflect.TypeOf((*LoggingConfigurationArrayInput)(nil)).Elem(), LoggingConfigurationArray{}) 363 pulumi.RegisterInputType(reflect.TypeOf((*LoggingConfigurationMapInput)(nil)).Elem(), LoggingConfigurationMap{}) 364 pulumi.RegisterOutputType(LoggingConfigurationOutput{}) 365 pulumi.RegisterOutputType(LoggingConfigurationArrayOutput{}) 366 pulumi.RegisterOutputType(LoggingConfigurationMapOutput{}) 367 }