1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package fms
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
14)
15
16const opAssociateAdminAccount = "AssociateAdminAccount"
17
18// AssociateAdminAccountRequest generates a "aws/request.Request" representing the
19// client's request for the AssociateAdminAccount operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See AssociateAdminAccount for more information on using the AssociateAdminAccount
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the AssociateAdminAccountRequest method.
34//    req, resp := client.AssociateAdminAccountRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/AssociateAdminAccount
42func (c *FMS) AssociateAdminAccountRequest(input *AssociateAdminAccountInput) (req *request.Request, output *AssociateAdminAccountOutput) {
43	op := &request.Operation{
44		Name:       opAssociateAdminAccount,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AssociateAdminAccountInput{}
51	}
52
53	output = &AssociateAdminAccountOutput{}
54	req = c.newRequest(op, input, output)
55	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
56	return
57}
58
59// AssociateAdminAccount API operation for Firewall Management Service.
60//
61// Sets the AWS Firewall Manager administrator account. AWS Firewall Manager
62// must be associated with the master account of your AWS organization or associated
63// with a member account that has the appropriate permissions. If the account
64// ID that you submit is not an AWS Organizations master account, AWS Firewall
65// Manager will set the appropriate permissions for the given member account.
66//
67// The account that you associate with AWS Firewall Manager is called the AWS
68// Firewall Manager administrator account.
69//
70// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
71// with awserr.Error's Code and Message methods to get detailed information about
72// the error.
73//
74// See the AWS API reference guide for Firewall Management Service's
75// API operation AssociateAdminAccount for usage and error information.
76//
77// Returned Error Types:
78//   * InvalidOperationException
79//   The operation failed because there was nothing to do or the operation wasn't
80//   possible. For example, you might have submitted an AssociateAdminAccount
81//   request for an account ID that was already set as the AWS Firewall Manager
82//   administrator. Or you might have tried to access a Region that's disabled
83//   by default, and that you need to enable for the Firewall Manager administrator
84//   account and for AWS Organizations before you can access it.
85//
86//   * InvalidInputException
87//   The parameters of the request were invalid.
88//
89//   * ResourceNotFoundException
90//   The specified resource was not found.
91//
92//   * InternalErrorException
93//   The operation failed because of a system problem, even though the request
94//   was valid. Retry your request.
95//
96// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/AssociateAdminAccount
97func (c *FMS) AssociateAdminAccount(input *AssociateAdminAccountInput) (*AssociateAdminAccountOutput, error) {
98	req, out := c.AssociateAdminAccountRequest(input)
99	return out, req.Send()
100}
101
102// AssociateAdminAccountWithContext is the same as AssociateAdminAccount with the addition of
103// the ability to pass a context and additional request options.
104//
105// See AssociateAdminAccount for details on how to use this API operation.
106//
107// The context must be non-nil and will be used for request cancellation. If
108// the context is nil a panic will occur. In the future the SDK may create
109// sub-contexts for http.Requests. See https://golang.org/pkg/context/
110// for more information on using Contexts.
111func (c *FMS) AssociateAdminAccountWithContext(ctx aws.Context, input *AssociateAdminAccountInput, opts ...request.Option) (*AssociateAdminAccountOutput, error) {
112	req, out := c.AssociateAdminAccountRequest(input)
113	req.SetContext(ctx)
114	req.ApplyOptions(opts...)
115	return out, req.Send()
116}
117
118const opDeleteAppsList = "DeleteAppsList"
119
120// DeleteAppsListRequest generates a "aws/request.Request" representing the
121// client's request for the DeleteAppsList operation. The "output" return
122// value will be populated with the request's response once the request completes
123// successfully.
124//
125// Use "Send" method on the returned Request to send the API call to the service.
126// the "output" return value is not valid until after Send returns without error.
127//
128// See DeleteAppsList for more information on using the DeleteAppsList
129// API call, and error handling.
130//
131// This method is useful when you want to inject custom logic or configuration
132// into the SDK's request lifecycle. Such as custom headers, or retry logic.
133//
134//
135//    // Example sending a request using the DeleteAppsListRequest method.
136//    req, resp := client.DeleteAppsListRequest(params)
137//
138//    err := req.Send()
139//    if err == nil { // resp is now filled
140//        fmt.Println(resp)
141//    }
142//
143// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteAppsList
144func (c *FMS) DeleteAppsListRequest(input *DeleteAppsListInput) (req *request.Request, output *DeleteAppsListOutput) {
145	op := &request.Operation{
146		Name:       opDeleteAppsList,
147		HTTPMethod: "POST",
148		HTTPPath:   "/",
149	}
150
151	if input == nil {
152		input = &DeleteAppsListInput{}
153	}
154
155	output = &DeleteAppsListOutput{}
156	req = c.newRequest(op, input, output)
157	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
158	return
159}
160
161// DeleteAppsList API operation for Firewall Management Service.
162//
163// Permanently deletes an AWS Firewall Manager applications list.
164//
165// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
166// with awserr.Error's Code and Message methods to get detailed information about
167// the error.
168//
169// See the AWS API reference guide for Firewall Management Service's
170// API operation DeleteAppsList for usage and error information.
171//
172// Returned Error Types:
173//   * ResourceNotFoundException
174//   The specified resource was not found.
175//
176//   * InvalidOperationException
177//   The operation failed because there was nothing to do or the operation wasn't
178//   possible. For example, you might have submitted an AssociateAdminAccount
179//   request for an account ID that was already set as the AWS Firewall Manager
180//   administrator. Or you might have tried to access a Region that's disabled
181//   by default, and that you need to enable for the Firewall Manager administrator
182//   account and for AWS Organizations before you can access it.
183//
184//   * InternalErrorException
185//   The operation failed because of a system problem, even though the request
186//   was valid. Retry your request.
187//
188// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteAppsList
189func (c *FMS) DeleteAppsList(input *DeleteAppsListInput) (*DeleteAppsListOutput, error) {
190	req, out := c.DeleteAppsListRequest(input)
191	return out, req.Send()
192}
193
194// DeleteAppsListWithContext is the same as DeleteAppsList with the addition of
195// the ability to pass a context and additional request options.
196//
197// See DeleteAppsList for details on how to use this API operation.
198//
199// The context must be non-nil and will be used for request cancellation. If
200// the context is nil a panic will occur. In the future the SDK may create
201// sub-contexts for http.Requests. See https://golang.org/pkg/context/
202// for more information on using Contexts.
203func (c *FMS) DeleteAppsListWithContext(ctx aws.Context, input *DeleteAppsListInput, opts ...request.Option) (*DeleteAppsListOutput, error) {
204	req, out := c.DeleteAppsListRequest(input)
205	req.SetContext(ctx)
206	req.ApplyOptions(opts...)
207	return out, req.Send()
208}
209
210const opDeleteNotificationChannel = "DeleteNotificationChannel"
211
212// DeleteNotificationChannelRequest generates a "aws/request.Request" representing the
213// client's request for the DeleteNotificationChannel operation. The "output" return
214// value will be populated with the request's response once the request completes
215// successfully.
216//
217// Use "Send" method on the returned Request to send the API call to the service.
218// the "output" return value is not valid until after Send returns without error.
219//
220// See DeleteNotificationChannel for more information on using the DeleteNotificationChannel
221// API call, and error handling.
222//
223// This method is useful when you want to inject custom logic or configuration
224// into the SDK's request lifecycle. Such as custom headers, or retry logic.
225//
226//
227//    // Example sending a request using the DeleteNotificationChannelRequest method.
228//    req, resp := client.DeleteNotificationChannelRequest(params)
229//
230//    err := req.Send()
231//    if err == nil { // resp is now filled
232//        fmt.Println(resp)
233//    }
234//
235// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteNotificationChannel
236func (c *FMS) DeleteNotificationChannelRequest(input *DeleteNotificationChannelInput) (req *request.Request, output *DeleteNotificationChannelOutput) {
237	op := &request.Operation{
238		Name:       opDeleteNotificationChannel,
239		HTTPMethod: "POST",
240		HTTPPath:   "/",
241	}
242
243	if input == nil {
244		input = &DeleteNotificationChannelInput{}
245	}
246
247	output = &DeleteNotificationChannelOutput{}
248	req = c.newRequest(op, input, output)
249	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
250	return
251}
252
253// DeleteNotificationChannel API operation for Firewall Management Service.
254//
255// Deletes an AWS Firewall Manager association with the IAM role and the Amazon
256// Simple Notification Service (SNS) topic that is used to record AWS Firewall
257// Manager SNS logs.
258//
259// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
260// with awserr.Error's Code and Message methods to get detailed information about
261// the error.
262//
263// See the AWS API reference guide for Firewall Management Service's
264// API operation DeleteNotificationChannel for usage and error information.
265//
266// Returned Error Types:
267//   * ResourceNotFoundException
268//   The specified resource was not found.
269//
270//   * InvalidOperationException
271//   The operation failed because there was nothing to do or the operation wasn't
272//   possible. For example, you might have submitted an AssociateAdminAccount
273//   request for an account ID that was already set as the AWS Firewall Manager
274//   administrator. Or you might have tried to access a Region that's disabled
275//   by default, and that you need to enable for the Firewall Manager administrator
276//   account and for AWS Organizations before you can access it.
277//
278//   * InternalErrorException
279//   The operation failed because of a system problem, even though the request
280//   was valid. Retry your request.
281//
282// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteNotificationChannel
283func (c *FMS) DeleteNotificationChannel(input *DeleteNotificationChannelInput) (*DeleteNotificationChannelOutput, error) {
284	req, out := c.DeleteNotificationChannelRequest(input)
285	return out, req.Send()
286}
287
288// DeleteNotificationChannelWithContext is the same as DeleteNotificationChannel with the addition of
289// the ability to pass a context and additional request options.
290//
291// See DeleteNotificationChannel for details on how to use this API operation.
292//
293// The context must be non-nil and will be used for request cancellation. If
294// the context is nil a panic will occur. In the future the SDK may create
295// sub-contexts for http.Requests. See https://golang.org/pkg/context/
296// for more information on using Contexts.
297func (c *FMS) DeleteNotificationChannelWithContext(ctx aws.Context, input *DeleteNotificationChannelInput, opts ...request.Option) (*DeleteNotificationChannelOutput, error) {
298	req, out := c.DeleteNotificationChannelRequest(input)
299	req.SetContext(ctx)
300	req.ApplyOptions(opts...)
301	return out, req.Send()
302}
303
304const opDeletePolicy = "DeletePolicy"
305
306// DeletePolicyRequest generates a "aws/request.Request" representing the
307// client's request for the DeletePolicy operation. The "output" return
308// value will be populated with the request's response once the request completes
309// successfully.
310//
311// Use "Send" method on the returned Request to send the API call to the service.
312// the "output" return value is not valid until after Send returns without error.
313//
314// See DeletePolicy for more information on using the DeletePolicy
315// API call, and error handling.
316//
317// This method is useful when you want to inject custom logic or configuration
318// into the SDK's request lifecycle. Such as custom headers, or retry logic.
319//
320//
321//    // Example sending a request using the DeletePolicyRequest method.
322//    req, resp := client.DeletePolicyRequest(params)
323//
324//    err := req.Send()
325//    if err == nil { // resp is now filled
326//        fmt.Println(resp)
327//    }
328//
329// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeletePolicy
330func (c *FMS) DeletePolicyRequest(input *DeletePolicyInput) (req *request.Request, output *DeletePolicyOutput) {
331	op := &request.Operation{
332		Name:       opDeletePolicy,
333		HTTPMethod: "POST",
334		HTTPPath:   "/",
335	}
336
337	if input == nil {
338		input = &DeletePolicyInput{}
339	}
340
341	output = &DeletePolicyOutput{}
342	req = c.newRequest(op, input, output)
343	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
344	return
345}
346
347// DeletePolicy API operation for Firewall Management Service.
348//
349// Permanently deletes an AWS Firewall Manager policy.
350//
351// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
352// with awserr.Error's Code and Message methods to get detailed information about
353// the error.
354//
355// See the AWS API reference guide for Firewall Management Service's
356// API operation DeletePolicy for usage and error information.
357//
358// Returned Error Types:
359//   * ResourceNotFoundException
360//   The specified resource was not found.
361//
362//   * InvalidOperationException
363//   The operation failed because there was nothing to do or the operation wasn't
364//   possible. For example, you might have submitted an AssociateAdminAccount
365//   request for an account ID that was already set as the AWS Firewall Manager
366//   administrator. Or you might have tried to access a Region that's disabled
367//   by default, and that you need to enable for the Firewall Manager administrator
368//   account and for AWS Organizations before you can access it.
369//
370//   * InternalErrorException
371//   The operation failed because of a system problem, even though the request
372//   was valid. Retry your request.
373//
374//   * InvalidInputException
375//   The parameters of the request were invalid.
376//
377//   * LimitExceededException
378//   The operation exceeds a resource limit, for example, the maximum number of
379//   policy objects that you can create for an AWS account. For more information,
380//   see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
381//   in the AWS WAF Developer Guide.
382//
383// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeletePolicy
384func (c *FMS) DeletePolicy(input *DeletePolicyInput) (*DeletePolicyOutput, error) {
385	req, out := c.DeletePolicyRequest(input)
386	return out, req.Send()
387}
388
389// DeletePolicyWithContext is the same as DeletePolicy with the addition of
390// the ability to pass a context and additional request options.
391//
392// See DeletePolicy for details on how to use this API operation.
393//
394// The context must be non-nil and will be used for request cancellation. If
395// the context is nil a panic will occur. In the future the SDK may create
396// sub-contexts for http.Requests. See https://golang.org/pkg/context/
397// for more information on using Contexts.
398func (c *FMS) DeletePolicyWithContext(ctx aws.Context, input *DeletePolicyInput, opts ...request.Option) (*DeletePolicyOutput, error) {
399	req, out := c.DeletePolicyRequest(input)
400	req.SetContext(ctx)
401	req.ApplyOptions(opts...)
402	return out, req.Send()
403}
404
405const opDeleteProtocolsList = "DeleteProtocolsList"
406
407// DeleteProtocolsListRequest generates a "aws/request.Request" representing the
408// client's request for the DeleteProtocolsList operation. The "output" return
409// value will be populated with the request's response once the request completes
410// successfully.
411//
412// Use "Send" method on the returned Request to send the API call to the service.
413// the "output" return value is not valid until after Send returns without error.
414//
415// See DeleteProtocolsList for more information on using the DeleteProtocolsList
416// API call, and error handling.
417//
418// This method is useful when you want to inject custom logic or configuration
419// into the SDK's request lifecycle. Such as custom headers, or retry logic.
420//
421//
422//    // Example sending a request using the DeleteProtocolsListRequest method.
423//    req, resp := client.DeleteProtocolsListRequest(params)
424//
425//    err := req.Send()
426//    if err == nil { // resp is now filled
427//        fmt.Println(resp)
428//    }
429//
430// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteProtocolsList
431func (c *FMS) DeleteProtocolsListRequest(input *DeleteProtocolsListInput) (req *request.Request, output *DeleteProtocolsListOutput) {
432	op := &request.Operation{
433		Name:       opDeleteProtocolsList,
434		HTTPMethod: "POST",
435		HTTPPath:   "/",
436	}
437
438	if input == nil {
439		input = &DeleteProtocolsListInput{}
440	}
441
442	output = &DeleteProtocolsListOutput{}
443	req = c.newRequest(op, input, output)
444	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
445	return
446}
447
448// DeleteProtocolsList API operation for Firewall Management Service.
449//
450// Permanently deletes an AWS Firewall Manager protocols list.
451//
452// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
453// with awserr.Error's Code and Message methods to get detailed information about
454// the error.
455//
456// See the AWS API reference guide for Firewall Management Service's
457// API operation DeleteProtocolsList for usage and error information.
458//
459// Returned Error Types:
460//   * ResourceNotFoundException
461//   The specified resource was not found.
462//
463//   * InvalidOperationException
464//   The operation failed because there was nothing to do or the operation wasn't
465//   possible. For example, you might have submitted an AssociateAdminAccount
466//   request for an account ID that was already set as the AWS Firewall Manager
467//   administrator. Or you might have tried to access a Region that's disabled
468//   by default, and that you need to enable for the Firewall Manager administrator
469//   account and for AWS Organizations before you can access it.
470//
471//   * InternalErrorException
472//   The operation failed because of a system problem, even though the request
473//   was valid. Retry your request.
474//
475// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteProtocolsList
476func (c *FMS) DeleteProtocolsList(input *DeleteProtocolsListInput) (*DeleteProtocolsListOutput, error) {
477	req, out := c.DeleteProtocolsListRequest(input)
478	return out, req.Send()
479}
480
481// DeleteProtocolsListWithContext is the same as DeleteProtocolsList with the addition of
482// the ability to pass a context and additional request options.
483//
484// See DeleteProtocolsList for details on how to use this API operation.
485//
486// The context must be non-nil and will be used for request cancellation. If
487// the context is nil a panic will occur. In the future the SDK may create
488// sub-contexts for http.Requests. See https://golang.org/pkg/context/
489// for more information on using Contexts.
490func (c *FMS) DeleteProtocolsListWithContext(ctx aws.Context, input *DeleteProtocolsListInput, opts ...request.Option) (*DeleteProtocolsListOutput, error) {
491	req, out := c.DeleteProtocolsListRequest(input)
492	req.SetContext(ctx)
493	req.ApplyOptions(opts...)
494	return out, req.Send()
495}
496
497const opDisassociateAdminAccount = "DisassociateAdminAccount"
498
499// DisassociateAdminAccountRequest generates a "aws/request.Request" representing the
500// client's request for the DisassociateAdminAccount operation. The "output" return
501// value will be populated with the request's response once the request completes
502// successfully.
503//
504// Use "Send" method on the returned Request to send the API call to the service.
505// the "output" return value is not valid until after Send returns without error.
506//
507// See DisassociateAdminAccount for more information on using the DisassociateAdminAccount
508// API call, and error handling.
509//
510// This method is useful when you want to inject custom logic or configuration
511// into the SDK's request lifecycle. Such as custom headers, or retry logic.
512//
513//
514//    // Example sending a request using the DisassociateAdminAccountRequest method.
515//    req, resp := client.DisassociateAdminAccountRequest(params)
516//
517//    err := req.Send()
518//    if err == nil { // resp is now filled
519//        fmt.Println(resp)
520//    }
521//
522// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DisassociateAdminAccount
523func (c *FMS) DisassociateAdminAccountRequest(input *DisassociateAdminAccountInput) (req *request.Request, output *DisassociateAdminAccountOutput) {
524	op := &request.Operation{
525		Name:       opDisassociateAdminAccount,
526		HTTPMethod: "POST",
527		HTTPPath:   "/",
528	}
529
530	if input == nil {
531		input = &DisassociateAdminAccountInput{}
532	}
533
534	output = &DisassociateAdminAccountOutput{}
535	req = c.newRequest(op, input, output)
536	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
537	return
538}
539
540// DisassociateAdminAccount API operation for Firewall Management Service.
541//
542// Disassociates the account that has been set as the AWS Firewall Manager administrator
543// account. To set a different account as the administrator account, you must
544// submit an AssociateAdminAccount request.
545//
546// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
547// with awserr.Error's Code and Message methods to get detailed information about
548// the error.
549//
550// See the AWS API reference guide for Firewall Management Service's
551// API operation DisassociateAdminAccount for usage and error information.
552//
553// Returned Error Types:
554//   * InvalidOperationException
555//   The operation failed because there was nothing to do or the operation wasn't
556//   possible. For example, you might have submitted an AssociateAdminAccount
557//   request for an account ID that was already set as the AWS Firewall Manager
558//   administrator. Or you might have tried to access a Region that's disabled
559//   by default, and that you need to enable for the Firewall Manager administrator
560//   account and for AWS Organizations before you can access it.
561//
562//   * ResourceNotFoundException
563//   The specified resource was not found.
564//
565//   * InternalErrorException
566//   The operation failed because of a system problem, even though the request
567//   was valid. Retry your request.
568//
569// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DisassociateAdminAccount
570func (c *FMS) DisassociateAdminAccount(input *DisassociateAdminAccountInput) (*DisassociateAdminAccountOutput, error) {
571	req, out := c.DisassociateAdminAccountRequest(input)
572	return out, req.Send()
573}
574
575// DisassociateAdminAccountWithContext is the same as DisassociateAdminAccount with the addition of
576// the ability to pass a context and additional request options.
577//
578// See DisassociateAdminAccount for details on how to use this API operation.
579//
580// The context must be non-nil and will be used for request cancellation. If
581// the context is nil a panic will occur. In the future the SDK may create
582// sub-contexts for http.Requests. See https://golang.org/pkg/context/
583// for more information on using Contexts.
584func (c *FMS) DisassociateAdminAccountWithContext(ctx aws.Context, input *DisassociateAdminAccountInput, opts ...request.Option) (*DisassociateAdminAccountOutput, error) {
585	req, out := c.DisassociateAdminAccountRequest(input)
586	req.SetContext(ctx)
587	req.ApplyOptions(opts...)
588	return out, req.Send()
589}
590
591const opGetAdminAccount = "GetAdminAccount"
592
593// GetAdminAccountRequest generates a "aws/request.Request" representing the
594// client's request for the GetAdminAccount operation. The "output" return
595// value will be populated with the request's response once the request completes
596// successfully.
597//
598// Use "Send" method on the returned Request to send the API call to the service.
599// the "output" return value is not valid until after Send returns without error.
600//
601// See GetAdminAccount for more information on using the GetAdminAccount
602// API call, and error handling.
603//
604// This method is useful when you want to inject custom logic or configuration
605// into the SDK's request lifecycle. Such as custom headers, or retry logic.
606//
607//
608//    // Example sending a request using the GetAdminAccountRequest method.
609//    req, resp := client.GetAdminAccountRequest(params)
610//
611//    err := req.Send()
612//    if err == nil { // resp is now filled
613//        fmt.Println(resp)
614//    }
615//
616// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAdminAccount
617func (c *FMS) GetAdminAccountRequest(input *GetAdminAccountInput) (req *request.Request, output *GetAdminAccountOutput) {
618	op := &request.Operation{
619		Name:       opGetAdminAccount,
620		HTTPMethod: "POST",
621		HTTPPath:   "/",
622	}
623
624	if input == nil {
625		input = &GetAdminAccountInput{}
626	}
627
628	output = &GetAdminAccountOutput{}
629	req = c.newRequest(op, input, output)
630	return
631}
632
633// GetAdminAccount API operation for Firewall Management Service.
634//
635// Returns the AWS Organizations master account that is associated with AWS
636// Firewall Manager as the AWS Firewall Manager administrator.
637//
638// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
639// with awserr.Error's Code and Message methods to get detailed information about
640// the error.
641//
642// See the AWS API reference guide for Firewall Management Service's
643// API operation GetAdminAccount for usage and error information.
644//
645// Returned Error Types:
646//   * InvalidOperationException
647//   The operation failed because there was nothing to do or the operation wasn't
648//   possible. For example, you might have submitted an AssociateAdminAccount
649//   request for an account ID that was already set as the AWS Firewall Manager
650//   administrator. Or you might have tried to access a Region that's disabled
651//   by default, and that you need to enable for the Firewall Manager administrator
652//   account and for AWS Organizations before you can access it.
653//
654//   * ResourceNotFoundException
655//   The specified resource was not found.
656//
657//   * InternalErrorException
658//   The operation failed because of a system problem, even though the request
659//   was valid. Retry your request.
660//
661// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAdminAccount
662func (c *FMS) GetAdminAccount(input *GetAdminAccountInput) (*GetAdminAccountOutput, error) {
663	req, out := c.GetAdminAccountRequest(input)
664	return out, req.Send()
665}
666
667// GetAdminAccountWithContext is the same as GetAdminAccount with the addition of
668// the ability to pass a context and additional request options.
669//
670// See GetAdminAccount for details on how to use this API operation.
671//
672// The context must be non-nil and will be used for request cancellation. If
673// the context is nil a panic will occur. In the future the SDK may create
674// sub-contexts for http.Requests. See https://golang.org/pkg/context/
675// for more information on using Contexts.
676func (c *FMS) GetAdminAccountWithContext(ctx aws.Context, input *GetAdminAccountInput, opts ...request.Option) (*GetAdminAccountOutput, error) {
677	req, out := c.GetAdminAccountRequest(input)
678	req.SetContext(ctx)
679	req.ApplyOptions(opts...)
680	return out, req.Send()
681}
682
683const opGetAppsList = "GetAppsList"
684
685// GetAppsListRequest generates a "aws/request.Request" representing the
686// client's request for the GetAppsList operation. The "output" return
687// value will be populated with the request's response once the request completes
688// successfully.
689//
690// Use "Send" method on the returned Request to send the API call to the service.
691// the "output" return value is not valid until after Send returns without error.
692//
693// See GetAppsList for more information on using the GetAppsList
694// API call, and error handling.
695//
696// This method is useful when you want to inject custom logic or configuration
697// into the SDK's request lifecycle. Such as custom headers, or retry logic.
698//
699//
700//    // Example sending a request using the GetAppsListRequest method.
701//    req, resp := client.GetAppsListRequest(params)
702//
703//    err := req.Send()
704//    if err == nil { // resp is now filled
705//        fmt.Println(resp)
706//    }
707//
708// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAppsList
709func (c *FMS) GetAppsListRequest(input *GetAppsListInput) (req *request.Request, output *GetAppsListOutput) {
710	op := &request.Operation{
711		Name:       opGetAppsList,
712		HTTPMethod: "POST",
713		HTTPPath:   "/",
714	}
715
716	if input == nil {
717		input = &GetAppsListInput{}
718	}
719
720	output = &GetAppsListOutput{}
721	req = c.newRequest(op, input, output)
722	return
723}
724
725// GetAppsList API operation for Firewall Management Service.
726//
727// Returns information about the specified AWS Firewall Manager applications
728// list.
729//
730// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
731// with awserr.Error's Code and Message methods to get detailed information about
732// the error.
733//
734// See the AWS API reference guide for Firewall Management Service's
735// API operation GetAppsList for usage and error information.
736//
737// Returned Error Types:
738//   * ResourceNotFoundException
739//   The specified resource was not found.
740//
741//   * InvalidOperationException
742//   The operation failed because there was nothing to do or the operation wasn't
743//   possible. For example, you might have submitted an AssociateAdminAccount
744//   request for an account ID that was already set as the AWS Firewall Manager
745//   administrator. Or you might have tried to access a Region that's disabled
746//   by default, and that you need to enable for the Firewall Manager administrator
747//   account and for AWS Organizations before you can access it.
748//
749//   * InternalErrorException
750//   The operation failed because of a system problem, even though the request
751//   was valid. Retry your request.
752//
753// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAppsList
754func (c *FMS) GetAppsList(input *GetAppsListInput) (*GetAppsListOutput, error) {
755	req, out := c.GetAppsListRequest(input)
756	return out, req.Send()
757}
758
759// GetAppsListWithContext is the same as GetAppsList with the addition of
760// the ability to pass a context and additional request options.
761//
762// See GetAppsList for details on how to use this API operation.
763//
764// The context must be non-nil and will be used for request cancellation. If
765// the context is nil a panic will occur. In the future the SDK may create
766// sub-contexts for http.Requests. See https://golang.org/pkg/context/
767// for more information on using Contexts.
768func (c *FMS) GetAppsListWithContext(ctx aws.Context, input *GetAppsListInput, opts ...request.Option) (*GetAppsListOutput, error) {
769	req, out := c.GetAppsListRequest(input)
770	req.SetContext(ctx)
771	req.ApplyOptions(opts...)
772	return out, req.Send()
773}
774
775const opGetComplianceDetail = "GetComplianceDetail"
776
777// GetComplianceDetailRequest generates a "aws/request.Request" representing the
778// client's request for the GetComplianceDetail operation. The "output" return
779// value will be populated with the request's response once the request completes
780// successfully.
781//
782// Use "Send" method on the returned Request to send the API call to the service.
783// the "output" return value is not valid until after Send returns without error.
784//
785// See GetComplianceDetail for more information on using the GetComplianceDetail
786// API call, and error handling.
787//
788// This method is useful when you want to inject custom logic or configuration
789// into the SDK's request lifecycle. Such as custom headers, or retry logic.
790//
791//
792//    // Example sending a request using the GetComplianceDetailRequest method.
793//    req, resp := client.GetComplianceDetailRequest(params)
794//
795//    err := req.Send()
796//    if err == nil { // resp is now filled
797//        fmt.Println(resp)
798//    }
799//
800// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetComplianceDetail
801func (c *FMS) GetComplianceDetailRequest(input *GetComplianceDetailInput) (req *request.Request, output *GetComplianceDetailOutput) {
802	op := &request.Operation{
803		Name:       opGetComplianceDetail,
804		HTTPMethod: "POST",
805		HTTPPath:   "/",
806	}
807
808	if input == nil {
809		input = &GetComplianceDetailInput{}
810	}
811
812	output = &GetComplianceDetailOutput{}
813	req = c.newRequest(op, input, output)
814	return
815}
816
817// GetComplianceDetail API operation for Firewall Management Service.
818//
819// Returns detailed compliance information about the specified member account.
820// Details include resources that are in and out of compliance with the specified
821// policy. Resources are considered noncompliant for AWS WAF and Shield Advanced
822// policies if the specified policy has not been applied to them. Resources
823// are considered noncompliant for security group policies if they are in scope
824// of the policy, they violate one or more of the policy rules, and remediation
825// is disabled or not possible. Resources are considered noncompliant for Network
826// Firewall policies if a firewall is missing in the VPC, if the firewall endpoint
827// isn't set up in an expected Availability Zone and subnet, if a subnet created
828// by the Firewall Manager doesn't have the expected route table, and for modifications
829// to a firewall policy that violate the Firewall Manager policy's rules.
830//
831// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
832// with awserr.Error's Code and Message methods to get detailed information about
833// the error.
834//
835// See the AWS API reference guide for Firewall Management Service's
836// API operation GetComplianceDetail for usage and error information.
837//
838// Returned Error Types:
839//   * ResourceNotFoundException
840//   The specified resource was not found.
841//
842//   * InternalErrorException
843//   The operation failed because of a system problem, even though the request
844//   was valid. Retry your request.
845//
846//   * InvalidInputException
847//   The parameters of the request were invalid.
848//
849//   * InvalidOperationException
850//   The operation failed because there was nothing to do or the operation wasn't
851//   possible. For example, you might have submitted an AssociateAdminAccount
852//   request for an account ID that was already set as the AWS Firewall Manager
853//   administrator. Or you might have tried to access a Region that's disabled
854//   by default, and that you need to enable for the Firewall Manager administrator
855//   account and for AWS Organizations before you can access it.
856//
857// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetComplianceDetail
858func (c *FMS) GetComplianceDetail(input *GetComplianceDetailInput) (*GetComplianceDetailOutput, error) {
859	req, out := c.GetComplianceDetailRequest(input)
860	return out, req.Send()
861}
862
863// GetComplianceDetailWithContext is the same as GetComplianceDetail with the addition of
864// the ability to pass a context and additional request options.
865//
866// See GetComplianceDetail for details on how to use this API operation.
867//
868// The context must be non-nil and will be used for request cancellation. If
869// the context is nil a panic will occur. In the future the SDK may create
870// sub-contexts for http.Requests. See https://golang.org/pkg/context/
871// for more information on using Contexts.
872func (c *FMS) GetComplianceDetailWithContext(ctx aws.Context, input *GetComplianceDetailInput, opts ...request.Option) (*GetComplianceDetailOutput, error) {
873	req, out := c.GetComplianceDetailRequest(input)
874	req.SetContext(ctx)
875	req.ApplyOptions(opts...)
876	return out, req.Send()
877}
878
879const opGetNotificationChannel = "GetNotificationChannel"
880
881// GetNotificationChannelRequest generates a "aws/request.Request" representing the
882// client's request for the GetNotificationChannel operation. The "output" return
883// value will be populated with the request's response once the request completes
884// successfully.
885//
886// Use "Send" method on the returned Request to send the API call to the service.
887// the "output" return value is not valid until after Send returns without error.
888//
889// See GetNotificationChannel for more information on using the GetNotificationChannel
890// API call, and error handling.
891//
892// This method is useful when you want to inject custom logic or configuration
893// into the SDK's request lifecycle. Such as custom headers, or retry logic.
894//
895//
896//    // Example sending a request using the GetNotificationChannelRequest method.
897//    req, resp := client.GetNotificationChannelRequest(params)
898//
899//    err := req.Send()
900//    if err == nil { // resp is now filled
901//        fmt.Println(resp)
902//    }
903//
904// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetNotificationChannel
905func (c *FMS) GetNotificationChannelRequest(input *GetNotificationChannelInput) (req *request.Request, output *GetNotificationChannelOutput) {
906	op := &request.Operation{
907		Name:       opGetNotificationChannel,
908		HTTPMethod: "POST",
909		HTTPPath:   "/",
910	}
911
912	if input == nil {
913		input = &GetNotificationChannelInput{}
914	}
915
916	output = &GetNotificationChannelOutput{}
917	req = c.newRequest(op, input, output)
918	return
919}
920
921// GetNotificationChannel API operation for Firewall Management Service.
922//
923// Information about the Amazon Simple Notification Service (SNS) topic that
924// is used to record AWS Firewall Manager SNS logs.
925//
926// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
927// with awserr.Error's Code and Message methods to get detailed information about
928// the error.
929//
930// See the AWS API reference guide for Firewall Management Service's
931// API operation GetNotificationChannel for usage and error information.
932//
933// Returned Error Types:
934//   * ResourceNotFoundException
935//   The specified resource was not found.
936//
937//   * InvalidOperationException
938//   The operation failed because there was nothing to do or the operation wasn't
939//   possible. For example, you might have submitted an AssociateAdminAccount
940//   request for an account ID that was already set as the AWS Firewall Manager
941//   administrator. Or you might have tried to access a Region that's disabled
942//   by default, and that you need to enable for the Firewall Manager administrator
943//   account and for AWS Organizations before you can access it.
944//
945//   * InternalErrorException
946//   The operation failed because of a system problem, even though the request
947//   was valid. Retry your request.
948//
949// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetNotificationChannel
950func (c *FMS) GetNotificationChannel(input *GetNotificationChannelInput) (*GetNotificationChannelOutput, error) {
951	req, out := c.GetNotificationChannelRequest(input)
952	return out, req.Send()
953}
954
955// GetNotificationChannelWithContext is the same as GetNotificationChannel with the addition of
956// the ability to pass a context and additional request options.
957//
958// See GetNotificationChannel for details on how to use this API operation.
959//
960// The context must be non-nil and will be used for request cancellation. If
961// the context is nil a panic will occur. In the future the SDK may create
962// sub-contexts for http.Requests. See https://golang.org/pkg/context/
963// for more information on using Contexts.
964func (c *FMS) GetNotificationChannelWithContext(ctx aws.Context, input *GetNotificationChannelInput, opts ...request.Option) (*GetNotificationChannelOutput, error) {
965	req, out := c.GetNotificationChannelRequest(input)
966	req.SetContext(ctx)
967	req.ApplyOptions(opts...)
968	return out, req.Send()
969}
970
971const opGetPolicy = "GetPolicy"
972
973// GetPolicyRequest generates a "aws/request.Request" representing the
974// client's request for the GetPolicy operation. The "output" return
975// value will be populated with the request's response once the request completes
976// successfully.
977//
978// Use "Send" method on the returned Request to send the API call to the service.
979// the "output" return value is not valid until after Send returns without error.
980//
981// See GetPolicy for more information on using the GetPolicy
982// API call, and error handling.
983//
984// This method is useful when you want to inject custom logic or configuration
985// into the SDK's request lifecycle. Such as custom headers, or retry logic.
986//
987//
988//    // Example sending a request using the GetPolicyRequest method.
989//    req, resp := client.GetPolicyRequest(params)
990//
991//    err := req.Send()
992//    if err == nil { // resp is now filled
993//        fmt.Println(resp)
994//    }
995//
996// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetPolicy
997func (c *FMS) GetPolicyRequest(input *GetPolicyInput) (req *request.Request, output *GetPolicyOutput) {
998	op := &request.Operation{
999		Name:       opGetPolicy,
1000		HTTPMethod: "POST",
1001		HTTPPath:   "/",
1002	}
1003
1004	if input == nil {
1005		input = &GetPolicyInput{}
1006	}
1007
1008	output = &GetPolicyOutput{}
1009	req = c.newRequest(op, input, output)
1010	return
1011}
1012
1013// GetPolicy API operation for Firewall Management Service.
1014//
1015// Returns information about the specified AWS Firewall Manager policy.
1016//
1017// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1018// with awserr.Error's Code and Message methods to get detailed information about
1019// the error.
1020//
1021// See the AWS API reference guide for Firewall Management Service's
1022// API operation GetPolicy for usage and error information.
1023//
1024// Returned Error Types:
1025//   * ResourceNotFoundException
1026//   The specified resource was not found.
1027//
1028//   * InvalidOperationException
1029//   The operation failed because there was nothing to do or the operation wasn't
1030//   possible. For example, you might have submitted an AssociateAdminAccount
1031//   request for an account ID that was already set as the AWS Firewall Manager
1032//   administrator. Or you might have tried to access a Region that's disabled
1033//   by default, and that you need to enable for the Firewall Manager administrator
1034//   account and for AWS Organizations before you can access it.
1035//
1036//   * InternalErrorException
1037//   The operation failed because of a system problem, even though the request
1038//   was valid. Retry your request.
1039//
1040//   * InvalidTypeException
1041//   The value of the Type parameter is invalid.
1042//
1043// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetPolicy
1044func (c *FMS) GetPolicy(input *GetPolicyInput) (*GetPolicyOutput, error) {
1045	req, out := c.GetPolicyRequest(input)
1046	return out, req.Send()
1047}
1048
1049// GetPolicyWithContext is the same as GetPolicy with the addition of
1050// the ability to pass a context and additional request options.
1051//
1052// See GetPolicy for details on how to use this API operation.
1053//
1054// The context must be non-nil and will be used for request cancellation. If
1055// the context is nil a panic will occur. In the future the SDK may create
1056// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1057// for more information on using Contexts.
1058func (c *FMS) GetPolicyWithContext(ctx aws.Context, input *GetPolicyInput, opts ...request.Option) (*GetPolicyOutput, error) {
1059	req, out := c.GetPolicyRequest(input)
1060	req.SetContext(ctx)
1061	req.ApplyOptions(opts...)
1062	return out, req.Send()
1063}
1064
1065const opGetProtectionStatus = "GetProtectionStatus"
1066
1067// GetProtectionStatusRequest generates a "aws/request.Request" representing the
1068// client's request for the GetProtectionStatus operation. The "output" return
1069// value will be populated with the request's response once the request completes
1070// successfully.
1071//
1072// Use "Send" method on the returned Request to send the API call to the service.
1073// the "output" return value is not valid until after Send returns without error.
1074//
1075// See GetProtectionStatus for more information on using the GetProtectionStatus
1076// API call, and error handling.
1077//
1078// This method is useful when you want to inject custom logic or configuration
1079// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1080//
1081//
1082//    // Example sending a request using the GetProtectionStatusRequest method.
1083//    req, resp := client.GetProtectionStatusRequest(params)
1084//
1085//    err := req.Send()
1086//    if err == nil { // resp is now filled
1087//        fmt.Println(resp)
1088//    }
1089//
1090// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetProtectionStatus
1091func (c *FMS) GetProtectionStatusRequest(input *GetProtectionStatusInput) (req *request.Request, output *GetProtectionStatusOutput) {
1092	op := &request.Operation{
1093		Name:       opGetProtectionStatus,
1094		HTTPMethod: "POST",
1095		HTTPPath:   "/",
1096	}
1097
1098	if input == nil {
1099		input = &GetProtectionStatusInput{}
1100	}
1101
1102	output = &GetProtectionStatusOutput{}
1103	req = c.newRequest(op, input, output)
1104	return
1105}
1106
1107// GetProtectionStatus API operation for Firewall Management Service.
1108//
1109// If you created a Shield Advanced policy, returns policy-level attack summary
1110// information in the event of a potential DDoS attack. Other policy types are
1111// currently unsupported.
1112//
1113// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1114// with awserr.Error's Code and Message methods to get detailed information about
1115// the error.
1116//
1117// See the AWS API reference guide for Firewall Management Service's
1118// API operation GetProtectionStatus for usage and error information.
1119//
1120// Returned Error Types:
1121//   * InvalidInputException
1122//   The parameters of the request were invalid.
1123//
1124//   * ResourceNotFoundException
1125//   The specified resource was not found.
1126//
1127//   * InternalErrorException
1128//   The operation failed because of a system problem, even though the request
1129//   was valid. Retry your request.
1130//
1131// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetProtectionStatus
1132func (c *FMS) GetProtectionStatus(input *GetProtectionStatusInput) (*GetProtectionStatusOutput, error) {
1133	req, out := c.GetProtectionStatusRequest(input)
1134	return out, req.Send()
1135}
1136
1137// GetProtectionStatusWithContext is the same as GetProtectionStatus with the addition of
1138// the ability to pass a context and additional request options.
1139//
1140// See GetProtectionStatus for details on how to use this API operation.
1141//
1142// The context must be non-nil and will be used for request cancellation. If
1143// the context is nil a panic will occur. In the future the SDK may create
1144// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1145// for more information on using Contexts.
1146func (c *FMS) GetProtectionStatusWithContext(ctx aws.Context, input *GetProtectionStatusInput, opts ...request.Option) (*GetProtectionStatusOutput, error) {
1147	req, out := c.GetProtectionStatusRequest(input)
1148	req.SetContext(ctx)
1149	req.ApplyOptions(opts...)
1150	return out, req.Send()
1151}
1152
1153const opGetProtocolsList = "GetProtocolsList"
1154
1155// GetProtocolsListRequest generates a "aws/request.Request" representing the
1156// client's request for the GetProtocolsList operation. The "output" return
1157// value will be populated with the request's response once the request completes
1158// successfully.
1159//
1160// Use "Send" method on the returned Request to send the API call to the service.
1161// the "output" return value is not valid until after Send returns without error.
1162//
1163// See GetProtocolsList for more information on using the GetProtocolsList
1164// API call, and error handling.
1165//
1166// This method is useful when you want to inject custom logic or configuration
1167// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1168//
1169//
1170//    // Example sending a request using the GetProtocolsListRequest method.
1171//    req, resp := client.GetProtocolsListRequest(params)
1172//
1173//    err := req.Send()
1174//    if err == nil { // resp is now filled
1175//        fmt.Println(resp)
1176//    }
1177//
1178// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetProtocolsList
1179func (c *FMS) GetProtocolsListRequest(input *GetProtocolsListInput) (req *request.Request, output *GetProtocolsListOutput) {
1180	op := &request.Operation{
1181		Name:       opGetProtocolsList,
1182		HTTPMethod: "POST",
1183		HTTPPath:   "/",
1184	}
1185
1186	if input == nil {
1187		input = &GetProtocolsListInput{}
1188	}
1189
1190	output = &GetProtocolsListOutput{}
1191	req = c.newRequest(op, input, output)
1192	return
1193}
1194
1195// GetProtocolsList API operation for Firewall Management Service.
1196//
1197// Returns information about the specified AWS Firewall Manager protocols list.
1198//
1199// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1200// with awserr.Error's Code and Message methods to get detailed information about
1201// the error.
1202//
1203// See the AWS API reference guide for Firewall Management Service's
1204// API operation GetProtocolsList for usage and error information.
1205//
1206// Returned Error Types:
1207//   * ResourceNotFoundException
1208//   The specified resource was not found.
1209//
1210//   * InvalidOperationException
1211//   The operation failed because there was nothing to do or the operation wasn't
1212//   possible. For example, you might have submitted an AssociateAdminAccount
1213//   request for an account ID that was already set as the AWS Firewall Manager
1214//   administrator. Or you might have tried to access a Region that's disabled
1215//   by default, and that you need to enable for the Firewall Manager administrator
1216//   account and for AWS Organizations before you can access it.
1217//
1218//   * InternalErrorException
1219//   The operation failed because of a system problem, even though the request
1220//   was valid. Retry your request.
1221//
1222// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetProtocolsList
1223func (c *FMS) GetProtocolsList(input *GetProtocolsListInput) (*GetProtocolsListOutput, error) {
1224	req, out := c.GetProtocolsListRequest(input)
1225	return out, req.Send()
1226}
1227
1228// GetProtocolsListWithContext is the same as GetProtocolsList with the addition of
1229// the ability to pass a context and additional request options.
1230//
1231// See GetProtocolsList for details on how to use this API operation.
1232//
1233// The context must be non-nil and will be used for request cancellation. If
1234// the context is nil a panic will occur. In the future the SDK may create
1235// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1236// for more information on using Contexts.
1237func (c *FMS) GetProtocolsListWithContext(ctx aws.Context, input *GetProtocolsListInput, opts ...request.Option) (*GetProtocolsListOutput, error) {
1238	req, out := c.GetProtocolsListRequest(input)
1239	req.SetContext(ctx)
1240	req.ApplyOptions(opts...)
1241	return out, req.Send()
1242}
1243
1244const opGetViolationDetails = "GetViolationDetails"
1245
1246// GetViolationDetailsRequest generates a "aws/request.Request" representing the
1247// client's request for the GetViolationDetails operation. The "output" return
1248// value will be populated with the request's response once the request completes
1249// successfully.
1250//
1251// Use "Send" method on the returned Request to send the API call to the service.
1252// the "output" return value is not valid until after Send returns without error.
1253//
1254// See GetViolationDetails for more information on using the GetViolationDetails
1255// API call, and error handling.
1256//
1257// This method is useful when you want to inject custom logic or configuration
1258// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1259//
1260//
1261//    // Example sending a request using the GetViolationDetailsRequest method.
1262//    req, resp := client.GetViolationDetailsRequest(params)
1263//
1264//    err := req.Send()
1265//    if err == nil { // resp is now filled
1266//        fmt.Println(resp)
1267//    }
1268//
1269// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetViolationDetails
1270func (c *FMS) GetViolationDetailsRequest(input *GetViolationDetailsInput) (req *request.Request, output *GetViolationDetailsOutput) {
1271	op := &request.Operation{
1272		Name:       opGetViolationDetails,
1273		HTTPMethod: "POST",
1274		HTTPPath:   "/",
1275	}
1276
1277	if input == nil {
1278		input = &GetViolationDetailsInput{}
1279	}
1280
1281	output = &GetViolationDetailsOutput{}
1282	req = c.newRequest(op, input, output)
1283	return
1284}
1285
1286// GetViolationDetails API operation for Firewall Management Service.
1287//
1288// Retrieves violations for a resource based on the specified AWS Firewall Manager
1289// policy and AWS account.
1290//
1291// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1292// with awserr.Error's Code and Message methods to get detailed information about
1293// the error.
1294//
1295// See the AWS API reference guide for Firewall Management Service's
1296// API operation GetViolationDetails for usage and error information.
1297//
1298// Returned Error Types:
1299//   * ResourceNotFoundException
1300//   The specified resource was not found.
1301//
1302//   * InvalidInputException
1303//   The parameters of the request were invalid.
1304//
1305//   * InternalErrorException
1306//   The operation failed because of a system problem, even though the request
1307//   was valid. Retry your request.
1308//
1309// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetViolationDetails
1310func (c *FMS) GetViolationDetails(input *GetViolationDetailsInput) (*GetViolationDetailsOutput, error) {
1311	req, out := c.GetViolationDetailsRequest(input)
1312	return out, req.Send()
1313}
1314
1315// GetViolationDetailsWithContext is the same as GetViolationDetails with the addition of
1316// the ability to pass a context and additional request options.
1317//
1318// See GetViolationDetails for details on how to use this API operation.
1319//
1320// The context must be non-nil and will be used for request cancellation. If
1321// the context is nil a panic will occur. In the future the SDK may create
1322// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1323// for more information on using Contexts.
1324func (c *FMS) GetViolationDetailsWithContext(ctx aws.Context, input *GetViolationDetailsInput, opts ...request.Option) (*GetViolationDetailsOutput, error) {
1325	req, out := c.GetViolationDetailsRequest(input)
1326	req.SetContext(ctx)
1327	req.ApplyOptions(opts...)
1328	return out, req.Send()
1329}
1330
1331const opListAppsLists = "ListAppsLists"
1332
1333// ListAppsListsRequest generates a "aws/request.Request" representing the
1334// client's request for the ListAppsLists operation. The "output" return
1335// value will be populated with the request's response once the request completes
1336// successfully.
1337//
1338// Use "Send" method on the returned Request to send the API call to the service.
1339// the "output" return value is not valid until after Send returns without error.
1340//
1341// See ListAppsLists for more information on using the ListAppsLists
1342// API call, and error handling.
1343//
1344// This method is useful when you want to inject custom logic or configuration
1345// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1346//
1347//
1348//    // Example sending a request using the ListAppsListsRequest method.
1349//    req, resp := client.ListAppsListsRequest(params)
1350//
1351//    err := req.Send()
1352//    if err == nil { // resp is now filled
1353//        fmt.Println(resp)
1354//    }
1355//
1356// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListAppsLists
1357func (c *FMS) ListAppsListsRequest(input *ListAppsListsInput) (req *request.Request, output *ListAppsListsOutput) {
1358	op := &request.Operation{
1359		Name:       opListAppsLists,
1360		HTTPMethod: "POST",
1361		HTTPPath:   "/",
1362	}
1363
1364	if input == nil {
1365		input = &ListAppsListsInput{}
1366	}
1367
1368	output = &ListAppsListsOutput{}
1369	req = c.newRequest(op, input, output)
1370	return
1371}
1372
1373// ListAppsLists API operation for Firewall Management Service.
1374//
1375// Returns an array of AppsListDataSummary objects.
1376//
1377// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1378// with awserr.Error's Code and Message methods to get detailed information about
1379// the error.
1380//
1381// See the AWS API reference guide for Firewall Management Service's
1382// API operation ListAppsLists for usage and error information.
1383//
1384// Returned Error Types:
1385//   * ResourceNotFoundException
1386//   The specified resource was not found.
1387//
1388//   * InvalidOperationException
1389//   The operation failed because there was nothing to do or the operation wasn't
1390//   possible. For example, you might have submitted an AssociateAdminAccount
1391//   request for an account ID that was already set as the AWS Firewall Manager
1392//   administrator. Or you might have tried to access a Region that's disabled
1393//   by default, and that you need to enable for the Firewall Manager administrator
1394//   account and for AWS Organizations before you can access it.
1395//
1396//   * LimitExceededException
1397//   The operation exceeds a resource limit, for example, the maximum number of
1398//   policy objects that you can create for an AWS account. For more information,
1399//   see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
1400//   in the AWS WAF Developer Guide.
1401//
1402//   * InternalErrorException
1403//   The operation failed because of a system problem, even though the request
1404//   was valid. Retry your request.
1405//
1406// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListAppsLists
1407func (c *FMS) ListAppsLists(input *ListAppsListsInput) (*ListAppsListsOutput, error) {
1408	req, out := c.ListAppsListsRequest(input)
1409	return out, req.Send()
1410}
1411
1412// ListAppsListsWithContext is the same as ListAppsLists with the addition of
1413// the ability to pass a context and additional request options.
1414//
1415// See ListAppsLists for details on how to use this API operation.
1416//
1417// The context must be non-nil and will be used for request cancellation. If
1418// the context is nil a panic will occur. In the future the SDK may create
1419// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1420// for more information on using Contexts.
1421func (c *FMS) ListAppsListsWithContext(ctx aws.Context, input *ListAppsListsInput, opts ...request.Option) (*ListAppsListsOutput, error) {
1422	req, out := c.ListAppsListsRequest(input)
1423	req.SetContext(ctx)
1424	req.ApplyOptions(opts...)
1425	return out, req.Send()
1426}
1427
1428const opListComplianceStatus = "ListComplianceStatus"
1429
1430// ListComplianceStatusRequest generates a "aws/request.Request" representing the
1431// client's request for the ListComplianceStatus operation. The "output" return
1432// value will be populated with the request's response once the request completes
1433// successfully.
1434//
1435// Use "Send" method on the returned Request to send the API call to the service.
1436// the "output" return value is not valid until after Send returns without error.
1437//
1438// See ListComplianceStatus for more information on using the ListComplianceStatus
1439// API call, and error handling.
1440//
1441// This method is useful when you want to inject custom logic or configuration
1442// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1443//
1444//
1445//    // Example sending a request using the ListComplianceStatusRequest method.
1446//    req, resp := client.ListComplianceStatusRequest(params)
1447//
1448//    err := req.Send()
1449//    if err == nil { // resp is now filled
1450//        fmt.Println(resp)
1451//    }
1452//
1453// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListComplianceStatus
1454func (c *FMS) ListComplianceStatusRequest(input *ListComplianceStatusInput) (req *request.Request, output *ListComplianceStatusOutput) {
1455	op := &request.Operation{
1456		Name:       opListComplianceStatus,
1457		HTTPMethod: "POST",
1458		HTTPPath:   "/",
1459		Paginator: &request.Paginator{
1460			InputTokens:     []string{"NextToken"},
1461			OutputTokens:    []string{"NextToken"},
1462			LimitToken:      "MaxResults",
1463			TruncationToken: "",
1464		},
1465	}
1466
1467	if input == nil {
1468		input = &ListComplianceStatusInput{}
1469	}
1470
1471	output = &ListComplianceStatusOutput{}
1472	req = c.newRequest(op, input, output)
1473	return
1474}
1475
1476// ListComplianceStatus API operation for Firewall Management Service.
1477//
1478// Returns an array of PolicyComplianceStatus objects. Use PolicyComplianceStatus
1479// to get a summary of which member accounts are protected by the specified
1480// policy.
1481//
1482// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1483// with awserr.Error's Code and Message methods to get detailed information about
1484// the error.
1485//
1486// See the AWS API reference guide for Firewall Management Service's
1487// API operation ListComplianceStatus for usage and error information.
1488//
1489// Returned Error Types:
1490//   * ResourceNotFoundException
1491//   The specified resource was not found.
1492//
1493//   * InternalErrorException
1494//   The operation failed because of a system problem, even though the request
1495//   was valid. Retry your request.
1496//
1497// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListComplianceStatus
1498func (c *FMS) ListComplianceStatus(input *ListComplianceStatusInput) (*ListComplianceStatusOutput, error) {
1499	req, out := c.ListComplianceStatusRequest(input)
1500	return out, req.Send()
1501}
1502
1503// ListComplianceStatusWithContext is the same as ListComplianceStatus with the addition of
1504// the ability to pass a context and additional request options.
1505//
1506// See ListComplianceStatus for details on how to use this API operation.
1507//
1508// The context must be non-nil and will be used for request cancellation. If
1509// the context is nil a panic will occur. In the future the SDK may create
1510// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1511// for more information on using Contexts.
1512func (c *FMS) ListComplianceStatusWithContext(ctx aws.Context, input *ListComplianceStatusInput, opts ...request.Option) (*ListComplianceStatusOutput, error) {
1513	req, out := c.ListComplianceStatusRequest(input)
1514	req.SetContext(ctx)
1515	req.ApplyOptions(opts...)
1516	return out, req.Send()
1517}
1518
1519// ListComplianceStatusPages iterates over the pages of a ListComplianceStatus operation,
1520// calling the "fn" function with the response data for each page. To stop
1521// iterating, return false from the fn function.
1522//
1523// See ListComplianceStatus method for more information on how to use this operation.
1524//
1525// Note: This operation can generate multiple requests to a service.
1526//
1527//    // Example iterating over at most 3 pages of a ListComplianceStatus operation.
1528//    pageNum := 0
1529//    err := client.ListComplianceStatusPages(params,
1530//        func(page *fms.ListComplianceStatusOutput, lastPage bool) bool {
1531//            pageNum++
1532//            fmt.Println(page)
1533//            return pageNum <= 3
1534//        })
1535//
1536func (c *FMS) ListComplianceStatusPages(input *ListComplianceStatusInput, fn func(*ListComplianceStatusOutput, bool) bool) error {
1537	return c.ListComplianceStatusPagesWithContext(aws.BackgroundContext(), input, fn)
1538}
1539
1540// ListComplianceStatusPagesWithContext same as ListComplianceStatusPages except
1541// it takes a Context and allows setting request options on the pages.
1542//
1543// The context must be non-nil and will be used for request cancellation. If
1544// the context is nil a panic will occur. In the future the SDK may create
1545// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1546// for more information on using Contexts.
1547func (c *FMS) ListComplianceStatusPagesWithContext(ctx aws.Context, input *ListComplianceStatusInput, fn func(*ListComplianceStatusOutput, bool) bool, opts ...request.Option) error {
1548	p := request.Pagination{
1549		NewRequest: func() (*request.Request, error) {
1550			var inCpy *ListComplianceStatusInput
1551			if input != nil {
1552				tmp := *input
1553				inCpy = &tmp
1554			}
1555			req, _ := c.ListComplianceStatusRequest(inCpy)
1556			req.SetContext(ctx)
1557			req.ApplyOptions(opts...)
1558			return req, nil
1559		},
1560	}
1561
1562	for p.Next() {
1563		if !fn(p.Page().(*ListComplianceStatusOutput), !p.HasNextPage()) {
1564			break
1565		}
1566	}
1567
1568	return p.Err()
1569}
1570
1571const opListMemberAccounts = "ListMemberAccounts"
1572
1573// ListMemberAccountsRequest generates a "aws/request.Request" representing the
1574// client's request for the ListMemberAccounts operation. The "output" return
1575// value will be populated with the request's response once the request completes
1576// successfully.
1577//
1578// Use "Send" method on the returned Request to send the API call to the service.
1579// the "output" return value is not valid until after Send returns without error.
1580//
1581// See ListMemberAccounts for more information on using the ListMemberAccounts
1582// API call, and error handling.
1583//
1584// This method is useful when you want to inject custom logic or configuration
1585// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1586//
1587//
1588//    // Example sending a request using the ListMemberAccountsRequest method.
1589//    req, resp := client.ListMemberAccountsRequest(params)
1590//
1591//    err := req.Send()
1592//    if err == nil { // resp is now filled
1593//        fmt.Println(resp)
1594//    }
1595//
1596// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListMemberAccounts
1597func (c *FMS) ListMemberAccountsRequest(input *ListMemberAccountsInput) (req *request.Request, output *ListMemberAccountsOutput) {
1598	op := &request.Operation{
1599		Name:       opListMemberAccounts,
1600		HTTPMethod: "POST",
1601		HTTPPath:   "/",
1602		Paginator: &request.Paginator{
1603			InputTokens:     []string{"NextToken"},
1604			OutputTokens:    []string{"NextToken"},
1605			LimitToken:      "MaxResults",
1606			TruncationToken: "",
1607		},
1608	}
1609
1610	if input == nil {
1611		input = &ListMemberAccountsInput{}
1612	}
1613
1614	output = &ListMemberAccountsOutput{}
1615	req = c.newRequest(op, input, output)
1616	return
1617}
1618
1619// ListMemberAccounts API operation for Firewall Management Service.
1620//
1621// Returns a MemberAccounts object that lists the member accounts in the administrator's
1622// AWS organization.
1623//
1624// The ListMemberAccounts must be submitted by the account that is set as the
1625// AWS Firewall Manager administrator.
1626//
1627// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1628// with awserr.Error's Code and Message methods to get detailed information about
1629// the error.
1630//
1631// See the AWS API reference guide for Firewall Management Service's
1632// API operation ListMemberAccounts for usage and error information.
1633//
1634// Returned Error Types:
1635//   * ResourceNotFoundException
1636//   The specified resource was not found.
1637//
1638//   * InternalErrorException
1639//   The operation failed because of a system problem, even though the request
1640//   was valid. Retry your request.
1641//
1642// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListMemberAccounts
1643func (c *FMS) ListMemberAccounts(input *ListMemberAccountsInput) (*ListMemberAccountsOutput, error) {
1644	req, out := c.ListMemberAccountsRequest(input)
1645	return out, req.Send()
1646}
1647
1648// ListMemberAccountsWithContext is the same as ListMemberAccounts with the addition of
1649// the ability to pass a context and additional request options.
1650//
1651// See ListMemberAccounts for details on how to use this API operation.
1652//
1653// The context must be non-nil and will be used for request cancellation. If
1654// the context is nil a panic will occur. In the future the SDK may create
1655// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1656// for more information on using Contexts.
1657func (c *FMS) ListMemberAccountsWithContext(ctx aws.Context, input *ListMemberAccountsInput, opts ...request.Option) (*ListMemberAccountsOutput, error) {
1658	req, out := c.ListMemberAccountsRequest(input)
1659	req.SetContext(ctx)
1660	req.ApplyOptions(opts...)
1661	return out, req.Send()
1662}
1663
1664// ListMemberAccountsPages iterates over the pages of a ListMemberAccounts operation,
1665// calling the "fn" function with the response data for each page. To stop
1666// iterating, return false from the fn function.
1667//
1668// See ListMemberAccounts method for more information on how to use this operation.
1669//
1670// Note: This operation can generate multiple requests to a service.
1671//
1672//    // Example iterating over at most 3 pages of a ListMemberAccounts operation.
1673//    pageNum := 0
1674//    err := client.ListMemberAccountsPages(params,
1675//        func(page *fms.ListMemberAccountsOutput, lastPage bool) bool {
1676//            pageNum++
1677//            fmt.Println(page)
1678//            return pageNum <= 3
1679//        })
1680//
1681func (c *FMS) ListMemberAccountsPages(input *ListMemberAccountsInput, fn func(*ListMemberAccountsOutput, bool) bool) error {
1682	return c.ListMemberAccountsPagesWithContext(aws.BackgroundContext(), input, fn)
1683}
1684
1685// ListMemberAccountsPagesWithContext same as ListMemberAccountsPages except
1686// it takes a Context and allows setting request options on the pages.
1687//
1688// The context must be non-nil and will be used for request cancellation. If
1689// the context is nil a panic will occur. In the future the SDK may create
1690// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1691// for more information on using Contexts.
1692func (c *FMS) ListMemberAccountsPagesWithContext(ctx aws.Context, input *ListMemberAccountsInput, fn func(*ListMemberAccountsOutput, bool) bool, opts ...request.Option) error {
1693	p := request.Pagination{
1694		NewRequest: func() (*request.Request, error) {
1695			var inCpy *ListMemberAccountsInput
1696			if input != nil {
1697				tmp := *input
1698				inCpy = &tmp
1699			}
1700			req, _ := c.ListMemberAccountsRequest(inCpy)
1701			req.SetContext(ctx)
1702			req.ApplyOptions(opts...)
1703			return req, nil
1704		},
1705	}
1706
1707	for p.Next() {
1708		if !fn(p.Page().(*ListMemberAccountsOutput), !p.HasNextPage()) {
1709			break
1710		}
1711	}
1712
1713	return p.Err()
1714}
1715
1716const opListPolicies = "ListPolicies"
1717
1718// ListPoliciesRequest generates a "aws/request.Request" representing the
1719// client's request for the ListPolicies operation. The "output" return
1720// value will be populated with the request's response once the request completes
1721// successfully.
1722//
1723// Use "Send" method on the returned Request to send the API call to the service.
1724// the "output" return value is not valid until after Send returns without error.
1725//
1726// See ListPolicies for more information on using the ListPolicies
1727// API call, and error handling.
1728//
1729// This method is useful when you want to inject custom logic or configuration
1730// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1731//
1732//
1733//    // Example sending a request using the ListPoliciesRequest method.
1734//    req, resp := client.ListPoliciesRequest(params)
1735//
1736//    err := req.Send()
1737//    if err == nil { // resp is now filled
1738//        fmt.Println(resp)
1739//    }
1740//
1741// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListPolicies
1742func (c *FMS) ListPoliciesRequest(input *ListPoliciesInput) (req *request.Request, output *ListPoliciesOutput) {
1743	op := &request.Operation{
1744		Name:       opListPolicies,
1745		HTTPMethod: "POST",
1746		HTTPPath:   "/",
1747		Paginator: &request.Paginator{
1748			InputTokens:     []string{"NextToken"},
1749			OutputTokens:    []string{"NextToken"},
1750			LimitToken:      "MaxResults",
1751			TruncationToken: "",
1752		},
1753	}
1754
1755	if input == nil {
1756		input = &ListPoliciesInput{}
1757	}
1758
1759	output = &ListPoliciesOutput{}
1760	req = c.newRequest(op, input, output)
1761	return
1762}
1763
1764// ListPolicies API operation for Firewall Management Service.
1765//
1766// Returns an array of PolicySummary objects.
1767//
1768// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1769// with awserr.Error's Code and Message methods to get detailed information about
1770// the error.
1771//
1772// See the AWS API reference guide for Firewall Management Service's
1773// API operation ListPolicies for usage and error information.
1774//
1775// Returned Error Types:
1776//   * ResourceNotFoundException
1777//   The specified resource was not found.
1778//
1779//   * InvalidOperationException
1780//   The operation failed because there was nothing to do or the operation wasn't
1781//   possible. For example, you might have submitted an AssociateAdminAccount
1782//   request for an account ID that was already set as the AWS Firewall Manager
1783//   administrator. Or you might have tried to access a Region that's disabled
1784//   by default, and that you need to enable for the Firewall Manager administrator
1785//   account and for AWS Organizations before you can access it.
1786//
1787//   * LimitExceededException
1788//   The operation exceeds a resource limit, for example, the maximum number of
1789//   policy objects that you can create for an AWS account. For more information,
1790//   see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
1791//   in the AWS WAF Developer Guide.
1792//
1793//   * InternalErrorException
1794//   The operation failed because of a system problem, even though the request
1795//   was valid. Retry your request.
1796//
1797// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListPolicies
1798func (c *FMS) ListPolicies(input *ListPoliciesInput) (*ListPoliciesOutput, error) {
1799	req, out := c.ListPoliciesRequest(input)
1800	return out, req.Send()
1801}
1802
1803// ListPoliciesWithContext is the same as ListPolicies with the addition of
1804// the ability to pass a context and additional request options.
1805//
1806// See ListPolicies for details on how to use this API operation.
1807//
1808// The context must be non-nil and will be used for request cancellation. If
1809// the context is nil a panic will occur. In the future the SDK may create
1810// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1811// for more information on using Contexts.
1812func (c *FMS) ListPoliciesWithContext(ctx aws.Context, input *ListPoliciesInput, opts ...request.Option) (*ListPoliciesOutput, error) {
1813	req, out := c.ListPoliciesRequest(input)
1814	req.SetContext(ctx)
1815	req.ApplyOptions(opts...)
1816	return out, req.Send()
1817}
1818
1819// ListPoliciesPages iterates over the pages of a ListPolicies operation,
1820// calling the "fn" function with the response data for each page. To stop
1821// iterating, return false from the fn function.
1822//
1823// See ListPolicies method for more information on how to use this operation.
1824//
1825// Note: This operation can generate multiple requests to a service.
1826//
1827//    // Example iterating over at most 3 pages of a ListPolicies operation.
1828//    pageNum := 0
1829//    err := client.ListPoliciesPages(params,
1830//        func(page *fms.ListPoliciesOutput, lastPage bool) bool {
1831//            pageNum++
1832//            fmt.Println(page)
1833//            return pageNum <= 3
1834//        })
1835//
1836func (c *FMS) ListPoliciesPages(input *ListPoliciesInput, fn func(*ListPoliciesOutput, bool) bool) error {
1837	return c.ListPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
1838}
1839
1840// ListPoliciesPagesWithContext same as ListPoliciesPages except
1841// it takes a Context and allows setting request options on the pages.
1842//
1843// The context must be non-nil and will be used for request cancellation. If
1844// the context is nil a panic will occur. In the future the SDK may create
1845// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1846// for more information on using Contexts.
1847func (c *FMS) ListPoliciesPagesWithContext(ctx aws.Context, input *ListPoliciesInput, fn func(*ListPoliciesOutput, bool) bool, opts ...request.Option) error {
1848	p := request.Pagination{
1849		NewRequest: func() (*request.Request, error) {
1850			var inCpy *ListPoliciesInput
1851			if input != nil {
1852				tmp := *input
1853				inCpy = &tmp
1854			}
1855			req, _ := c.ListPoliciesRequest(inCpy)
1856			req.SetContext(ctx)
1857			req.ApplyOptions(opts...)
1858			return req, nil
1859		},
1860	}
1861
1862	for p.Next() {
1863		if !fn(p.Page().(*ListPoliciesOutput), !p.HasNextPage()) {
1864			break
1865		}
1866	}
1867
1868	return p.Err()
1869}
1870
1871const opListProtocolsLists = "ListProtocolsLists"
1872
1873// ListProtocolsListsRequest generates a "aws/request.Request" representing the
1874// client's request for the ListProtocolsLists operation. The "output" return
1875// value will be populated with the request's response once the request completes
1876// successfully.
1877//
1878// Use "Send" method on the returned Request to send the API call to the service.
1879// the "output" return value is not valid until after Send returns without error.
1880//
1881// See ListProtocolsLists for more information on using the ListProtocolsLists
1882// API call, and error handling.
1883//
1884// This method is useful when you want to inject custom logic or configuration
1885// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1886//
1887//
1888//    // Example sending a request using the ListProtocolsListsRequest method.
1889//    req, resp := client.ListProtocolsListsRequest(params)
1890//
1891//    err := req.Send()
1892//    if err == nil { // resp is now filled
1893//        fmt.Println(resp)
1894//    }
1895//
1896// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListProtocolsLists
1897func (c *FMS) ListProtocolsListsRequest(input *ListProtocolsListsInput) (req *request.Request, output *ListProtocolsListsOutput) {
1898	op := &request.Operation{
1899		Name:       opListProtocolsLists,
1900		HTTPMethod: "POST",
1901		HTTPPath:   "/",
1902	}
1903
1904	if input == nil {
1905		input = &ListProtocolsListsInput{}
1906	}
1907
1908	output = &ListProtocolsListsOutput{}
1909	req = c.newRequest(op, input, output)
1910	return
1911}
1912
1913// ListProtocolsLists API operation for Firewall Management Service.
1914//
1915// Returns an array of ProtocolsListDataSummary objects.
1916//
1917// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1918// with awserr.Error's Code and Message methods to get detailed information about
1919// the error.
1920//
1921// See the AWS API reference guide for Firewall Management Service's
1922// API operation ListProtocolsLists for usage and error information.
1923//
1924// Returned Error Types:
1925//   * ResourceNotFoundException
1926//   The specified resource was not found.
1927//
1928//   * InvalidOperationException
1929//   The operation failed because there was nothing to do or the operation wasn't
1930//   possible. For example, you might have submitted an AssociateAdminAccount
1931//   request for an account ID that was already set as the AWS Firewall Manager
1932//   administrator. Or you might have tried to access a Region that's disabled
1933//   by default, and that you need to enable for the Firewall Manager administrator
1934//   account and for AWS Organizations before you can access it.
1935//
1936//   * InternalErrorException
1937//   The operation failed because of a system problem, even though the request
1938//   was valid. Retry your request.
1939//
1940// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListProtocolsLists
1941func (c *FMS) ListProtocolsLists(input *ListProtocolsListsInput) (*ListProtocolsListsOutput, error) {
1942	req, out := c.ListProtocolsListsRequest(input)
1943	return out, req.Send()
1944}
1945
1946// ListProtocolsListsWithContext is the same as ListProtocolsLists with the addition of
1947// the ability to pass a context and additional request options.
1948//
1949// See ListProtocolsLists for details on how to use this API operation.
1950//
1951// The context must be non-nil and will be used for request cancellation. If
1952// the context is nil a panic will occur. In the future the SDK may create
1953// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1954// for more information on using Contexts.
1955func (c *FMS) ListProtocolsListsWithContext(ctx aws.Context, input *ListProtocolsListsInput, opts ...request.Option) (*ListProtocolsListsOutput, error) {
1956	req, out := c.ListProtocolsListsRequest(input)
1957	req.SetContext(ctx)
1958	req.ApplyOptions(opts...)
1959	return out, req.Send()
1960}
1961
1962const opListTagsForResource = "ListTagsForResource"
1963
1964// ListTagsForResourceRequest generates a "aws/request.Request" representing the
1965// client's request for the ListTagsForResource operation. The "output" return
1966// value will be populated with the request's response once the request completes
1967// successfully.
1968//
1969// Use "Send" method on the returned Request to send the API call to the service.
1970// the "output" return value is not valid until after Send returns without error.
1971//
1972// See ListTagsForResource for more information on using the ListTagsForResource
1973// API call, and error handling.
1974//
1975// This method is useful when you want to inject custom logic or configuration
1976// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1977//
1978//
1979//    // Example sending a request using the ListTagsForResourceRequest method.
1980//    req, resp := client.ListTagsForResourceRequest(params)
1981//
1982//    err := req.Send()
1983//    if err == nil { // resp is now filled
1984//        fmt.Println(resp)
1985//    }
1986//
1987// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListTagsForResource
1988func (c *FMS) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
1989	op := &request.Operation{
1990		Name:       opListTagsForResource,
1991		HTTPMethod: "POST",
1992		HTTPPath:   "/",
1993	}
1994
1995	if input == nil {
1996		input = &ListTagsForResourceInput{}
1997	}
1998
1999	output = &ListTagsForResourceOutput{}
2000	req = c.newRequest(op, input, output)
2001	return
2002}
2003
2004// ListTagsForResource API operation for Firewall Management Service.
2005//
2006// Retrieves the list of tags for the specified AWS resource.
2007//
2008// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2009// with awserr.Error's Code and Message methods to get detailed information about
2010// the error.
2011//
2012// See the AWS API reference guide for Firewall Management Service's
2013// API operation ListTagsForResource for usage and error information.
2014//
2015// Returned Error Types:
2016//   * ResourceNotFoundException
2017//   The specified resource was not found.
2018//
2019//   * InvalidOperationException
2020//   The operation failed because there was nothing to do or the operation wasn't
2021//   possible. For example, you might have submitted an AssociateAdminAccount
2022//   request for an account ID that was already set as the AWS Firewall Manager
2023//   administrator. Or you might have tried to access a Region that's disabled
2024//   by default, and that you need to enable for the Firewall Manager administrator
2025//   account and for AWS Organizations before you can access it.
2026//
2027//   * InternalErrorException
2028//   The operation failed because of a system problem, even though the request
2029//   was valid. Retry your request.
2030//
2031//   * InvalidInputException
2032//   The parameters of the request were invalid.
2033//
2034// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListTagsForResource
2035func (c *FMS) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
2036	req, out := c.ListTagsForResourceRequest(input)
2037	return out, req.Send()
2038}
2039
2040// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
2041// the ability to pass a context and additional request options.
2042//
2043// See ListTagsForResource for details on how to use this API operation.
2044//
2045// The context must be non-nil and will be used for request cancellation. If
2046// the context is nil a panic will occur. In the future the SDK may create
2047// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2048// for more information on using Contexts.
2049func (c *FMS) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
2050	req, out := c.ListTagsForResourceRequest(input)
2051	req.SetContext(ctx)
2052	req.ApplyOptions(opts...)
2053	return out, req.Send()
2054}
2055
2056const opPutAppsList = "PutAppsList"
2057
2058// PutAppsListRequest generates a "aws/request.Request" representing the
2059// client's request for the PutAppsList operation. The "output" return
2060// value will be populated with the request's response once the request completes
2061// successfully.
2062//
2063// Use "Send" method on the returned Request to send the API call to the service.
2064// the "output" return value is not valid until after Send returns without error.
2065//
2066// See PutAppsList for more information on using the PutAppsList
2067// API call, and error handling.
2068//
2069// This method is useful when you want to inject custom logic or configuration
2070// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2071//
2072//
2073//    // Example sending a request using the PutAppsListRequest method.
2074//    req, resp := client.PutAppsListRequest(params)
2075//
2076//    err := req.Send()
2077//    if err == nil { // resp is now filled
2078//        fmt.Println(resp)
2079//    }
2080//
2081// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutAppsList
2082func (c *FMS) PutAppsListRequest(input *PutAppsListInput) (req *request.Request, output *PutAppsListOutput) {
2083	op := &request.Operation{
2084		Name:       opPutAppsList,
2085		HTTPMethod: "POST",
2086		HTTPPath:   "/",
2087	}
2088
2089	if input == nil {
2090		input = &PutAppsListInput{}
2091	}
2092
2093	output = &PutAppsListOutput{}
2094	req = c.newRequest(op, input, output)
2095	return
2096}
2097
2098// PutAppsList API operation for Firewall Management Service.
2099//
2100// Creates an AWS Firewall Manager applications list.
2101//
2102// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2103// with awserr.Error's Code and Message methods to get detailed information about
2104// the error.
2105//
2106// See the AWS API reference guide for Firewall Management Service's
2107// API operation PutAppsList for usage and error information.
2108//
2109// Returned Error Types:
2110//   * ResourceNotFoundException
2111//   The specified resource was not found.
2112//
2113//   * InvalidOperationException
2114//   The operation failed because there was nothing to do or the operation wasn't
2115//   possible. For example, you might have submitted an AssociateAdminAccount
2116//   request for an account ID that was already set as the AWS Firewall Manager
2117//   administrator. Or you might have tried to access a Region that's disabled
2118//   by default, and that you need to enable for the Firewall Manager administrator
2119//   account and for AWS Organizations before you can access it.
2120//
2121//   * InvalidInputException
2122//   The parameters of the request were invalid.
2123//
2124//   * LimitExceededException
2125//   The operation exceeds a resource limit, for example, the maximum number of
2126//   policy objects that you can create for an AWS account. For more information,
2127//   see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
2128//   in the AWS WAF Developer Guide.
2129//
2130//   * InternalErrorException
2131//   The operation failed because of a system problem, even though the request
2132//   was valid. Retry your request.
2133//
2134// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutAppsList
2135func (c *FMS) PutAppsList(input *PutAppsListInput) (*PutAppsListOutput, error) {
2136	req, out := c.PutAppsListRequest(input)
2137	return out, req.Send()
2138}
2139
2140// PutAppsListWithContext is the same as PutAppsList with the addition of
2141// the ability to pass a context and additional request options.
2142//
2143// See PutAppsList for details on how to use this API operation.
2144//
2145// The context must be non-nil and will be used for request cancellation. If
2146// the context is nil a panic will occur. In the future the SDK may create
2147// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2148// for more information on using Contexts.
2149func (c *FMS) PutAppsListWithContext(ctx aws.Context, input *PutAppsListInput, opts ...request.Option) (*PutAppsListOutput, error) {
2150	req, out := c.PutAppsListRequest(input)
2151	req.SetContext(ctx)
2152	req.ApplyOptions(opts...)
2153	return out, req.Send()
2154}
2155
2156const opPutNotificationChannel = "PutNotificationChannel"
2157
2158// PutNotificationChannelRequest generates a "aws/request.Request" representing the
2159// client's request for the PutNotificationChannel operation. The "output" return
2160// value will be populated with the request's response once the request completes
2161// successfully.
2162//
2163// Use "Send" method on the returned Request to send the API call to the service.
2164// the "output" return value is not valid until after Send returns without error.
2165//
2166// See PutNotificationChannel for more information on using the PutNotificationChannel
2167// API call, and error handling.
2168//
2169// This method is useful when you want to inject custom logic or configuration
2170// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2171//
2172//
2173//    // Example sending a request using the PutNotificationChannelRequest method.
2174//    req, resp := client.PutNotificationChannelRequest(params)
2175//
2176//    err := req.Send()
2177//    if err == nil { // resp is now filled
2178//        fmt.Println(resp)
2179//    }
2180//
2181// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutNotificationChannel
2182func (c *FMS) PutNotificationChannelRequest(input *PutNotificationChannelInput) (req *request.Request, output *PutNotificationChannelOutput) {
2183	op := &request.Operation{
2184		Name:       opPutNotificationChannel,
2185		HTTPMethod: "POST",
2186		HTTPPath:   "/",
2187	}
2188
2189	if input == nil {
2190		input = &PutNotificationChannelInput{}
2191	}
2192
2193	output = &PutNotificationChannelOutput{}
2194	req = c.newRequest(op, input, output)
2195	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2196	return
2197}
2198
2199// PutNotificationChannel API operation for Firewall Management Service.
2200//
2201// Designates the IAM role and Amazon Simple Notification Service (SNS) topic
2202// that AWS Firewall Manager uses to record SNS logs.
2203//
2204// To perform this action outside of the console, you must configure the SNS
2205// topic to allow the Firewall Manager role AWSServiceRoleForFMS to publish
2206// SNS logs. For more information, see Firewall Manager required permissions
2207// for API actions (https://docs.aws.amazon.com/waf/latest/developerguide/fms-api-permissions-ref.html)
2208// in the AWS Firewall Manager Developer Guide.
2209//
2210// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2211// with awserr.Error's Code and Message methods to get detailed information about
2212// the error.
2213//
2214// See the AWS API reference guide for Firewall Management Service's
2215// API operation PutNotificationChannel for usage and error information.
2216//
2217// Returned Error Types:
2218//   * ResourceNotFoundException
2219//   The specified resource was not found.
2220//
2221//   * InvalidOperationException
2222//   The operation failed because there was nothing to do or the operation wasn't
2223//   possible. For example, you might have submitted an AssociateAdminAccount
2224//   request for an account ID that was already set as the AWS Firewall Manager
2225//   administrator. Or you might have tried to access a Region that's disabled
2226//   by default, and that you need to enable for the Firewall Manager administrator
2227//   account and for AWS Organizations before you can access it.
2228//
2229//   * InternalErrorException
2230//   The operation failed because of a system problem, even though the request
2231//   was valid. Retry your request.
2232//
2233// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutNotificationChannel
2234func (c *FMS) PutNotificationChannel(input *PutNotificationChannelInput) (*PutNotificationChannelOutput, error) {
2235	req, out := c.PutNotificationChannelRequest(input)
2236	return out, req.Send()
2237}
2238
2239// PutNotificationChannelWithContext is the same as PutNotificationChannel with the addition of
2240// the ability to pass a context and additional request options.
2241//
2242// See PutNotificationChannel for details on how to use this API operation.
2243//
2244// The context must be non-nil and will be used for request cancellation. If
2245// the context is nil a panic will occur. In the future the SDK may create
2246// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2247// for more information on using Contexts.
2248func (c *FMS) PutNotificationChannelWithContext(ctx aws.Context, input *PutNotificationChannelInput, opts ...request.Option) (*PutNotificationChannelOutput, error) {
2249	req, out := c.PutNotificationChannelRequest(input)
2250	req.SetContext(ctx)
2251	req.ApplyOptions(opts...)
2252	return out, req.Send()
2253}
2254
2255const opPutPolicy = "PutPolicy"
2256
2257// PutPolicyRequest generates a "aws/request.Request" representing the
2258// client's request for the PutPolicy operation. The "output" return
2259// value will be populated with the request's response once the request completes
2260// successfully.
2261//
2262// Use "Send" method on the returned Request to send the API call to the service.
2263// the "output" return value is not valid until after Send returns without error.
2264//
2265// See PutPolicy for more information on using the PutPolicy
2266// API call, and error handling.
2267//
2268// This method is useful when you want to inject custom logic or configuration
2269// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2270//
2271//
2272//    // Example sending a request using the PutPolicyRequest method.
2273//    req, resp := client.PutPolicyRequest(params)
2274//
2275//    err := req.Send()
2276//    if err == nil { // resp is now filled
2277//        fmt.Println(resp)
2278//    }
2279//
2280// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutPolicy
2281func (c *FMS) PutPolicyRequest(input *PutPolicyInput) (req *request.Request, output *PutPolicyOutput) {
2282	op := &request.Operation{
2283		Name:       opPutPolicy,
2284		HTTPMethod: "POST",
2285		HTTPPath:   "/",
2286	}
2287
2288	if input == nil {
2289		input = &PutPolicyInput{}
2290	}
2291
2292	output = &PutPolicyOutput{}
2293	req = c.newRequest(op, input, output)
2294	return
2295}
2296
2297// PutPolicy API operation for Firewall Management Service.
2298//
2299// Creates an AWS Firewall Manager policy.
2300//
2301// Firewall Manager provides the following types of policies:
2302//
2303//    * An AWS WAF policy (type WAFV2), which defines rule groups to run first
2304//    in the corresponding AWS WAF web ACL and rule groups to run last in the
2305//    web ACL.
2306//
2307//    * An AWS WAF Classic policy (type WAF), which defines a rule group.
2308//
2309//    * A Shield Advanced policy, which applies Shield Advanced protection to
2310//    specified accounts and resources.
2311//
2312//    * A security group policy, which manages VPC security groups across your
2313//    AWS organization.
2314//
2315//    * An AWS Network Firewall policy, which provides firewall rules to filter
2316//    network traffic in specified Amazon VPCs.
2317//
2318// Each policy is specific to one of the types. If you want to enforce more
2319// than one policy type across accounts, create multiple policies. You can create
2320// multiple policies for each type.
2321//
2322// You must be subscribed to Shield Advanced to create a Shield Advanced policy.
2323// For more information about subscribing to Shield Advanced, see CreateSubscription
2324// (https://docs.aws.amazon.com/waf/latest/DDOSAPIReference/API_CreateSubscription.html).
2325//
2326// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2327// with awserr.Error's Code and Message methods to get detailed information about
2328// the error.
2329//
2330// See the AWS API reference guide for Firewall Management Service's
2331// API operation PutPolicy for usage and error information.
2332//
2333// Returned Error Types:
2334//   * ResourceNotFoundException
2335//   The specified resource was not found.
2336//
2337//   * InvalidOperationException
2338//   The operation failed because there was nothing to do or the operation wasn't
2339//   possible. For example, you might have submitted an AssociateAdminAccount
2340//   request for an account ID that was already set as the AWS Firewall Manager
2341//   administrator. Or you might have tried to access a Region that's disabled
2342//   by default, and that you need to enable for the Firewall Manager administrator
2343//   account and for AWS Organizations before you can access it.
2344//
2345//   * InvalidInputException
2346//   The parameters of the request were invalid.
2347//
2348//   * LimitExceededException
2349//   The operation exceeds a resource limit, for example, the maximum number of
2350//   policy objects that you can create for an AWS account. For more information,
2351//   see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
2352//   in the AWS WAF Developer Guide.
2353//
2354//   * InternalErrorException
2355//   The operation failed because of a system problem, even though the request
2356//   was valid. Retry your request.
2357//
2358//   * InvalidTypeException
2359//   The value of the Type parameter is invalid.
2360//
2361// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutPolicy
2362func (c *FMS) PutPolicy(input *PutPolicyInput) (*PutPolicyOutput, error) {
2363	req, out := c.PutPolicyRequest(input)
2364	return out, req.Send()
2365}
2366
2367// PutPolicyWithContext is the same as PutPolicy with the addition of
2368// the ability to pass a context and additional request options.
2369//
2370// See PutPolicy for details on how to use this API operation.
2371//
2372// The context must be non-nil and will be used for request cancellation. If
2373// the context is nil a panic will occur. In the future the SDK may create
2374// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2375// for more information on using Contexts.
2376func (c *FMS) PutPolicyWithContext(ctx aws.Context, input *PutPolicyInput, opts ...request.Option) (*PutPolicyOutput, error) {
2377	req, out := c.PutPolicyRequest(input)
2378	req.SetContext(ctx)
2379	req.ApplyOptions(opts...)
2380	return out, req.Send()
2381}
2382
2383const opPutProtocolsList = "PutProtocolsList"
2384
2385// PutProtocolsListRequest generates a "aws/request.Request" representing the
2386// client's request for the PutProtocolsList operation. The "output" return
2387// value will be populated with the request's response once the request completes
2388// successfully.
2389//
2390// Use "Send" method on the returned Request to send the API call to the service.
2391// the "output" return value is not valid until after Send returns without error.
2392//
2393// See PutProtocolsList for more information on using the PutProtocolsList
2394// API call, and error handling.
2395//
2396// This method is useful when you want to inject custom logic or configuration
2397// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2398//
2399//
2400//    // Example sending a request using the PutProtocolsListRequest method.
2401//    req, resp := client.PutProtocolsListRequest(params)
2402//
2403//    err := req.Send()
2404//    if err == nil { // resp is now filled
2405//        fmt.Println(resp)
2406//    }
2407//
2408// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutProtocolsList
2409func (c *FMS) PutProtocolsListRequest(input *PutProtocolsListInput) (req *request.Request, output *PutProtocolsListOutput) {
2410	op := &request.Operation{
2411		Name:       opPutProtocolsList,
2412		HTTPMethod: "POST",
2413		HTTPPath:   "/",
2414	}
2415
2416	if input == nil {
2417		input = &PutProtocolsListInput{}
2418	}
2419
2420	output = &PutProtocolsListOutput{}
2421	req = c.newRequest(op, input, output)
2422	return
2423}
2424
2425// PutProtocolsList API operation for Firewall Management Service.
2426//
2427// Creates an AWS Firewall Manager protocols list.
2428//
2429// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2430// with awserr.Error's Code and Message methods to get detailed information about
2431// the error.
2432//
2433// See the AWS API reference guide for Firewall Management Service's
2434// API operation PutProtocolsList for usage and error information.
2435//
2436// Returned Error Types:
2437//   * ResourceNotFoundException
2438//   The specified resource was not found.
2439//
2440//   * InvalidOperationException
2441//   The operation failed because there was nothing to do or the operation wasn't
2442//   possible. For example, you might have submitted an AssociateAdminAccount
2443//   request for an account ID that was already set as the AWS Firewall Manager
2444//   administrator. Or you might have tried to access a Region that's disabled
2445//   by default, and that you need to enable for the Firewall Manager administrator
2446//   account and for AWS Organizations before you can access it.
2447//
2448//   * InvalidInputException
2449//   The parameters of the request were invalid.
2450//
2451//   * LimitExceededException
2452//   The operation exceeds a resource limit, for example, the maximum number of
2453//   policy objects that you can create for an AWS account. For more information,
2454//   see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
2455//   in the AWS WAF Developer Guide.
2456//
2457//   * InternalErrorException
2458//   The operation failed because of a system problem, even though the request
2459//   was valid. Retry your request.
2460//
2461// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutProtocolsList
2462func (c *FMS) PutProtocolsList(input *PutProtocolsListInput) (*PutProtocolsListOutput, error) {
2463	req, out := c.PutProtocolsListRequest(input)
2464	return out, req.Send()
2465}
2466
2467// PutProtocolsListWithContext is the same as PutProtocolsList with the addition of
2468// the ability to pass a context and additional request options.
2469//
2470// See PutProtocolsList for details on how to use this API operation.
2471//
2472// The context must be non-nil and will be used for request cancellation. If
2473// the context is nil a panic will occur. In the future the SDK may create
2474// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2475// for more information on using Contexts.
2476func (c *FMS) PutProtocolsListWithContext(ctx aws.Context, input *PutProtocolsListInput, opts ...request.Option) (*PutProtocolsListOutput, error) {
2477	req, out := c.PutProtocolsListRequest(input)
2478	req.SetContext(ctx)
2479	req.ApplyOptions(opts...)
2480	return out, req.Send()
2481}
2482
2483const opTagResource = "TagResource"
2484
2485// TagResourceRequest generates a "aws/request.Request" representing the
2486// client's request for the TagResource operation. The "output" return
2487// value will be populated with the request's response once the request completes
2488// successfully.
2489//
2490// Use "Send" method on the returned Request to send the API call to the service.
2491// the "output" return value is not valid until after Send returns without error.
2492//
2493// See TagResource for more information on using the TagResource
2494// API call, and error handling.
2495//
2496// This method is useful when you want to inject custom logic or configuration
2497// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2498//
2499//
2500//    // Example sending a request using the TagResourceRequest method.
2501//    req, resp := client.TagResourceRequest(params)
2502//
2503//    err := req.Send()
2504//    if err == nil { // resp is now filled
2505//        fmt.Println(resp)
2506//    }
2507//
2508// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/TagResource
2509func (c *FMS) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
2510	op := &request.Operation{
2511		Name:       opTagResource,
2512		HTTPMethod: "POST",
2513		HTTPPath:   "/",
2514	}
2515
2516	if input == nil {
2517		input = &TagResourceInput{}
2518	}
2519
2520	output = &TagResourceOutput{}
2521	req = c.newRequest(op, input, output)
2522	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2523	return
2524}
2525
2526// TagResource API operation for Firewall Management Service.
2527//
2528// Adds one or more tags to an AWS resource.
2529//
2530// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2531// with awserr.Error's Code and Message methods to get detailed information about
2532// the error.
2533//
2534// See the AWS API reference guide for Firewall Management Service's
2535// API operation TagResource for usage and error information.
2536//
2537// Returned Error Types:
2538//   * ResourceNotFoundException
2539//   The specified resource was not found.
2540//
2541//   * InvalidOperationException
2542//   The operation failed because there was nothing to do or the operation wasn't
2543//   possible. For example, you might have submitted an AssociateAdminAccount
2544//   request for an account ID that was already set as the AWS Firewall Manager
2545//   administrator. Or you might have tried to access a Region that's disabled
2546//   by default, and that you need to enable for the Firewall Manager administrator
2547//   account and for AWS Organizations before you can access it.
2548//
2549//   * InternalErrorException
2550//   The operation failed because of a system problem, even though the request
2551//   was valid. Retry your request.
2552//
2553//   * InvalidInputException
2554//   The parameters of the request were invalid.
2555//
2556//   * LimitExceededException
2557//   The operation exceeds a resource limit, for example, the maximum number of
2558//   policy objects that you can create for an AWS account. For more information,
2559//   see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
2560//   in the AWS WAF Developer Guide.
2561//
2562// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/TagResource
2563func (c *FMS) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
2564	req, out := c.TagResourceRequest(input)
2565	return out, req.Send()
2566}
2567
2568// TagResourceWithContext is the same as TagResource with the addition of
2569// the ability to pass a context and additional request options.
2570//
2571// See TagResource for details on how to use this API operation.
2572//
2573// The context must be non-nil and will be used for request cancellation. If
2574// the context is nil a panic will occur. In the future the SDK may create
2575// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2576// for more information on using Contexts.
2577func (c *FMS) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
2578	req, out := c.TagResourceRequest(input)
2579	req.SetContext(ctx)
2580	req.ApplyOptions(opts...)
2581	return out, req.Send()
2582}
2583
2584const opUntagResource = "UntagResource"
2585
2586// UntagResourceRequest generates a "aws/request.Request" representing the
2587// client's request for the UntagResource operation. The "output" return
2588// value will be populated with the request's response once the request completes
2589// successfully.
2590//
2591// Use "Send" method on the returned Request to send the API call to the service.
2592// the "output" return value is not valid until after Send returns without error.
2593//
2594// See UntagResource for more information on using the UntagResource
2595// API call, and error handling.
2596//
2597// This method is useful when you want to inject custom logic or configuration
2598// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2599//
2600//
2601//    // Example sending a request using the UntagResourceRequest method.
2602//    req, resp := client.UntagResourceRequest(params)
2603//
2604//    err := req.Send()
2605//    if err == nil { // resp is now filled
2606//        fmt.Println(resp)
2607//    }
2608//
2609// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/UntagResource
2610func (c *FMS) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
2611	op := &request.Operation{
2612		Name:       opUntagResource,
2613		HTTPMethod: "POST",
2614		HTTPPath:   "/",
2615	}
2616
2617	if input == nil {
2618		input = &UntagResourceInput{}
2619	}
2620
2621	output = &UntagResourceOutput{}
2622	req = c.newRequest(op, input, output)
2623	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2624	return
2625}
2626
2627// UntagResource API operation for Firewall Management Service.
2628//
2629// Removes one or more tags from an AWS resource.
2630//
2631// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2632// with awserr.Error's Code and Message methods to get detailed information about
2633// the error.
2634//
2635// See the AWS API reference guide for Firewall Management Service's
2636// API operation UntagResource for usage and error information.
2637//
2638// Returned Error Types:
2639//   * ResourceNotFoundException
2640//   The specified resource was not found.
2641//
2642//   * InvalidOperationException
2643//   The operation failed because there was nothing to do or the operation wasn't
2644//   possible. For example, you might have submitted an AssociateAdminAccount
2645//   request for an account ID that was already set as the AWS Firewall Manager
2646//   administrator. Or you might have tried to access a Region that's disabled
2647//   by default, and that you need to enable for the Firewall Manager administrator
2648//   account and for AWS Organizations before you can access it.
2649//
2650//   * InternalErrorException
2651//   The operation failed because of a system problem, even though the request
2652//   was valid. Retry your request.
2653//
2654//   * InvalidInputException
2655//   The parameters of the request were invalid.
2656//
2657// See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/UntagResource
2658func (c *FMS) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
2659	req, out := c.UntagResourceRequest(input)
2660	return out, req.Send()
2661}
2662
2663// UntagResourceWithContext is the same as UntagResource with the addition of
2664// the ability to pass a context and additional request options.
2665//
2666// See UntagResource for details on how to use this API operation.
2667//
2668// The context must be non-nil and will be used for request cancellation. If
2669// the context is nil a panic will occur. In the future the SDK may create
2670// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2671// for more information on using Contexts.
2672func (c *FMS) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
2673	req, out := c.UntagResourceRequest(input)
2674	req.SetContext(ctx)
2675	req.ApplyOptions(opts...)
2676	return out, req.Send()
2677}
2678
2679// An individual AWS Firewall Manager application.
2680type App struct {
2681	_ struct{} `type:"structure"`
2682
2683	// The application's name.
2684	//
2685	// AppName is a required field
2686	AppName *string `min:"1" type:"string" required:"true"`
2687
2688	// The application's port number, for example 80.
2689	//
2690	// Port is a required field
2691	Port *int64 `type:"long" required:"true"`
2692
2693	// The IP protocol name or number. The name can be one of tcp, udp, or icmp.
2694	// For information on possible numbers, see Protocol Numbers (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml).
2695	//
2696	// Protocol is a required field
2697	Protocol *string `min:"1" type:"string" required:"true"`
2698}
2699
2700// String returns the string representation
2701func (s App) String() string {
2702	return awsutil.Prettify(s)
2703}
2704
2705// GoString returns the string representation
2706func (s App) GoString() string {
2707	return s.String()
2708}
2709
2710// Validate inspects the fields of the type to determine if they are valid.
2711func (s *App) Validate() error {
2712	invalidParams := request.ErrInvalidParams{Context: "App"}
2713	if s.AppName == nil {
2714		invalidParams.Add(request.NewErrParamRequired("AppName"))
2715	}
2716	if s.AppName != nil && len(*s.AppName) < 1 {
2717		invalidParams.Add(request.NewErrParamMinLen("AppName", 1))
2718	}
2719	if s.Port == nil {
2720		invalidParams.Add(request.NewErrParamRequired("Port"))
2721	}
2722	if s.Protocol == nil {
2723		invalidParams.Add(request.NewErrParamRequired("Protocol"))
2724	}
2725	if s.Protocol != nil && len(*s.Protocol) < 1 {
2726		invalidParams.Add(request.NewErrParamMinLen("Protocol", 1))
2727	}
2728
2729	if invalidParams.Len() > 0 {
2730		return invalidParams
2731	}
2732	return nil
2733}
2734
2735// SetAppName sets the AppName field's value.
2736func (s *App) SetAppName(v string) *App {
2737	s.AppName = &v
2738	return s
2739}
2740
2741// SetPort sets the Port field's value.
2742func (s *App) SetPort(v int64) *App {
2743	s.Port = &v
2744	return s
2745}
2746
2747// SetProtocol sets the Protocol field's value.
2748func (s *App) SetProtocol(v string) *App {
2749	s.Protocol = &v
2750	return s
2751}
2752
2753// An AWS Firewall Manager applications list.
2754type AppsListData struct {
2755	_ struct{} `type:"structure"`
2756
2757	// An array of applications in the AWS Firewall Manager applications list.
2758	//
2759	// AppsList is a required field
2760	AppsList []*App `type:"list" required:"true"`
2761
2762	// The time that the AWS Firewall Manager applications list was created.
2763	CreateTime *time.Time `type:"timestamp"`
2764
2765	// The time that the AWS Firewall Manager applications list was last updated.
2766	LastUpdateTime *time.Time `type:"timestamp"`
2767
2768	// The ID of the AWS Firewall Manager applications list.
2769	ListId *string `min:"36" type:"string"`
2770
2771	// The name of the AWS Firewall Manager applications list.
2772	//
2773	// ListName is a required field
2774	ListName *string `min:"1" type:"string" required:"true"`
2775
2776	// A unique identifier for each update to the list. When you update the list,
2777	// the update token must match the token of the current version of the application
2778	// list. You can retrieve the update token by getting the list.
2779	ListUpdateToken *string `min:"1" type:"string"`
2780
2781	// A map of previous version numbers to their corresponding App object arrays.
2782	PreviousAppsList map[string][]*App `type:"map"`
2783}
2784
2785// String returns the string representation
2786func (s AppsListData) String() string {
2787	return awsutil.Prettify(s)
2788}
2789
2790// GoString returns the string representation
2791func (s AppsListData) GoString() string {
2792	return s.String()
2793}
2794
2795// Validate inspects the fields of the type to determine if they are valid.
2796func (s *AppsListData) Validate() error {
2797	invalidParams := request.ErrInvalidParams{Context: "AppsListData"}
2798	if s.AppsList == nil {
2799		invalidParams.Add(request.NewErrParamRequired("AppsList"))
2800	}
2801	if s.ListId != nil && len(*s.ListId) < 36 {
2802		invalidParams.Add(request.NewErrParamMinLen("ListId", 36))
2803	}
2804	if s.ListName == nil {
2805		invalidParams.Add(request.NewErrParamRequired("ListName"))
2806	}
2807	if s.ListName != nil && len(*s.ListName) < 1 {
2808		invalidParams.Add(request.NewErrParamMinLen("ListName", 1))
2809	}
2810	if s.ListUpdateToken != nil && len(*s.ListUpdateToken) < 1 {
2811		invalidParams.Add(request.NewErrParamMinLen("ListUpdateToken", 1))
2812	}
2813	if s.AppsList != nil {
2814		for i, v := range s.AppsList {
2815			if v == nil {
2816				continue
2817			}
2818			if err := v.Validate(); err != nil {
2819				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AppsList", i), err.(request.ErrInvalidParams))
2820			}
2821		}
2822	}
2823
2824	if invalidParams.Len() > 0 {
2825		return invalidParams
2826	}
2827	return nil
2828}
2829
2830// SetAppsList sets the AppsList field's value.
2831func (s *AppsListData) SetAppsList(v []*App) *AppsListData {
2832	s.AppsList = v
2833	return s
2834}
2835
2836// SetCreateTime sets the CreateTime field's value.
2837func (s *AppsListData) SetCreateTime(v time.Time) *AppsListData {
2838	s.CreateTime = &v
2839	return s
2840}
2841
2842// SetLastUpdateTime sets the LastUpdateTime field's value.
2843func (s *AppsListData) SetLastUpdateTime(v time.Time) *AppsListData {
2844	s.LastUpdateTime = &v
2845	return s
2846}
2847
2848// SetListId sets the ListId field's value.
2849func (s *AppsListData) SetListId(v string) *AppsListData {
2850	s.ListId = &v
2851	return s
2852}
2853
2854// SetListName sets the ListName field's value.
2855func (s *AppsListData) SetListName(v string) *AppsListData {
2856	s.ListName = &v
2857	return s
2858}
2859
2860// SetListUpdateToken sets the ListUpdateToken field's value.
2861func (s *AppsListData) SetListUpdateToken(v string) *AppsListData {
2862	s.ListUpdateToken = &v
2863	return s
2864}
2865
2866// SetPreviousAppsList sets the PreviousAppsList field's value.
2867func (s *AppsListData) SetPreviousAppsList(v map[string][]*App) *AppsListData {
2868	s.PreviousAppsList = v
2869	return s
2870}
2871
2872// Details of the AWS Firewall Manager applications list.
2873type AppsListDataSummary struct {
2874	_ struct{} `type:"structure"`
2875
2876	// An array of App objects in the AWS Firewall Manager applications list.
2877	AppsList []*App `type:"list"`
2878
2879	// The Amazon Resource Name (ARN) of the applications list.
2880	ListArn *string `min:"1" type:"string"`
2881
2882	// The ID of the applications list.
2883	ListId *string `min:"36" type:"string"`
2884
2885	// The name of the applications list.
2886	ListName *string `min:"1" type:"string"`
2887}
2888
2889// String returns the string representation
2890func (s AppsListDataSummary) String() string {
2891	return awsutil.Prettify(s)
2892}
2893
2894// GoString returns the string representation
2895func (s AppsListDataSummary) GoString() string {
2896	return s.String()
2897}
2898
2899// SetAppsList sets the AppsList field's value.
2900func (s *AppsListDataSummary) SetAppsList(v []*App) *AppsListDataSummary {
2901	s.AppsList = v
2902	return s
2903}
2904
2905// SetListArn sets the ListArn field's value.
2906func (s *AppsListDataSummary) SetListArn(v string) *AppsListDataSummary {
2907	s.ListArn = &v
2908	return s
2909}
2910
2911// SetListId sets the ListId field's value.
2912func (s *AppsListDataSummary) SetListId(v string) *AppsListDataSummary {
2913	s.ListId = &v
2914	return s
2915}
2916
2917// SetListName sets the ListName field's value.
2918func (s *AppsListDataSummary) SetListName(v string) *AppsListDataSummary {
2919	s.ListName = &v
2920	return s
2921}
2922
2923type AssociateAdminAccountInput struct {
2924	_ struct{} `type:"structure"`
2925
2926	// The AWS account ID to associate with AWS Firewall Manager as the AWS Firewall
2927	// Manager administrator account. This can be an AWS Organizations master account
2928	// or a member account. For more information about AWS Organizations and master
2929	// accounts, see Managing the AWS Accounts in Your Organization (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts.html).
2930	//
2931	// AdminAccount is a required field
2932	AdminAccount *string `min:"1" type:"string" required:"true"`
2933}
2934
2935// String returns the string representation
2936func (s AssociateAdminAccountInput) String() string {
2937	return awsutil.Prettify(s)
2938}
2939
2940// GoString returns the string representation
2941func (s AssociateAdminAccountInput) GoString() string {
2942	return s.String()
2943}
2944
2945// Validate inspects the fields of the type to determine if they are valid.
2946func (s *AssociateAdminAccountInput) Validate() error {
2947	invalidParams := request.ErrInvalidParams{Context: "AssociateAdminAccountInput"}
2948	if s.AdminAccount == nil {
2949		invalidParams.Add(request.NewErrParamRequired("AdminAccount"))
2950	}
2951	if s.AdminAccount != nil && len(*s.AdminAccount) < 1 {
2952		invalidParams.Add(request.NewErrParamMinLen("AdminAccount", 1))
2953	}
2954
2955	if invalidParams.Len() > 0 {
2956		return invalidParams
2957	}
2958	return nil
2959}
2960
2961// SetAdminAccount sets the AdminAccount field's value.
2962func (s *AssociateAdminAccountInput) SetAdminAccount(v string) *AssociateAdminAccountInput {
2963	s.AdminAccount = &v
2964	return s
2965}
2966
2967type AssociateAdminAccountOutput struct {
2968	_ struct{} `type:"structure"`
2969}
2970
2971// String returns the string representation
2972func (s AssociateAdminAccountOutput) String() string {
2973	return awsutil.Prettify(s)
2974}
2975
2976// GoString returns the string representation
2977func (s AssociateAdminAccountOutput) GoString() string {
2978	return s.String()
2979}
2980
2981// Violations for an EC2 instance resource.
2982type AwsEc2InstanceViolation struct {
2983	_ struct{} `type:"structure"`
2984
2985	// Violations for network interfaces associated with the EC2 instance.
2986	AwsEc2NetworkInterfaceViolations []*AwsEc2NetworkInterfaceViolation `type:"list"`
2987
2988	// The resource ID of the EC2 instance.
2989	ViolationTarget *string `type:"string"`
2990}
2991
2992// String returns the string representation
2993func (s AwsEc2InstanceViolation) String() string {
2994	return awsutil.Prettify(s)
2995}
2996
2997// GoString returns the string representation
2998func (s AwsEc2InstanceViolation) GoString() string {
2999	return s.String()
3000}
3001
3002// SetAwsEc2NetworkInterfaceViolations sets the AwsEc2NetworkInterfaceViolations field's value.
3003func (s *AwsEc2InstanceViolation) SetAwsEc2NetworkInterfaceViolations(v []*AwsEc2NetworkInterfaceViolation) *AwsEc2InstanceViolation {
3004	s.AwsEc2NetworkInterfaceViolations = v
3005	return s
3006}
3007
3008// SetViolationTarget sets the ViolationTarget field's value.
3009func (s *AwsEc2InstanceViolation) SetViolationTarget(v string) *AwsEc2InstanceViolation {
3010	s.ViolationTarget = &v
3011	return s
3012}
3013
3014// Violations for network interfaces associated with an EC2 instance.
3015type AwsEc2NetworkInterfaceViolation struct {
3016	_ struct{} `type:"structure"`
3017
3018	// List of security groups that violate the rules specified in the master security
3019	// group of the AWS Firewall Manager policy.
3020	ViolatingSecurityGroups []*string `type:"list"`
3021
3022	// The resource ID of the network interface.
3023	ViolationTarget *string `type:"string"`
3024}
3025
3026// String returns the string representation
3027func (s AwsEc2NetworkInterfaceViolation) String() string {
3028	return awsutil.Prettify(s)
3029}
3030
3031// GoString returns the string representation
3032func (s AwsEc2NetworkInterfaceViolation) GoString() string {
3033	return s.String()
3034}
3035
3036// SetViolatingSecurityGroups sets the ViolatingSecurityGroups field's value.
3037func (s *AwsEc2NetworkInterfaceViolation) SetViolatingSecurityGroups(v []*string) *AwsEc2NetworkInterfaceViolation {
3038	s.ViolatingSecurityGroups = v
3039	return s
3040}
3041
3042// SetViolationTarget sets the ViolationTarget field's value.
3043func (s *AwsEc2NetworkInterfaceViolation) SetViolationTarget(v string) *AwsEc2NetworkInterfaceViolation {
3044	s.ViolationTarget = &v
3045	return s
3046}
3047
3048// Details of the rule violation in a security group when compared to the master
3049// security group of the AWS Firewall Manager policy.
3050type AwsVPCSecurityGroupViolation struct {
3051	_ struct{} `type:"structure"`
3052
3053	// List of rules specified in the security group of the AWS Firewall Manager
3054	// policy that partially match the ViolationTarget rule.
3055	PartialMatches []*PartialMatch `type:"list"`
3056
3057	// Remediation options for the rule specified in the ViolationTarget.
3058	PossibleSecurityGroupRemediationActions []*SecurityGroupRemediationAction `type:"list"`
3059
3060	// The security group rule that is being evaluated.
3061	ViolationTarget *string `type:"string"`
3062
3063	// A description of the security group that violates the policy.
3064	ViolationTargetDescription *string `type:"string"`
3065}
3066
3067// String returns the string representation
3068func (s AwsVPCSecurityGroupViolation) String() string {
3069	return awsutil.Prettify(s)
3070}
3071
3072// GoString returns the string representation
3073func (s AwsVPCSecurityGroupViolation) GoString() string {
3074	return s.String()
3075}
3076
3077// SetPartialMatches sets the PartialMatches field's value.
3078func (s *AwsVPCSecurityGroupViolation) SetPartialMatches(v []*PartialMatch) *AwsVPCSecurityGroupViolation {
3079	s.PartialMatches = v
3080	return s
3081}
3082
3083// SetPossibleSecurityGroupRemediationActions sets the PossibleSecurityGroupRemediationActions field's value.
3084func (s *AwsVPCSecurityGroupViolation) SetPossibleSecurityGroupRemediationActions(v []*SecurityGroupRemediationAction) *AwsVPCSecurityGroupViolation {
3085	s.PossibleSecurityGroupRemediationActions = v
3086	return s
3087}
3088
3089// SetViolationTarget sets the ViolationTarget field's value.
3090func (s *AwsVPCSecurityGroupViolation) SetViolationTarget(v string) *AwsVPCSecurityGroupViolation {
3091	s.ViolationTarget = &v
3092	return s
3093}
3094
3095// SetViolationTargetDescription sets the ViolationTargetDescription field's value.
3096func (s *AwsVPCSecurityGroupViolation) SetViolationTargetDescription(v string) *AwsVPCSecurityGroupViolation {
3097	s.ViolationTargetDescription = &v
3098	return s
3099}
3100
3101// Details of the resource that is not protected by the policy.
3102type ComplianceViolator struct {
3103	_ struct{} `type:"structure"`
3104
3105	// The resource ID.
3106	ResourceId *string `min:"1" type:"string"`
3107
3108	// The resource type. This is in the format shown in the AWS Resource Types
3109	// Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html).
3110	// For example: AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::CloudFront::Distribution,
3111	// or AWS::NetworkFirewall::FirewallPolicy.
3112	ResourceType *string `min:"1" type:"string"`
3113
3114	// The reason that the resource is not protected by the policy.
3115	ViolationReason *string `type:"string" enum:"ViolationReason"`
3116}
3117
3118// String returns the string representation
3119func (s ComplianceViolator) String() string {
3120	return awsutil.Prettify(s)
3121}
3122
3123// GoString returns the string representation
3124func (s ComplianceViolator) GoString() string {
3125	return s.String()
3126}
3127
3128// SetResourceId sets the ResourceId field's value.
3129func (s *ComplianceViolator) SetResourceId(v string) *ComplianceViolator {
3130	s.ResourceId = &v
3131	return s
3132}
3133
3134// SetResourceType sets the ResourceType field's value.
3135func (s *ComplianceViolator) SetResourceType(v string) *ComplianceViolator {
3136	s.ResourceType = &v
3137	return s
3138}
3139
3140// SetViolationReason sets the ViolationReason field's value.
3141func (s *ComplianceViolator) SetViolationReason(v string) *ComplianceViolator {
3142	s.ViolationReason = &v
3143	return s
3144}
3145
3146type DeleteAppsListInput struct {
3147	_ struct{} `type:"structure"`
3148
3149	// The ID of the applications list that you want to delete. You can retrieve
3150	// this ID from PutAppsList, ListAppsLists, and GetAppsList.
3151	//
3152	// ListId is a required field
3153	ListId *string `min:"36" type:"string" required:"true"`
3154}
3155
3156// String returns the string representation
3157func (s DeleteAppsListInput) String() string {
3158	return awsutil.Prettify(s)
3159}
3160
3161// GoString returns the string representation
3162func (s DeleteAppsListInput) GoString() string {
3163	return s.String()
3164}
3165
3166// Validate inspects the fields of the type to determine if they are valid.
3167func (s *DeleteAppsListInput) Validate() error {
3168	invalidParams := request.ErrInvalidParams{Context: "DeleteAppsListInput"}
3169	if s.ListId == nil {
3170		invalidParams.Add(request.NewErrParamRequired("ListId"))
3171	}
3172	if s.ListId != nil && len(*s.ListId) < 36 {
3173		invalidParams.Add(request.NewErrParamMinLen("ListId", 36))
3174	}
3175
3176	if invalidParams.Len() > 0 {
3177		return invalidParams
3178	}
3179	return nil
3180}
3181
3182// SetListId sets the ListId field's value.
3183func (s *DeleteAppsListInput) SetListId(v string) *DeleteAppsListInput {
3184	s.ListId = &v
3185	return s
3186}
3187
3188type DeleteAppsListOutput struct {
3189	_ struct{} `type:"structure"`
3190}
3191
3192// String returns the string representation
3193func (s DeleteAppsListOutput) String() string {
3194	return awsutil.Prettify(s)
3195}
3196
3197// GoString returns the string representation
3198func (s DeleteAppsListOutput) GoString() string {
3199	return s.String()
3200}
3201
3202type DeleteNotificationChannelInput struct {
3203	_ struct{} `type:"structure"`
3204}
3205
3206// String returns the string representation
3207func (s DeleteNotificationChannelInput) String() string {
3208	return awsutil.Prettify(s)
3209}
3210
3211// GoString returns the string representation
3212func (s DeleteNotificationChannelInput) GoString() string {
3213	return s.String()
3214}
3215
3216type DeleteNotificationChannelOutput struct {
3217	_ struct{} `type:"structure"`
3218}
3219
3220// String returns the string representation
3221func (s DeleteNotificationChannelOutput) String() string {
3222	return awsutil.Prettify(s)
3223}
3224
3225// GoString returns the string representation
3226func (s DeleteNotificationChannelOutput) GoString() string {
3227	return s.String()
3228}
3229
3230type DeletePolicyInput struct {
3231	_ struct{} `type:"structure"`
3232
3233	// If True, the request performs cleanup according to the policy type.
3234	//
3235	// For AWS WAF and Shield Advanced policies, the cleanup does the following:
3236	//
3237	//    * Deletes rule groups created by AWS Firewall Manager
3238	//
3239	//    * Removes web ACLs from in-scope resources
3240	//
3241	//    * Deletes web ACLs that contain no rules or rule groups
3242	//
3243	// For security group policies, the cleanup does the following for each security
3244	// group in the policy:
3245	//
3246	//    * Disassociates the security group from in-scope resources
3247	//
3248	//    * Deletes the security group if it was created through Firewall Manager
3249	//    and if it's no longer associated with any resources through another policy
3250	//
3251	// After the cleanup, in-scope resources are no longer protected by web ACLs
3252	// in this policy. Protection of out-of-scope resources remains unchanged. Scope
3253	// is determined by tags that you create and accounts that you associate with
3254	// the policy. When creating the policy, if you specify that only resources
3255	// in specific accounts or with specific tags are in scope of the policy, those
3256	// accounts and resources are handled by the policy. All others are out of scope.
3257	// If you don't specify tags or accounts, all resources are in scope.
3258	DeleteAllPolicyResources *bool `type:"boolean"`
3259
3260	// The ID of the policy that you want to delete. You can retrieve this ID from
3261	// PutPolicy and ListPolicies.
3262	//
3263	// PolicyId is a required field
3264	PolicyId *string `min:"36" type:"string" required:"true"`
3265}
3266
3267// String returns the string representation
3268func (s DeletePolicyInput) String() string {
3269	return awsutil.Prettify(s)
3270}
3271
3272// GoString returns the string representation
3273func (s DeletePolicyInput) GoString() string {
3274	return s.String()
3275}
3276
3277// Validate inspects the fields of the type to determine if they are valid.
3278func (s *DeletePolicyInput) Validate() error {
3279	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyInput"}
3280	if s.PolicyId == nil {
3281		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
3282	}
3283	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
3284		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
3285	}
3286
3287	if invalidParams.Len() > 0 {
3288		return invalidParams
3289	}
3290	return nil
3291}
3292
3293// SetDeleteAllPolicyResources sets the DeleteAllPolicyResources field's value.
3294func (s *DeletePolicyInput) SetDeleteAllPolicyResources(v bool) *DeletePolicyInput {
3295	s.DeleteAllPolicyResources = &v
3296	return s
3297}
3298
3299// SetPolicyId sets the PolicyId field's value.
3300func (s *DeletePolicyInput) SetPolicyId(v string) *DeletePolicyInput {
3301	s.PolicyId = &v
3302	return s
3303}
3304
3305type DeletePolicyOutput struct {
3306	_ struct{} `type:"structure"`
3307}
3308
3309// String returns the string representation
3310func (s DeletePolicyOutput) String() string {
3311	return awsutil.Prettify(s)
3312}
3313
3314// GoString returns the string representation
3315func (s DeletePolicyOutput) GoString() string {
3316	return s.String()
3317}
3318
3319type DeleteProtocolsListInput struct {
3320	_ struct{} `type:"structure"`
3321
3322	// The ID of the protocols list that you want to delete. You can retrieve this
3323	// ID from PutProtocolsList, ListProtocolsLists, and GetProtocolsLost.
3324	//
3325	// ListId is a required field
3326	ListId *string `min:"36" type:"string" required:"true"`
3327}
3328
3329// String returns the string representation
3330func (s DeleteProtocolsListInput) String() string {
3331	return awsutil.Prettify(s)
3332}
3333
3334// GoString returns the string representation
3335func (s DeleteProtocolsListInput) GoString() string {
3336	return s.String()
3337}
3338
3339// Validate inspects the fields of the type to determine if they are valid.
3340func (s *DeleteProtocolsListInput) Validate() error {
3341	invalidParams := request.ErrInvalidParams{Context: "DeleteProtocolsListInput"}
3342	if s.ListId == nil {
3343		invalidParams.Add(request.NewErrParamRequired("ListId"))
3344	}
3345	if s.ListId != nil && len(*s.ListId) < 36 {
3346		invalidParams.Add(request.NewErrParamMinLen("ListId", 36))
3347	}
3348
3349	if invalidParams.Len() > 0 {
3350		return invalidParams
3351	}
3352	return nil
3353}
3354
3355// SetListId sets the ListId field's value.
3356func (s *DeleteProtocolsListInput) SetListId(v string) *DeleteProtocolsListInput {
3357	s.ListId = &v
3358	return s
3359}
3360
3361type DeleteProtocolsListOutput struct {
3362	_ struct{} `type:"structure"`
3363}
3364
3365// String returns the string representation
3366func (s DeleteProtocolsListOutput) String() string {
3367	return awsutil.Prettify(s)
3368}
3369
3370// GoString returns the string representation
3371func (s DeleteProtocolsListOutput) GoString() string {
3372	return s.String()
3373}
3374
3375type DisassociateAdminAccountInput struct {
3376	_ struct{} `type:"structure"`
3377}
3378
3379// String returns the string representation
3380func (s DisassociateAdminAccountInput) String() string {
3381	return awsutil.Prettify(s)
3382}
3383
3384// GoString returns the string representation
3385func (s DisassociateAdminAccountInput) GoString() string {
3386	return s.String()
3387}
3388
3389type DisassociateAdminAccountOutput struct {
3390	_ struct{} `type:"structure"`
3391}
3392
3393// String returns the string representation
3394func (s DisassociateAdminAccountOutput) String() string {
3395	return awsutil.Prettify(s)
3396}
3397
3398// GoString returns the string representation
3399func (s DisassociateAdminAccountOutput) GoString() string {
3400	return s.String()
3401}
3402
3403// Describes the compliance status for the account. An account is considered
3404// noncompliant if it includes resources that are not protected by the specified
3405// policy or that don't comply with the policy.
3406type EvaluationResult struct {
3407	_ struct{} `type:"structure"`
3408
3409	// Describes an AWS account's compliance with the AWS Firewall Manager policy.
3410	ComplianceStatus *string `type:"string" enum:"PolicyComplianceStatusType"`
3411
3412	// Indicates that over 100 resources are noncompliant with the AWS Firewall
3413	// Manager policy.
3414	EvaluationLimitExceeded *bool `type:"boolean"`
3415
3416	// The number of resources that are noncompliant with the specified policy.
3417	// For AWS WAF and Shield Advanced policies, a resource is considered noncompliant
3418	// if it is not associated with the policy. For security group policies, a resource
3419	// is considered noncompliant if it doesn't comply with the rules of the policy
3420	// and remediation is disabled or not possible.
3421	ViolatorCount *int64 `type:"long"`
3422}
3423
3424// String returns the string representation
3425func (s EvaluationResult) String() string {
3426	return awsutil.Prettify(s)
3427}
3428
3429// GoString returns the string representation
3430func (s EvaluationResult) GoString() string {
3431	return s.String()
3432}
3433
3434// SetComplianceStatus sets the ComplianceStatus field's value.
3435func (s *EvaluationResult) SetComplianceStatus(v string) *EvaluationResult {
3436	s.ComplianceStatus = &v
3437	return s
3438}
3439
3440// SetEvaluationLimitExceeded sets the EvaluationLimitExceeded field's value.
3441func (s *EvaluationResult) SetEvaluationLimitExceeded(v bool) *EvaluationResult {
3442	s.EvaluationLimitExceeded = &v
3443	return s
3444}
3445
3446// SetViolatorCount sets the ViolatorCount field's value.
3447func (s *EvaluationResult) SetViolatorCount(v int64) *EvaluationResult {
3448	s.ViolatorCount = &v
3449	return s
3450}
3451
3452type GetAdminAccountInput struct {
3453	_ struct{} `type:"structure"`
3454}
3455
3456// String returns the string representation
3457func (s GetAdminAccountInput) String() string {
3458	return awsutil.Prettify(s)
3459}
3460
3461// GoString returns the string representation
3462func (s GetAdminAccountInput) GoString() string {
3463	return s.String()
3464}
3465
3466type GetAdminAccountOutput struct {
3467	_ struct{} `type:"structure"`
3468
3469	// The AWS account that is set as the AWS Firewall Manager administrator.
3470	AdminAccount *string `min:"1" type:"string"`
3471
3472	// The status of the AWS account that you set as the AWS Firewall Manager administrator.
3473	RoleStatus *string `type:"string" enum:"AccountRoleStatus"`
3474}
3475
3476// String returns the string representation
3477func (s GetAdminAccountOutput) String() string {
3478	return awsutil.Prettify(s)
3479}
3480
3481// GoString returns the string representation
3482func (s GetAdminAccountOutput) GoString() string {
3483	return s.String()
3484}
3485
3486// SetAdminAccount sets the AdminAccount field's value.
3487func (s *GetAdminAccountOutput) SetAdminAccount(v string) *GetAdminAccountOutput {
3488	s.AdminAccount = &v
3489	return s
3490}
3491
3492// SetRoleStatus sets the RoleStatus field's value.
3493func (s *GetAdminAccountOutput) SetRoleStatus(v string) *GetAdminAccountOutput {
3494	s.RoleStatus = &v
3495	return s
3496}
3497
3498type GetAppsListInput struct {
3499	_ struct{} `type:"structure"`
3500
3501	// Specifies whether the list to retrieve is a default list owned by AWS Firewall
3502	// Manager.
3503	DefaultList *bool `type:"boolean"`
3504
3505	// The ID of the AWS Firewall Manager applications list that you want the details
3506	// for.
3507	//
3508	// ListId is a required field
3509	ListId *string `min:"36" type:"string" required:"true"`
3510}
3511
3512// String returns the string representation
3513func (s GetAppsListInput) String() string {
3514	return awsutil.Prettify(s)
3515}
3516
3517// GoString returns the string representation
3518func (s GetAppsListInput) GoString() string {
3519	return s.String()
3520}
3521
3522// Validate inspects the fields of the type to determine if they are valid.
3523func (s *GetAppsListInput) Validate() error {
3524	invalidParams := request.ErrInvalidParams{Context: "GetAppsListInput"}
3525	if s.ListId == nil {
3526		invalidParams.Add(request.NewErrParamRequired("ListId"))
3527	}
3528	if s.ListId != nil && len(*s.ListId) < 36 {
3529		invalidParams.Add(request.NewErrParamMinLen("ListId", 36))
3530	}
3531
3532	if invalidParams.Len() > 0 {
3533		return invalidParams
3534	}
3535	return nil
3536}
3537
3538// SetDefaultList sets the DefaultList field's value.
3539func (s *GetAppsListInput) SetDefaultList(v bool) *GetAppsListInput {
3540	s.DefaultList = &v
3541	return s
3542}
3543
3544// SetListId sets the ListId field's value.
3545func (s *GetAppsListInput) SetListId(v string) *GetAppsListInput {
3546	s.ListId = &v
3547	return s
3548}
3549
3550type GetAppsListOutput struct {
3551	_ struct{} `type:"structure"`
3552
3553	// Information about the specified AWS Firewall Manager applications list.
3554	AppsList *AppsListData `type:"structure"`
3555
3556	// The Amazon Resource Name (ARN) of the applications list.
3557	AppsListArn *string `min:"1" type:"string"`
3558}
3559
3560// String returns the string representation
3561func (s GetAppsListOutput) String() string {
3562	return awsutil.Prettify(s)
3563}
3564
3565// GoString returns the string representation
3566func (s GetAppsListOutput) GoString() string {
3567	return s.String()
3568}
3569
3570// SetAppsList sets the AppsList field's value.
3571func (s *GetAppsListOutput) SetAppsList(v *AppsListData) *GetAppsListOutput {
3572	s.AppsList = v
3573	return s
3574}
3575
3576// SetAppsListArn sets the AppsListArn field's value.
3577func (s *GetAppsListOutput) SetAppsListArn(v string) *GetAppsListOutput {
3578	s.AppsListArn = &v
3579	return s
3580}
3581
3582type GetComplianceDetailInput struct {
3583	_ struct{} `type:"structure"`
3584
3585	// The AWS account that owns the resources that you want to get the details
3586	// for.
3587	//
3588	// MemberAccount is a required field
3589	MemberAccount *string `min:"1" type:"string" required:"true"`
3590
3591	// The ID of the policy that you want to get the details for. PolicyId is returned
3592	// by PutPolicy and by ListPolicies.
3593	//
3594	// PolicyId is a required field
3595	PolicyId *string `min:"36" type:"string" required:"true"`
3596}
3597
3598// String returns the string representation
3599func (s GetComplianceDetailInput) String() string {
3600	return awsutil.Prettify(s)
3601}
3602
3603// GoString returns the string representation
3604func (s GetComplianceDetailInput) GoString() string {
3605	return s.String()
3606}
3607
3608// Validate inspects the fields of the type to determine if they are valid.
3609func (s *GetComplianceDetailInput) Validate() error {
3610	invalidParams := request.ErrInvalidParams{Context: "GetComplianceDetailInput"}
3611	if s.MemberAccount == nil {
3612		invalidParams.Add(request.NewErrParamRequired("MemberAccount"))
3613	}
3614	if s.MemberAccount != nil && len(*s.MemberAccount) < 1 {
3615		invalidParams.Add(request.NewErrParamMinLen("MemberAccount", 1))
3616	}
3617	if s.PolicyId == nil {
3618		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
3619	}
3620	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
3621		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
3622	}
3623
3624	if invalidParams.Len() > 0 {
3625		return invalidParams
3626	}
3627	return nil
3628}
3629
3630// SetMemberAccount sets the MemberAccount field's value.
3631func (s *GetComplianceDetailInput) SetMemberAccount(v string) *GetComplianceDetailInput {
3632	s.MemberAccount = &v
3633	return s
3634}
3635
3636// SetPolicyId sets the PolicyId field's value.
3637func (s *GetComplianceDetailInput) SetPolicyId(v string) *GetComplianceDetailInput {
3638	s.PolicyId = &v
3639	return s
3640}
3641
3642type GetComplianceDetailOutput struct {
3643	_ struct{} `type:"structure"`
3644
3645	// Information about the resources and the policy that you specified in the
3646	// GetComplianceDetail request.
3647	PolicyComplianceDetail *PolicyComplianceDetail `type:"structure"`
3648}
3649
3650// String returns the string representation
3651func (s GetComplianceDetailOutput) String() string {
3652	return awsutil.Prettify(s)
3653}
3654
3655// GoString returns the string representation
3656func (s GetComplianceDetailOutput) GoString() string {
3657	return s.String()
3658}
3659
3660// SetPolicyComplianceDetail sets the PolicyComplianceDetail field's value.
3661func (s *GetComplianceDetailOutput) SetPolicyComplianceDetail(v *PolicyComplianceDetail) *GetComplianceDetailOutput {
3662	s.PolicyComplianceDetail = v
3663	return s
3664}
3665
3666type GetNotificationChannelInput struct {
3667	_ struct{} `type:"structure"`
3668}
3669
3670// String returns the string representation
3671func (s GetNotificationChannelInput) String() string {
3672	return awsutil.Prettify(s)
3673}
3674
3675// GoString returns the string representation
3676func (s GetNotificationChannelInput) GoString() string {
3677	return s.String()
3678}
3679
3680type GetNotificationChannelOutput struct {
3681	_ struct{} `type:"structure"`
3682
3683	// The IAM role that is used by AWS Firewall Manager to record activity to SNS.
3684	SnsRoleName *string `min:"1" type:"string"`
3685
3686	// The SNS topic that records AWS Firewall Manager activity.
3687	SnsTopicArn *string `min:"1" type:"string"`
3688}
3689
3690// String returns the string representation
3691func (s GetNotificationChannelOutput) String() string {
3692	return awsutil.Prettify(s)
3693}
3694
3695// GoString returns the string representation
3696func (s GetNotificationChannelOutput) GoString() string {
3697	return s.String()
3698}
3699
3700// SetSnsRoleName sets the SnsRoleName field's value.
3701func (s *GetNotificationChannelOutput) SetSnsRoleName(v string) *GetNotificationChannelOutput {
3702	s.SnsRoleName = &v
3703	return s
3704}
3705
3706// SetSnsTopicArn sets the SnsTopicArn field's value.
3707func (s *GetNotificationChannelOutput) SetSnsTopicArn(v string) *GetNotificationChannelOutput {
3708	s.SnsTopicArn = &v
3709	return s
3710}
3711
3712type GetPolicyInput struct {
3713	_ struct{} `type:"structure"`
3714
3715	// The ID of the AWS Firewall Manager policy that you want the details for.
3716	//
3717	// PolicyId is a required field
3718	PolicyId *string `min:"36" type:"string" required:"true"`
3719}
3720
3721// String returns the string representation
3722func (s GetPolicyInput) String() string {
3723	return awsutil.Prettify(s)
3724}
3725
3726// GoString returns the string representation
3727func (s GetPolicyInput) GoString() string {
3728	return s.String()
3729}
3730
3731// Validate inspects the fields of the type to determine if they are valid.
3732func (s *GetPolicyInput) Validate() error {
3733	invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"}
3734	if s.PolicyId == nil {
3735		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
3736	}
3737	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
3738		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
3739	}
3740
3741	if invalidParams.Len() > 0 {
3742		return invalidParams
3743	}
3744	return nil
3745}
3746
3747// SetPolicyId sets the PolicyId field's value.
3748func (s *GetPolicyInput) SetPolicyId(v string) *GetPolicyInput {
3749	s.PolicyId = &v
3750	return s
3751}
3752
3753type GetPolicyOutput struct {
3754	_ struct{} `type:"structure"`
3755
3756	// Information about the specified AWS Firewall Manager policy.
3757	Policy *Policy `type:"structure"`
3758
3759	// The Amazon Resource Name (ARN) of the specified policy.
3760	PolicyArn *string `min:"1" type:"string"`
3761}
3762
3763// String returns the string representation
3764func (s GetPolicyOutput) String() string {
3765	return awsutil.Prettify(s)
3766}
3767
3768// GoString returns the string representation
3769func (s GetPolicyOutput) GoString() string {
3770	return s.String()
3771}
3772
3773// SetPolicy sets the Policy field's value.
3774func (s *GetPolicyOutput) SetPolicy(v *Policy) *GetPolicyOutput {
3775	s.Policy = v
3776	return s
3777}
3778
3779// SetPolicyArn sets the PolicyArn field's value.
3780func (s *GetPolicyOutput) SetPolicyArn(v string) *GetPolicyOutput {
3781	s.PolicyArn = &v
3782	return s
3783}
3784
3785type GetProtectionStatusInput struct {
3786	_ struct{} `type:"structure"`
3787
3788	// The end of the time period to query for the attacks. This is a timestamp
3789	// type. The request syntax listing indicates a number type because the default
3790	// used by AWS Firewall Manager is Unix time in seconds. However, any valid
3791	// timestamp format is allowed.
3792	EndTime *time.Time `type:"timestamp"`
3793
3794	// Specifies the number of objects that you want AWS Firewall Manager to return
3795	// for this request. If you have more objects than the number that you specify
3796	// for MaxResults, the response includes a NextToken value that you can use
3797	// to get another batch of objects.
3798	MaxResults *int64 `min:"1" type:"integer"`
3799
3800	// The AWS account that is in scope of the policy that you want to get the details
3801	// for.
3802	MemberAccountId *string `min:"1" type:"string"`
3803
3804	// If you specify a value for MaxResults and you have more objects than the
3805	// number that you specify for MaxResults, AWS Firewall Manager returns a NextToken
3806	// value in the response, which you can use to retrieve another group of objects.
3807	// For the second and subsequent GetProtectionStatus requests, specify the value
3808	// of NextToken from the previous response to get information about another
3809	// batch of objects.
3810	NextToken *string `min:"1" type:"string"`
3811
3812	// The ID of the policy for which you want to get the attack information.
3813	//
3814	// PolicyId is a required field
3815	PolicyId *string `min:"36" type:"string" required:"true"`
3816
3817	// The start of the time period to query for the attacks. This is a timestamp
3818	// type. The request syntax listing indicates a number type because the default
3819	// used by AWS Firewall Manager is Unix time in seconds. However, any valid
3820	// timestamp format is allowed.
3821	StartTime *time.Time `type:"timestamp"`
3822}
3823
3824// String returns the string representation
3825func (s GetProtectionStatusInput) String() string {
3826	return awsutil.Prettify(s)
3827}
3828
3829// GoString returns the string representation
3830func (s GetProtectionStatusInput) GoString() string {
3831	return s.String()
3832}
3833
3834// Validate inspects the fields of the type to determine if they are valid.
3835func (s *GetProtectionStatusInput) Validate() error {
3836	invalidParams := request.ErrInvalidParams{Context: "GetProtectionStatusInput"}
3837	if s.MaxResults != nil && *s.MaxResults < 1 {
3838		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3839	}
3840	if s.MemberAccountId != nil && len(*s.MemberAccountId) < 1 {
3841		invalidParams.Add(request.NewErrParamMinLen("MemberAccountId", 1))
3842	}
3843	if s.NextToken != nil && len(*s.NextToken) < 1 {
3844		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3845	}
3846	if s.PolicyId == nil {
3847		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
3848	}
3849	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
3850		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
3851	}
3852
3853	if invalidParams.Len() > 0 {
3854		return invalidParams
3855	}
3856	return nil
3857}
3858
3859// SetEndTime sets the EndTime field's value.
3860func (s *GetProtectionStatusInput) SetEndTime(v time.Time) *GetProtectionStatusInput {
3861	s.EndTime = &v
3862	return s
3863}
3864
3865// SetMaxResults sets the MaxResults field's value.
3866func (s *GetProtectionStatusInput) SetMaxResults(v int64) *GetProtectionStatusInput {
3867	s.MaxResults = &v
3868	return s
3869}
3870
3871// SetMemberAccountId sets the MemberAccountId field's value.
3872func (s *GetProtectionStatusInput) SetMemberAccountId(v string) *GetProtectionStatusInput {
3873	s.MemberAccountId = &v
3874	return s
3875}
3876
3877// SetNextToken sets the NextToken field's value.
3878func (s *GetProtectionStatusInput) SetNextToken(v string) *GetProtectionStatusInput {
3879	s.NextToken = &v
3880	return s
3881}
3882
3883// SetPolicyId sets the PolicyId field's value.
3884func (s *GetProtectionStatusInput) SetPolicyId(v string) *GetProtectionStatusInput {
3885	s.PolicyId = &v
3886	return s
3887}
3888
3889// SetStartTime sets the StartTime field's value.
3890func (s *GetProtectionStatusInput) SetStartTime(v time.Time) *GetProtectionStatusInput {
3891	s.StartTime = &v
3892	return s
3893}
3894
3895type GetProtectionStatusOutput struct {
3896	_ struct{} `type:"structure"`
3897
3898	// The ID of the AWS Firewall administrator account for this policy.
3899	AdminAccountId *string `min:"1" type:"string"`
3900
3901	// Details about the attack, including the following:
3902	//
3903	//    * Attack type
3904	//
3905	//    * Account ID
3906	//
3907	//    * ARN of the resource attacked
3908	//
3909	//    * Start time of the attack
3910	//
3911	//    * End time of the attack (ongoing attacks will not have an end time)
3912	//
3913	// The details are in JSON format.
3914	Data *string `type:"string"`
3915
3916	// If you have more objects than the number that you specified for MaxResults
3917	// in the request, the response includes a NextToken value. To list more objects,
3918	// submit another GetProtectionStatus request, and specify the NextToken value
3919	// from the response in the NextToken value in the next request.
3920	//
3921	// AWS SDKs provide auto-pagination that identify NextToken in a response and
3922	// make subsequent request calls automatically on your behalf. However, this
3923	// feature is not supported by GetProtectionStatus. You must submit subsequent
3924	// requests with NextToken using your own processes.
3925	NextToken *string `min:"1" type:"string"`
3926
3927	// The service type that is protected by the policy. Currently, this is always
3928	// SHIELD_ADVANCED.
3929	ServiceType *string `type:"string" enum:"SecurityServiceType"`
3930}
3931
3932// String returns the string representation
3933func (s GetProtectionStatusOutput) String() string {
3934	return awsutil.Prettify(s)
3935}
3936
3937// GoString returns the string representation
3938func (s GetProtectionStatusOutput) GoString() string {
3939	return s.String()
3940}
3941
3942// SetAdminAccountId sets the AdminAccountId field's value.
3943func (s *GetProtectionStatusOutput) SetAdminAccountId(v string) *GetProtectionStatusOutput {
3944	s.AdminAccountId = &v
3945	return s
3946}
3947
3948// SetData sets the Data field's value.
3949func (s *GetProtectionStatusOutput) SetData(v string) *GetProtectionStatusOutput {
3950	s.Data = &v
3951	return s
3952}
3953
3954// SetNextToken sets the NextToken field's value.
3955func (s *GetProtectionStatusOutput) SetNextToken(v string) *GetProtectionStatusOutput {
3956	s.NextToken = &v
3957	return s
3958}
3959
3960// SetServiceType sets the ServiceType field's value.
3961func (s *GetProtectionStatusOutput) SetServiceType(v string) *GetProtectionStatusOutput {
3962	s.ServiceType = &v
3963	return s
3964}
3965
3966type GetProtocolsListInput struct {
3967	_ struct{} `type:"structure"`
3968
3969	// Specifies whether the list to retrieve is a default list owned by AWS Firewall
3970	// Manager.
3971	DefaultList *bool `type:"boolean"`
3972
3973	// The ID of the AWS Firewall Manager protocols list that you want the details
3974	// for.
3975	//
3976	// ListId is a required field
3977	ListId *string `min:"36" type:"string" required:"true"`
3978}
3979
3980// String returns the string representation
3981func (s GetProtocolsListInput) String() string {
3982	return awsutil.Prettify(s)
3983}
3984
3985// GoString returns the string representation
3986func (s GetProtocolsListInput) GoString() string {
3987	return s.String()
3988}
3989
3990// Validate inspects the fields of the type to determine if they are valid.
3991func (s *GetProtocolsListInput) Validate() error {
3992	invalidParams := request.ErrInvalidParams{Context: "GetProtocolsListInput"}
3993	if s.ListId == nil {
3994		invalidParams.Add(request.NewErrParamRequired("ListId"))
3995	}
3996	if s.ListId != nil && len(*s.ListId) < 36 {
3997		invalidParams.Add(request.NewErrParamMinLen("ListId", 36))
3998	}
3999
4000	if invalidParams.Len() > 0 {
4001		return invalidParams
4002	}
4003	return nil
4004}
4005
4006// SetDefaultList sets the DefaultList field's value.
4007func (s *GetProtocolsListInput) SetDefaultList(v bool) *GetProtocolsListInput {
4008	s.DefaultList = &v
4009	return s
4010}
4011
4012// SetListId sets the ListId field's value.
4013func (s *GetProtocolsListInput) SetListId(v string) *GetProtocolsListInput {
4014	s.ListId = &v
4015	return s
4016}
4017
4018type GetProtocolsListOutput struct {
4019	_ struct{} `type:"structure"`
4020
4021	// Information about the specified AWS Firewall Manager protocols list.
4022	ProtocolsList *ProtocolsListData `type:"structure"`
4023
4024	// The Amazon Resource Name (ARN) of the specified protocols list.
4025	ProtocolsListArn *string `min:"1" type:"string"`
4026}
4027
4028// String returns the string representation
4029func (s GetProtocolsListOutput) String() string {
4030	return awsutil.Prettify(s)
4031}
4032
4033// GoString returns the string representation
4034func (s GetProtocolsListOutput) GoString() string {
4035	return s.String()
4036}
4037
4038// SetProtocolsList sets the ProtocolsList field's value.
4039func (s *GetProtocolsListOutput) SetProtocolsList(v *ProtocolsListData) *GetProtocolsListOutput {
4040	s.ProtocolsList = v
4041	return s
4042}
4043
4044// SetProtocolsListArn sets the ProtocolsListArn field's value.
4045func (s *GetProtocolsListOutput) SetProtocolsListArn(v string) *GetProtocolsListOutput {
4046	s.ProtocolsListArn = &v
4047	return s
4048}
4049
4050type GetViolationDetailsInput struct {
4051	_ struct{} `type:"structure"`
4052
4053	// The AWS account ID that you want the details for.
4054	//
4055	// MemberAccount is a required field
4056	MemberAccount *string `min:"1" type:"string" required:"true"`
4057
4058	// The ID of the AWS Firewall Manager policy that you want the details for.
4059	// This currently only supports security group content audit policies.
4060	//
4061	// PolicyId is a required field
4062	PolicyId *string `min:"36" type:"string" required:"true"`
4063
4064	// The ID of the resource that has violations.
4065	//
4066	// ResourceId is a required field
4067	ResourceId *string `min:"1" type:"string" required:"true"`
4068
4069	// The resource type. This is in the format shown in the AWS Resource Types
4070	// Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html).
4071	// Supported resource types are: AWS::EC2::Instance, AWS::EC2::NetworkInterface,
4072	// AWS::EC2::SecurityGroup, AWS::NetworkFirewall::FirewallPolicy, and AWS::EC2::Subnet.
4073	//
4074	// ResourceType is a required field
4075	ResourceType *string `min:"1" type:"string" required:"true"`
4076}
4077
4078// String returns the string representation
4079func (s GetViolationDetailsInput) String() string {
4080	return awsutil.Prettify(s)
4081}
4082
4083// GoString returns the string representation
4084func (s GetViolationDetailsInput) GoString() string {
4085	return s.String()
4086}
4087
4088// Validate inspects the fields of the type to determine if they are valid.
4089func (s *GetViolationDetailsInput) Validate() error {
4090	invalidParams := request.ErrInvalidParams{Context: "GetViolationDetailsInput"}
4091	if s.MemberAccount == nil {
4092		invalidParams.Add(request.NewErrParamRequired("MemberAccount"))
4093	}
4094	if s.MemberAccount != nil && len(*s.MemberAccount) < 1 {
4095		invalidParams.Add(request.NewErrParamMinLen("MemberAccount", 1))
4096	}
4097	if s.PolicyId == nil {
4098		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
4099	}
4100	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
4101		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
4102	}
4103	if s.ResourceId == nil {
4104		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
4105	}
4106	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
4107		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
4108	}
4109	if s.ResourceType == nil {
4110		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
4111	}
4112	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
4113		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
4114	}
4115
4116	if invalidParams.Len() > 0 {
4117		return invalidParams
4118	}
4119	return nil
4120}
4121
4122// SetMemberAccount sets the MemberAccount field's value.
4123func (s *GetViolationDetailsInput) SetMemberAccount(v string) *GetViolationDetailsInput {
4124	s.MemberAccount = &v
4125	return s
4126}
4127
4128// SetPolicyId sets the PolicyId field's value.
4129func (s *GetViolationDetailsInput) SetPolicyId(v string) *GetViolationDetailsInput {
4130	s.PolicyId = &v
4131	return s
4132}
4133
4134// SetResourceId sets the ResourceId field's value.
4135func (s *GetViolationDetailsInput) SetResourceId(v string) *GetViolationDetailsInput {
4136	s.ResourceId = &v
4137	return s
4138}
4139
4140// SetResourceType sets the ResourceType field's value.
4141func (s *GetViolationDetailsInput) SetResourceType(v string) *GetViolationDetailsInput {
4142	s.ResourceType = &v
4143	return s
4144}
4145
4146type GetViolationDetailsOutput struct {
4147	_ struct{} `type:"structure"`
4148
4149	// Violation detail for a resource.
4150	ViolationDetail *ViolationDetail `type:"structure"`
4151}
4152
4153// String returns the string representation
4154func (s GetViolationDetailsOutput) String() string {
4155	return awsutil.Prettify(s)
4156}
4157
4158// GoString returns the string representation
4159func (s GetViolationDetailsOutput) GoString() string {
4160	return s.String()
4161}
4162
4163// SetViolationDetail sets the ViolationDetail field's value.
4164func (s *GetViolationDetailsOutput) SetViolationDetail(v *ViolationDetail) *GetViolationDetailsOutput {
4165	s.ViolationDetail = v
4166	return s
4167}
4168
4169// The operation failed because of a system problem, even though the request
4170// was valid. Retry your request.
4171type InternalErrorException struct {
4172	_            struct{}                  `type:"structure"`
4173	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4174
4175	Message_ *string `locationName:"Message" type:"string"`
4176}
4177
4178// String returns the string representation
4179func (s InternalErrorException) String() string {
4180	return awsutil.Prettify(s)
4181}
4182
4183// GoString returns the string representation
4184func (s InternalErrorException) GoString() string {
4185	return s.String()
4186}
4187
4188func newErrorInternalErrorException(v protocol.ResponseMetadata) error {
4189	return &InternalErrorException{
4190		RespMetadata: v,
4191	}
4192}
4193
4194// Code returns the exception type name.
4195func (s *InternalErrorException) Code() string {
4196	return "InternalErrorException"
4197}
4198
4199// Message returns the exception's message.
4200func (s *InternalErrorException) Message() string {
4201	if s.Message_ != nil {
4202		return *s.Message_
4203	}
4204	return ""
4205}
4206
4207// OrigErr always returns nil, satisfies awserr.Error interface.
4208func (s *InternalErrorException) OrigErr() error {
4209	return nil
4210}
4211
4212func (s *InternalErrorException) Error() string {
4213	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4214}
4215
4216// Status code returns the HTTP status code for the request's response error.
4217func (s *InternalErrorException) StatusCode() int {
4218	return s.RespMetadata.StatusCode
4219}
4220
4221// RequestID returns the service's response RequestID for request.
4222func (s *InternalErrorException) RequestID() string {
4223	return s.RespMetadata.RequestID
4224}
4225
4226// The parameters of the request were invalid.
4227type InvalidInputException struct {
4228	_            struct{}                  `type:"structure"`
4229	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4230
4231	Message_ *string `locationName:"Message" type:"string"`
4232}
4233
4234// String returns the string representation
4235func (s InvalidInputException) String() string {
4236	return awsutil.Prettify(s)
4237}
4238
4239// GoString returns the string representation
4240func (s InvalidInputException) GoString() string {
4241	return s.String()
4242}
4243
4244func newErrorInvalidInputException(v protocol.ResponseMetadata) error {
4245	return &InvalidInputException{
4246		RespMetadata: v,
4247	}
4248}
4249
4250// Code returns the exception type name.
4251func (s *InvalidInputException) Code() string {
4252	return "InvalidInputException"
4253}
4254
4255// Message returns the exception's message.
4256func (s *InvalidInputException) Message() string {
4257	if s.Message_ != nil {
4258		return *s.Message_
4259	}
4260	return ""
4261}
4262
4263// OrigErr always returns nil, satisfies awserr.Error interface.
4264func (s *InvalidInputException) OrigErr() error {
4265	return nil
4266}
4267
4268func (s *InvalidInputException) Error() string {
4269	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4270}
4271
4272// Status code returns the HTTP status code for the request's response error.
4273func (s *InvalidInputException) StatusCode() int {
4274	return s.RespMetadata.StatusCode
4275}
4276
4277// RequestID returns the service's response RequestID for request.
4278func (s *InvalidInputException) RequestID() string {
4279	return s.RespMetadata.RequestID
4280}
4281
4282// The operation failed because there was nothing to do or the operation wasn't
4283// possible. For example, you might have submitted an AssociateAdminAccount
4284// request for an account ID that was already set as the AWS Firewall Manager
4285// administrator. Or you might have tried to access a Region that's disabled
4286// by default, and that you need to enable for the Firewall Manager administrator
4287// account and for AWS Organizations before you can access it.
4288type InvalidOperationException struct {
4289	_            struct{}                  `type:"structure"`
4290	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4291
4292	Message_ *string `locationName:"Message" type:"string"`
4293}
4294
4295// String returns the string representation
4296func (s InvalidOperationException) String() string {
4297	return awsutil.Prettify(s)
4298}
4299
4300// GoString returns the string representation
4301func (s InvalidOperationException) GoString() string {
4302	return s.String()
4303}
4304
4305func newErrorInvalidOperationException(v protocol.ResponseMetadata) error {
4306	return &InvalidOperationException{
4307		RespMetadata: v,
4308	}
4309}
4310
4311// Code returns the exception type name.
4312func (s *InvalidOperationException) Code() string {
4313	return "InvalidOperationException"
4314}
4315
4316// Message returns the exception's message.
4317func (s *InvalidOperationException) Message() string {
4318	if s.Message_ != nil {
4319		return *s.Message_
4320	}
4321	return ""
4322}
4323
4324// OrigErr always returns nil, satisfies awserr.Error interface.
4325func (s *InvalidOperationException) OrigErr() error {
4326	return nil
4327}
4328
4329func (s *InvalidOperationException) Error() string {
4330	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4331}
4332
4333// Status code returns the HTTP status code for the request's response error.
4334func (s *InvalidOperationException) StatusCode() int {
4335	return s.RespMetadata.StatusCode
4336}
4337
4338// RequestID returns the service's response RequestID for request.
4339func (s *InvalidOperationException) RequestID() string {
4340	return s.RespMetadata.RequestID
4341}
4342
4343// The value of the Type parameter is invalid.
4344type InvalidTypeException struct {
4345	_            struct{}                  `type:"structure"`
4346	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4347
4348	Message_ *string `locationName:"Message" type:"string"`
4349}
4350
4351// String returns the string representation
4352func (s InvalidTypeException) String() string {
4353	return awsutil.Prettify(s)
4354}
4355
4356// GoString returns the string representation
4357func (s InvalidTypeException) GoString() string {
4358	return s.String()
4359}
4360
4361func newErrorInvalidTypeException(v protocol.ResponseMetadata) error {
4362	return &InvalidTypeException{
4363		RespMetadata: v,
4364	}
4365}
4366
4367// Code returns the exception type name.
4368func (s *InvalidTypeException) Code() string {
4369	return "InvalidTypeException"
4370}
4371
4372// Message returns the exception's message.
4373func (s *InvalidTypeException) Message() string {
4374	if s.Message_ != nil {
4375		return *s.Message_
4376	}
4377	return ""
4378}
4379
4380// OrigErr always returns nil, satisfies awserr.Error interface.
4381func (s *InvalidTypeException) OrigErr() error {
4382	return nil
4383}
4384
4385func (s *InvalidTypeException) Error() string {
4386	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4387}
4388
4389// Status code returns the HTTP status code for the request's response error.
4390func (s *InvalidTypeException) StatusCode() int {
4391	return s.RespMetadata.StatusCode
4392}
4393
4394// RequestID returns the service's response RequestID for request.
4395func (s *InvalidTypeException) RequestID() string {
4396	return s.RespMetadata.RequestID
4397}
4398
4399// The operation exceeds a resource limit, for example, the maximum number of
4400// policy objects that you can create for an AWS account. For more information,
4401// see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
4402// in the AWS WAF Developer Guide.
4403type LimitExceededException struct {
4404	_            struct{}                  `type:"structure"`
4405	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4406
4407	Message_ *string `locationName:"Message" type:"string"`
4408}
4409
4410// String returns the string representation
4411func (s LimitExceededException) String() string {
4412	return awsutil.Prettify(s)
4413}
4414
4415// GoString returns the string representation
4416func (s LimitExceededException) GoString() string {
4417	return s.String()
4418}
4419
4420func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
4421	return &LimitExceededException{
4422		RespMetadata: v,
4423	}
4424}
4425
4426// Code returns the exception type name.
4427func (s *LimitExceededException) Code() string {
4428	return "LimitExceededException"
4429}
4430
4431// Message returns the exception's message.
4432func (s *LimitExceededException) Message() string {
4433	if s.Message_ != nil {
4434		return *s.Message_
4435	}
4436	return ""
4437}
4438
4439// OrigErr always returns nil, satisfies awserr.Error interface.
4440func (s *LimitExceededException) OrigErr() error {
4441	return nil
4442}
4443
4444func (s *LimitExceededException) Error() string {
4445	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4446}
4447
4448// Status code returns the HTTP status code for the request's response error.
4449func (s *LimitExceededException) StatusCode() int {
4450	return s.RespMetadata.StatusCode
4451}
4452
4453// RequestID returns the service's response RequestID for request.
4454func (s *LimitExceededException) RequestID() string {
4455	return s.RespMetadata.RequestID
4456}
4457
4458type ListAppsListsInput struct {
4459	_ struct{} `type:"structure"`
4460
4461	// Specifies whether the lists to retrieve are default lists owned by AWS Firewall
4462	// Manager.
4463	DefaultLists *bool `type:"boolean"`
4464
4465	// The maximum number of objects that you want AWS Firewall Manager to return
4466	// for this request. If more objects are available, in the response, AWS Firewall
4467	// Manager provides a NextToken value that you can use in a subsequent call
4468	// to get the next batch of objects.
4469	//
4470	// If you don't specify this, AWS Firewall Manager returns all available objects.
4471	//
4472	// MaxResults is a required field
4473	MaxResults *int64 `min:"1" type:"integer" required:"true"`
4474
4475	// If you specify a value for MaxResults in your list request, and you have
4476	// more objects than the maximum, AWS Firewall Manager returns this token in
4477	// the response. For all but the first request, you provide the token returned
4478	// by the prior request in the request parameters, to retrieve the next batch
4479	// of objects.
4480	NextToken *string `min:"1" type:"string"`
4481}
4482
4483// String returns the string representation
4484func (s ListAppsListsInput) String() string {
4485	return awsutil.Prettify(s)
4486}
4487
4488// GoString returns the string representation
4489func (s ListAppsListsInput) GoString() string {
4490	return s.String()
4491}
4492
4493// Validate inspects the fields of the type to determine if they are valid.
4494func (s *ListAppsListsInput) Validate() error {
4495	invalidParams := request.ErrInvalidParams{Context: "ListAppsListsInput"}
4496	if s.MaxResults == nil {
4497		invalidParams.Add(request.NewErrParamRequired("MaxResults"))
4498	}
4499	if s.MaxResults != nil && *s.MaxResults < 1 {
4500		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4501	}
4502	if s.NextToken != nil && len(*s.NextToken) < 1 {
4503		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4504	}
4505
4506	if invalidParams.Len() > 0 {
4507		return invalidParams
4508	}
4509	return nil
4510}
4511
4512// SetDefaultLists sets the DefaultLists field's value.
4513func (s *ListAppsListsInput) SetDefaultLists(v bool) *ListAppsListsInput {
4514	s.DefaultLists = &v
4515	return s
4516}
4517
4518// SetMaxResults sets the MaxResults field's value.
4519func (s *ListAppsListsInput) SetMaxResults(v int64) *ListAppsListsInput {
4520	s.MaxResults = &v
4521	return s
4522}
4523
4524// SetNextToken sets the NextToken field's value.
4525func (s *ListAppsListsInput) SetNextToken(v string) *ListAppsListsInput {
4526	s.NextToken = &v
4527	return s
4528}
4529
4530type ListAppsListsOutput struct {
4531	_ struct{} `type:"structure"`
4532
4533	// An array of AppsListDataSummary objects.
4534	AppsLists []*AppsListDataSummary `type:"list"`
4535
4536	// If you specify a value for MaxResults in your list request, and you have
4537	// more objects than the maximum, AWS Firewall Manager returns this token in
4538	// the response. You can use this token in subsequent requests to retrieve the
4539	// next batch of objects.
4540	NextToken *string `min:"1" type:"string"`
4541}
4542
4543// String returns the string representation
4544func (s ListAppsListsOutput) String() string {
4545	return awsutil.Prettify(s)
4546}
4547
4548// GoString returns the string representation
4549func (s ListAppsListsOutput) GoString() string {
4550	return s.String()
4551}
4552
4553// SetAppsLists sets the AppsLists field's value.
4554func (s *ListAppsListsOutput) SetAppsLists(v []*AppsListDataSummary) *ListAppsListsOutput {
4555	s.AppsLists = v
4556	return s
4557}
4558
4559// SetNextToken sets the NextToken field's value.
4560func (s *ListAppsListsOutput) SetNextToken(v string) *ListAppsListsOutput {
4561	s.NextToken = &v
4562	return s
4563}
4564
4565type ListComplianceStatusInput struct {
4566	_ struct{} `type:"structure"`
4567
4568	// Specifies the number of PolicyComplianceStatus objects that you want AWS
4569	// Firewall Manager to return for this request. If you have more PolicyComplianceStatus
4570	// objects than the number that you specify for MaxResults, the response includes
4571	// a NextToken value that you can use to get another batch of PolicyComplianceStatus
4572	// objects.
4573	MaxResults *int64 `min:"1" type:"integer"`
4574
4575	// If you specify a value for MaxResults and you have more PolicyComplianceStatus
4576	// objects than the number that you specify for MaxResults, AWS Firewall Manager
4577	// returns a NextToken value in the response that allows you to list another
4578	// group of PolicyComplianceStatus objects. For the second and subsequent ListComplianceStatus
4579	// requests, specify the value of NextToken from the previous response to get
4580	// information about another batch of PolicyComplianceStatus objects.
4581	NextToken *string `min:"1" type:"string"`
4582
4583	// The ID of the AWS Firewall Manager policy that you want the details for.
4584	//
4585	// PolicyId is a required field
4586	PolicyId *string `min:"36" type:"string" required:"true"`
4587}
4588
4589// String returns the string representation
4590func (s ListComplianceStatusInput) String() string {
4591	return awsutil.Prettify(s)
4592}
4593
4594// GoString returns the string representation
4595func (s ListComplianceStatusInput) GoString() string {
4596	return s.String()
4597}
4598
4599// Validate inspects the fields of the type to determine if they are valid.
4600func (s *ListComplianceStatusInput) Validate() error {
4601	invalidParams := request.ErrInvalidParams{Context: "ListComplianceStatusInput"}
4602	if s.MaxResults != nil && *s.MaxResults < 1 {
4603		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4604	}
4605	if s.NextToken != nil && len(*s.NextToken) < 1 {
4606		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4607	}
4608	if s.PolicyId == nil {
4609		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
4610	}
4611	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
4612		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
4613	}
4614
4615	if invalidParams.Len() > 0 {
4616		return invalidParams
4617	}
4618	return nil
4619}
4620
4621// SetMaxResults sets the MaxResults field's value.
4622func (s *ListComplianceStatusInput) SetMaxResults(v int64) *ListComplianceStatusInput {
4623	s.MaxResults = &v
4624	return s
4625}
4626
4627// SetNextToken sets the NextToken field's value.
4628func (s *ListComplianceStatusInput) SetNextToken(v string) *ListComplianceStatusInput {
4629	s.NextToken = &v
4630	return s
4631}
4632
4633// SetPolicyId sets the PolicyId field's value.
4634func (s *ListComplianceStatusInput) SetPolicyId(v string) *ListComplianceStatusInput {
4635	s.PolicyId = &v
4636	return s
4637}
4638
4639type ListComplianceStatusOutput struct {
4640	_ struct{} `type:"structure"`
4641
4642	// If you have more PolicyComplianceStatus objects than the number that you
4643	// specified for MaxResults in the request, the response includes a NextToken
4644	// value. To list more PolicyComplianceStatus objects, submit another ListComplianceStatus
4645	// request, and specify the NextToken value from the response in the NextToken
4646	// value in the next request.
4647	NextToken *string `min:"1" type:"string"`
4648
4649	// An array of PolicyComplianceStatus objects.
4650	PolicyComplianceStatusList []*PolicyComplianceStatus `type:"list"`
4651}
4652
4653// String returns the string representation
4654func (s ListComplianceStatusOutput) String() string {
4655	return awsutil.Prettify(s)
4656}
4657
4658// GoString returns the string representation
4659func (s ListComplianceStatusOutput) GoString() string {
4660	return s.String()
4661}
4662
4663// SetNextToken sets the NextToken field's value.
4664func (s *ListComplianceStatusOutput) SetNextToken(v string) *ListComplianceStatusOutput {
4665	s.NextToken = &v
4666	return s
4667}
4668
4669// SetPolicyComplianceStatusList sets the PolicyComplianceStatusList field's value.
4670func (s *ListComplianceStatusOutput) SetPolicyComplianceStatusList(v []*PolicyComplianceStatus) *ListComplianceStatusOutput {
4671	s.PolicyComplianceStatusList = v
4672	return s
4673}
4674
4675type ListMemberAccountsInput struct {
4676	_ struct{} `type:"structure"`
4677
4678	// Specifies the number of member account IDs that you want AWS Firewall Manager
4679	// to return for this request. If you have more IDs than the number that you
4680	// specify for MaxResults, the response includes a NextToken value that you
4681	// can use to get another batch of member account IDs.
4682	MaxResults *int64 `min:"1" type:"integer"`
4683
4684	// If you specify a value for MaxResults and you have more account IDs than
4685	// the number that you specify for MaxResults, AWS Firewall Manager returns
4686	// a NextToken value in the response that allows you to list another group of
4687	// IDs. For the second and subsequent ListMemberAccountsRequest requests, specify
4688	// the value of NextToken from the previous response to get information about
4689	// another batch of member account IDs.
4690	NextToken *string `min:"1" type:"string"`
4691}
4692
4693// String returns the string representation
4694func (s ListMemberAccountsInput) String() string {
4695	return awsutil.Prettify(s)
4696}
4697
4698// GoString returns the string representation
4699func (s ListMemberAccountsInput) GoString() string {
4700	return s.String()
4701}
4702
4703// Validate inspects the fields of the type to determine if they are valid.
4704func (s *ListMemberAccountsInput) Validate() error {
4705	invalidParams := request.ErrInvalidParams{Context: "ListMemberAccountsInput"}
4706	if s.MaxResults != nil && *s.MaxResults < 1 {
4707		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4708	}
4709	if s.NextToken != nil && len(*s.NextToken) < 1 {
4710		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4711	}
4712
4713	if invalidParams.Len() > 0 {
4714		return invalidParams
4715	}
4716	return nil
4717}
4718
4719// SetMaxResults sets the MaxResults field's value.
4720func (s *ListMemberAccountsInput) SetMaxResults(v int64) *ListMemberAccountsInput {
4721	s.MaxResults = &v
4722	return s
4723}
4724
4725// SetNextToken sets the NextToken field's value.
4726func (s *ListMemberAccountsInput) SetNextToken(v string) *ListMemberAccountsInput {
4727	s.NextToken = &v
4728	return s
4729}
4730
4731type ListMemberAccountsOutput struct {
4732	_ struct{} `type:"structure"`
4733
4734	// An array of account IDs.
4735	MemberAccounts []*string `type:"list"`
4736
4737	// If you have more member account IDs than the number that you specified for
4738	// MaxResults in the request, the response includes a NextToken value. To list
4739	// more IDs, submit another ListMemberAccounts request, and specify the NextToken
4740	// value from the response in the NextToken value in the next request.
4741	NextToken *string `min:"1" type:"string"`
4742}
4743
4744// String returns the string representation
4745func (s ListMemberAccountsOutput) String() string {
4746	return awsutil.Prettify(s)
4747}
4748
4749// GoString returns the string representation
4750func (s ListMemberAccountsOutput) GoString() string {
4751	return s.String()
4752}
4753
4754// SetMemberAccounts sets the MemberAccounts field's value.
4755func (s *ListMemberAccountsOutput) SetMemberAccounts(v []*string) *ListMemberAccountsOutput {
4756	s.MemberAccounts = v
4757	return s
4758}
4759
4760// SetNextToken sets the NextToken field's value.
4761func (s *ListMemberAccountsOutput) SetNextToken(v string) *ListMemberAccountsOutput {
4762	s.NextToken = &v
4763	return s
4764}
4765
4766type ListPoliciesInput struct {
4767	_ struct{} `type:"structure"`
4768
4769	// Specifies the number of PolicySummary objects that you want AWS Firewall
4770	// Manager to return for this request. If you have more PolicySummary objects
4771	// than the number that you specify for MaxResults, the response includes a
4772	// NextToken value that you can use to get another batch of PolicySummary objects.
4773	MaxResults *int64 `min:"1" type:"integer"`
4774
4775	// If you specify a value for MaxResults and you have more PolicySummary objects
4776	// than the number that you specify for MaxResults, AWS Firewall Manager returns
4777	// a NextToken value in the response that allows you to list another group of
4778	// PolicySummary objects. For the second and subsequent ListPolicies requests,
4779	// specify the value of NextToken from the previous response to get information
4780	// about another batch of PolicySummary objects.
4781	NextToken *string `min:"1" type:"string"`
4782}
4783
4784// String returns the string representation
4785func (s ListPoliciesInput) String() string {
4786	return awsutil.Prettify(s)
4787}
4788
4789// GoString returns the string representation
4790func (s ListPoliciesInput) GoString() string {
4791	return s.String()
4792}
4793
4794// Validate inspects the fields of the type to determine if they are valid.
4795func (s *ListPoliciesInput) Validate() error {
4796	invalidParams := request.ErrInvalidParams{Context: "ListPoliciesInput"}
4797	if s.MaxResults != nil && *s.MaxResults < 1 {
4798		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4799	}
4800	if s.NextToken != nil && len(*s.NextToken) < 1 {
4801		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4802	}
4803
4804	if invalidParams.Len() > 0 {
4805		return invalidParams
4806	}
4807	return nil
4808}
4809
4810// SetMaxResults sets the MaxResults field's value.
4811func (s *ListPoliciesInput) SetMaxResults(v int64) *ListPoliciesInput {
4812	s.MaxResults = &v
4813	return s
4814}
4815
4816// SetNextToken sets the NextToken field's value.
4817func (s *ListPoliciesInput) SetNextToken(v string) *ListPoliciesInput {
4818	s.NextToken = &v
4819	return s
4820}
4821
4822type ListPoliciesOutput struct {
4823	_ struct{} `type:"structure"`
4824
4825	// If you have more PolicySummary objects than the number that you specified
4826	// for MaxResults in the request, the response includes a NextToken value. To
4827	// list more PolicySummary objects, submit another ListPolicies request, and
4828	// specify the NextToken value from the response in the NextToken value in the
4829	// next request.
4830	NextToken *string `min:"1" type:"string"`
4831
4832	// An array of PolicySummary objects.
4833	PolicyList []*PolicySummary `type:"list"`
4834}
4835
4836// String returns the string representation
4837func (s ListPoliciesOutput) String() string {
4838	return awsutil.Prettify(s)
4839}
4840
4841// GoString returns the string representation
4842func (s ListPoliciesOutput) GoString() string {
4843	return s.String()
4844}
4845
4846// SetNextToken sets the NextToken field's value.
4847func (s *ListPoliciesOutput) SetNextToken(v string) *ListPoliciesOutput {
4848	s.NextToken = &v
4849	return s
4850}
4851
4852// SetPolicyList sets the PolicyList field's value.
4853func (s *ListPoliciesOutput) SetPolicyList(v []*PolicySummary) *ListPoliciesOutput {
4854	s.PolicyList = v
4855	return s
4856}
4857
4858type ListProtocolsListsInput struct {
4859	_ struct{} `type:"structure"`
4860
4861	// Specifies whether the lists to retrieve are default lists owned by AWS Firewall
4862	// Manager.
4863	DefaultLists *bool `type:"boolean"`
4864
4865	// The maximum number of objects that you want AWS Firewall Manager to return
4866	// for this request. If more objects are available, in the response, AWS Firewall
4867	// Manager provides a NextToken value that you can use in a subsequent call
4868	// to get the next batch of objects.
4869	//
4870	// If you don't specify this, AWS Firewall Manager returns all available objects.
4871	//
4872	// MaxResults is a required field
4873	MaxResults *int64 `min:"1" type:"integer" required:"true"`
4874
4875	// If you specify a value for MaxResults in your list request, and you have
4876	// more objects than the maximum, AWS Firewall Manager returns this token in
4877	// the response. For all but the first request, you provide the token returned
4878	// by the prior request in the request parameters, to retrieve the next batch
4879	// of objects.
4880	NextToken *string `min:"1" type:"string"`
4881}
4882
4883// String returns the string representation
4884func (s ListProtocolsListsInput) String() string {
4885	return awsutil.Prettify(s)
4886}
4887
4888// GoString returns the string representation
4889func (s ListProtocolsListsInput) GoString() string {
4890	return s.String()
4891}
4892
4893// Validate inspects the fields of the type to determine if they are valid.
4894func (s *ListProtocolsListsInput) Validate() error {
4895	invalidParams := request.ErrInvalidParams{Context: "ListProtocolsListsInput"}
4896	if s.MaxResults == nil {
4897		invalidParams.Add(request.NewErrParamRequired("MaxResults"))
4898	}
4899	if s.MaxResults != nil && *s.MaxResults < 1 {
4900		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4901	}
4902	if s.NextToken != nil && len(*s.NextToken) < 1 {
4903		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4904	}
4905
4906	if invalidParams.Len() > 0 {
4907		return invalidParams
4908	}
4909	return nil
4910}
4911
4912// SetDefaultLists sets the DefaultLists field's value.
4913func (s *ListProtocolsListsInput) SetDefaultLists(v bool) *ListProtocolsListsInput {
4914	s.DefaultLists = &v
4915	return s
4916}
4917
4918// SetMaxResults sets the MaxResults field's value.
4919func (s *ListProtocolsListsInput) SetMaxResults(v int64) *ListProtocolsListsInput {
4920	s.MaxResults = &v
4921	return s
4922}
4923
4924// SetNextToken sets the NextToken field's value.
4925func (s *ListProtocolsListsInput) SetNextToken(v string) *ListProtocolsListsInput {
4926	s.NextToken = &v
4927	return s
4928}
4929
4930type ListProtocolsListsOutput struct {
4931	_ struct{} `type:"structure"`
4932
4933	// If you specify a value for MaxResults in your list request, and you have
4934	// more objects than the maximum, AWS Firewall Manager returns this token in
4935	// the response. You can use this token in subsequent requests to retrieve the
4936	// next batch of objects.
4937	NextToken *string `min:"1" type:"string"`
4938
4939	// An array of ProtocolsListDataSummary objects.
4940	ProtocolsLists []*ProtocolsListDataSummary `type:"list"`
4941}
4942
4943// String returns the string representation
4944func (s ListProtocolsListsOutput) String() string {
4945	return awsutil.Prettify(s)
4946}
4947
4948// GoString returns the string representation
4949func (s ListProtocolsListsOutput) GoString() string {
4950	return s.String()
4951}
4952
4953// SetNextToken sets the NextToken field's value.
4954func (s *ListProtocolsListsOutput) SetNextToken(v string) *ListProtocolsListsOutput {
4955	s.NextToken = &v
4956	return s
4957}
4958
4959// SetProtocolsLists sets the ProtocolsLists field's value.
4960func (s *ListProtocolsListsOutput) SetProtocolsLists(v []*ProtocolsListDataSummary) *ListProtocolsListsOutput {
4961	s.ProtocolsLists = v
4962	return s
4963}
4964
4965type ListTagsForResourceInput struct {
4966	_ struct{} `type:"structure"`
4967
4968	// The Amazon Resource Name (ARN) of the resource to return tags for. The AWS
4969	// Firewall Manager resources that support tagging are policies, applications
4970	// lists, and protocols lists.
4971	//
4972	// ResourceArn is a required field
4973	ResourceArn *string `min:"1" type:"string" required:"true"`
4974}
4975
4976// String returns the string representation
4977func (s ListTagsForResourceInput) String() string {
4978	return awsutil.Prettify(s)
4979}
4980
4981// GoString returns the string representation
4982func (s ListTagsForResourceInput) GoString() string {
4983	return s.String()
4984}
4985
4986// Validate inspects the fields of the type to determine if they are valid.
4987func (s *ListTagsForResourceInput) Validate() error {
4988	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
4989	if s.ResourceArn == nil {
4990		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
4991	}
4992	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
4993		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
4994	}
4995
4996	if invalidParams.Len() > 0 {
4997		return invalidParams
4998	}
4999	return nil
5000}
5001
5002// SetResourceArn sets the ResourceArn field's value.
5003func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
5004	s.ResourceArn = &v
5005	return s
5006}
5007
5008type ListTagsForResourceOutput struct {
5009	_ struct{} `type:"structure"`
5010
5011	// The tags associated with the resource.
5012	TagList []*Tag `type:"list"`
5013}
5014
5015// String returns the string representation
5016func (s ListTagsForResourceOutput) String() string {
5017	return awsutil.Prettify(s)
5018}
5019
5020// GoString returns the string representation
5021func (s ListTagsForResourceOutput) GoString() string {
5022	return s.String()
5023}
5024
5025// SetTagList sets the TagList field's value.
5026func (s *ListTagsForResourceOutput) SetTagList(v []*Tag) *ListTagsForResourceOutput {
5027	s.TagList = v
5028	return s
5029}
5030
5031// Violation details for AWS Network Firewall for a subnet that's not associated
5032// to the expected Firewall Manager managed route table.
5033type NetworkFirewallMissingExpectedRTViolation struct {
5034	_ struct{} `type:"structure"`
5035
5036	// The Availability Zone of a violating subnet.
5037	AvailabilityZone *string `type:"string"`
5038
5039	// The resource ID of the current route table that's associated with the subnet,
5040	// if one is available.
5041	CurrentRouteTable *string `min:"1" type:"string"`
5042
5043	// The resource ID of the route table that should be associated with the subnet.
5044	ExpectedRouteTable *string `min:"1" type:"string"`
5045
5046	// The resource ID of the VPC associated with a violating subnet.
5047	VPC *string `min:"1" type:"string"`
5048
5049	// The ID of the AWS Network Firewall or VPC resource that's in violation.
5050	ViolationTarget *string `type:"string"`
5051}
5052
5053// String returns the string representation
5054func (s NetworkFirewallMissingExpectedRTViolation) String() string {
5055	return awsutil.Prettify(s)
5056}
5057
5058// GoString returns the string representation
5059func (s NetworkFirewallMissingExpectedRTViolation) GoString() string {
5060	return s.String()
5061}
5062
5063// SetAvailabilityZone sets the AvailabilityZone field's value.
5064func (s *NetworkFirewallMissingExpectedRTViolation) SetAvailabilityZone(v string) *NetworkFirewallMissingExpectedRTViolation {
5065	s.AvailabilityZone = &v
5066	return s
5067}
5068
5069// SetCurrentRouteTable sets the CurrentRouteTable field's value.
5070func (s *NetworkFirewallMissingExpectedRTViolation) SetCurrentRouteTable(v string) *NetworkFirewallMissingExpectedRTViolation {
5071	s.CurrentRouteTable = &v
5072	return s
5073}
5074
5075// SetExpectedRouteTable sets the ExpectedRouteTable field's value.
5076func (s *NetworkFirewallMissingExpectedRTViolation) SetExpectedRouteTable(v string) *NetworkFirewallMissingExpectedRTViolation {
5077	s.ExpectedRouteTable = &v
5078	return s
5079}
5080
5081// SetVPC sets the VPC field's value.
5082func (s *NetworkFirewallMissingExpectedRTViolation) SetVPC(v string) *NetworkFirewallMissingExpectedRTViolation {
5083	s.VPC = &v
5084	return s
5085}
5086
5087// SetViolationTarget sets the ViolationTarget field's value.
5088func (s *NetworkFirewallMissingExpectedRTViolation) SetViolationTarget(v string) *NetworkFirewallMissingExpectedRTViolation {
5089	s.ViolationTarget = &v
5090	return s
5091}
5092
5093// Violation details for AWS Network Firewall for a subnet that doesn't have
5094// a Firewall Manager managed firewall in its VPC.
5095type NetworkFirewallMissingFirewallViolation struct {
5096	_ struct{} `type:"structure"`
5097
5098	// The Availability Zone of a violating subnet.
5099	AvailabilityZone *string `type:"string"`
5100
5101	// The reason the resource has this violation, if one is available.
5102	TargetViolationReason *string `type:"string"`
5103
5104	// The resource ID of the VPC associated with a violating subnet.
5105	VPC *string `min:"1" type:"string"`
5106
5107	// The ID of the AWS Network Firewall or VPC resource that's in violation.
5108	ViolationTarget *string `type:"string"`
5109}
5110
5111// String returns the string representation
5112func (s NetworkFirewallMissingFirewallViolation) String() string {
5113	return awsutil.Prettify(s)
5114}
5115
5116// GoString returns the string representation
5117func (s NetworkFirewallMissingFirewallViolation) GoString() string {
5118	return s.String()
5119}
5120
5121// SetAvailabilityZone sets the AvailabilityZone field's value.
5122func (s *NetworkFirewallMissingFirewallViolation) SetAvailabilityZone(v string) *NetworkFirewallMissingFirewallViolation {
5123	s.AvailabilityZone = &v
5124	return s
5125}
5126
5127// SetTargetViolationReason sets the TargetViolationReason field's value.
5128func (s *NetworkFirewallMissingFirewallViolation) SetTargetViolationReason(v string) *NetworkFirewallMissingFirewallViolation {
5129	s.TargetViolationReason = &v
5130	return s
5131}
5132
5133// SetVPC sets the VPC field's value.
5134func (s *NetworkFirewallMissingFirewallViolation) SetVPC(v string) *NetworkFirewallMissingFirewallViolation {
5135	s.VPC = &v
5136	return s
5137}
5138
5139// SetViolationTarget sets the ViolationTarget field's value.
5140func (s *NetworkFirewallMissingFirewallViolation) SetViolationTarget(v string) *NetworkFirewallMissingFirewallViolation {
5141	s.ViolationTarget = &v
5142	return s
5143}
5144
5145// Violation details for AWS Network Firewall for an Availability Zone that's
5146// missing the expected Firewall Manager managed subnet.
5147type NetworkFirewallMissingSubnetViolation struct {
5148	_ struct{} `type:"structure"`
5149
5150	// The Availability Zone of a violating subnet.
5151	AvailabilityZone *string `type:"string"`
5152
5153	// The reason the resource has this violation, if one is available.
5154	TargetViolationReason *string `type:"string"`
5155
5156	// The resource ID of the VPC associated with a violating subnet.
5157	VPC *string `min:"1" type:"string"`
5158
5159	// The ID of the AWS Network Firewall or VPC resource that's in violation.
5160	ViolationTarget *string `type:"string"`
5161}
5162
5163// String returns the string representation
5164func (s NetworkFirewallMissingSubnetViolation) String() string {
5165	return awsutil.Prettify(s)
5166}
5167
5168// GoString returns the string representation
5169func (s NetworkFirewallMissingSubnetViolation) GoString() string {
5170	return s.String()
5171}
5172
5173// SetAvailabilityZone sets the AvailabilityZone field's value.
5174func (s *NetworkFirewallMissingSubnetViolation) SetAvailabilityZone(v string) *NetworkFirewallMissingSubnetViolation {
5175	s.AvailabilityZone = &v
5176	return s
5177}
5178
5179// SetTargetViolationReason sets the TargetViolationReason field's value.
5180func (s *NetworkFirewallMissingSubnetViolation) SetTargetViolationReason(v string) *NetworkFirewallMissingSubnetViolation {
5181	s.TargetViolationReason = &v
5182	return s
5183}
5184
5185// SetVPC sets the VPC field's value.
5186func (s *NetworkFirewallMissingSubnetViolation) SetVPC(v string) *NetworkFirewallMissingSubnetViolation {
5187	s.VPC = &v
5188	return s
5189}
5190
5191// SetViolationTarget sets the ViolationTarget field's value.
5192func (s *NetworkFirewallMissingSubnetViolation) SetViolationTarget(v string) *NetworkFirewallMissingSubnetViolation {
5193	s.ViolationTarget = &v
5194	return s
5195}
5196
5197// The definition of the AWS Network Firewall firewall policy.
5198type NetworkFirewallPolicyDescription struct {
5199	_ struct{} `type:"structure"`
5200
5201	// The stateful rule groups that are used in the Network Firewall firewall policy.
5202	StatefulRuleGroups []*StatefulRuleGroup `type:"list"`
5203
5204	// Names of custom actions that are available for use in the stateless default
5205	// actions settings.
5206	StatelessCustomActions []*string `type:"list"`
5207
5208	// The actions to take on packets that don't match any of the stateless rule
5209	// groups.
5210	StatelessDefaultActions []*string `type:"list"`
5211
5212	// The actions to take on packet fragments that don't match any of the stateless
5213	// rule groups.
5214	StatelessFragmentDefaultActions []*string `type:"list"`
5215
5216	// The stateless rule groups that are used in the Network Firewall firewall
5217	// policy.
5218	StatelessRuleGroups []*StatelessRuleGroup `type:"list"`
5219}
5220
5221// String returns the string representation
5222func (s NetworkFirewallPolicyDescription) String() string {
5223	return awsutil.Prettify(s)
5224}
5225
5226// GoString returns the string representation
5227func (s NetworkFirewallPolicyDescription) GoString() string {
5228	return s.String()
5229}
5230
5231// SetStatefulRuleGroups sets the StatefulRuleGroups field's value.
5232func (s *NetworkFirewallPolicyDescription) SetStatefulRuleGroups(v []*StatefulRuleGroup) *NetworkFirewallPolicyDescription {
5233	s.StatefulRuleGroups = v
5234	return s
5235}
5236
5237// SetStatelessCustomActions sets the StatelessCustomActions field's value.
5238func (s *NetworkFirewallPolicyDescription) SetStatelessCustomActions(v []*string) *NetworkFirewallPolicyDescription {
5239	s.StatelessCustomActions = v
5240	return s
5241}
5242
5243// SetStatelessDefaultActions sets the StatelessDefaultActions field's value.
5244func (s *NetworkFirewallPolicyDescription) SetStatelessDefaultActions(v []*string) *NetworkFirewallPolicyDescription {
5245	s.StatelessDefaultActions = v
5246	return s
5247}
5248
5249// SetStatelessFragmentDefaultActions sets the StatelessFragmentDefaultActions field's value.
5250func (s *NetworkFirewallPolicyDescription) SetStatelessFragmentDefaultActions(v []*string) *NetworkFirewallPolicyDescription {
5251	s.StatelessFragmentDefaultActions = v
5252	return s
5253}
5254
5255// SetStatelessRuleGroups sets the StatelessRuleGroups field's value.
5256func (s *NetworkFirewallPolicyDescription) SetStatelessRuleGroups(v []*StatelessRuleGroup) *NetworkFirewallPolicyDescription {
5257	s.StatelessRuleGroups = v
5258	return s
5259}
5260
5261// Violation details for AWS Network Firewall for a firewall policy that has
5262// a different NetworkFirewallPolicyDescription than is required by the Firewall
5263// Manager policy.
5264type NetworkFirewallPolicyModifiedViolation struct {
5265	_ struct{} `type:"structure"`
5266
5267	// The policy that's currently in use in the individual account.
5268	CurrentPolicyDescription *NetworkFirewallPolicyDescription `type:"structure"`
5269
5270	// The policy that should be in use in the individual account in order to be
5271	// compliant.
5272	ExpectedPolicyDescription *NetworkFirewallPolicyDescription `type:"structure"`
5273
5274	// The ID of the AWS Network Firewall or VPC resource that's in violation.
5275	ViolationTarget *string `type:"string"`
5276}
5277
5278// String returns the string representation
5279func (s NetworkFirewallPolicyModifiedViolation) String() string {
5280	return awsutil.Prettify(s)
5281}
5282
5283// GoString returns the string representation
5284func (s NetworkFirewallPolicyModifiedViolation) GoString() string {
5285	return s.String()
5286}
5287
5288// SetCurrentPolicyDescription sets the CurrentPolicyDescription field's value.
5289func (s *NetworkFirewallPolicyModifiedViolation) SetCurrentPolicyDescription(v *NetworkFirewallPolicyDescription) *NetworkFirewallPolicyModifiedViolation {
5290	s.CurrentPolicyDescription = v
5291	return s
5292}
5293
5294// SetExpectedPolicyDescription sets the ExpectedPolicyDescription field's value.
5295func (s *NetworkFirewallPolicyModifiedViolation) SetExpectedPolicyDescription(v *NetworkFirewallPolicyDescription) *NetworkFirewallPolicyModifiedViolation {
5296	s.ExpectedPolicyDescription = v
5297	return s
5298}
5299
5300// SetViolationTarget sets the ViolationTarget field's value.
5301func (s *NetworkFirewallPolicyModifiedViolation) SetViolationTarget(v string) *NetworkFirewallPolicyModifiedViolation {
5302	s.ViolationTarget = &v
5303	return s
5304}
5305
5306// The reference rule that partially matches the ViolationTarget rule and violation
5307// reason.
5308type PartialMatch struct {
5309	_ struct{} `type:"structure"`
5310
5311	// The reference rule from the master security group of the AWS Firewall Manager
5312	// policy.
5313	Reference *string `type:"string"`
5314
5315	// The violation reason.
5316	TargetViolationReasons []*string `type:"list"`
5317}
5318
5319// String returns the string representation
5320func (s PartialMatch) String() string {
5321	return awsutil.Prettify(s)
5322}
5323
5324// GoString returns the string representation
5325func (s PartialMatch) GoString() string {
5326	return s.String()
5327}
5328
5329// SetReference sets the Reference field's value.
5330func (s *PartialMatch) SetReference(v string) *PartialMatch {
5331	s.Reference = &v
5332	return s
5333}
5334
5335// SetTargetViolationReasons sets the TargetViolationReasons field's value.
5336func (s *PartialMatch) SetTargetViolationReasons(v []*string) *PartialMatch {
5337	s.TargetViolationReasons = v
5338	return s
5339}
5340
5341// An AWS Firewall Manager policy.
5342type Policy struct {
5343	_ struct{} `type:"structure"`
5344
5345	// Specifies the AWS account IDs and AWS Organizations organizational units
5346	// (OUs) to exclude from the policy. Specifying an OU is the equivalent of specifying
5347	// all accounts in the OU and in any of its child OUs, including any child OUs
5348	// and accounts that are added at a later time.
5349	//
5350	// You can specify inclusions or exclusions, but not both. If you specify an
5351	// IncludeMap, AWS Firewall Manager applies the policy to all accounts specified
5352	// by the IncludeMap, and does not evaluate any ExcludeMap specifications. If
5353	// you do not specify an IncludeMap, then Firewall Manager applies the policy
5354	// to all accounts except for those specified by the ExcludeMap.
5355	//
5356	// You can specify account IDs, OUs, or a combination:
5357	//
5358	//    * Specify account IDs by setting the key to ACCOUNT. For example, the
5359	//    following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”]}.
5360	//
5361	//    * Specify OUs by setting the key to ORG_UNIT. For example, the following
5362	//    is a valid map: {“ORG_UNIT” : [“ouid111”, “ouid112”]}.
5363	//
5364	//    * Specify accounts and OUs together in a single map, separated with a
5365	//    comma. For example, the following is a valid map: {“ACCOUNT” : [“accountID1”,
5366	//    “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}.
5367	ExcludeMap map[string][]*string `type:"map"`
5368
5369	// If set to True, resources with the tags that are specified in the ResourceTag
5370	// array are not in scope of the policy. If set to False, and the ResourceTag
5371	// array is not null, only resources with the specified tags are in scope of
5372	// the policy.
5373	//
5374	// ExcludeResourceTags is a required field
5375	ExcludeResourceTags *bool `type:"boolean" required:"true"`
5376
5377	// Specifies the AWS account IDs and AWS Organizations organizational units
5378	// (OUs) to include in the policy. Specifying an OU is the equivalent of specifying
5379	// all accounts in the OU and in any of its child OUs, including any child OUs
5380	// and accounts that are added at a later time.
5381	//
5382	// You can specify inclusions or exclusions, but not both. If you specify an
5383	// IncludeMap, AWS Firewall Manager applies the policy to all accounts specified
5384	// by the IncludeMap, and does not evaluate any ExcludeMap specifications. If
5385	// you do not specify an IncludeMap, then Firewall Manager applies the policy
5386	// to all accounts except for those specified by the ExcludeMap.
5387	//
5388	// You can specify account IDs, OUs, or a combination:
5389	//
5390	//    * Specify account IDs by setting the key to ACCOUNT. For example, the
5391	//    following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”]}.
5392	//
5393	//    * Specify OUs by setting the key to ORG_UNIT. For example, the following
5394	//    is a valid map: {“ORG_UNIT” : [“ouid111”, “ouid112”]}.
5395	//
5396	//    * Specify accounts and OUs together in a single map, separated with a
5397	//    comma. For example, the following is a valid map: {“ACCOUNT” : [“accountID1”,
5398	//    “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}.
5399	IncludeMap map[string][]*string `type:"map"`
5400
5401	// The ID of the AWS Firewall Manager policy.
5402	PolicyId *string `min:"36" type:"string"`
5403
5404	// The name of the AWS Firewall Manager policy.
5405	//
5406	// PolicyName is a required field
5407	PolicyName *string `min:"1" type:"string" required:"true"`
5408
5409	// A unique identifier for each update to the policy. When issuing a PutPolicy
5410	// request, the PolicyUpdateToken in the request must match the PolicyUpdateToken
5411	// of the current policy version. To get the PolicyUpdateToken of the current
5412	// policy version, use a GetPolicy request.
5413	PolicyUpdateToken *string `min:"1" type:"string"`
5414
5415	// Indicates if the policy should be automatically applied to new resources.
5416	//
5417	// RemediationEnabled is a required field
5418	RemediationEnabled *bool `type:"boolean" required:"true"`
5419
5420	// An array of ResourceTag objects.
5421	ResourceTags []*ResourceTag `type:"list"`
5422
5423	// The type of resource protected by or in scope of the policy. This is in the
5424	// format shown in the AWS Resource Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html).
5425	// For AWS WAF and Shield Advanced, examples include AWS::ElasticLoadBalancingV2::LoadBalancer
5426	// and AWS::CloudFront::Distribution. For a security group common policy, valid
5427	// values are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For a security
5428	// group content audit policy, valid values are AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface,
5429	// and AWS::EC2::Instance. For a security group usage audit policy, the value
5430	// is AWS::EC2::SecurityGroup. For an AWS Network Firewall policy, the value
5431	// is AWS::EC2::VPC.
5432	//
5433	// ResourceType is a required field
5434	ResourceType *string `min:"1" type:"string" required:"true"`
5435
5436	// An array of ResourceType.
5437	ResourceTypeList []*string `type:"list"`
5438
5439	// Details about the security service that is being used to protect the resources.
5440	//
5441	// SecurityServicePolicyData is a required field
5442	SecurityServicePolicyData *SecurityServicePolicyData `type:"structure" required:"true"`
5443}
5444
5445// String returns the string representation
5446func (s Policy) String() string {
5447	return awsutil.Prettify(s)
5448}
5449
5450// GoString returns the string representation
5451func (s Policy) GoString() string {
5452	return s.String()
5453}
5454
5455// Validate inspects the fields of the type to determine if they are valid.
5456func (s *Policy) Validate() error {
5457	invalidParams := request.ErrInvalidParams{Context: "Policy"}
5458	if s.ExcludeResourceTags == nil {
5459		invalidParams.Add(request.NewErrParamRequired("ExcludeResourceTags"))
5460	}
5461	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
5462		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
5463	}
5464	if s.PolicyName == nil {
5465		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
5466	}
5467	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
5468		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
5469	}
5470	if s.PolicyUpdateToken != nil && len(*s.PolicyUpdateToken) < 1 {
5471		invalidParams.Add(request.NewErrParamMinLen("PolicyUpdateToken", 1))
5472	}
5473	if s.RemediationEnabled == nil {
5474		invalidParams.Add(request.NewErrParamRequired("RemediationEnabled"))
5475	}
5476	if s.ResourceType == nil {
5477		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
5478	}
5479	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
5480		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
5481	}
5482	if s.SecurityServicePolicyData == nil {
5483		invalidParams.Add(request.NewErrParamRequired("SecurityServicePolicyData"))
5484	}
5485	if s.ResourceTags != nil {
5486		for i, v := range s.ResourceTags {
5487			if v == nil {
5488				continue
5489			}
5490			if err := v.Validate(); err != nil {
5491				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceTags", i), err.(request.ErrInvalidParams))
5492			}
5493		}
5494	}
5495	if s.SecurityServicePolicyData != nil {
5496		if err := s.SecurityServicePolicyData.Validate(); err != nil {
5497			invalidParams.AddNested("SecurityServicePolicyData", err.(request.ErrInvalidParams))
5498		}
5499	}
5500
5501	if invalidParams.Len() > 0 {
5502		return invalidParams
5503	}
5504	return nil
5505}
5506
5507// SetExcludeMap sets the ExcludeMap field's value.
5508func (s *Policy) SetExcludeMap(v map[string][]*string) *Policy {
5509	s.ExcludeMap = v
5510	return s
5511}
5512
5513// SetExcludeResourceTags sets the ExcludeResourceTags field's value.
5514func (s *Policy) SetExcludeResourceTags(v bool) *Policy {
5515	s.ExcludeResourceTags = &v
5516	return s
5517}
5518
5519// SetIncludeMap sets the IncludeMap field's value.
5520func (s *Policy) SetIncludeMap(v map[string][]*string) *Policy {
5521	s.IncludeMap = v
5522	return s
5523}
5524
5525// SetPolicyId sets the PolicyId field's value.
5526func (s *Policy) SetPolicyId(v string) *Policy {
5527	s.PolicyId = &v
5528	return s
5529}
5530
5531// SetPolicyName sets the PolicyName field's value.
5532func (s *Policy) SetPolicyName(v string) *Policy {
5533	s.PolicyName = &v
5534	return s
5535}
5536
5537// SetPolicyUpdateToken sets the PolicyUpdateToken field's value.
5538func (s *Policy) SetPolicyUpdateToken(v string) *Policy {
5539	s.PolicyUpdateToken = &v
5540	return s
5541}
5542
5543// SetRemediationEnabled sets the RemediationEnabled field's value.
5544func (s *Policy) SetRemediationEnabled(v bool) *Policy {
5545	s.RemediationEnabled = &v
5546	return s
5547}
5548
5549// SetResourceTags sets the ResourceTags field's value.
5550func (s *Policy) SetResourceTags(v []*ResourceTag) *Policy {
5551	s.ResourceTags = v
5552	return s
5553}
5554
5555// SetResourceType sets the ResourceType field's value.
5556func (s *Policy) SetResourceType(v string) *Policy {
5557	s.ResourceType = &v
5558	return s
5559}
5560
5561// SetResourceTypeList sets the ResourceTypeList field's value.
5562func (s *Policy) SetResourceTypeList(v []*string) *Policy {
5563	s.ResourceTypeList = v
5564	return s
5565}
5566
5567// SetSecurityServicePolicyData sets the SecurityServicePolicyData field's value.
5568func (s *Policy) SetSecurityServicePolicyData(v *SecurityServicePolicyData) *Policy {
5569	s.SecurityServicePolicyData = v
5570	return s
5571}
5572
5573// Describes the noncompliant resources in a member account for a specific AWS
5574// Firewall Manager policy. A maximum of 100 entries are displayed. If more
5575// than 100 resources are noncompliant, EvaluationLimitExceeded is set to True.
5576type PolicyComplianceDetail struct {
5577	_ struct{} `type:"structure"`
5578
5579	// Indicates if over 100 resources are noncompliant with the AWS Firewall Manager
5580	// policy.
5581	EvaluationLimitExceeded *bool `type:"boolean"`
5582
5583	// A timestamp that indicates when the returned information should be considered
5584	// out of date.
5585	ExpiredAt *time.Time `type:"timestamp"`
5586
5587	// Details about problems with dependent services, such as AWS WAF or AWS Config,
5588	// that are causing a resource to be noncompliant. The details include the name
5589	// of the dependent service and the error message received that indicates the
5590	// problem with the service.
5591	IssueInfoMap map[string]*string `type:"map"`
5592
5593	// The AWS account ID.
5594	MemberAccount *string `min:"1" type:"string"`
5595
5596	// The ID of the AWS Firewall Manager policy.
5597	PolicyId *string `min:"36" type:"string"`
5598
5599	// The AWS account that created the AWS Firewall Manager policy.
5600	PolicyOwner *string `min:"1" type:"string"`
5601
5602	// An array of resources that aren't protected by the AWS WAF or Shield Advanced
5603	// policy or that aren't in compliance with the security group policy.
5604	Violators []*ComplianceViolator `type:"list"`
5605}
5606
5607// String returns the string representation
5608func (s PolicyComplianceDetail) String() string {
5609	return awsutil.Prettify(s)
5610}
5611
5612// GoString returns the string representation
5613func (s PolicyComplianceDetail) GoString() string {
5614	return s.String()
5615}
5616
5617// SetEvaluationLimitExceeded sets the EvaluationLimitExceeded field's value.
5618func (s *PolicyComplianceDetail) SetEvaluationLimitExceeded(v bool) *PolicyComplianceDetail {
5619	s.EvaluationLimitExceeded = &v
5620	return s
5621}
5622
5623// SetExpiredAt sets the ExpiredAt field's value.
5624func (s *PolicyComplianceDetail) SetExpiredAt(v time.Time) *PolicyComplianceDetail {
5625	s.ExpiredAt = &v
5626	return s
5627}
5628
5629// SetIssueInfoMap sets the IssueInfoMap field's value.
5630func (s *PolicyComplianceDetail) SetIssueInfoMap(v map[string]*string) *PolicyComplianceDetail {
5631	s.IssueInfoMap = v
5632	return s
5633}
5634
5635// SetMemberAccount sets the MemberAccount field's value.
5636func (s *PolicyComplianceDetail) SetMemberAccount(v string) *PolicyComplianceDetail {
5637	s.MemberAccount = &v
5638	return s
5639}
5640
5641// SetPolicyId sets the PolicyId field's value.
5642func (s *PolicyComplianceDetail) SetPolicyId(v string) *PolicyComplianceDetail {
5643	s.PolicyId = &v
5644	return s
5645}
5646
5647// SetPolicyOwner sets the PolicyOwner field's value.
5648func (s *PolicyComplianceDetail) SetPolicyOwner(v string) *PolicyComplianceDetail {
5649	s.PolicyOwner = &v
5650	return s
5651}
5652
5653// SetViolators sets the Violators field's value.
5654func (s *PolicyComplianceDetail) SetViolators(v []*ComplianceViolator) *PolicyComplianceDetail {
5655	s.Violators = v
5656	return s
5657}
5658
5659// Indicates whether the account is compliant with the specified policy. An
5660// account is considered noncompliant if it includes resources that are not
5661// protected by the policy, for AWS WAF and Shield Advanced policies, or that
5662// are noncompliant with the policy, for security group policies.
5663type PolicyComplianceStatus struct {
5664	_ struct{} `type:"structure"`
5665
5666	// An array of EvaluationResult objects.
5667	EvaluationResults []*EvaluationResult `type:"list"`
5668
5669	// Details about problems with dependent services, such as AWS WAF or AWS Config,
5670	// that are causing a resource to be noncompliant. The details include the name
5671	// of the dependent service and the error message received that indicates the
5672	// problem with the service.
5673	IssueInfoMap map[string]*string `type:"map"`
5674
5675	// Timestamp of the last update to the EvaluationResult objects.
5676	LastUpdated *time.Time `type:"timestamp"`
5677
5678	// The member account ID.
5679	MemberAccount *string `min:"1" type:"string"`
5680
5681	// The ID of the AWS Firewall Manager policy.
5682	PolicyId *string `min:"36" type:"string"`
5683
5684	// The name of the AWS Firewall Manager policy.
5685	PolicyName *string `min:"1" type:"string"`
5686
5687	// The AWS account that created the AWS Firewall Manager policy.
5688	PolicyOwner *string `min:"1" type:"string"`
5689}
5690
5691// String returns the string representation
5692func (s PolicyComplianceStatus) String() string {
5693	return awsutil.Prettify(s)
5694}
5695
5696// GoString returns the string representation
5697func (s PolicyComplianceStatus) GoString() string {
5698	return s.String()
5699}
5700
5701// SetEvaluationResults sets the EvaluationResults field's value.
5702func (s *PolicyComplianceStatus) SetEvaluationResults(v []*EvaluationResult) *PolicyComplianceStatus {
5703	s.EvaluationResults = v
5704	return s
5705}
5706
5707// SetIssueInfoMap sets the IssueInfoMap field's value.
5708func (s *PolicyComplianceStatus) SetIssueInfoMap(v map[string]*string) *PolicyComplianceStatus {
5709	s.IssueInfoMap = v
5710	return s
5711}
5712
5713// SetLastUpdated sets the LastUpdated field's value.
5714func (s *PolicyComplianceStatus) SetLastUpdated(v time.Time) *PolicyComplianceStatus {
5715	s.LastUpdated = &v
5716	return s
5717}
5718
5719// SetMemberAccount sets the MemberAccount field's value.
5720func (s *PolicyComplianceStatus) SetMemberAccount(v string) *PolicyComplianceStatus {
5721	s.MemberAccount = &v
5722	return s
5723}
5724
5725// SetPolicyId sets the PolicyId field's value.
5726func (s *PolicyComplianceStatus) SetPolicyId(v string) *PolicyComplianceStatus {
5727	s.PolicyId = &v
5728	return s
5729}
5730
5731// SetPolicyName sets the PolicyName field's value.
5732func (s *PolicyComplianceStatus) SetPolicyName(v string) *PolicyComplianceStatus {
5733	s.PolicyName = &v
5734	return s
5735}
5736
5737// SetPolicyOwner sets the PolicyOwner field's value.
5738func (s *PolicyComplianceStatus) SetPolicyOwner(v string) *PolicyComplianceStatus {
5739	s.PolicyOwner = &v
5740	return s
5741}
5742
5743// Details of the AWS Firewall Manager policy.
5744type PolicySummary struct {
5745	_ struct{} `type:"structure"`
5746
5747	// The Amazon Resource Name (ARN) of the specified policy.
5748	PolicyArn *string `min:"1" type:"string"`
5749
5750	// The ID of the specified policy.
5751	PolicyId *string `min:"36" type:"string"`
5752
5753	// The name of the specified policy.
5754	PolicyName *string `min:"1" type:"string"`
5755
5756	// Indicates if the policy should be automatically applied to new resources.
5757	RemediationEnabled *bool `type:"boolean"`
5758
5759	// The type of resource protected by or in scope of the policy. This is in the
5760	// format shown in the AWS Resource Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html).
5761	// For AWS WAF and Shield Advanced, examples include AWS::ElasticLoadBalancingV2::LoadBalancer
5762	// and AWS::CloudFront::Distribution. For a security group common policy, valid
5763	// values are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For a security
5764	// group content audit policy, valid values are AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface,
5765	// and AWS::EC2::Instance. For a security group usage audit policy, the value
5766	// is AWS::EC2::SecurityGroup. For an AWS Network Firewall policy, the value
5767	// is AWS::EC2::VPC.
5768	ResourceType *string `min:"1" type:"string"`
5769
5770	// The service that the policy is using to protect the resources. This specifies
5771	// the type of policy that is created, either an AWS WAF policy, a Shield Advanced
5772	// policy, or a security group policy.
5773	SecurityServiceType *string `type:"string" enum:"SecurityServiceType"`
5774}
5775
5776// String returns the string representation
5777func (s PolicySummary) String() string {
5778	return awsutil.Prettify(s)
5779}
5780
5781// GoString returns the string representation
5782func (s PolicySummary) GoString() string {
5783	return s.String()
5784}
5785
5786// SetPolicyArn sets the PolicyArn field's value.
5787func (s *PolicySummary) SetPolicyArn(v string) *PolicySummary {
5788	s.PolicyArn = &v
5789	return s
5790}
5791
5792// SetPolicyId sets the PolicyId field's value.
5793func (s *PolicySummary) SetPolicyId(v string) *PolicySummary {
5794	s.PolicyId = &v
5795	return s
5796}
5797
5798// SetPolicyName sets the PolicyName field's value.
5799func (s *PolicySummary) SetPolicyName(v string) *PolicySummary {
5800	s.PolicyName = &v
5801	return s
5802}
5803
5804// SetRemediationEnabled sets the RemediationEnabled field's value.
5805func (s *PolicySummary) SetRemediationEnabled(v bool) *PolicySummary {
5806	s.RemediationEnabled = &v
5807	return s
5808}
5809
5810// SetResourceType sets the ResourceType field's value.
5811func (s *PolicySummary) SetResourceType(v string) *PolicySummary {
5812	s.ResourceType = &v
5813	return s
5814}
5815
5816// SetSecurityServiceType sets the SecurityServiceType field's value.
5817func (s *PolicySummary) SetSecurityServiceType(v string) *PolicySummary {
5818	s.SecurityServiceType = &v
5819	return s
5820}
5821
5822// An AWS Firewall Manager protocols list.
5823type ProtocolsListData struct {
5824	_ struct{} `type:"structure"`
5825
5826	// The time that the AWS Firewall Manager protocols list was created.
5827	CreateTime *time.Time `type:"timestamp"`
5828
5829	// The time that the AWS Firewall Manager protocols list was last updated.
5830	LastUpdateTime *time.Time `type:"timestamp"`
5831
5832	// The ID of the AWS Firewall Manager protocols list.
5833	ListId *string `min:"36" type:"string"`
5834
5835	// The name of the AWS Firewall Manager protocols list.
5836	//
5837	// ListName is a required field
5838	ListName *string `min:"1" type:"string" required:"true"`
5839
5840	// A unique identifier for each update to the list. When you update the list,
5841	// the update token must match the token of the current version of the application
5842	// list. You can retrieve the update token by getting the list.
5843	ListUpdateToken *string `min:"1" type:"string"`
5844
5845	// A map of previous version numbers to their corresponding protocol arrays.
5846	PreviousProtocolsList map[string][]*string `type:"map"`
5847
5848	// An array of protocols in the AWS Firewall Manager protocols list.
5849	//
5850	// ProtocolsList is a required field
5851	ProtocolsList []*string `type:"list" required:"true"`
5852}
5853
5854// String returns the string representation
5855func (s ProtocolsListData) String() string {
5856	return awsutil.Prettify(s)
5857}
5858
5859// GoString returns the string representation
5860func (s ProtocolsListData) GoString() string {
5861	return s.String()
5862}
5863
5864// Validate inspects the fields of the type to determine if they are valid.
5865func (s *ProtocolsListData) Validate() error {
5866	invalidParams := request.ErrInvalidParams{Context: "ProtocolsListData"}
5867	if s.ListId != nil && len(*s.ListId) < 36 {
5868		invalidParams.Add(request.NewErrParamMinLen("ListId", 36))
5869	}
5870	if s.ListName == nil {
5871		invalidParams.Add(request.NewErrParamRequired("ListName"))
5872	}
5873	if s.ListName != nil && len(*s.ListName) < 1 {
5874		invalidParams.Add(request.NewErrParamMinLen("ListName", 1))
5875	}
5876	if s.ListUpdateToken != nil && len(*s.ListUpdateToken) < 1 {
5877		invalidParams.Add(request.NewErrParamMinLen("ListUpdateToken", 1))
5878	}
5879	if s.ProtocolsList == nil {
5880		invalidParams.Add(request.NewErrParamRequired("ProtocolsList"))
5881	}
5882
5883	if invalidParams.Len() > 0 {
5884		return invalidParams
5885	}
5886	return nil
5887}
5888
5889// SetCreateTime sets the CreateTime field's value.
5890func (s *ProtocolsListData) SetCreateTime(v time.Time) *ProtocolsListData {
5891	s.CreateTime = &v
5892	return s
5893}
5894
5895// SetLastUpdateTime sets the LastUpdateTime field's value.
5896func (s *ProtocolsListData) SetLastUpdateTime(v time.Time) *ProtocolsListData {
5897	s.LastUpdateTime = &v
5898	return s
5899}
5900
5901// SetListId sets the ListId field's value.
5902func (s *ProtocolsListData) SetListId(v string) *ProtocolsListData {
5903	s.ListId = &v
5904	return s
5905}
5906
5907// SetListName sets the ListName field's value.
5908func (s *ProtocolsListData) SetListName(v string) *ProtocolsListData {
5909	s.ListName = &v
5910	return s
5911}
5912
5913// SetListUpdateToken sets the ListUpdateToken field's value.
5914func (s *ProtocolsListData) SetListUpdateToken(v string) *ProtocolsListData {
5915	s.ListUpdateToken = &v
5916	return s
5917}
5918
5919// SetPreviousProtocolsList sets the PreviousProtocolsList field's value.
5920func (s *ProtocolsListData) SetPreviousProtocolsList(v map[string][]*string) *ProtocolsListData {
5921	s.PreviousProtocolsList = v
5922	return s
5923}
5924
5925// SetProtocolsList sets the ProtocolsList field's value.
5926func (s *ProtocolsListData) SetProtocolsList(v []*string) *ProtocolsListData {
5927	s.ProtocolsList = v
5928	return s
5929}
5930
5931// Details of the AWS Firewall Manager protocols list.
5932type ProtocolsListDataSummary struct {
5933	_ struct{} `type:"structure"`
5934
5935	// The Amazon Resource Name (ARN) of the specified protocols list.
5936	ListArn *string `min:"1" type:"string"`
5937
5938	// The ID of the specified protocols list.
5939	ListId *string `min:"36" type:"string"`
5940
5941	// The name of the specified protocols list.
5942	ListName *string `min:"1" type:"string"`
5943
5944	// An array of protocols in the AWS Firewall Manager protocols list.
5945	ProtocolsList []*string `type:"list"`
5946}
5947
5948// String returns the string representation
5949func (s ProtocolsListDataSummary) String() string {
5950	return awsutil.Prettify(s)
5951}
5952
5953// GoString returns the string representation
5954func (s ProtocolsListDataSummary) GoString() string {
5955	return s.String()
5956}
5957
5958// SetListArn sets the ListArn field's value.
5959func (s *ProtocolsListDataSummary) SetListArn(v string) *ProtocolsListDataSummary {
5960	s.ListArn = &v
5961	return s
5962}
5963
5964// SetListId sets the ListId field's value.
5965func (s *ProtocolsListDataSummary) SetListId(v string) *ProtocolsListDataSummary {
5966	s.ListId = &v
5967	return s
5968}
5969
5970// SetListName sets the ListName field's value.
5971func (s *ProtocolsListDataSummary) SetListName(v string) *ProtocolsListDataSummary {
5972	s.ListName = &v
5973	return s
5974}
5975
5976// SetProtocolsList sets the ProtocolsList field's value.
5977func (s *ProtocolsListDataSummary) SetProtocolsList(v []*string) *ProtocolsListDataSummary {
5978	s.ProtocolsList = v
5979	return s
5980}
5981
5982type PutAppsListInput struct {
5983	_ struct{} `type:"structure"`
5984
5985	// The details of the AWS Firewall Manager applications list to be created.
5986	//
5987	// AppsList is a required field
5988	AppsList *AppsListData `type:"structure" required:"true"`
5989
5990	// The tags associated with the resource.
5991	TagList []*Tag `type:"list"`
5992}
5993
5994// String returns the string representation
5995func (s PutAppsListInput) String() string {
5996	return awsutil.Prettify(s)
5997}
5998
5999// GoString returns the string representation
6000func (s PutAppsListInput) GoString() string {
6001	return s.String()
6002}
6003
6004// Validate inspects the fields of the type to determine if they are valid.
6005func (s *PutAppsListInput) Validate() error {
6006	invalidParams := request.ErrInvalidParams{Context: "PutAppsListInput"}
6007	if s.AppsList == nil {
6008		invalidParams.Add(request.NewErrParamRequired("AppsList"))
6009	}
6010	if s.AppsList != nil {
6011		if err := s.AppsList.Validate(); err != nil {
6012			invalidParams.AddNested("AppsList", err.(request.ErrInvalidParams))
6013		}
6014	}
6015	if s.TagList != nil {
6016		for i, v := range s.TagList {
6017			if v == nil {
6018				continue
6019			}
6020			if err := v.Validate(); err != nil {
6021				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagList", i), err.(request.ErrInvalidParams))
6022			}
6023		}
6024	}
6025
6026	if invalidParams.Len() > 0 {
6027		return invalidParams
6028	}
6029	return nil
6030}
6031
6032// SetAppsList sets the AppsList field's value.
6033func (s *PutAppsListInput) SetAppsList(v *AppsListData) *PutAppsListInput {
6034	s.AppsList = v
6035	return s
6036}
6037
6038// SetTagList sets the TagList field's value.
6039func (s *PutAppsListInput) SetTagList(v []*Tag) *PutAppsListInput {
6040	s.TagList = v
6041	return s
6042}
6043
6044type PutAppsListOutput struct {
6045	_ struct{} `type:"structure"`
6046
6047	// The details of the AWS Firewall Manager applications list.
6048	AppsList *AppsListData `type:"structure"`
6049
6050	// The Amazon Resource Name (ARN) of the applications list.
6051	AppsListArn *string `min:"1" type:"string"`
6052}
6053
6054// String returns the string representation
6055func (s PutAppsListOutput) String() string {
6056	return awsutil.Prettify(s)
6057}
6058
6059// GoString returns the string representation
6060func (s PutAppsListOutput) GoString() string {
6061	return s.String()
6062}
6063
6064// SetAppsList sets the AppsList field's value.
6065func (s *PutAppsListOutput) SetAppsList(v *AppsListData) *PutAppsListOutput {
6066	s.AppsList = v
6067	return s
6068}
6069
6070// SetAppsListArn sets the AppsListArn field's value.
6071func (s *PutAppsListOutput) SetAppsListArn(v string) *PutAppsListOutput {
6072	s.AppsListArn = &v
6073	return s
6074}
6075
6076type PutNotificationChannelInput struct {
6077	_ struct{} `type:"structure"`
6078
6079	// The Amazon Resource Name (ARN) of the IAM role that allows Amazon SNS to
6080	// record AWS Firewall Manager activity.
6081	//
6082	// SnsRoleName is a required field
6083	SnsRoleName *string `min:"1" type:"string" required:"true"`
6084
6085	// The Amazon Resource Name (ARN) of the SNS topic that collects notifications
6086	// from AWS Firewall Manager.
6087	//
6088	// SnsTopicArn is a required field
6089	SnsTopicArn *string `min:"1" type:"string" required:"true"`
6090}
6091
6092// String returns the string representation
6093func (s PutNotificationChannelInput) String() string {
6094	return awsutil.Prettify(s)
6095}
6096
6097// GoString returns the string representation
6098func (s PutNotificationChannelInput) GoString() string {
6099	return s.String()
6100}
6101
6102// Validate inspects the fields of the type to determine if they are valid.
6103func (s *PutNotificationChannelInput) Validate() error {
6104	invalidParams := request.ErrInvalidParams{Context: "PutNotificationChannelInput"}
6105	if s.SnsRoleName == nil {
6106		invalidParams.Add(request.NewErrParamRequired("SnsRoleName"))
6107	}
6108	if s.SnsRoleName != nil && len(*s.SnsRoleName) < 1 {
6109		invalidParams.Add(request.NewErrParamMinLen("SnsRoleName", 1))
6110	}
6111	if s.SnsTopicArn == nil {
6112		invalidParams.Add(request.NewErrParamRequired("SnsTopicArn"))
6113	}
6114	if s.SnsTopicArn != nil && len(*s.SnsTopicArn) < 1 {
6115		invalidParams.Add(request.NewErrParamMinLen("SnsTopicArn", 1))
6116	}
6117
6118	if invalidParams.Len() > 0 {
6119		return invalidParams
6120	}
6121	return nil
6122}
6123
6124// SetSnsRoleName sets the SnsRoleName field's value.
6125func (s *PutNotificationChannelInput) SetSnsRoleName(v string) *PutNotificationChannelInput {
6126	s.SnsRoleName = &v
6127	return s
6128}
6129
6130// SetSnsTopicArn sets the SnsTopicArn field's value.
6131func (s *PutNotificationChannelInput) SetSnsTopicArn(v string) *PutNotificationChannelInput {
6132	s.SnsTopicArn = &v
6133	return s
6134}
6135
6136type PutNotificationChannelOutput struct {
6137	_ struct{} `type:"structure"`
6138}
6139
6140// String returns the string representation
6141func (s PutNotificationChannelOutput) String() string {
6142	return awsutil.Prettify(s)
6143}
6144
6145// GoString returns the string representation
6146func (s PutNotificationChannelOutput) GoString() string {
6147	return s.String()
6148}
6149
6150type PutPolicyInput struct {
6151	_ struct{} `type:"structure"`
6152
6153	// The details of the AWS Firewall Manager policy to be created.
6154	//
6155	// Policy is a required field
6156	Policy *Policy `type:"structure" required:"true"`
6157
6158	// The tags to add to the AWS resource.
6159	TagList []*Tag `type:"list"`
6160}
6161
6162// String returns the string representation
6163func (s PutPolicyInput) String() string {
6164	return awsutil.Prettify(s)
6165}
6166
6167// GoString returns the string representation
6168func (s PutPolicyInput) GoString() string {
6169	return s.String()
6170}
6171
6172// Validate inspects the fields of the type to determine if they are valid.
6173func (s *PutPolicyInput) Validate() error {
6174	invalidParams := request.ErrInvalidParams{Context: "PutPolicyInput"}
6175	if s.Policy == nil {
6176		invalidParams.Add(request.NewErrParamRequired("Policy"))
6177	}
6178	if s.Policy != nil {
6179		if err := s.Policy.Validate(); err != nil {
6180			invalidParams.AddNested("Policy", err.(request.ErrInvalidParams))
6181		}
6182	}
6183	if s.TagList != nil {
6184		for i, v := range s.TagList {
6185			if v == nil {
6186				continue
6187			}
6188			if err := v.Validate(); err != nil {
6189				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagList", i), err.(request.ErrInvalidParams))
6190			}
6191		}
6192	}
6193
6194	if invalidParams.Len() > 0 {
6195		return invalidParams
6196	}
6197	return nil
6198}
6199
6200// SetPolicy sets the Policy field's value.
6201func (s *PutPolicyInput) SetPolicy(v *Policy) *PutPolicyInput {
6202	s.Policy = v
6203	return s
6204}
6205
6206// SetTagList sets the TagList field's value.
6207func (s *PutPolicyInput) SetTagList(v []*Tag) *PutPolicyInput {
6208	s.TagList = v
6209	return s
6210}
6211
6212type PutPolicyOutput struct {
6213	_ struct{} `type:"structure"`
6214
6215	// The details of the AWS Firewall Manager policy.
6216	Policy *Policy `type:"structure"`
6217
6218	// The Amazon Resource Name (ARN) of the policy.
6219	PolicyArn *string `min:"1" type:"string"`
6220}
6221
6222// String returns the string representation
6223func (s PutPolicyOutput) String() string {
6224	return awsutil.Prettify(s)
6225}
6226
6227// GoString returns the string representation
6228func (s PutPolicyOutput) GoString() string {
6229	return s.String()
6230}
6231
6232// SetPolicy sets the Policy field's value.
6233func (s *PutPolicyOutput) SetPolicy(v *Policy) *PutPolicyOutput {
6234	s.Policy = v
6235	return s
6236}
6237
6238// SetPolicyArn sets the PolicyArn field's value.
6239func (s *PutPolicyOutput) SetPolicyArn(v string) *PutPolicyOutput {
6240	s.PolicyArn = &v
6241	return s
6242}
6243
6244type PutProtocolsListInput struct {
6245	_ struct{} `type:"structure"`
6246
6247	// The details of the AWS Firewall Manager protocols list to be created.
6248	//
6249	// ProtocolsList is a required field
6250	ProtocolsList *ProtocolsListData `type:"structure" required:"true"`
6251
6252	// The tags associated with the resource.
6253	TagList []*Tag `type:"list"`
6254}
6255
6256// String returns the string representation
6257func (s PutProtocolsListInput) String() string {
6258	return awsutil.Prettify(s)
6259}
6260
6261// GoString returns the string representation
6262func (s PutProtocolsListInput) GoString() string {
6263	return s.String()
6264}
6265
6266// Validate inspects the fields of the type to determine if they are valid.
6267func (s *PutProtocolsListInput) Validate() error {
6268	invalidParams := request.ErrInvalidParams{Context: "PutProtocolsListInput"}
6269	if s.ProtocolsList == nil {
6270		invalidParams.Add(request.NewErrParamRequired("ProtocolsList"))
6271	}
6272	if s.ProtocolsList != nil {
6273		if err := s.ProtocolsList.Validate(); err != nil {
6274			invalidParams.AddNested("ProtocolsList", err.(request.ErrInvalidParams))
6275		}
6276	}
6277	if s.TagList != nil {
6278		for i, v := range s.TagList {
6279			if v == nil {
6280				continue
6281			}
6282			if err := v.Validate(); err != nil {
6283				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagList", i), err.(request.ErrInvalidParams))
6284			}
6285		}
6286	}
6287
6288	if invalidParams.Len() > 0 {
6289		return invalidParams
6290	}
6291	return nil
6292}
6293
6294// SetProtocolsList sets the ProtocolsList field's value.
6295func (s *PutProtocolsListInput) SetProtocolsList(v *ProtocolsListData) *PutProtocolsListInput {
6296	s.ProtocolsList = v
6297	return s
6298}
6299
6300// SetTagList sets the TagList field's value.
6301func (s *PutProtocolsListInput) SetTagList(v []*Tag) *PutProtocolsListInput {
6302	s.TagList = v
6303	return s
6304}
6305
6306type PutProtocolsListOutput struct {
6307	_ struct{} `type:"structure"`
6308
6309	// The details of the AWS Firewall Manager protocols list.
6310	ProtocolsList *ProtocolsListData `type:"structure"`
6311
6312	// The Amazon Resource Name (ARN) of the protocols list.
6313	ProtocolsListArn *string `min:"1" type:"string"`
6314}
6315
6316// String returns the string representation
6317func (s PutProtocolsListOutput) String() string {
6318	return awsutil.Prettify(s)
6319}
6320
6321// GoString returns the string representation
6322func (s PutProtocolsListOutput) GoString() string {
6323	return s.String()
6324}
6325
6326// SetProtocolsList sets the ProtocolsList field's value.
6327func (s *PutProtocolsListOutput) SetProtocolsList(v *ProtocolsListData) *PutProtocolsListOutput {
6328	s.ProtocolsList = v
6329	return s
6330}
6331
6332// SetProtocolsListArn sets the ProtocolsListArn field's value.
6333func (s *PutProtocolsListOutput) SetProtocolsListArn(v string) *PutProtocolsListOutput {
6334	s.ProtocolsListArn = &v
6335	return s
6336}
6337
6338// The specified resource was not found.
6339type ResourceNotFoundException struct {
6340	_            struct{}                  `type:"structure"`
6341	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6342
6343	Message_ *string `locationName:"Message" type:"string"`
6344}
6345
6346// String returns the string representation
6347func (s ResourceNotFoundException) String() string {
6348	return awsutil.Prettify(s)
6349}
6350
6351// GoString returns the string representation
6352func (s ResourceNotFoundException) GoString() string {
6353	return s.String()
6354}
6355
6356func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
6357	return &ResourceNotFoundException{
6358		RespMetadata: v,
6359	}
6360}
6361
6362// Code returns the exception type name.
6363func (s *ResourceNotFoundException) Code() string {
6364	return "ResourceNotFoundException"
6365}
6366
6367// Message returns the exception's message.
6368func (s *ResourceNotFoundException) Message() string {
6369	if s.Message_ != nil {
6370		return *s.Message_
6371	}
6372	return ""
6373}
6374
6375// OrigErr always returns nil, satisfies awserr.Error interface.
6376func (s *ResourceNotFoundException) OrigErr() error {
6377	return nil
6378}
6379
6380func (s *ResourceNotFoundException) Error() string {
6381	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6382}
6383
6384// Status code returns the HTTP status code for the request's response error.
6385func (s *ResourceNotFoundException) StatusCode() int {
6386	return s.RespMetadata.StatusCode
6387}
6388
6389// RequestID returns the service's response RequestID for request.
6390func (s *ResourceNotFoundException) RequestID() string {
6391	return s.RespMetadata.RequestID
6392}
6393
6394// The resource tags that AWS Firewall Manager uses to determine if a particular
6395// resource should be included or excluded from the AWS Firewall Manager policy.
6396// Tags enable you to categorize your AWS resources in different ways, for example,
6397// by purpose, owner, or environment. Each tag consists of a key and an optional
6398// value. Firewall Manager combines the tags with "AND" so that, if you add
6399// more than one tag to a policy scope, a resource must have all the specified
6400// tags to be included or excluded. For more information, see Working with Tag
6401// Editor (https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html).
6402type ResourceTag struct {
6403	_ struct{} `type:"structure"`
6404
6405	// The resource tag key.
6406	//
6407	// Key is a required field
6408	Key *string `min:"1" type:"string" required:"true"`
6409
6410	// The resource tag value.
6411	Value *string `type:"string"`
6412}
6413
6414// String returns the string representation
6415func (s ResourceTag) String() string {
6416	return awsutil.Prettify(s)
6417}
6418
6419// GoString returns the string representation
6420func (s ResourceTag) GoString() string {
6421	return s.String()
6422}
6423
6424// Validate inspects the fields of the type to determine if they are valid.
6425func (s *ResourceTag) Validate() error {
6426	invalidParams := request.ErrInvalidParams{Context: "ResourceTag"}
6427	if s.Key == nil {
6428		invalidParams.Add(request.NewErrParamRequired("Key"))
6429	}
6430	if s.Key != nil && len(*s.Key) < 1 {
6431		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
6432	}
6433
6434	if invalidParams.Len() > 0 {
6435		return invalidParams
6436	}
6437	return nil
6438}
6439
6440// SetKey sets the Key field's value.
6441func (s *ResourceTag) SetKey(v string) *ResourceTag {
6442	s.Key = &v
6443	return s
6444}
6445
6446// SetValue sets the Value field's value.
6447func (s *ResourceTag) SetValue(v string) *ResourceTag {
6448	s.Value = &v
6449	return s
6450}
6451
6452// Violation detail based on resource type.
6453type ResourceViolation struct {
6454	_ struct{} `type:"structure"`
6455
6456	// Violation details for an EC2 instance.
6457	AwsEc2InstanceViolation *AwsEc2InstanceViolation `type:"structure"`
6458
6459	// Violation details for network interface.
6460	AwsEc2NetworkInterfaceViolation *AwsEc2NetworkInterfaceViolation `type:"structure"`
6461
6462	// Violation details for security groups.
6463	AwsVPCSecurityGroupViolation *AwsVPCSecurityGroupViolation `type:"structure"`
6464
6465	// Violation detail for an Network Firewall policy that indicates that a subnet
6466	// is not associated with the expected Firewall Manager managed route table.
6467	NetworkFirewallMissingExpectedRTViolation *NetworkFirewallMissingExpectedRTViolation `type:"structure"`
6468
6469	// Violation detail for an Network Firewall policy that indicates that a subnet
6470	// has no Firewall Manager managed firewall in its VPC.
6471	NetworkFirewallMissingFirewallViolation *NetworkFirewallMissingFirewallViolation `type:"structure"`
6472
6473	// Violation detail for an Network Firewall policy that indicates that an Availability
6474	// Zone is missing the expected Firewall Manager managed subnet.
6475	NetworkFirewallMissingSubnetViolation *NetworkFirewallMissingSubnetViolation `type:"structure"`
6476
6477	// Violation detail for an Network Firewall policy that indicates that a firewall
6478	// policy in an individual account has been modified in a way that makes it
6479	// noncompliant. For example, the individual account owner might have deleted
6480	// a rule group, changed the priority of a stateless rule group, or changed
6481	// a policy default action.
6482	NetworkFirewallPolicyModifiedViolation *NetworkFirewallPolicyModifiedViolation `type:"structure"`
6483}
6484
6485// String returns the string representation
6486func (s ResourceViolation) String() string {
6487	return awsutil.Prettify(s)
6488}
6489
6490// GoString returns the string representation
6491func (s ResourceViolation) GoString() string {
6492	return s.String()
6493}
6494
6495// SetAwsEc2InstanceViolation sets the AwsEc2InstanceViolation field's value.
6496func (s *ResourceViolation) SetAwsEc2InstanceViolation(v *AwsEc2InstanceViolation) *ResourceViolation {
6497	s.AwsEc2InstanceViolation = v
6498	return s
6499}
6500
6501// SetAwsEc2NetworkInterfaceViolation sets the AwsEc2NetworkInterfaceViolation field's value.
6502func (s *ResourceViolation) SetAwsEc2NetworkInterfaceViolation(v *AwsEc2NetworkInterfaceViolation) *ResourceViolation {
6503	s.AwsEc2NetworkInterfaceViolation = v
6504	return s
6505}
6506
6507// SetAwsVPCSecurityGroupViolation sets the AwsVPCSecurityGroupViolation field's value.
6508func (s *ResourceViolation) SetAwsVPCSecurityGroupViolation(v *AwsVPCSecurityGroupViolation) *ResourceViolation {
6509	s.AwsVPCSecurityGroupViolation = v
6510	return s
6511}
6512
6513// SetNetworkFirewallMissingExpectedRTViolation sets the NetworkFirewallMissingExpectedRTViolation field's value.
6514func (s *ResourceViolation) SetNetworkFirewallMissingExpectedRTViolation(v *NetworkFirewallMissingExpectedRTViolation) *ResourceViolation {
6515	s.NetworkFirewallMissingExpectedRTViolation = v
6516	return s
6517}
6518
6519// SetNetworkFirewallMissingFirewallViolation sets the NetworkFirewallMissingFirewallViolation field's value.
6520func (s *ResourceViolation) SetNetworkFirewallMissingFirewallViolation(v *NetworkFirewallMissingFirewallViolation) *ResourceViolation {
6521	s.NetworkFirewallMissingFirewallViolation = v
6522	return s
6523}
6524
6525// SetNetworkFirewallMissingSubnetViolation sets the NetworkFirewallMissingSubnetViolation field's value.
6526func (s *ResourceViolation) SetNetworkFirewallMissingSubnetViolation(v *NetworkFirewallMissingSubnetViolation) *ResourceViolation {
6527	s.NetworkFirewallMissingSubnetViolation = v
6528	return s
6529}
6530
6531// SetNetworkFirewallPolicyModifiedViolation sets the NetworkFirewallPolicyModifiedViolation field's value.
6532func (s *ResourceViolation) SetNetworkFirewallPolicyModifiedViolation(v *NetworkFirewallPolicyModifiedViolation) *ResourceViolation {
6533	s.NetworkFirewallPolicyModifiedViolation = v
6534	return s
6535}
6536
6537// Remediation option for the rule specified in the ViolationTarget.
6538type SecurityGroupRemediationAction struct {
6539	_ struct{} `type:"structure"`
6540
6541	// Brief description of the action that will be performed.
6542	Description *string `type:"string"`
6543
6544	// Indicates if the current action is the default action.
6545	IsDefaultAction *bool `type:"boolean"`
6546
6547	// The remediation action that will be performed.
6548	RemediationActionType *string `type:"string" enum:"RemediationActionType"`
6549
6550	// The final state of the rule specified in the ViolationTarget after it is
6551	// remediated.
6552	RemediationResult *SecurityGroupRuleDescription `type:"structure"`
6553}
6554
6555// String returns the string representation
6556func (s SecurityGroupRemediationAction) String() string {
6557	return awsutil.Prettify(s)
6558}
6559
6560// GoString returns the string representation
6561func (s SecurityGroupRemediationAction) GoString() string {
6562	return s.String()
6563}
6564
6565// SetDescription sets the Description field's value.
6566func (s *SecurityGroupRemediationAction) SetDescription(v string) *SecurityGroupRemediationAction {
6567	s.Description = &v
6568	return s
6569}
6570
6571// SetIsDefaultAction sets the IsDefaultAction field's value.
6572func (s *SecurityGroupRemediationAction) SetIsDefaultAction(v bool) *SecurityGroupRemediationAction {
6573	s.IsDefaultAction = &v
6574	return s
6575}
6576
6577// SetRemediationActionType sets the RemediationActionType field's value.
6578func (s *SecurityGroupRemediationAction) SetRemediationActionType(v string) *SecurityGroupRemediationAction {
6579	s.RemediationActionType = &v
6580	return s
6581}
6582
6583// SetRemediationResult sets the RemediationResult field's value.
6584func (s *SecurityGroupRemediationAction) SetRemediationResult(v *SecurityGroupRuleDescription) *SecurityGroupRemediationAction {
6585	s.RemediationResult = v
6586	return s
6587}
6588
6589// Describes a set of permissions for a security group rule.
6590type SecurityGroupRuleDescription struct {
6591	_ struct{} `type:"structure"`
6592
6593	// The start of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6
6594	// type number. A value of -1 indicates all ICMP/ICMPv6 types.
6595	FromPort *int64 `type:"long"`
6596
6597	// The IPv4 ranges for the security group rule.
6598	IPV4Range *string `type:"string"`
6599
6600	// The IPv6 ranges for the security group rule.
6601	IPV6Range *string `type:"string"`
6602
6603	// The ID of the prefix list for the security group rule.
6604	PrefixListId *string `min:"1" type:"string"`
6605
6606	// The IP protocol name (tcp, udp, icmp, icmpv6) or number.
6607	Protocol *string `type:"string"`
6608
6609	// The end of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6
6610	// code. A value of -1 indicates all ICMP/ICMPv6 codes.
6611	ToPort *int64 `type:"long"`
6612}
6613
6614// String returns the string representation
6615func (s SecurityGroupRuleDescription) String() string {
6616	return awsutil.Prettify(s)
6617}
6618
6619// GoString returns the string representation
6620func (s SecurityGroupRuleDescription) GoString() string {
6621	return s.String()
6622}
6623
6624// SetFromPort sets the FromPort field's value.
6625func (s *SecurityGroupRuleDescription) SetFromPort(v int64) *SecurityGroupRuleDescription {
6626	s.FromPort = &v
6627	return s
6628}
6629
6630// SetIPV4Range sets the IPV4Range field's value.
6631func (s *SecurityGroupRuleDescription) SetIPV4Range(v string) *SecurityGroupRuleDescription {
6632	s.IPV4Range = &v
6633	return s
6634}
6635
6636// SetIPV6Range sets the IPV6Range field's value.
6637func (s *SecurityGroupRuleDescription) SetIPV6Range(v string) *SecurityGroupRuleDescription {
6638	s.IPV6Range = &v
6639	return s
6640}
6641
6642// SetPrefixListId sets the PrefixListId field's value.
6643func (s *SecurityGroupRuleDescription) SetPrefixListId(v string) *SecurityGroupRuleDescription {
6644	s.PrefixListId = &v
6645	return s
6646}
6647
6648// SetProtocol sets the Protocol field's value.
6649func (s *SecurityGroupRuleDescription) SetProtocol(v string) *SecurityGroupRuleDescription {
6650	s.Protocol = &v
6651	return s
6652}
6653
6654// SetToPort sets the ToPort field's value.
6655func (s *SecurityGroupRuleDescription) SetToPort(v int64) *SecurityGroupRuleDescription {
6656	s.ToPort = &v
6657	return s
6658}
6659
6660// Details about the security service that is being used to protect the resources.
6661type SecurityServicePolicyData struct {
6662	_ struct{} `type:"structure"`
6663
6664	// Details about the service that are specific to the service type, in JSON
6665	// format. For service type SHIELD_ADVANCED, this is an empty string.
6666	//
6667	//    * Example: NETWORK_FIREWALL "{\"type\":\"NETWORK_FIREWALL\",\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-1:1234567891011:stateless-rulegroup/rulegroup2\",\"priority\":10}],\"networkFirewallStatelessDefaultActions\":[\"aws:pass\",\"custom1\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"custom2\",\"aws:pass\"],\"networkFirewallStatelessCustomActions\":[{\"actionName\":\"custom1\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"dimension1\"}]}}},{\"actionName\":\"custom2\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"dimension2\"}]}}}],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-1:1234567891011:stateful-rulegroup/rulegroup1\"}],\"networkFirewallOrchestrationConfig\":{\"singleFirewallEndpointPerVPC\":true,\"allowedIPV4CidrList\":[\"10.24.34.0/28\"]}
6668	//    }"
6669	//
6670	//    * Example: WAFV2 "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAmazonIpReputationList\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":{\"logDestinationConfigs\":[\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\"],\"redactedFields\":[{\"redactedFieldType\":\"SingleHeader\",\"redactedFieldValue\":\"Cookies\"},{\"redactedFieldType\":\"Method\"}]}}"
6671	//    In the loggingConfiguration, you can specify one logDestinationConfigs,
6672	//    you can optionally provide up to 20 redactedFields, and the RedactedFieldType
6673	//    must be one of URI, QUERY_STRING, HEADER, or METHOD.
6674	//
6675	//    * Example: WAF Classic "{\"type\": \"WAF\", \"ruleGroups\": [{\"id\":\"12345678-1bcd-9012-efga-0987654321ab\",
6676	//    \"overrideAction\" : {\"type\": \"COUNT\"}}], \"defaultAction\": {\"type\":
6677	//    \"BLOCK\"}}"
6678	//
6679	//    * Example: SECURITY_GROUPS_COMMON "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false,
6680	//    \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" sg-000e55995d61a06bd\"}]}"
6681	//
6682	//    * Example: SECURITY_GROUPS_CONTENT_AUDIT "{\"type\":\"SECURITY_GROUPS_CONTENT_AUDIT\",\"securityGroups\":[{\"id\":\"sg-000e55995d61a06bd\"}],\"securityGroupAction\":{\"type\":\"ALLOW\"}}"
6683	//    The security group action for content audit can be ALLOW or DENY. For
6684	//    ALLOW, all in-scope security group rules must be within the allowed range
6685	//    of the policy's security group rules. For DENY, all in-scope security
6686	//    group rules must not contain a value or a range that matches a rule value
6687	//    or range in the policy security group.
6688	//
6689	//    * Example: SECURITY_GROUPS_USAGE_AUDIT "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":true,\"coalesceRedundantSecurityGroups\":true}"
6690	ManagedServiceData *string `min:"1" type:"string"`
6691
6692	// The service that the policy is using to protect the resources. This specifies
6693	// the type of policy that is created, either an AWS WAF policy, a Shield Advanced
6694	// policy, or a security group policy. For security group policies, Firewall
6695	// Manager supports one security group for each common policy and for each content
6696	// audit policy. This is an adjustable limit that you can increase by contacting
6697	// AWS Support.
6698	//
6699	// Type is a required field
6700	Type *string `type:"string" required:"true" enum:"SecurityServiceType"`
6701}
6702
6703// String returns the string representation
6704func (s SecurityServicePolicyData) String() string {
6705	return awsutil.Prettify(s)
6706}
6707
6708// GoString returns the string representation
6709func (s SecurityServicePolicyData) GoString() string {
6710	return s.String()
6711}
6712
6713// Validate inspects the fields of the type to determine if they are valid.
6714func (s *SecurityServicePolicyData) Validate() error {
6715	invalidParams := request.ErrInvalidParams{Context: "SecurityServicePolicyData"}
6716	if s.ManagedServiceData != nil && len(*s.ManagedServiceData) < 1 {
6717		invalidParams.Add(request.NewErrParamMinLen("ManagedServiceData", 1))
6718	}
6719	if s.Type == nil {
6720		invalidParams.Add(request.NewErrParamRequired("Type"))
6721	}
6722
6723	if invalidParams.Len() > 0 {
6724		return invalidParams
6725	}
6726	return nil
6727}
6728
6729// SetManagedServiceData sets the ManagedServiceData field's value.
6730func (s *SecurityServicePolicyData) SetManagedServiceData(v string) *SecurityServicePolicyData {
6731	s.ManagedServiceData = &v
6732	return s
6733}
6734
6735// SetType sets the Type field's value.
6736func (s *SecurityServicePolicyData) SetType(v string) *SecurityServicePolicyData {
6737	s.Type = &v
6738	return s
6739}
6740
6741// AWS Network Firewall stateful rule group, used in a NetworkFirewallPolicyDescription.
6742type StatefulRuleGroup struct {
6743	_ struct{} `type:"structure"`
6744
6745	// The resource ID of the rule group.
6746	ResourceId *string `min:"1" type:"string"`
6747
6748	// The name of the rule group.
6749	RuleGroupName *string `min:"1" type:"string"`
6750}
6751
6752// String returns the string representation
6753func (s StatefulRuleGroup) String() string {
6754	return awsutil.Prettify(s)
6755}
6756
6757// GoString returns the string representation
6758func (s StatefulRuleGroup) GoString() string {
6759	return s.String()
6760}
6761
6762// SetResourceId sets the ResourceId field's value.
6763func (s *StatefulRuleGroup) SetResourceId(v string) *StatefulRuleGroup {
6764	s.ResourceId = &v
6765	return s
6766}
6767
6768// SetRuleGroupName sets the RuleGroupName field's value.
6769func (s *StatefulRuleGroup) SetRuleGroupName(v string) *StatefulRuleGroup {
6770	s.RuleGroupName = &v
6771	return s
6772}
6773
6774// AWS Network Firewall stateless rule group, used in a NetworkFirewallPolicyDescription.
6775type StatelessRuleGroup struct {
6776	_ struct{} `type:"structure"`
6777
6778	// The priority of the rule group. AWS Network Firewall evaluates the stateless
6779	// rule groups in a firewall policy starting from the lowest priority setting.
6780	Priority *int64 `min:"1" type:"integer"`
6781
6782	// The resource ID of the rule group.
6783	ResourceId *string `min:"1" type:"string"`
6784
6785	// The name of the rule group.
6786	RuleGroupName *string `min:"1" type:"string"`
6787}
6788
6789// String returns the string representation
6790func (s StatelessRuleGroup) String() string {
6791	return awsutil.Prettify(s)
6792}
6793
6794// GoString returns the string representation
6795func (s StatelessRuleGroup) GoString() string {
6796	return s.String()
6797}
6798
6799// SetPriority sets the Priority field's value.
6800func (s *StatelessRuleGroup) SetPriority(v int64) *StatelessRuleGroup {
6801	s.Priority = &v
6802	return s
6803}
6804
6805// SetResourceId sets the ResourceId field's value.
6806func (s *StatelessRuleGroup) SetResourceId(v string) *StatelessRuleGroup {
6807	s.ResourceId = &v
6808	return s
6809}
6810
6811// SetRuleGroupName sets the RuleGroupName field's value.
6812func (s *StatelessRuleGroup) SetRuleGroupName(v string) *StatelessRuleGroup {
6813	s.RuleGroupName = &v
6814	return s
6815}
6816
6817// A collection of key:value pairs associated with an AWS resource. The key:value
6818// pair can be anything you define. Typically, the tag key represents a category
6819// (such as "environment") and the tag value represents a specific value within
6820// that category (such as "test," "development," or "production"). You can add
6821// up to 50 tags to each AWS resource.
6822type Tag struct {
6823	_ struct{} `type:"structure"`
6824
6825	// Part of the key:value pair that defines a tag. You can use a tag key to describe
6826	// a category of information, such as "customer." Tag keys are case-sensitive.
6827	//
6828	// Key is a required field
6829	Key *string `min:"1" type:"string" required:"true"`
6830
6831	// Part of the key:value pair that defines a tag. You can use a tag value to
6832	// describe a specific value within a category, such as "companyA" or "companyB."
6833	// Tag values are case-sensitive.
6834	//
6835	// Value is a required field
6836	Value *string `type:"string" required:"true"`
6837}
6838
6839// String returns the string representation
6840func (s Tag) String() string {
6841	return awsutil.Prettify(s)
6842}
6843
6844// GoString returns the string representation
6845func (s Tag) GoString() string {
6846	return s.String()
6847}
6848
6849// Validate inspects the fields of the type to determine if they are valid.
6850func (s *Tag) Validate() error {
6851	invalidParams := request.ErrInvalidParams{Context: "Tag"}
6852	if s.Key == nil {
6853		invalidParams.Add(request.NewErrParamRequired("Key"))
6854	}
6855	if s.Key != nil && len(*s.Key) < 1 {
6856		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
6857	}
6858	if s.Value == nil {
6859		invalidParams.Add(request.NewErrParamRequired("Value"))
6860	}
6861
6862	if invalidParams.Len() > 0 {
6863		return invalidParams
6864	}
6865	return nil
6866}
6867
6868// SetKey sets the Key field's value.
6869func (s *Tag) SetKey(v string) *Tag {
6870	s.Key = &v
6871	return s
6872}
6873
6874// SetValue sets the Value field's value.
6875func (s *Tag) SetValue(v string) *Tag {
6876	s.Value = &v
6877	return s
6878}
6879
6880type TagResourceInput struct {
6881	_ struct{} `type:"structure"`
6882
6883	// The Amazon Resource Name (ARN) of the resource to return tags for. The AWS
6884	// Firewall Manager resources that support tagging are policies, applications
6885	// lists, and protocols lists.
6886	//
6887	// ResourceArn is a required field
6888	ResourceArn *string `min:"1" type:"string" required:"true"`
6889
6890	// The tags to add to the resource.
6891	//
6892	// TagList is a required field
6893	TagList []*Tag `type:"list" required:"true"`
6894}
6895
6896// String returns the string representation
6897func (s TagResourceInput) String() string {
6898	return awsutil.Prettify(s)
6899}
6900
6901// GoString returns the string representation
6902func (s TagResourceInput) GoString() string {
6903	return s.String()
6904}
6905
6906// Validate inspects the fields of the type to determine if they are valid.
6907func (s *TagResourceInput) Validate() error {
6908	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
6909	if s.ResourceArn == nil {
6910		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
6911	}
6912	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
6913		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
6914	}
6915	if s.TagList == nil {
6916		invalidParams.Add(request.NewErrParamRequired("TagList"))
6917	}
6918	if s.TagList != nil {
6919		for i, v := range s.TagList {
6920			if v == nil {
6921				continue
6922			}
6923			if err := v.Validate(); err != nil {
6924				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagList", i), err.(request.ErrInvalidParams))
6925			}
6926		}
6927	}
6928
6929	if invalidParams.Len() > 0 {
6930		return invalidParams
6931	}
6932	return nil
6933}
6934
6935// SetResourceArn sets the ResourceArn field's value.
6936func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
6937	s.ResourceArn = &v
6938	return s
6939}
6940
6941// SetTagList sets the TagList field's value.
6942func (s *TagResourceInput) SetTagList(v []*Tag) *TagResourceInput {
6943	s.TagList = v
6944	return s
6945}
6946
6947type TagResourceOutput struct {
6948	_ struct{} `type:"structure"`
6949}
6950
6951// String returns the string representation
6952func (s TagResourceOutput) String() string {
6953	return awsutil.Prettify(s)
6954}
6955
6956// GoString returns the string representation
6957func (s TagResourceOutput) GoString() string {
6958	return s.String()
6959}
6960
6961type UntagResourceInput struct {
6962	_ struct{} `type:"structure"`
6963
6964	// The Amazon Resource Name (ARN) of the resource to return tags for. The AWS
6965	// Firewall Manager resources that support tagging are policies, applications
6966	// lists, and protocols lists.
6967	//
6968	// ResourceArn is a required field
6969	ResourceArn *string `min:"1" type:"string" required:"true"`
6970
6971	// The keys of the tags to remove from the resource.
6972	//
6973	// TagKeys is a required field
6974	TagKeys []*string `type:"list" required:"true"`
6975}
6976
6977// String returns the string representation
6978func (s UntagResourceInput) String() string {
6979	return awsutil.Prettify(s)
6980}
6981
6982// GoString returns the string representation
6983func (s UntagResourceInput) GoString() string {
6984	return s.String()
6985}
6986
6987// Validate inspects the fields of the type to determine if they are valid.
6988func (s *UntagResourceInput) Validate() error {
6989	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
6990	if s.ResourceArn == nil {
6991		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
6992	}
6993	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
6994		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
6995	}
6996	if s.TagKeys == nil {
6997		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
6998	}
6999
7000	if invalidParams.Len() > 0 {
7001		return invalidParams
7002	}
7003	return nil
7004}
7005
7006// SetResourceArn sets the ResourceArn field's value.
7007func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
7008	s.ResourceArn = &v
7009	return s
7010}
7011
7012// SetTagKeys sets the TagKeys field's value.
7013func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
7014	s.TagKeys = v
7015	return s
7016}
7017
7018type UntagResourceOutput struct {
7019	_ struct{} `type:"structure"`
7020}
7021
7022// String returns the string representation
7023func (s UntagResourceOutput) String() string {
7024	return awsutil.Prettify(s)
7025}
7026
7027// GoString returns the string representation
7028func (s UntagResourceOutput) GoString() string {
7029	return s.String()
7030}
7031
7032// Violations for a resource based on the specified AWS Firewall Manager policy
7033// and AWS account.
7034type ViolationDetail struct {
7035	_ struct{} `type:"structure"`
7036
7037	// The AWS account that the violation details were requested for.
7038	//
7039	// MemberAccount is a required field
7040	MemberAccount *string `min:"1" type:"string" required:"true"`
7041
7042	// The ID of the AWS Firewall Manager policy that the violation details were
7043	// requested for.
7044	//
7045	// PolicyId is a required field
7046	PolicyId *string `min:"36" type:"string" required:"true"`
7047
7048	// Brief description for the requested resource.
7049	ResourceDescription *string `type:"string"`
7050
7051	// The resource ID that the violation details were requested for.
7052	//
7053	// ResourceId is a required field
7054	ResourceId *string `min:"1" type:"string" required:"true"`
7055
7056	// The ResourceTag objects associated with the resource.
7057	ResourceTags []*Tag `type:"list"`
7058
7059	// The resource type that the violation details were requested for.
7060	//
7061	// ResourceType is a required field
7062	ResourceType *string `min:"1" type:"string" required:"true"`
7063
7064	// List of violations for the requested resource.
7065	//
7066	// ResourceViolations is a required field
7067	ResourceViolations []*ResourceViolation `type:"list" required:"true"`
7068}
7069
7070// String returns the string representation
7071func (s ViolationDetail) String() string {
7072	return awsutil.Prettify(s)
7073}
7074
7075// GoString returns the string representation
7076func (s ViolationDetail) GoString() string {
7077	return s.String()
7078}
7079
7080// SetMemberAccount sets the MemberAccount field's value.
7081func (s *ViolationDetail) SetMemberAccount(v string) *ViolationDetail {
7082	s.MemberAccount = &v
7083	return s
7084}
7085
7086// SetPolicyId sets the PolicyId field's value.
7087func (s *ViolationDetail) SetPolicyId(v string) *ViolationDetail {
7088	s.PolicyId = &v
7089	return s
7090}
7091
7092// SetResourceDescription sets the ResourceDescription field's value.
7093func (s *ViolationDetail) SetResourceDescription(v string) *ViolationDetail {
7094	s.ResourceDescription = &v
7095	return s
7096}
7097
7098// SetResourceId sets the ResourceId field's value.
7099func (s *ViolationDetail) SetResourceId(v string) *ViolationDetail {
7100	s.ResourceId = &v
7101	return s
7102}
7103
7104// SetResourceTags sets the ResourceTags field's value.
7105func (s *ViolationDetail) SetResourceTags(v []*Tag) *ViolationDetail {
7106	s.ResourceTags = v
7107	return s
7108}
7109
7110// SetResourceType sets the ResourceType field's value.
7111func (s *ViolationDetail) SetResourceType(v string) *ViolationDetail {
7112	s.ResourceType = &v
7113	return s
7114}
7115
7116// SetResourceViolations sets the ResourceViolations field's value.
7117func (s *ViolationDetail) SetResourceViolations(v []*ResourceViolation) *ViolationDetail {
7118	s.ResourceViolations = v
7119	return s
7120}
7121
7122const (
7123	// AccountRoleStatusReady is a AccountRoleStatus enum value
7124	AccountRoleStatusReady = "READY"
7125
7126	// AccountRoleStatusCreating is a AccountRoleStatus enum value
7127	AccountRoleStatusCreating = "CREATING"
7128
7129	// AccountRoleStatusPendingDeletion is a AccountRoleStatus enum value
7130	AccountRoleStatusPendingDeletion = "PENDING_DELETION"
7131
7132	// AccountRoleStatusDeleting is a AccountRoleStatus enum value
7133	AccountRoleStatusDeleting = "DELETING"
7134
7135	// AccountRoleStatusDeleted is a AccountRoleStatus enum value
7136	AccountRoleStatusDeleted = "DELETED"
7137)
7138
7139// AccountRoleStatus_Values returns all elements of the AccountRoleStatus enum
7140func AccountRoleStatus_Values() []string {
7141	return []string{
7142		AccountRoleStatusReady,
7143		AccountRoleStatusCreating,
7144		AccountRoleStatusPendingDeletion,
7145		AccountRoleStatusDeleting,
7146		AccountRoleStatusDeleted,
7147	}
7148}
7149
7150const (
7151	// CustomerPolicyScopeIdTypeAccount is a CustomerPolicyScopeIdType enum value
7152	CustomerPolicyScopeIdTypeAccount = "ACCOUNT"
7153
7154	// CustomerPolicyScopeIdTypeOrgUnit is a CustomerPolicyScopeIdType enum value
7155	CustomerPolicyScopeIdTypeOrgUnit = "ORG_UNIT"
7156)
7157
7158// CustomerPolicyScopeIdType_Values returns all elements of the CustomerPolicyScopeIdType enum
7159func CustomerPolicyScopeIdType_Values() []string {
7160	return []string{
7161		CustomerPolicyScopeIdTypeAccount,
7162		CustomerPolicyScopeIdTypeOrgUnit,
7163	}
7164}
7165
7166const (
7167	// DependentServiceNameAwsconfig is a DependentServiceName enum value
7168	DependentServiceNameAwsconfig = "AWSCONFIG"
7169
7170	// DependentServiceNameAwswaf is a DependentServiceName enum value
7171	DependentServiceNameAwswaf = "AWSWAF"
7172
7173	// DependentServiceNameAwsshieldAdvanced is a DependentServiceName enum value
7174	DependentServiceNameAwsshieldAdvanced = "AWSSHIELD_ADVANCED"
7175
7176	// DependentServiceNameAwsvpc is a DependentServiceName enum value
7177	DependentServiceNameAwsvpc = "AWSVPC"
7178)
7179
7180// DependentServiceName_Values returns all elements of the DependentServiceName enum
7181func DependentServiceName_Values() []string {
7182	return []string{
7183		DependentServiceNameAwsconfig,
7184		DependentServiceNameAwswaf,
7185		DependentServiceNameAwsshieldAdvanced,
7186		DependentServiceNameAwsvpc,
7187	}
7188}
7189
7190const (
7191	// PolicyComplianceStatusTypeCompliant is a PolicyComplianceStatusType enum value
7192	PolicyComplianceStatusTypeCompliant = "COMPLIANT"
7193
7194	// PolicyComplianceStatusTypeNonCompliant is a PolicyComplianceStatusType enum value
7195	PolicyComplianceStatusTypeNonCompliant = "NON_COMPLIANT"
7196)
7197
7198// PolicyComplianceStatusType_Values returns all elements of the PolicyComplianceStatusType enum
7199func PolicyComplianceStatusType_Values() []string {
7200	return []string{
7201		PolicyComplianceStatusTypeCompliant,
7202		PolicyComplianceStatusTypeNonCompliant,
7203	}
7204}
7205
7206const (
7207	// RemediationActionTypeRemove is a RemediationActionType enum value
7208	RemediationActionTypeRemove = "REMOVE"
7209
7210	// RemediationActionTypeModify is a RemediationActionType enum value
7211	RemediationActionTypeModify = "MODIFY"
7212)
7213
7214// RemediationActionType_Values returns all elements of the RemediationActionType enum
7215func RemediationActionType_Values() []string {
7216	return []string{
7217		RemediationActionTypeRemove,
7218		RemediationActionTypeModify,
7219	}
7220}
7221
7222const (
7223	// SecurityServiceTypeWaf is a SecurityServiceType enum value
7224	SecurityServiceTypeWaf = "WAF"
7225
7226	// SecurityServiceTypeWafv2 is a SecurityServiceType enum value
7227	SecurityServiceTypeWafv2 = "WAFV2"
7228
7229	// SecurityServiceTypeShieldAdvanced is a SecurityServiceType enum value
7230	SecurityServiceTypeShieldAdvanced = "SHIELD_ADVANCED"
7231
7232	// SecurityServiceTypeSecurityGroupsCommon is a SecurityServiceType enum value
7233	SecurityServiceTypeSecurityGroupsCommon = "SECURITY_GROUPS_COMMON"
7234
7235	// SecurityServiceTypeSecurityGroupsContentAudit is a SecurityServiceType enum value
7236	SecurityServiceTypeSecurityGroupsContentAudit = "SECURITY_GROUPS_CONTENT_AUDIT"
7237
7238	// SecurityServiceTypeSecurityGroupsUsageAudit is a SecurityServiceType enum value
7239	SecurityServiceTypeSecurityGroupsUsageAudit = "SECURITY_GROUPS_USAGE_AUDIT"
7240
7241	// SecurityServiceTypeNetworkFirewall is a SecurityServiceType enum value
7242	SecurityServiceTypeNetworkFirewall = "NETWORK_FIREWALL"
7243)
7244
7245// SecurityServiceType_Values returns all elements of the SecurityServiceType enum
7246func SecurityServiceType_Values() []string {
7247	return []string{
7248		SecurityServiceTypeWaf,
7249		SecurityServiceTypeWafv2,
7250		SecurityServiceTypeShieldAdvanced,
7251		SecurityServiceTypeSecurityGroupsCommon,
7252		SecurityServiceTypeSecurityGroupsContentAudit,
7253		SecurityServiceTypeSecurityGroupsUsageAudit,
7254		SecurityServiceTypeNetworkFirewall,
7255	}
7256}
7257
7258const (
7259	// ViolationReasonWebAclMissingRuleGroup is a ViolationReason enum value
7260	ViolationReasonWebAclMissingRuleGroup = "WEB_ACL_MISSING_RULE_GROUP"
7261
7262	// ViolationReasonResourceMissingWebAcl is a ViolationReason enum value
7263	ViolationReasonResourceMissingWebAcl = "RESOURCE_MISSING_WEB_ACL"
7264
7265	// ViolationReasonResourceIncorrectWebAcl is a ViolationReason enum value
7266	ViolationReasonResourceIncorrectWebAcl = "RESOURCE_INCORRECT_WEB_ACL"
7267
7268	// ViolationReasonResourceMissingShieldProtection is a ViolationReason enum value
7269	ViolationReasonResourceMissingShieldProtection = "RESOURCE_MISSING_SHIELD_PROTECTION"
7270
7271	// ViolationReasonResourceMissingWebAclOrShieldProtection is a ViolationReason enum value
7272	ViolationReasonResourceMissingWebAclOrShieldProtection = "RESOURCE_MISSING_WEB_ACL_OR_SHIELD_PROTECTION"
7273
7274	// ViolationReasonResourceMissingSecurityGroup is a ViolationReason enum value
7275	ViolationReasonResourceMissingSecurityGroup = "RESOURCE_MISSING_SECURITY_GROUP"
7276
7277	// ViolationReasonResourceViolatesAuditSecurityGroup is a ViolationReason enum value
7278	ViolationReasonResourceViolatesAuditSecurityGroup = "RESOURCE_VIOLATES_AUDIT_SECURITY_GROUP"
7279
7280	// ViolationReasonSecurityGroupUnused is a ViolationReason enum value
7281	ViolationReasonSecurityGroupUnused = "SECURITY_GROUP_UNUSED"
7282
7283	// ViolationReasonSecurityGroupRedundant is a ViolationReason enum value
7284	ViolationReasonSecurityGroupRedundant = "SECURITY_GROUP_REDUNDANT"
7285
7286	// ViolationReasonMissingFirewall is a ViolationReason enum value
7287	ViolationReasonMissingFirewall = "MISSING_FIREWALL"
7288
7289	// ViolationReasonMissingFirewallSubnetInAz is a ViolationReason enum value
7290	ViolationReasonMissingFirewallSubnetInAz = "MISSING_FIREWALL_SUBNET_IN_AZ"
7291
7292	// ViolationReasonMissingExpectedRouteTable is a ViolationReason enum value
7293	ViolationReasonMissingExpectedRouteTable = "MISSING_EXPECTED_ROUTE_TABLE"
7294
7295	// ViolationReasonNetworkFirewallPolicyModified is a ViolationReason enum value
7296	ViolationReasonNetworkFirewallPolicyModified = "NETWORK_FIREWALL_POLICY_MODIFIED"
7297)
7298
7299// ViolationReason_Values returns all elements of the ViolationReason enum
7300func ViolationReason_Values() []string {
7301	return []string{
7302		ViolationReasonWebAclMissingRuleGroup,
7303		ViolationReasonResourceMissingWebAcl,
7304		ViolationReasonResourceIncorrectWebAcl,
7305		ViolationReasonResourceMissingShieldProtection,
7306		ViolationReasonResourceMissingWebAclOrShieldProtection,
7307		ViolationReasonResourceMissingSecurityGroup,
7308		ViolationReasonResourceViolatesAuditSecurityGroup,
7309		ViolationReasonSecurityGroupUnused,
7310		ViolationReasonSecurityGroupRedundant,
7311		ViolationReasonMissingFirewall,
7312		ViolationReasonMissingFirewallSubnetInAz,
7313		ViolationReasonMissingExpectedRouteTable,
7314		ViolationReasonNetworkFirewallPolicyModified,
7315	}
7316}
7317