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// A DNS Firewall rule group that Firewall Manager tried to associate with a
3404// VPC is already associated with the VPC and can't be associated again.
3405type DnsDuplicateRuleGroupViolation struct {
3406	_ struct{} `type:"structure"`
3407
3408	// The ID of the VPC.
3409	ViolationTarget *string `type:"string"`
3410
3411	// A description of the violation that specifies the rule group and VPC.
3412	ViolationTargetDescription *string `type:"string"`
3413}
3414
3415// String returns the string representation
3416func (s DnsDuplicateRuleGroupViolation) String() string {
3417	return awsutil.Prettify(s)
3418}
3419
3420// GoString returns the string representation
3421func (s DnsDuplicateRuleGroupViolation) GoString() string {
3422	return s.String()
3423}
3424
3425// SetViolationTarget sets the ViolationTarget field's value.
3426func (s *DnsDuplicateRuleGroupViolation) SetViolationTarget(v string) *DnsDuplicateRuleGroupViolation {
3427	s.ViolationTarget = &v
3428	return s
3429}
3430
3431// SetViolationTargetDescription sets the ViolationTargetDescription field's value.
3432func (s *DnsDuplicateRuleGroupViolation) SetViolationTargetDescription(v string) *DnsDuplicateRuleGroupViolation {
3433	s.ViolationTargetDescription = &v
3434	return s
3435}
3436
3437// The VPC that Firewall Manager was applying a DNS Fireall policy to reached
3438// the limit for associated DNS Firewall rule groups. Firewall Manager tried
3439// to associate another rule group with the VPC and failed due to the limit.
3440type DnsRuleGroupLimitExceededViolation struct {
3441	_ struct{} `type:"structure"`
3442
3443	// The number of rule groups currently associated with the VPC.
3444	NumberOfRuleGroupsAlreadyAssociated *int64 `type:"integer"`
3445
3446	// The ID of the VPC.
3447	ViolationTarget *string `type:"string"`
3448
3449	// A description of the violation that specifies the rule group and VPC.
3450	ViolationTargetDescription *string `type:"string"`
3451}
3452
3453// String returns the string representation
3454func (s DnsRuleGroupLimitExceededViolation) String() string {
3455	return awsutil.Prettify(s)
3456}
3457
3458// GoString returns the string representation
3459func (s DnsRuleGroupLimitExceededViolation) GoString() string {
3460	return s.String()
3461}
3462
3463// SetNumberOfRuleGroupsAlreadyAssociated sets the NumberOfRuleGroupsAlreadyAssociated field's value.
3464func (s *DnsRuleGroupLimitExceededViolation) SetNumberOfRuleGroupsAlreadyAssociated(v int64) *DnsRuleGroupLimitExceededViolation {
3465	s.NumberOfRuleGroupsAlreadyAssociated = &v
3466	return s
3467}
3468
3469// SetViolationTarget sets the ViolationTarget field's value.
3470func (s *DnsRuleGroupLimitExceededViolation) SetViolationTarget(v string) *DnsRuleGroupLimitExceededViolation {
3471	s.ViolationTarget = &v
3472	return s
3473}
3474
3475// SetViolationTargetDescription sets the ViolationTargetDescription field's value.
3476func (s *DnsRuleGroupLimitExceededViolation) SetViolationTargetDescription(v string) *DnsRuleGroupLimitExceededViolation {
3477	s.ViolationTargetDescription = &v
3478	return s
3479}
3480
3481// A rule group that Firewall Manager tried to associate with a VPC has the
3482// same priority as a rule group that's already associated.
3483type DnsRuleGroupPriorityConflictViolation struct {
3484	_ struct{} `type:"structure"`
3485
3486	// The ID of the Firewall Manager DNS Firewall policy that was already applied
3487	// to the VPC. This policy contains the rule group that's already associated
3488	// with the VPC.
3489	ConflictingPolicyId *string `min:"36" type:"string"`
3490
3491	// The priority setting of the two conflicting rule groups.
3492	ConflictingPriority *int64 `type:"integer"`
3493
3494	// The priorities of rule groups that are already associated with the VPC. To
3495	// retry your operation, choose priority settings that aren't in this list for
3496	// the rule groups in your new DNS Firewall policy.
3497	UnavailablePriorities []*int64 `type:"list"`
3498
3499	// The ID of the VPC.
3500	ViolationTarget *string `type:"string"`
3501
3502	// A description of the violation that specifies the VPC and the rule group
3503	// that's already associated with it.
3504	ViolationTargetDescription *string `type:"string"`
3505}
3506
3507// String returns the string representation
3508func (s DnsRuleGroupPriorityConflictViolation) String() string {
3509	return awsutil.Prettify(s)
3510}
3511
3512// GoString returns the string representation
3513func (s DnsRuleGroupPriorityConflictViolation) GoString() string {
3514	return s.String()
3515}
3516
3517// SetConflictingPolicyId sets the ConflictingPolicyId field's value.
3518func (s *DnsRuleGroupPriorityConflictViolation) SetConflictingPolicyId(v string) *DnsRuleGroupPriorityConflictViolation {
3519	s.ConflictingPolicyId = &v
3520	return s
3521}
3522
3523// SetConflictingPriority sets the ConflictingPriority field's value.
3524func (s *DnsRuleGroupPriorityConflictViolation) SetConflictingPriority(v int64) *DnsRuleGroupPriorityConflictViolation {
3525	s.ConflictingPriority = &v
3526	return s
3527}
3528
3529// SetUnavailablePriorities sets the UnavailablePriorities field's value.
3530func (s *DnsRuleGroupPriorityConflictViolation) SetUnavailablePriorities(v []*int64) *DnsRuleGroupPriorityConflictViolation {
3531	s.UnavailablePriorities = v
3532	return s
3533}
3534
3535// SetViolationTarget sets the ViolationTarget field's value.
3536func (s *DnsRuleGroupPriorityConflictViolation) SetViolationTarget(v string) *DnsRuleGroupPriorityConflictViolation {
3537	s.ViolationTarget = &v
3538	return s
3539}
3540
3541// SetViolationTargetDescription sets the ViolationTargetDescription field's value.
3542func (s *DnsRuleGroupPriorityConflictViolation) SetViolationTargetDescription(v string) *DnsRuleGroupPriorityConflictViolation {
3543	s.ViolationTargetDescription = &v
3544	return s
3545}
3546
3547// Describes the compliance status for the account. An account is considered
3548// noncompliant if it includes resources that are not protected by the specified
3549// policy or that don't comply with the policy.
3550type EvaluationResult struct {
3551	_ struct{} `type:"structure"`
3552
3553	// Describes an AWS account's compliance with the AWS Firewall Manager policy.
3554	ComplianceStatus *string `type:"string" enum:"PolicyComplianceStatusType"`
3555
3556	// Indicates that over 100 resources are noncompliant with the AWS Firewall
3557	// Manager policy.
3558	EvaluationLimitExceeded *bool `type:"boolean"`
3559
3560	// The number of resources that are noncompliant with the specified policy.
3561	// For AWS WAF and Shield Advanced policies, a resource is considered noncompliant
3562	// if it is not associated with the policy. For security group policies, a resource
3563	// is considered noncompliant if it doesn't comply with the rules of the policy
3564	// and remediation is disabled or not possible.
3565	ViolatorCount *int64 `type:"long"`
3566}
3567
3568// String returns the string representation
3569func (s EvaluationResult) String() string {
3570	return awsutil.Prettify(s)
3571}
3572
3573// GoString returns the string representation
3574func (s EvaluationResult) GoString() string {
3575	return s.String()
3576}
3577
3578// SetComplianceStatus sets the ComplianceStatus field's value.
3579func (s *EvaluationResult) SetComplianceStatus(v string) *EvaluationResult {
3580	s.ComplianceStatus = &v
3581	return s
3582}
3583
3584// SetEvaluationLimitExceeded sets the EvaluationLimitExceeded field's value.
3585func (s *EvaluationResult) SetEvaluationLimitExceeded(v bool) *EvaluationResult {
3586	s.EvaluationLimitExceeded = &v
3587	return s
3588}
3589
3590// SetViolatorCount sets the ViolatorCount field's value.
3591func (s *EvaluationResult) SetViolatorCount(v int64) *EvaluationResult {
3592	s.ViolatorCount = &v
3593	return s
3594}
3595
3596type GetAdminAccountInput struct {
3597	_ struct{} `type:"structure"`
3598}
3599
3600// String returns the string representation
3601func (s GetAdminAccountInput) String() string {
3602	return awsutil.Prettify(s)
3603}
3604
3605// GoString returns the string representation
3606func (s GetAdminAccountInput) GoString() string {
3607	return s.String()
3608}
3609
3610type GetAdminAccountOutput struct {
3611	_ struct{} `type:"structure"`
3612
3613	// The AWS account that is set as the AWS Firewall Manager administrator.
3614	AdminAccount *string `min:"1" type:"string"`
3615
3616	// The status of the AWS account that you set as the AWS Firewall Manager administrator.
3617	RoleStatus *string `type:"string" enum:"AccountRoleStatus"`
3618}
3619
3620// String returns the string representation
3621func (s GetAdminAccountOutput) String() string {
3622	return awsutil.Prettify(s)
3623}
3624
3625// GoString returns the string representation
3626func (s GetAdminAccountOutput) GoString() string {
3627	return s.String()
3628}
3629
3630// SetAdminAccount sets the AdminAccount field's value.
3631func (s *GetAdminAccountOutput) SetAdminAccount(v string) *GetAdminAccountOutput {
3632	s.AdminAccount = &v
3633	return s
3634}
3635
3636// SetRoleStatus sets the RoleStatus field's value.
3637func (s *GetAdminAccountOutput) SetRoleStatus(v string) *GetAdminAccountOutput {
3638	s.RoleStatus = &v
3639	return s
3640}
3641
3642type GetAppsListInput struct {
3643	_ struct{} `type:"structure"`
3644
3645	// Specifies whether the list to retrieve is a default list owned by AWS Firewall
3646	// Manager.
3647	DefaultList *bool `type:"boolean"`
3648
3649	// The ID of the AWS Firewall Manager applications list that you want the details
3650	// for.
3651	//
3652	// ListId is a required field
3653	ListId *string `min:"36" type:"string" required:"true"`
3654}
3655
3656// String returns the string representation
3657func (s GetAppsListInput) String() string {
3658	return awsutil.Prettify(s)
3659}
3660
3661// GoString returns the string representation
3662func (s GetAppsListInput) GoString() string {
3663	return s.String()
3664}
3665
3666// Validate inspects the fields of the type to determine if they are valid.
3667func (s *GetAppsListInput) Validate() error {
3668	invalidParams := request.ErrInvalidParams{Context: "GetAppsListInput"}
3669	if s.ListId == nil {
3670		invalidParams.Add(request.NewErrParamRequired("ListId"))
3671	}
3672	if s.ListId != nil && len(*s.ListId) < 36 {
3673		invalidParams.Add(request.NewErrParamMinLen("ListId", 36))
3674	}
3675
3676	if invalidParams.Len() > 0 {
3677		return invalidParams
3678	}
3679	return nil
3680}
3681
3682// SetDefaultList sets the DefaultList field's value.
3683func (s *GetAppsListInput) SetDefaultList(v bool) *GetAppsListInput {
3684	s.DefaultList = &v
3685	return s
3686}
3687
3688// SetListId sets the ListId field's value.
3689func (s *GetAppsListInput) SetListId(v string) *GetAppsListInput {
3690	s.ListId = &v
3691	return s
3692}
3693
3694type GetAppsListOutput struct {
3695	_ struct{} `type:"structure"`
3696
3697	// Information about the specified AWS Firewall Manager applications list.
3698	AppsList *AppsListData `type:"structure"`
3699
3700	// The Amazon Resource Name (ARN) of the applications list.
3701	AppsListArn *string `min:"1" type:"string"`
3702}
3703
3704// String returns the string representation
3705func (s GetAppsListOutput) String() string {
3706	return awsutil.Prettify(s)
3707}
3708
3709// GoString returns the string representation
3710func (s GetAppsListOutput) GoString() string {
3711	return s.String()
3712}
3713
3714// SetAppsList sets the AppsList field's value.
3715func (s *GetAppsListOutput) SetAppsList(v *AppsListData) *GetAppsListOutput {
3716	s.AppsList = v
3717	return s
3718}
3719
3720// SetAppsListArn sets the AppsListArn field's value.
3721func (s *GetAppsListOutput) SetAppsListArn(v string) *GetAppsListOutput {
3722	s.AppsListArn = &v
3723	return s
3724}
3725
3726type GetComplianceDetailInput struct {
3727	_ struct{} `type:"structure"`
3728
3729	// The AWS account that owns the resources that you want to get the details
3730	// for.
3731	//
3732	// MemberAccount is a required field
3733	MemberAccount *string `min:"1" type:"string" required:"true"`
3734
3735	// The ID of the policy that you want to get the details for. PolicyId is returned
3736	// by PutPolicy and by ListPolicies.
3737	//
3738	// PolicyId is a required field
3739	PolicyId *string `min:"36" type:"string" required:"true"`
3740}
3741
3742// String returns the string representation
3743func (s GetComplianceDetailInput) String() string {
3744	return awsutil.Prettify(s)
3745}
3746
3747// GoString returns the string representation
3748func (s GetComplianceDetailInput) GoString() string {
3749	return s.String()
3750}
3751
3752// Validate inspects the fields of the type to determine if they are valid.
3753func (s *GetComplianceDetailInput) Validate() error {
3754	invalidParams := request.ErrInvalidParams{Context: "GetComplianceDetailInput"}
3755	if s.MemberAccount == nil {
3756		invalidParams.Add(request.NewErrParamRequired("MemberAccount"))
3757	}
3758	if s.MemberAccount != nil && len(*s.MemberAccount) < 1 {
3759		invalidParams.Add(request.NewErrParamMinLen("MemberAccount", 1))
3760	}
3761	if s.PolicyId == nil {
3762		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
3763	}
3764	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
3765		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
3766	}
3767
3768	if invalidParams.Len() > 0 {
3769		return invalidParams
3770	}
3771	return nil
3772}
3773
3774// SetMemberAccount sets the MemberAccount field's value.
3775func (s *GetComplianceDetailInput) SetMemberAccount(v string) *GetComplianceDetailInput {
3776	s.MemberAccount = &v
3777	return s
3778}
3779
3780// SetPolicyId sets the PolicyId field's value.
3781func (s *GetComplianceDetailInput) SetPolicyId(v string) *GetComplianceDetailInput {
3782	s.PolicyId = &v
3783	return s
3784}
3785
3786type GetComplianceDetailOutput struct {
3787	_ struct{} `type:"structure"`
3788
3789	// Information about the resources and the policy that you specified in the
3790	// GetComplianceDetail request.
3791	PolicyComplianceDetail *PolicyComplianceDetail `type:"structure"`
3792}
3793
3794// String returns the string representation
3795func (s GetComplianceDetailOutput) String() string {
3796	return awsutil.Prettify(s)
3797}
3798
3799// GoString returns the string representation
3800func (s GetComplianceDetailOutput) GoString() string {
3801	return s.String()
3802}
3803
3804// SetPolicyComplianceDetail sets the PolicyComplianceDetail field's value.
3805func (s *GetComplianceDetailOutput) SetPolicyComplianceDetail(v *PolicyComplianceDetail) *GetComplianceDetailOutput {
3806	s.PolicyComplianceDetail = v
3807	return s
3808}
3809
3810type GetNotificationChannelInput struct {
3811	_ struct{} `type:"structure"`
3812}
3813
3814// String returns the string representation
3815func (s GetNotificationChannelInput) String() string {
3816	return awsutil.Prettify(s)
3817}
3818
3819// GoString returns the string representation
3820func (s GetNotificationChannelInput) GoString() string {
3821	return s.String()
3822}
3823
3824type GetNotificationChannelOutput struct {
3825	_ struct{} `type:"structure"`
3826
3827	// The IAM role that is used by AWS Firewall Manager to record activity to SNS.
3828	SnsRoleName *string `min:"1" type:"string"`
3829
3830	// The SNS topic that records AWS Firewall Manager activity.
3831	SnsTopicArn *string `min:"1" type:"string"`
3832}
3833
3834// String returns the string representation
3835func (s GetNotificationChannelOutput) String() string {
3836	return awsutil.Prettify(s)
3837}
3838
3839// GoString returns the string representation
3840func (s GetNotificationChannelOutput) GoString() string {
3841	return s.String()
3842}
3843
3844// SetSnsRoleName sets the SnsRoleName field's value.
3845func (s *GetNotificationChannelOutput) SetSnsRoleName(v string) *GetNotificationChannelOutput {
3846	s.SnsRoleName = &v
3847	return s
3848}
3849
3850// SetSnsTopicArn sets the SnsTopicArn field's value.
3851func (s *GetNotificationChannelOutput) SetSnsTopicArn(v string) *GetNotificationChannelOutput {
3852	s.SnsTopicArn = &v
3853	return s
3854}
3855
3856type GetPolicyInput struct {
3857	_ struct{} `type:"structure"`
3858
3859	// The ID of the AWS Firewall Manager policy that you want the details for.
3860	//
3861	// PolicyId is a required field
3862	PolicyId *string `min:"36" type:"string" required:"true"`
3863}
3864
3865// String returns the string representation
3866func (s GetPolicyInput) String() string {
3867	return awsutil.Prettify(s)
3868}
3869
3870// GoString returns the string representation
3871func (s GetPolicyInput) GoString() string {
3872	return s.String()
3873}
3874
3875// Validate inspects the fields of the type to determine if they are valid.
3876func (s *GetPolicyInput) Validate() error {
3877	invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"}
3878	if s.PolicyId == nil {
3879		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
3880	}
3881	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
3882		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
3883	}
3884
3885	if invalidParams.Len() > 0 {
3886		return invalidParams
3887	}
3888	return nil
3889}
3890
3891// SetPolicyId sets the PolicyId field's value.
3892func (s *GetPolicyInput) SetPolicyId(v string) *GetPolicyInput {
3893	s.PolicyId = &v
3894	return s
3895}
3896
3897type GetPolicyOutput struct {
3898	_ struct{} `type:"structure"`
3899
3900	// Information about the specified AWS Firewall Manager policy.
3901	Policy *Policy `type:"structure"`
3902
3903	// The Amazon Resource Name (ARN) of the specified policy.
3904	PolicyArn *string `min:"1" type:"string"`
3905}
3906
3907// String returns the string representation
3908func (s GetPolicyOutput) String() string {
3909	return awsutil.Prettify(s)
3910}
3911
3912// GoString returns the string representation
3913func (s GetPolicyOutput) GoString() string {
3914	return s.String()
3915}
3916
3917// SetPolicy sets the Policy field's value.
3918func (s *GetPolicyOutput) SetPolicy(v *Policy) *GetPolicyOutput {
3919	s.Policy = v
3920	return s
3921}
3922
3923// SetPolicyArn sets the PolicyArn field's value.
3924func (s *GetPolicyOutput) SetPolicyArn(v string) *GetPolicyOutput {
3925	s.PolicyArn = &v
3926	return s
3927}
3928
3929type GetProtectionStatusInput struct {
3930	_ struct{} `type:"structure"`
3931
3932	// The end of the time period to query for the attacks. This is a timestamp
3933	// type. The request syntax listing indicates a number type because the default
3934	// used by AWS Firewall Manager is Unix time in seconds. However, any valid
3935	// timestamp format is allowed.
3936	EndTime *time.Time `type:"timestamp"`
3937
3938	// Specifies the number of objects that you want AWS Firewall Manager to return
3939	// for this request. If you have more objects than the number that you specify
3940	// for MaxResults, the response includes a NextToken value that you can use
3941	// to get another batch of objects.
3942	MaxResults *int64 `min:"1" type:"integer"`
3943
3944	// The AWS account that is in scope of the policy that you want to get the details
3945	// for.
3946	MemberAccountId *string `min:"1" type:"string"`
3947
3948	// If you specify a value for MaxResults and you have more objects than the
3949	// number that you specify for MaxResults, AWS Firewall Manager returns a NextToken
3950	// value in the response, which you can use to retrieve another group of objects.
3951	// For the second and subsequent GetProtectionStatus requests, specify the value
3952	// of NextToken from the previous response to get information about another
3953	// batch of objects.
3954	NextToken *string `min:"1" type:"string"`
3955
3956	// The ID of the policy for which you want to get the attack information.
3957	//
3958	// PolicyId is a required field
3959	PolicyId *string `min:"36" type:"string" required:"true"`
3960
3961	// The start of the time period to query for the attacks. This is a timestamp
3962	// type. The request syntax listing indicates a number type because the default
3963	// used by AWS Firewall Manager is Unix time in seconds. However, any valid
3964	// timestamp format is allowed.
3965	StartTime *time.Time `type:"timestamp"`
3966}
3967
3968// String returns the string representation
3969func (s GetProtectionStatusInput) String() string {
3970	return awsutil.Prettify(s)
3971}
3972
3973// GoString returns the string representation
3974func (s GetProtectionStatusInput) GoString() string {
3975	return s.String()
3976}
3977
3978// Validate inspects the fields of the type to determine if they are valid.
3979func (s *GetProtectionStatusInput) Validate() error {
3980	invalidParams := request.ErrInvalidParams{Context: "GetProtectionStatusInput"}
3981	if s.MaxResults != nil && *s.MaxResults < 1 {
3982		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3983	}
3984	if s.MemberAccountId != nil && len(*s.MemberAccountId) < 1 {
3985		invalidParams.Add(request.NewErrParamMinLen("MemberAccountId", 1))
3986	}
3987	if s.NextToken != nil && len(*s.NextToken) < 1 {
3988		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3989	}
3990	if s.PolicyId == nil {
3991		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
3992	}
3993	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
3994		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
3995	}
3996
3997	if invalidParams.Len() > 0 {
3998		return invalidParams
3999	}
4000	return nil
4001}
4002
4003// SetEndTime sets the EndTime field's value.
4004func (s *GetProtectionStatusInput) SetEndTime(v time.Time) *GetProtectionStatusInput {
4005	s.EndTime = &v
4006	return s
4007}
4008
4009// SetMaxResults sets the MaxResults field's value.
4010func (s *GetProtectionStatusInput) SetMaxResults(v int64) *GetProtectionStatusInput {
4011	s.MaxResults = &v
4012	return s
4013}
4014
4015// SetMemberAccountId sets the MemberAccountId field's value.
4016func (s *GetProtectionStatusInput) SetMemberAccountId(v string) *GetProtectionStatusInput {
4017	s.MemberAccountId = &v
4018	return s
4019}
4020
4021// SetNextToken sets the NextToken field's value.
4022func (s *GetProtectionStatusInput) SetNextToken(v string) *GetProtectionStatusInput {
4023	s.NextToken = &v
4024	return s
4025}
4026
4027// SetPolicyId sets the PolicyId field's value.
4028func (s *GetProtectionStatusInput) SetPolicyId(v string) *GetProtectionStatusInput {
4029	s.PolicyId = &v
4030	return s
4031}
4032
4033// SetStartTime sets the StartTime field's value.
4034func (s *GetProtectionStatusInput) SetStartTime(v time.Time) *GetProtectionStatusInput {
4035	s.StartTime = &v
4036	return s
4037}
4038
4039type GetProtectionStatusOutput struct {
4040	_ struct{} `type:"structure"`
4041
4042	// The ID of the AWS Firewall administrator account for this policy.
4043	AdminAccountId *string `min:"1" type:"string"`
4044
4045	// Details about the attack, including the following:
4046	//
4047	//    * Attack type
4048	//
4049	//    * Account ID
4050	//
4051	//    * ARN of the resource attacked
4052	//
4053	//    * Start time of the attack
4054	//
4055	//    * End time of the attack (ongoing attacks will not have an end time)
4056	//
4057	// The details are in JSON format.
4058	Data *string `type:"string"`
4059
4060	// If you have more objects than the number that you specified for MaxResults
4061	// in the request, the response includes a NextToken value. To list more objects,
4062	// submit another GetProtectionStatus request, and specify the NextToken value
4063	// from the response in the NextToken value in the next request.
4064	//
4065	// AWS SDKs provide auto-pagination that identify NextToken in a response and
4066	// make subsequent request calls automatically on your behalf. However, this
4067	// feature is not supported by GetProtectionStatus. You must submit subsequent
4068	// requests with NextToken using your own processes.
4069	NextToken *string `min:"1" type:"string"`
4070
4071	// The service type that is protected by the policy. Currently, this is always
4072	// SHIELD_ADVANCED.
4073	ServiceType *string `type:"string" enum:"SecurityServiceType"`
4074}
4075
4076// String returns the string representation
4077func (s GetProtectionStatusOutput) String() string {
4078	return awsutil.Prettify(s)
4079}
4080
4081// GoString returns the string representation
4082func (s GetProtectionStatusOutput) GoString() string {
4083	return s.String()
4084}
4085
4086// SetAdminAccountId sets the AdminAccountId field's value.
4087func (s *GetProtectionStatusOutput) SetAdminAccountId(v string) *GetProtectionStatusOutput {
4088	s.AdminAccountId = &v
4089	return s
4090}
4091
4092// SetData sets the Data field's value.
4093func (s *GetProtectionStatusOutput) SetData(v string) *GetProtectionStatusOutput {
4094	s.Data = &v
4095	return s
4096}
4097
4098// SetNextToken sets the NextToken field's value.
4099func (s *GetProtectionStatusOutput) SetNextToken(v string) *GetProtectionStatusOutput {
4100	s.NextToken = &v
4101	return s
4102}
4103
4104// SetServiceType sets the ServiceType field's value.
4105func (s *GetProtectionStatusOutput) SetServiceType(v string) *GetProtectionStatusOutput {
4106	s.ServiceType = &v
4107	return s
4108}
4109
4110type GetProtocolsListInput struct {
4111	_ struct{} `type:"structure"`
4112
4113	// Specifies whether the list to retrieve is a default list owned by AWS Firewall
4114	// Manager.
4115	DefaultList *bool `type:"boolean"`
4116
4117	// The ID of the AWS Firewall Manager protocols list that you want the details
4118	// for.
4119	//
4120	// ListId is a required field
4121	ListId *string `min:"36" type:"string" required:"true"`
4122}
4123
4124// String returns the string representation
4125func (s GetProtocolsListInput) String() string {
4126	return awsutil.Prettify(s)
4127}
4128
4129// GoString returns the string representation
4130func (s GetProtocolsListInput) GoString() string {
4131	return s.String()
4132}
4133
4134// Validate inspects the fields of the type to determine if they are valid.
4135func (s *GetProtocolsListInput) Validate() error {
4136	invalidParams := request.ErrInvalidParams{Context: "GetProtocolsListInput"}
4137	if s.ListId == nil {
4138		invalidParams.Add(request.NewErrParamRequired("ListId"))
4139	}
4140	if s.ListId != nil && len(*s.ListId) < 36 {
4141		invalidParams.Add(request.NewErrParamMinLen("ListId", 36))
4142	}
4143
4144	if invalidParams.Len() > 0 {
4145		return invalidParams
4146	}
4147	return nil
4148}
4149
4150// SetDefaultList sets the DefaultList field's value.
4151func (s *GetProtocolsListInput) SetDefaultList(v bool) *GetProtocolsListInput {
4152	s.DefaultList = &v
4153	return s
4154}
4155
4156// SetListId sets the ListId field's value.
4157func (s *GetProtocolsListInput) SetListId(v string) *GetProtocolsListInput {
4158	s.ListId = &v
4159	return s
4160}
4161
4162type GetProtocolsListOutput struct {
4163	_ struct{} `type:"structure"`
4164
4165	// Information about the specified AWS Firewall Manager protocols list.
4166	ProtocolsList *ProtocolsListData `type:"structure"`
4167
4168	// The Amazon Resource Name (ARN) of the specified protocols list.
4169	ProtocolsListArn *string `min:"1" type:"string"`
4170}
4171
4172// String returns the string representation
4173func (s GetProtocolsListOutput) String() string {
4174	return awsutil.Prettify(s)
4175}
4176
4177// GoString returns the string representation
4178func (s GetProtocolsListOutput) GoString() string {
4179	return s.String()
4180}
4181
4182// SetProtocolsList sets the ProtocolsList field's value.
4183func (s *GetProtocolsListOutput) SetProtocolsList(v *ProtocolsListData) *GetProtocolsListOutput {
4184	s.ProtocolsList = v
4185	return s
4186}
4187
4188// SetProtocolsListArn sets the ProtocolsListArn field's value.
4189func (s *GetProtocolsListOutput) SetProtocolsListArn(v string) *GetProtocolsListOutput {
4190	s.ProtocolsListArn = &v
4191	return s
4192}
4193
4194type GetViolationDetailsInput struct {
4195	_ struct{} `type:"structure"`
4196
4197	// The AWS account ID that you want the details for.
4198	//
4199	// MemberAccount is a required field
4200	MemberAccount *string `min:"1" type:"string" required:"true"`
4201
4202	// The ID of the AWS Firewall Manager policy that you want the details for.
4203	// This currently only supports security group content audit policies.
4204	//
4205	// PolicyId is a required field
4206	PolicyId *string `min:"36" type:"string" required:"true"`
4207
4208	// The ID of the resource that has violations.
4209	//
4210	// ResourceId is a required field
4211	ResourceId *string `min:"1" type:"string" required:"true"`
4212
4213	// The resource type. This is in the format shown in the AWS Resource Types
4214	// Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html).
4215	// Supported resource types are: AWS::EC2::Instance, AWS::EC2::NetworkInterface,
4216	// AWS::EC2::SecurityGroup, AWS::NetworkFirewall::FirewallPolicy, and AWS::EC2::Subnet.
4217	//
4218	// ResourceType is a required field
4219	ResourceType *string `min:"1" type:"string" required:"true"`
4220}
4221
4222// String returns the string representation
4223func (s GetViolationDetailsInput) String() string {
4224	return awsutil.Prettify(s)
4225}
4226
4227// GoString returns the string representation
4228func (s GetViolationDetailsInput) GoString() string {
4229	return s.String()
4230}
4231
4232// Validate inspects the fields of the type to determine if they are valid.
4233func (s *GetViolationDetailsInput) Validate() error {
4234	invalidParams := request.ErrInvalidParams{Context: "GetViolationDetailsInput"}
4235	if s.MemberAccount == nil {
4236		invalidParams.Add(request.NewErrParamRequired("MemberAccount"))
4237	}
4238	if s.MemberAccount != nil && len(*s.MemberAccount) < 1 {
4239		invalidParams.Add(request.NewErrParamMinLen("MemberAccount", 1))
4240	}
4241	if s.PolicyId == nil {
4242		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
4243	}
4244	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
4245		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
4246	}
4247	if s.ResourceId == nil {
4248		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
4249	}
4250	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
4251		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
4252	}
4253	if s.ResourceType == nil {
4254		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
4255	}
4256	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
4257		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
4258	}
4259
4260	if invalidParams.Len() > 0 {
4261		return invalidParams
4262	}
4263	return nil
4264}
4265
4266// SetMemberAccount sets the MemberAccount field's value.
4267func (s *GetViolationDetailsInput) SetMemberAccount(v string) *GetViolationDetailsInput {
4268	s.MemberAccount = &v
4269	return s
4270}
4271
4272// SetPolicyId sets the PolicyId field's value.
4273func (s *GetViolationDetailsInput) SetPolicyId(v string) *GetViolationDetailsInput {
4274	s.PolicyId = &v
4275	return s
4276}
4277
4278// SetResourceId sets the ResourceId field's value.
4279func (s *GetViolationDetailsInput) SetResourceId(v string) *GetViolationDetailsInput {
4280	s.ResourceId = &v
4281	return s
4282}
4283
4284// SetResourceType sets the ResourceType field's value.
4285func (s *GetViolationDetailsInput) SetResourceType(v string) *GetViolationDetailsInput {
4286	s.ResourceType = &v
4287	return s
4288}
4289
4290type GetViolationDetailsOutput struct {
4291	_ struct{} `type:"structure"`
4292
4293	// Violation detail for a resource.
4294	ViolationDetail *ViolationDetail `type:"structure"`
4295}
4296
4297// String returns the string representation
4298func (s GetViolationDetailsOutput) String() string {
4299	return awsutil.Prettify(s)
4300}
4301
4302// GoString returns the string representation
4303func (s GetViolationDetailsOutput) GoString() string {
4304	return s.String()
4305}
4306
4307// SetViolationDetail sets the ViolationDetail field's value.
4308func (s *GetViolationDetailsOutput) SetViolationDetail(v *ViolationDetail) *GetViolationDetailsOutput {
4309	s.ViolationDetail = v
4310	return s
4311}
4312
4313// The operation failed because of a system problem, even though the request
4314// was valid. Retry your request.
4315type InternalErrorException struct {
4316	_            struct{}                  `type:"structure"`
4317	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4318
4319	Message_ *string `locationName:"Message" type:"string"`
4320}
4321
4322// String returns the string representation
4323func (s InternalErrorException) String() string {
4324	return awsutil.Prettify(s)
4325}
4326
4327// GoString returns the string representation
4328func (s InternalErrorException) GoString() string {
4329	return s.String()
4330}
4331
4332func newErrorInternalErrorException(v protocol.ResponseMetadata) error {
4333	return &InternalErrorException{
4334		RespMetadata: v,
4335	}
4336}
4337
4338// Code returns the exception type name.
4339func (s *InternalErrorException) Code() string {
4340	return "InternalErrorException"
4341}
4342
4343// Message returns the exception's message.
4344func (s *InternalErrorException) Message() string {
4345	if s.Message_ != nil {
4346		return *s.Message_
4347	}
4348	return ""
4349}
4350
4351// OrigErr always returns nil, satisfies awserr.Error interface.
4352func (s *InternalErrorException) OrigErr() error {
4353	return nil
4354}
4355
4356func (s *InternalErrorException) Error() string {
4357	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4358}
4359
4360// Status code returns the HTTP status code for the request's response error.
4361func (s *InternalErrorException) StatusCode() int {
4362	return s.RespMetadata.StatusCode
4363}
4364
4365// RequestID returns the service's response RequestID for request.
4366func (s *InternalErrorException) RequestID() string {
4367	return s.RespMetadata.RequestID
4368}
4369
4370// The parameters of the request were invalid.
4371type InvalidInputException struct {
4372	_            struct{}                  `type:"structure"`
4373	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4374
4375	Message_ *string `locationName:"Message" type:"string"`
4376}
4377
4378// String returns the string representation
4379func (s InvalidInputException) String() string {
4380	return awsutil.Prettify(s)
4381}
4382
4383// GoString returns the string representation
4384func (s InvalidInputException) GoString() string {
4385	return s.String()
4386}
4387
4388func newErrorInvalidInputException(v protocol.ResponseMetadata) error {
4389	return &InvalidInputException{
4390		RespMetadata: v,
4391	}
4392}
4393
4394// Code returns the exception type name.
4395func (s *InvalidInputException) Code() string {
4396	return "InvalidInputException"
4397}
4398
4399// Message returns the exception's message.
4400func (s *InvalidInputException) Message() string {
4401	if s.Message_ != nil {
4402		return *s.Message_
4403	}
4404	return ""
4405}
4406
4407// OrigErr always returns nil, satisfies awserr.Error interface.
4408func (s *InvalidInputException) OrigErr() error {
4409	return nil
4410}
4411
4412func (s *InvalidInputException) Error() string {
4413	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4414}
4415
4416// Status code returns the HTTP status code for the request's response error.
4417func (s *InvalidInputException) StatusCode() int {
4418	return s.RespMetadata.StatusCode
4419}
4420
4421// RequestID returns the service's response RequestID for request.
4422func (s *InvalidInputException) RequestID() string {
4423	return s.RespMetadata.RequestID
4424}
4425
4426// The operation failed because there was nothing to do or the operation wasn't
4427// possible. For example, you might have submitted an AssociateAdminAccount
4428// request for an account ID that was already set as the AWS Firewall Manager
4429// administrator. Or you might have tried to access a Region that's disabled
4430// by default, and that you need to enable for the Firewall Manager administrator
4431// account and for AWS Organizations before you can access it.
4432type InvalidOperationException struct {
4433	_            struct{}                  `type:"structure"`
4434	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4435
4436	Message_ *string `locationName:"Message" type:"string"`
4437}
4438
4439// String returns the string representation
4440func (s InvalidOperationException) String() string {
4441	return awsutil.Prettify(s)
4442}
4443
4444// GoString returns the string representation
4445func (s InvalidOperationException) GoString() string {
4446	return s.String()
4447}
4448
4449func newErrorInvalidOperationException(v protocol.ResponseMetadata) error {
4450	return &InvalidOperationException{
4451		RespMetadata: v,
4452	}
4453}
4454
4455// Code returns the exception type name.
4456func (s *InvalidOperationException) Code() string {
4457	return "InvalidOperationException"
4458}
4459
4460// Message returns the exception's message.
4461func (s *InvalidOperationException) Message() string {
4462	if s.Message_ != nil {
4463		return *s.Message_
4464	}
4465	return ""
4466}
4467
4468// OrigErr always returns nil, satisfies awserr.Error interface.
4469func (s *InvalidOperationException) OrigErr() error {
4470	return nil
4471}
4472
4473func (s *InvalidOperationException) Error() string {
4474	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4475}
4476
4477// Status code returns the HTTP status code for the request's response error.
4478func (s *InvalidOperationException) StatusCode() int {
4479	return s.RespMetadata.StatusCode
4480}
4481
4482// RequestID returns the service's response RequestID for request.
4483func (s *InvalidOperationException) RequestID() string {
4484	return s.RespMetadata.RequestID
4485}
4486
4487// The value of the Type parameter is invalid.
4488type InvalidTypeException struct {
4489	_            struct{}                  `type:"structure"`
4490	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4491
4492	Message_ *string `locationName:"Message" type:"string"`
4493}
4494
4495// String returns the string representation
4496func (s InvalidTypeException) String() string {
4497	return awsutil.Prettify(s)
4498}
4499
4500// GoString returns the string representation
4501func (s InvalidTypeException) GoString() string {
4502	return s.String()
4503}
4504
4505func newErrorInvalidTypeException(v protocol.ResponseMetadata) error {
4506	return &InvalidTypeException{
4507		RespMetadata: v,
4508	}
4509}
4510
4511// Code returns the exception type name.
4512func (s *InvalidTypeException) Code() string {
4513	return "InvalidTypeException"
4514}
4515
4516// Message returns the exception's message.
4517func (s *InvalidTypeException) Message() string {
4518	if s.Message_ != nil {
4519		return *s.Message_
4520	}
4521	return ""
4522}
4523
4524// OrigErr always returns nil, satisfies awserr.Error interface.
4525func (s *InvalidTypeException) OrigErr() error {
4526	return nil
4527}
4528
4529func (s *InvalidTypeException) Error() string {
4530	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4531}
4532
4533// Status code returns the HTTP status code for the request's response error.
4534func (s *InvalidTypeException) StatusCode() int {
4535	return s.RespMetadata.StatusCode
4536}
4537
4538// RequestID returns the service's response RequestID for request.
4539func (s *InvalidTypeException) RequestID() string {
4540	return s.RespMetadata.RequestID
4541}
4542
4543// The operation exceeds a resource limit, for example, the maximum number of
4544// policy objects that you can create for an AWS account. For more information,
4545// see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
4546// in the AWS WAF Developer Guide.
4547type LimitExceededException struct {
4548	_            struct{}                  `type:"structure"`
4549	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4550
4551	Message_ *string `locationName:"Message" type:"string"`
4552}
4553
4554// String returns the string representation
4555func (s LimitExceededException) String() string {
4556	return awsutil.Prettify(s)
4557}
4558
4559// GoString returns the string representation
4560func (s LimitExceededException) GoString() string {
4561	return s.String()
4562}
4563
4564func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
4565	return &LimitExceededException{
4566		RespMetadata: v,
4567	}
4568}
4569
4570// Code returns the exception type name.
4571func (s *LimitExceededException) Code() string {
4572	return "LimitExceededException"
4573}
4574
4575// Message returns the exception's message.
4576func (s *LimitExceededException) Message() string {
4577	if s.Message_ != nil {
4578		return *s.Message_
4579	}
4580	return ""
4581}
4582
4583// OrigErr always returns nil, satisfies awserr.Error interface.
4584func (s *LimitExceededException) OrigErr() error {
4585	return nil
4586}
4587
4588func (s *LimitExceededException) Error() string {
4589	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4590}
4591
4592// Status code returns the HTTP status code for the request's response error.
4593func (s *LimitExceededException) StatusCode() int {
4594	return s.RespMetadata.StatusCode
4595}
4596
4597// RequestID returns the service's response RequestID for request.
4598func (s *LimitExceededException) RequestID() string {
4599	return s.RespMetadata.RequestID
4600}
4601
4602type ListAppsListsInput struct {
4603	_ struct{} `type:"structure"`
4604
4605	// Specifies whether the lists to retrieve are default lists owned by AWS Firewall
4606	// Manager.
4607	DefaultLists *bool `type:"boolean"`
4608
4609	// The maximum number of objects that you want AWS Firewall Manager to return
4610	// for this request. If more objects are available, in the response, AWS Firewall
4611	// Manager provides a NextToken value that you can use in a subsequent call
4612	// to get the next batch of objects.
4613	//
4614	// If you don't specify this, AWS Firewall Manager returns all available objects.
4615	//
4616	// MaxResults is a required field
4617	MaxResults *int64 `min:"1" type:"integer" required:"true"`
4618
4619	// If you specify a value for MaxResults in your list request, and you have
4620	// more objects than the maximum, AWS Firewall Manager returns this token in
4621	// the response. For all but the first request, you provide the token returned
4622	// by the prior request in the request parameters, to retrieve the next batch
4623	// of objects.
4624	NextToken *string `min:"1" type:"string"`
4625}
4626
4627// String returns the string representation
4628func (s ListAppsListsInput) String() string {
4629	return awsutil.Prettify(s)
4630}
4631
4632// GoString returns the string representation
4633func (s ListAppsListsInput) GoString() string {
4634	return s.String()
4635}
4636
4637// Validate inspects the fields of the type to determine if they are valid.
4638func (s *ListAppsListsInput) Validate() error {
4639	invalidParams := request.ErrInvalidParams{Context: "ListAppsListsInput"}
4640	if s.MaxResults == nil {
4641		invalidParams.Add(request.NewErrParamRequired("MaxResults"))
4642	}
4643	if s.MaxResults != nil && *s.MaxResults < 1 {
4644		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4645	}
4646	if s.NextToken != nil && len(*s.NextToken) < 1 {
4647		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4648	}
4649
4650	if invalidParams.Len() > 0 {
4651		return invalidParams
4652	}
4653	return nil
4654}
4655
4656// SetDefaultLists sets the DefaultLists field's value.
4657func (s *ListAppsListsInput) SetDefaultLists(v bool) *ListAppsListsInput {
4658	s.DefaultLists = &v
4659	return s
4660}
4661
4662// SetMaxResults sets the MaxResults field's value.
4663func (s *ListAppsListsInput) SetMaxResults(v int64) *ListAppsListsInput {
4664	s.MaxResults = &v
4665	return s
4666}
4667
4668// SetNextToken sets the NextToken field's value.
4669func (s *ListAppsListsInput) SetNextToken(v string) *ListAppsListsInput {
4670	s.NextToken = &v
4671	return s
4672}
4673
4674type ListAppsListsOutput struct {
4675	_ struct{} `type:"structure"`
4676
4677	// An array of AppsListDataSummary objects.
4678	AppsLists []*AppsListDataSummary `type:"list"`
4679
4680	// If you specify a value for MaxResults in your list request, and you have
4681	// more objects than the maximum, AWS Firewall Manager returns this token in
4682	// the response. You can use this token in subsequent requests to retrieve the
4683	// next batch of objects.
4684	NextToken *string `min:"1" type:"string"`
4685}
4686
4687// String returns the string representation
4688func (s ListAppsListsOutput) String() string {
4689	return awsutil.Prettify(s)
4690}
4691
4692// GoString returns the string representation
4693func (s ListAppsListsOutput) GoString() string {
4694	return s.String()
4695}
4696
4697// SetAppsLists sets the AppsLists field's value.
4698func (s *ListAppsListsOutput) SetAppsLists(v []*AppsListDataSummary) *ListAppsListsOutput {
4699	s.AppsLists = v
4700	return s
4701}
4702
4703// SetNextToken sets the NextToken field's value.
4704func (s *ListAppsListsOutput) SetNextToken(v string) *ListAppsListsOutput {
4705	s.NextToken = &v
4706	return s
4707}
4708
4709type ListComplianceStatusInput struct {
4710	_ struct{} `type:"structure"`
4711
4712	// Specifies the number of PolicyComplianceStatus objects that you want AWS
4713	// Firewall Manager to return for this request. If you have more PolicyComplianceStatus
4714	// objects than the number that you specify for MaxResults, the response includes
4715	// a NextToken value that you can use to get another batch of PolicyComplianceStatus
4716	// objects.
4717	MaxResults *int64 `min:"1" type:"integer"`
4718
4719	// If you specify a value for MaxResults and you have more PolicyComplianceStatus
4720	// objects than the number that you specify for MaxResults, AWS Firewall Manager
4721	// returns a NextToken value in the response that allows you to list another
4722	// group of PolicyComplianceStatus objects. For the second and subsequent ListComplianceStatus
4723	// requests, specify the value of NextToken from the previous response to get
4724	// information about another batch of PolicyComplianceStatus objects.
4725	NextToken *string `min:"1" type:"string"`
4726
4727	// The ID of the AWS Firewall Manager policy that you want the details for.
4728	//
4729	// PolicyId is a required field
4730	PolicyId *string `min:"36" type:"string" required:"true"`
4731}
4732
4733// String returns the string representation
4734func (s ListComplianceStatusInput) String() string {
4735	return awsutil.Prettify(s)
4736}
4737
4738// GoString returns the string representation
4739func (s ListComplianceStatusInput) GoString() string {
4740	return s.String()
4741}
4742
4743// Validate inspects the fields of the type to determine if they are valid.
4744func (s *ListComplianceStatusInput) Validate() error {
4745	invalidParams := request.ErrInvalidParams{Context: "ListComplianceStatusInput"}
4746	if s.MaxResults != nil && *s.MaxResults < 1 {
4747		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4748	}
4749	if s.NextToken != nil && len(*s.NextToken) < 1 {
4750		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4751	}
4752	if s.PolicyId == nil {
4753		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
4754	}
4755	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
4756		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
4757	}
4758
4759	if invalidParams.Len() > 0 {
4760		return invalidParams
4761	}
4762	return nil
4763}
4764
4765// SetMaxResults sets the MaxResults field's value.
4766func (s *ListComplianceStatusInput) SetMaxResults(v int64) *ListComplianceStatusInput {
4767	s.MaxResults = &v
4768	return s
4769}
4770
4771// SetNextToken sets the NextToken field's value.
4772func (s *ListComplianceStatusInput) SetNextToken(v string) *ListComplianceStatusInput {
4773	s.NextToken = &v
4774	return s
4775}
4776
4777// SetPolicyId sets the PolicyId field's value.
4778func (s *ListComplianceStatusInput) SetPolicyId(v string) *ListComplianceStatusInput {
4779	s.PolicyId = &v
4780	return s
4781}
4782
4783type ListComplianceStatusOutput struct {
4784	_ struct{} `type:"structure"`
4785
4786	// If you have more PolicyComplianceStatus objects than the number that you
4787	// specified for MaxResults in the request, the response includes a NextToken
4788	// value. To list more PolicyComplianceStatus objects, submit another ListComplianceStatus
4789	// request, and specify the NextToken value from the response in the NextToken
4790	// value in the next request.
4791	NextToken *string `min:"1" type:"string"`
4792
4793	// An array of PolicyComplianceStatus objects.
4794	PolicyComplianceStatusList []*PolicyComplianceStatus `type:"list"`
4795}
4796
4797// String returns the string representation
4798func (s ListComplianceStatusOutput) String() string {
4799	return awsutil.Prettify(s)
4800}
4801
4802// GoString returns the string representation
4803func (s ListComplianceStatusOutput) GoString() string {
4804	return s.String()
4805}
4806
4807// SetNextToken sets the NextToken field's value.
4808func (s *ListComplianceStatusOutput) SetNextToken(v string) *ListComplianceStatusOutput {
4809	s.NextToken = &v
4810	return s
4811}
4812
4813// SetPolicyComplianceStatusList sets the PolicyComplianceStatusList field's value.
4814func (s *ListComplianceStatusOutput) SetPolicyComplianceStatusList(v []*PolicyComplianceStatus) *ListComplianceStatusOutput {
4815	s.PolicyComplianceStatusList = v
4816	return s
4817}
4818
4819type ListMemberAccountsInput struct {
4820	_ struct{} `type:"structure"`
4821
4822	// Specifies the number of member account IDs that you want AWS Firewall Manager
4823	// to return for this request. If you have more IDs than the number that you
4824	// specify for MaxResults, the response includes a NextToken value that you
4825	// can use to get another batch of member account IDs.
4826	MaxResults *int64 `min:"1" type:"integer"`
4827
4828	// If you specify a value for MaxResults and you have more account IDs than
4829	// the number that you specify for MaxResults, AWS Firewall Manager returns
4830	// a NextToken value in the response that allows you to list another group of
4831	// IDs. For the second and subsequent ListMemberAccountsRequest requests, specify
4832	// the value of NextToken from the previous response to get information about
4833	// another batch of member account IDs.
4834	NextToken *string `min:"1" type:"string"`
4835}
4836
4837// String returns the string representation
4838func (s ListMemberAccountsInput) String() string {
4839	return awsutil.Prettify(s)
4840}
4841
4842// GoString returns the string representation
4843func (s ListMemberAccountsInput) GoString() string {
4844	return s.String()
4845}
4846
4847// Validate inspects the fields of the type to determine if they are valid.
4848func (s *ListMemberAccountsInput) Validate() error {
4849	invalidParams := request.ErrInvalidParams{Context: "ListMemberAccountsInput"}
4850	if s.MaxResults != nil && *s.MaxResults < 1 {
4851		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4852	}
4853	if s.NextToken != nil && len(*s.NextToken) < 1 {
4854		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4855	}
4856
4857	if invalidParams.Len() > 0 {
4858		return invalidParams
4859	}
4860	return nil
4861}
4862
4863// SetMaxResults sets the MaxResults field's value.
4864func (s *ListMemberAccountsInput) SetMaxResults(v int64) *ListMemberAccountsInput {
4865	s.MaxResults = &v
4866	return s
4867}
4868
4869// SetNextToken sets the NextToken field's value.
4870func (s *ListMemberAccountsInput) SetNextToken(v string) *ListMemberAccountsInput {
4871	s.NextToken = &v
4872	return s
4873}
4874
4875type ListMemberAccountsOutput struct {
4876	_ struct{} `type:"structure"`
4877
4878	// An array of account IDs.
4879	MemberAccounts []*string `type:"list"`
4880
4881	// If you have more member account IDs than the number that you specified for
4882	// MaxResults in the request, the response includes a NextToken value. To list
4883	// more IDs, submit another ListMemberAccounts request, and specify the NextToken
4884	// value from the response in the NextToken value in the next request.
4885	NextToken *string `min:"1" type:"string"`
4886}
4887
4888// String returns the string representation
4889func (s ListMemberAccountsOutput) String() string {
4890	return awsutil.Prettify(s)
4891}
4892
4893// GoString returns the string representation
4894func (s ListMemberAccountsOutput) GoString() string {
4895	return s.String()
4896}
4897
4898// SetMemberAccounts sets the MemberAccounts field's value.
4899func (s *ListMemberAccountsOutput) SetMemberAccounts(v []*string) *ListMemberAccountsOutput {
4900	s.MemberAccounts = v
4901	return s
4902}
4903
4904// SetNextToken sets the NextToken field's value.
4905func (s *ListMemberAccountsOutput) SetNextToken(v string) *ListMemberAccountsOutput {
4906	s.NextToken = &v
4907	return s
4908}
4909
4910type ListPoliciesInput struct {
4911	_ struct{} `type:"structure"`
4912
4913	// Specifies the number of PolicySummary objects that you want AWS Firewall
4914	// Manager to return for this request. If you have more PolicySummary objects
4915	// than the number that you specify for MaxResults, the response includes a
4916	// NextToken value that you can use to get another batch of PolicySummary objects.
4917	MaxResults *int64 `min:"1" type:"integer"`
4918
4919	// If you specify a value for MaxResults and you have more PolicySummary objects
4920	// than the number that you specify for MaxResults, AWS Firewall Manager returns
4921	// a NextToken value in the response that allows you to list another group of
4922	// PolicySummary objects. For the second and subsequent ListPolicies requests,
4923	// specify the value of NextToken from the previous response to get information
4924	// about another batch of PolicySummary objects.
4925	NextToken *string `min:"1" type:"string"`
4926}
4927
4928// String returns the string representation
4929func (s ListPoliciesInput) String() string {
4930	return awsutil.Prettify(s)
4931}
4932
4933// GoString returns the string representation
4934func (s ListPoliciesInput) GoString() string {
4935	return s.String()
4936}
4937
4938// Validate inspects the fields of the type to determine if they are valid.
4939func (s *ListPoliciesInput) Validate() error {
4940	invalidParams := request.ErrInvalidParams{Context: "ListPoliciesInput"}
4941	if s.MaxResults != nil && *s.MaxResults < 1 {
4942		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4943	}
4944	if s.NextToken != nil && len(*s.NextToken) < 1 {
4945		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4946	}
4947
4948	if invalidParams.Len() > 0 {
4949		return invalidParams
4950	}
4951	return nil
4952}
4953
4954// SetMaxResults sets the MaxResults field's value.
4955func (s *ListPoliciesInput) SetMaxResults(v int64) *ListPoliciesInput {
4956	s.MaxResults = &v
4957	return s
4958}
4959
4960// SetNextToken sets the NextToken field's value.
4961func (s *ListPoliciesInput) SetNextToken(v string) *ListPoliciesInput {
4962	s.NextToken = &v
4963	return s
4964}
4965
4966type ListPoliciesOutput struct {
4967	_ struct{} `type:"structure"`
4968
4969	// If you have more PolicySummary objects than the number that you specified
4970	// for MaxResults in the request, the response includes a NextToken value. To
4971	// list more PolicySummary objects, submit another ListPolicies request, and
4972	// specify the NextToken value from the response in the NextToken value in the
4973	// next request.
4974	NextToken *string `min:"1" type:"string"`
4975
4976	// An array of PolicySummary objects.
4977	PolicyList []*PolicySummary `type:"list"`
4978}
4979
4980// String returns the string representation
4981func (s ListPoliciesOutput) String() string {
4982	return awsutil.Prettify(s)
4983}
4984
4985// GoString returns the string representation
4986func (s ListPoliciesOutput) GoString() string {
4987	return s.String()
4988}
4989
4990// SetNextToken sets the NextToken field's value.
4991func (s *ListPoliciesOutput) SetNextToken(v string) *ListPoliciesOutput {
4992	s.NextToken = &v
4993	return s
4994}
4995
4996// SetPolicyList sets the PolicyList field's value.
4997func (s *ListPoliciesOutput) SetPolicyList(v []*PolicySummary) *ListPoliciesOutput {
4998	s.PolicyList = v
4999	return s
5000}
5001
5002type ListProtocolsListsInput struct {
5003	_ struct{} `type:"structure"`
5004
5005	// Specifies whether the lists to retrieve are default lists owned by AWS Firewall
5006	// Manager.
5007	DefaultLists *bool `type:"boolean"`
5008
5009	// The maximum number of objects that you want AWS Firewall Manager to return
5010	// for this request. If more objects are available, in the response, AWS Firewall
5011	// Manager provides a NextToken value that you can use in a subsequent call
5012	// to get the next batch of objects.
5013	//
5014	// If you don't specify this, AWS Firewall Manager returns all available objects.
5015	//
5016	// MaxResults is a required field
5017	MaxResults *int64 `min:"1" type:"integer" required:"true"`
5018
5019	// If you specify a value for MaxResults in your list request, and you have
5020	// more objects than the maximum, AWS Firewall Manager returns this token in
5021	// the response. For all but the first request, you provide the token returned
5022	// by the prior request in the request parameters, to retrieve the next batch
5023	// of objects.
5024	NextToken *string `min:"1" type:"string"`
5025}
5026
5027// String returns the string representation
5028func (s ListProtocolsListsInput) String() string {
5029	return awsutil.Prettify(s)
5030}
5031
5032// GoString returns the string representation
5033func (s ListProtocolsListsInput) GoString() string {
5034	return s.String()
5035}
5036
5037// Validate inspects the fields of the type to determine if they are valid.
5038func (s *ListProtocolsListsInput) Validate() error {
5039	invalidParams := request.ErrInvalidParams{Context: "ListProtocolsListsInput"}
5040	if s.MaxResults == nil {
5041		invalidParams.Add(request.NewErrParamRequired("MaxResults"))
5042	}
5043	if s.MaxResults != nil && *s.MaxResults < 1 {
5044		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
5045	}
5046	if s.NextToken != nil && len(*s.NextToken) < 1 {
5047		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
5048	}
5049
5050	if invalidParams.Len() > 0 {
5051		return invalidParams
5052	}
5053	return nil
5054}
5055
5056// SetDefaultLists sets the DefaultLists field's value.
5057func (s *ListProtocolsListsInput) SetDefaultLists(v bool) *ListProtocolsListsInput {
5058	s.DefaultLists = &v
5059	return s
5060}
5061
5062// SetMaxResults sets the MaxResults field's value.
5063func (s *ListProtocolsListsInput) SetMaxResults(v int64) *ListProtocolsListsInput {
5064	s.MaxResults = &v
5065	return s
5066}
5067
5068// SetNextToken sets the NextToken field's value.
5069func (s *ListProtocolsListsInput) SetNextToken(v string) *ListProtocolsListsInput {
5070	s.NextToken = &v
5071	return s
5072}
5073
5074type ListProtocolsListsOutput struct {
5075	_ struct{} `type:"structure"`
5076
5077	// If you specify a value for MaxResults in your list request, and you have
5078	// more objects than the maximum, AWS Firewall Manager returns this token in
5079	// the response. You can use this token in subsequent requests to retrieve the
5080	// next batch of objects.
5081	NextToken *string `min:"1" type:"string"`
5082
5083	// An array of ProtocolsListDataSummary objects.
5084	ProtocolsLists []*ProtocolsListDataSummary `type:"list"`
5085}
5086
5087// String returns the string representation
5088func (s ListProtocolsListsOutput) String() string {
5089	return awsutil.Prettify(s)
5090}
5091
5092// GoString returns the string representation
5093func (s ListProtocolsListsOutput) GoString() string {
5094	return s.String()
5095}
5096
5097// SetNextToken sets the NextToken field's value.
5098func (s *ListProtocolsListsOutput) SetNextToken(v string) *ListProtocolsListsOutput {
5099	s.NextToken = &v
5100	return s
5101}
5102
5103// SetProtocolsLists sets the ProtocolsLists field's value.
5104func (s *ListProtocolsListsOutput) SetProtocolsLists(v []*ProtocolsListDataSummary) *ListProtocolsListsOutput {
5105	s.ProtocolsLists = v
5106	return s
5107}
5108
5109type ListTagsForResourceInput struct {
5110	_ struct{} `type:"structure"`
5111
5112	// The Amazon Resource Name (ARN) of the resource to return tags for. The AWS
5113	// Firewall Manager resources that support tagging are policies, applications
5114	// lists, and protocols lists.
5115	//
5116	// ResourceArn is a required field
5117	ResourceArn *string `min:"1" type:"string" required:"true"`
5118}
5119
5120// String returns the string representation
5121func (s ListTagsForResourceInput) String() string {
5122	return awsutil.Prettify(s)
5123}
5124
5125// GoString returns the string representation
5126func (s ListTagsForResourceInput) GoString() string {
5127	return s.String()
5128}
5129
5130// Validate inspects the fields of the type to determine if they are valid.
5131func (s *ListTagsForResourceInput) Validate() error {
5132	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
5133	if s.ResourceArn == nil {
5134		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
5135	}
5136	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
5137		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
5138	}
5139
5140	if invalidParams.Len() > 0 {
5141		return invalidParams
5142	}
5143	return nil
5144}
5145
5146// SetResourceArn sets the ResourceArn field's value.
5147func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
5148	s.ResourceArn = &v
5149	return s
5150}
5151
5152type ListTagsForResourceOutput struct {
5153	_ struct{} `type:"structure"`
5154
5155	// The tags associated with the resource.
5156	TagList []*Tag `type:"list"`
5157}
5158
5159// String returns the string representation
5160func (s ListTagsForResourceOutput) String() string {
5161	return awsutil.Prettify(s)
5162}
5163
5164// GoString returns the string representation
5165func (s ListTagsForResourceOutput) GoString() string {
5166	return s.String()
5167}
5168
5169// SetTagList sets the TagList field's value.
5170func (s *ListTagsForResourceOutput) SetTagList(v []*Tag) *ListTagsForResourceOutput {
5171	s.TagList = v
5172	return s
5173}
5174
5175// Violation details for AWS Network Firewall for a subnet that's not associated
5176// to the expected Firewall Manager managed route table.
5177type NetworkFirewallMissingExpectedRTViolation struct {
5178	_ struct{} `type:"structure"`
5179
5180	// The Availability Zone of a violating subnet.
5181	AvailabilityZone *string `type:"string"`
5182
5183	// The resource ID of the current route table that's associated with the subnet,
5184	// if one is available.
5185	CurrentRouteTable *string `min:"1" type:"string"`
5186
5187	// The resource ID of the route table that should be associated with the subnet.
5188	ExpectedRouteTable *string `min:"1" type:"string"`
5189
5190	// The resource ID of the VPC associated with a violating subnet.
5191	VPC *string `min:"1" type:"string"`
5192
5193	// The ID of the AWS Network Firewall or VPC resource that's in violation.
5194	ViolationTarget *string `type:"string"`
5195}
5196
5197// String returns the string representation
5198func (s NetworkFirewallMissingExpectedRTViolation) String() string {
5199	return awsutil.Prettify(s)
5200}
5201
5202// GoString returns the string representation
5203func (s NetworkFirewallMissingExpectedRTViolation) GoString() string {
5204	return s.String()
5205}
5206
5207// SetAvailabilityZone sets the AvailabilityZone field's value.
5208func (s *NetworkFirewallMissingExpectedRTViolation) SetAvailabilityZone(v string) *NetworkFirewallMissingExpectedRTViolation {
5209	s.AvailabilityZone = &v
5210	return s
5211}
5212
5213// SetCurrentRouteTable sets the CurrentRouteTable field's value.
5214func (s *NetworkFirewallMissingExpectedRTViolation) SetCurrentRouteTable(v string) *NetworkFirewallMissingExpectedRTViolation {
5215	s.CurrentRouteTable = &v
5216	return s
5217}
5218
5219// SetExpectedRouteTable sets the ExpectedRouteTable field's value.
5220func (s *NetworkFirewallMissingExpectedRTViolation) SetExpectedRouteTable(v string) *NetworkFirewallMissingExpectedRTViolation {
5221	s.ExpectedRouteTable = &v
5222	return s
5223}
5224
5225// SetVPC sets the VPC field's value.
5226func (s *NetworkFirewallMissingExpectedRTViolation) SetVPC(v string) *NetworkFirewallMissingExpectedRTViolation {
5227	s.VPC = &v
5228	return s
5229}
5230
5231// SetViolationTarget sets the ViolationTarget field's value.
5232func (s *NetworkFirewallMissingExpectedRTViolation) SetViolationTarget(v string) *NetworkFirewallMissingExpectedRTViolation {
5233	s.ViolationTarget = &v
5234	return s
5235}
5236
5237// Violation details for AWS Network Firewall for a subnet that doesn't have
5238// a Firewall Manager managed firewall in its VPC.
5239type NetworkFirewallMissingFirewallViolation struct {
5240	_ struct{} `type:"structure"`
5241
5242	// The Availability Zone of a violating subnet.
5243	AvailabilityZone *string `type:"string"`
5244
5245	// The reason the resource has this violation, if one is available.
5246	TargetViolationReason *string `type:"string"`
5247
5248	// The resource ID of the VPC associated with a violating subnet.
5249	VPC *string `min:"1" type:"string"`
5250
5251	// The ID of the AWS Network Firewall or VPC resource that's in violation.
5252	ViolationTarget *string `type:"string"`
5253}
5254
5255// String returns the string representation
5256func (s NetworkFirewallMissingFirewallViolation) String() string {
5257	return awsutil.Prettify(s)
5258}
5259
5260// GoString returns the string representation
5261func (s NetworkFirewallMissingFirewallViolation) GoString() string {
5262	return s.String()
5263}
5264
5265// SetAvailabilityZone sets the AvailabilityZone field's value.
5266func (s *NetworkFirewallMissingFirewallViolation) SetAvailabilityZone(v string) *NetworkFirewallMissingFirewallViolation {
5267	s.AvailabilityZone = &v
5268	return s
5269}
5270
5271// SetTargetViolationReason sets the TargetViolationReason field's value.
5272func (s *NetworkFirewallMissingFirewallViolation) SetTargetViolationReason(v string) *NetworkFirewallMissingFirewallViolation {
5273	s.TargetViolationReason = &v
5274	return s
5275}
5276
5277// SetVPC sets the VPC field's value.
5278func (s *NetworkFirewallMissingFirewallViolation) SetVPC(v string) *NetworkFirewallMissingFirewallViolation {
5279	s.VPC = &v
5280	return s
5281}
5282
5283// SetViolationTarget sets the ViolationTarget field's value.
5284func (s *NetworkFirewallMissingFirewallViolation) SetViolationTarget(v string) *NetworkFirewallMissingFirewallViolation {
5285	s.ViolationTarget = &v
5286	return s
5287}
5288
5289// Violation details for AWS Network Firewall for an Availability Zone that's
5290// missing the expected Firewall Manager managed subnet.
5291type NetworkFirewallMissingSubnetViolation struct {
5292	_ struct{} `type:"structure"`
5293
5294	// The Availability Zone of a violating subnet.
5295	AvailabilityZone *string `type:"string"`
5296
5297	// The reason the resource has this violation, if one is available.
5298	TargetViolationReason *string `type:"string"`
5299
5300	// The resource ID of the VPC associated with a violating subnet.
5301	VPC *string `min:"1" type:"string"`
5302
5303	// The ID of the AWS Network Firewall or VPC resource that's in violation.
5304	ViolationTarget *string `type:"string"`
5305}
5306
5307// String returns the string representation
5308func (s NetworkFirewallMissingSubnetViolation) String() string {
5309	return awsutil.Prettify(s)
5310}
5311
5312// GoString returns the string representation
5313func (s NetworkFirewallMissingSubnetViolation) GoString() string {
5314	return s.String()
5315}
5316
5317// SetAvailabilityZone sets the AvailabilityZone field's value.
5318func (s *NetworkFirewallMissingSubnetViolation) SetAvailabilityZone(v string) *NetworkFirewallMissingSubnetViolation {
5319	s.AvailabilityZone = &v
5320	return s
5321}
5322
5323// SetTargetViolationReason sets the TargetViolationReason field's value.
5324func (s *NetworkFirewallMissingSubnetViolation) SetTargetViolationReason(v string) *NetworkFirewallMissingSubnetViolation {
5325	s.TargetViolationReason = &v
5326	return s
5327}
5328
5329// SetVPC sets the VPC field's value.
5330func (s *NetworkFirewallMissingSubnetViolation) SetVPC(v string) *NetworkFirewallMissingSubnetViolation {
5331	s.VPC = &v
5332	return s
5333}
5334
5335// SetViolationTarget sets the ViolationTarget field's value.
5336func (s *NetworkFirewallMissingSubnetViolation) SetViolationTarget(v string) *NetworkFirewallMissingSubnetViolation {
5337	s.ViolationTarget = &v
5338	return s
5339}
5340
5341// The definition of the AWS Network Firewall firewall policy.
5342type NetworkFirewallPolicyDescription struct {
5343	_ struct{} `type:"structure"`
5344
5345	// The stateful rule groups that are used in the Network Firewall firewall policy.
5346	StatefulRuleGroups []*StatefulRuleGroup `type:"list"`
5347
5348	// Names of custom actions that are available for use in the stateless default
5349	// actions settings.
5350	StatelessCustomActions []*string `type:"list"`
5351
5352	// The actions to take on packets that don't match any of the stateless rule
5353	// groups.
5354	StatelessDefaultActions []*string `type:"list"`
5355
5356	// The actions to take on packet fragments that don't match any of the stateless
5357	// rule groups.
5358	StatelessFragmentDefaultActions []*string `type:"list"`
5359
5360	// The stateless rule groups that are used in the Network Firewall firewall
5361	// policy.
5362	StatelessRuleGroups []*StatelessRuleGroup `type:"list"`
5363}
5364
5365// String returns the string representation
5366func (s NetworkFirewallPolicyDescription) String() string {
5367	return awsutil.Prettify(s)
5368}
5369
5370// GoString returns the string representation
5371func (s NetworkFirewallPolicyDescription) GoString() string {
5372	return s.String()
5373}
5374
5375// SetStatefulRuleGroups sets the StatefulRuleGroups field's value.
5376func (s *NetworkFirewallPolicyDescription) SetStatefulRuleGroups(v []*StatefulRuleGroup) *NetworkFirewallPolicyDescription {
5377	s.StatefulRuleGroups = v
5378	return s
5379}
5380
5381// SetStatelessCustomActions sets the StatelessCustomActions field's value.
5382func (s *NetworkFirewallPolicyDescription) SetStatelessCustomActions(v []*string) *NetworkFirewallPolicyDescription {
5383	s.StatelessCustomActions = v
5384	return s
5385}
5386
5387// SetStatelessDefaultActions sets the StatelessDefaultActions field's value.
5388func (s *NetworkFirewallPolicyDescription) SetStatelessDefaultActions(v []*string) *NetworkFirewallPolicyDescription {
5389	s.StatelessDefaultActions = v
5390	return s
5391}
5392
5393// SetStatelessFragmentDefaultActions sets the StatelessFragmentDefaultActions field's value.
5394func (s *NetworkFirewallPolicyDescription) SetStatelessFragmentDefaultActions(v []*string) *NetworkFirewallPolicyDescription {
5395	s.StatelessFragmentDefaultActions = v
5396	return s
5397}
5398
5399// SetStatelessRuleGroups sets the StatelessRuleGroups field's value.
5400func (s *NetworkFirewallPolicyDescription) SetStatelessRuleGroups(v []*StatelessRuleGroup) *NetworkFirewallPolicyDescription {
5401	s.StatelessRuleGroups = v
5402	return s
5403}
5404
5405// Violation details for AWS Network Firewall for a firewall policy that has
5406// a different NetworkFirewallPolicyDescription than is required by the Firewall
5407// Manager policy.
5408type NetworkFirewallPolicyModifiedViolation struct {
5409	_ struct{} `type:"structure"`
5410
5411	// The policy that's currently in use in the individual account.
5412	CurrentPolicyDescription *NetworkFirewallPolicyDescription `type:"structure"`
5413
5414	// The policy that should be in use in the individual account in order to be
5415	// compliant.
5416	ExpectedPolicyDescription *NetworkFirewallPolicyDescription `type:"structure"`
5417
5418	// The ID of the AWS Network Firewall or VPC resource that's in violation.
5419	ViolationTarget *string `type:"string"`
5420}
5421
5422// String returns the string representation
5423func (s NetworkFirewallPolicyModifiedViolation) String() string {
5424	return awsutil.Prettify(s)
5425}
5426
5427// GoString returns the string representation
5428func (s NetworkFirewallPolicyModifiedViolation) GoString() string {
5429	return s.String()
5430}
5431
5432// SetCurrentPolicyDescription sets the CurrentPolicyDescription field's value.
5433func (s *NetworkFirewallPolicyModifiedViolation) SetCurrentPolicyDescription(v *NetworkFirewallPolicyDescription) *NetworkFirewallPolicyModifiedViolation {
5434	s.CurrentPolicyDescription = v
5435	return s
5436}
5437
5438// SetExpectedPolicyDescription sets the ExpectedPolicyDescription field's value.
5439func (s *NetworkFirewallPolicyModifiedViolation) SetExpectedPolicyDescription(v *NetworkFirewallPolicyDescription) *NetworkFirewallPolicyModifiedViolation {
5440	s.ExpectedPolicyDescription = v
5441	return s
5442}
5443
5444// SetViolationTarget sets the ViolationTarget field's value.
5445func (s *NetworkFirewallPolicyModifiedViolation) SetViolationTarget(v string) *NetworkFirewallPolicyModifiedViolation {
5446	s.ViolationTarget = &v
5447	return s
5448}
5449
5450// The reference rule that partially matches the ViolationTarget rule and violation
5451// reason.
5452type PartialMatch struct {
5453	_ struct{} `type:"structure"`
5454
5455	// The reference rule from the master security group of the AWS Firewall Manager
5456	// policy.
5457	Reference *string `type:"string"`
5458
5459	// The violation reason.
5460	TargetViolationReasons []*string `type:"list"`
5461}
5462
5463// String returns the string representation
5464func (s PartialMatch) String() string {
5465	return awsutil.Prettify(s)
5466}
5467
5468// GoString returns the string representation
5469func (s PartialMatch) GoString() string {
5470	return s.String()
5471}
5472
5473// SetReference sets the Reference field's value.
5474func (s *PartialMatch) SetReference(v string) *PartialMatch {
5475	s.Reference = &v
5476	return s
5477}
5478
5479// SetTargetViolationReasons sets the TargetViolationReasons field's value.
5480func (s *PartialMatch) SetTargetViolationReasons(v []*string) *PartialMatch {
5481	s.TargetViolationReasons = v
5482	return s
5483}
5484
5485// An AWS Firewall Manager policy.
5486type Policy struct {
5487	_ struct{} `type:"structure"`
5488
5489	// Specifies the AWS account IDs and AWS Organizations organizational units
5490	// (OUs) to exclude from the policy. Specifying an OU is the equivalent of specifying
5491	// all accounts in the OU and in any of its child OUs, including any child OUs
5492	// and accounts that are added at a later time.
5493	//
5494	// You can specify inclusions or exclusions, but not both. If you specify an
5495	// IncludeMap, AWS Firewall Manager applies the policy to all accounts specified
5496	// by the IncludeMap, and does not evaluate any ExcludeMap specifications. If
5497	// you do not specify an IncludeMap, then Firewall Manager applies the policy
5498	// to all accounts except for those specified by the ExcludeMap.
5499	//
5500	// You can specify account IDs, OUs, or a combination:
5501	//
5502	//    * Specify account IDs by setting the key to ACCOUNT. For example, the
5503	//    following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”]}.
5504	//
5505	//    * Specify OUs by setting the key to ORG_UNIT. For example, the following
5506	//    is a valid map: {“ORG_UNIT” : [“ouid111”, “ouid112”]}.
5507	//
5508	//    * Specify accounts and OUs together in a single map, separated with a
5509	//    comma. For example, the following is a valid map: {“ACCOUNT” : [“accountID1”,
5510	//    “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}.
5511	ExcludeMap map[string][]*string `type:"map"`
5512
5513	// If set to True, resources with the tags that are specified in the ResourceTag
5514	// array are not in scope of the policy. If set to False, and the ResourceTag
5515	// array is not null, only resources with the specified tags are in scope of
5516	// the policy.
5517	//
5518	// ExcludeResourceTags is a required field
5519	ExcludeResourceTags *bool `type:"boolean" required:"true"`
5520
5521	// Specifies the AWS account IDs and AWS Organizations organizational units
5522	// (OUs) to include in the policy. Specifying an OU is the equivalent of specifying
5523	// all accounts in the OU and in any of its child OUs, including any child OUs
5524	// and accounts that are added at a later time.
5525	//
5526	// You can specify inclusions or exclusions, but not both. If you specify an
5527	// IncludeMap, AWS Firewall Manager applies the policy to all accounts specified
5528	// by the IncludeMap, and does not evaluate any ExcludeMap specifications. If
5529	// you do not specify an IncludeMap, then Firewall Manager applies the policy
5530	// to all accounts except for those specified by the ExcludeMap.
5531	//
5532	// You can specify account IDs, OUs, or a combination:
5533	//
5534	//    * Specify account IDs by setting the key to ACCOUNT. For example, the
5535	//    following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”]}.
5536	//
5537	//    * Specify OUs by setting the key to ORG_UNIT. For example, the following
5538	//    is a valid map: {“ORG_UNIT” : [“ouid111”, “ouid112”]}.
5539	//
5540	//    * Specify accounts and OUs together in a single map, separated with a
5541	//    comma. For example, the following is a valid map: {“ACCOUNT” : [“accountID1”,
5542	//    “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}.
5543	IncludeMap map[string][]*string `type:"map"`
5544
5545	// The ID of the AWS Firewall Manager policy.
5546	PolicyId *string `min:"36" type:"string"`
5547
5548	// The name of the AWS Firewall Manager policy.
5549	//
5550	// PolicyName is a required field
5551	PolicyName *string `min:"1" type:"string" required:"true"`
5552
5553	// A unique identifier for each update to the policy. When issuing a PutPolicy
5554	// request, the PolicyUpdateToken in the request must match the PolicyUpdateToken
5555	// of the current policy version. To get the PolicyUpdateToken of the current
5556	// policy version, use a GetPolicy request.
5557	PolicyUpdateToken *string `min:"1" type:"string"`
5558
5559	// Indicates if the policy should be automatically applied to new resources.
5560	//
5561	// RemediationEnabled is a required field
5562	RemediationEnabled *bool `type:"boolean" required:"true"`
5563
5564	// An array of ResourceTag objects.
5565	ResourceTags []*ResourceTag `type:"list"`
5566
5567	// The type of resource protected by or in scope of the policy. This is in the
5568	// format shown in the AWS Resource Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html).
5569	// For AWS WAF and Shield Advanced, examples include AWS::ElasticLoadBalancingV2::LoadBalancer
5570	// and AWS::CloudFront::Distribution. For a security group common policy, valid
5571	// values are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For a security
5572	// group content audit policy, valid values are AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface,
5573	// and AWS::EC2::Instance. For a security group usage audit policy, the value
5574	// is AWS::EC2::SecurityGroup. For an AWS Network Firewall policy, the value
5575	// is AWS::EC2::VPC.
5576	//
5577	// ResourceType is a required field
5578	ResourceType *string `min:"1" type:"string" required:"true"`
5579
5580	// An array of ResourceType.
5581	ResourceTypeList []*string `type:"list"`
5582
5583	// Details about the security service that is being used to protect the resources.
5584	//
5585	// SecurityServicePolicyData is a required field
5586	SecurityServicePolicyData *SecurityServicePolicyData `type:"structure" required:"true"`
5587}
5588
5589// String returns the string representation
5590func (s Policy) String() string {
5591	return awsutil.Prettify(s)
5592}
5593
5594// GoString returns the string representation
5595func (s Policy) GoString() string {
5596	return s.String()
5597}
5598
5599// Validate inspects the fields of the type to determine if they are valid.
5600func (s *Policy) Validate() error {
5601	invalidParams := request.ErrInvalidParams{Context: "Policy"}
5602	if s.ExcludeResourceTags == nil {
5603		invalidParams.Add(request.NewErrParamRequired("ExcludeResourceTags"))
5604	}
5605	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
5606		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
5607	}
5608	if s.PolicyName == nil {
5609		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
5610	}
5611	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
5612		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
5613	}
5614	if s.PolicyUpdateToken != nil && len(*s.PolicyUpdateToken) < 1 {
5615		invalidParams.Add(request.NewErrParamMinLen("PolicyUpdateToken", 1))
5616	}
5617	if s.RemediationEnabled == nil {
5618		invalidParams.Add(request.NewErrParamRequired("RemediationEnabled"))
5619	}
5620	if s.ResourceType == nil {
5621		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
5622	}
5623	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
5624		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
5625	}
5626	if s.SecurityServicePolicyData == nil {
5627		invalidParams.Add(request.NewErrParamRequired("SecurityServicePolicyData"))
5628	}
5629	if s.ResourceTags != nil {
5630		for i, v := range s.ResourceTags {
5631			if v == nil {
5632				continue
5633			}
5634			if err := v.Validate(); err != nil {
5635				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceTags", i), err.(request.ErrInvalidParams))
5636			}
5637		}
5638	}
5639	if s.SecurityServicePolicyData != nil {
5640		if err := s.SecurityServicePolicyData.Validate(); err != nil {
5641			invalidParams.AddNested("SecurityServicePolicyData", err.(request.ErrInvalidParams))
5642		}
5643	}
5644
5645	if invalidParams.Len() > 0 {
5646		return invalidParams
5647	}
5648	return nil
5649}
5650
5651// SetExcludeMap sets the ExcludeMap field's value.
5652func (s *Policy) SetExcludeMap(v map[string][]*string) *Policy {
5653	s.ExcludeMap = v
5654	return s
5655}
5656
5657// SetExcludeResourceTags sets the ExcludeResourceTags field's value.
5658func (s *Policy) SetExcludeResourceTags(v bool) *Policy {
5659	s.ExcludeResourceTags = &v
5660	return s
5661}
5662
5663// SetIncludeMap sets the IncludeMap field's value.
5664func (s *Policy) SetIncludeMap(v map[string][]*string) *Policy {
5665	s.IncludeMap = v
5666	return s
5667}
5668
5669// SetPolicyId sets the PolicyId field's value.
5670func (s *Policy) SetPolicyId(v string) *Policy {
5671	s.PolicyId = &v
5672	return s
5673}
5674
5675// SetPolicyName sets the PolicyName field's value.
5676func (s *Policy) SetPolicyName(v string) *Policy {
5677	s.PolicyName = &v
5678	return s
5679}
5680
5681// SetPolicyUpdateToken sets the PolicyUpdateToken field's value.
5682func (s *Policy) SetPolicyUpdateToken(v string) *Policy {
5683	s.PolicyUpdateToken = &v
5684	return s
5685}
5686
5687// SetRemediationEnabled sets the RemediationEnabled field's value.
5688func (s *Policy) SetRemediationEnabled(v bool) *Policy {
5689	s.RemediationEnabled = &v
5690	return s
5691}
5692
5693// SetResourceTags sets the ResourceTags field's value.
5694func (s *Policy) SetResourceTags(v []*ResourceTag) *Policy {
5695	s.ResourceTags = v
5696	return s
5697}
5698
5699// SetResourceType sets the ResourceType field's value.
5700func (s *Policy) SetResourceType(v string) *Policy {
5701	s.ResourceType = &v
5702	return s
5703}
5704
5705// SetResourceTypeList sets the ResourceTypeList field's value.
5706func (s *Policy) SetResourceTypeList(v []*string) *Policy {
5707	s.ResourceTypeList = v
5708	return s
5709}
5710
5711// SetSecurityServicePolicyData sets the SecurityServicePolicyData field's value.
5712func (s *Policy) SetSecurityServicePolicyData(v *SecurityServicePolicyData) *Policy {
5713	s.SecurityServicePolicyData = v
5714	return s
5715}
5716
5717// Describes the noncompliant resources in a member account for a specific AWS
5718// Firewall Manager policy. A maximum of 100 entries are displayed. If more
5719// than 100 resources are noncompliant, EvaluationLimitExceeded is set to True.
5720type PolicyComplianceDetail struct {
5721	_ struct{} `type:"structure"`
5722
5723	// Indicates if over 100 resources are noncompliant with the AWS Firewall Manager
5724	// policy.
5725	EvaluationLimitExceeded *bool `type:"boolean"`
5726
5727	// A timestamp that indicates when the returned information should be considered
5728	// out of date.
5729	ExpiredAt *time.Time `type:"timestamp"`
5730
5731	// Details about problems with dependent services, such as AWS WAF or AWS Config,
5732	// that are causing a resource to be noncompliant. The details include the name
5733	// of the dependent service and the error message received that indicates the
5734	// problem with the service.
5735	IssueInfoMap map[string]*string `type:"map"`
5736
5737	// The AWS account ID.
5738	MemberAccount *string `min:"1" type:"string"`
5739
5740	// The ID of the AWS Firewall Manager policy.
5741	PolicyId *string `min:"36" type:"string"`
5742
5743	// The AWS account that created the AWS Firewall Manager policy.
5744	PolicyOwner *string `min:"1" type:"string"`
5745
5746	// An array of resources that aren't protected by the AWS WAF or Shield Advanced
5747	// policy or that aren't in compliance with the security group policy.
5748	Violators []*ComplianceViolator `type:"list"`
5749}
5750
5751// String returns the string representation
5752func (s PolicyComplianceDetail) String() string {
5753	return awsutil.Prettify(s)
5754}
5755
5756// GoString returns the string representation
5757func (s PolicyComplianceDetail) GoString() string {
5758	return s.String()
5759}
5760
5761// SetEvaluationLimitExceeded sets the EvaluationLimitExceeded field's value.
5762func (s *PolicyComplianceDetail) SetEvaluationLimitExceeded(v bool) *PolicyComplianceDetail {
5763	s.EvaluationLimitExceeded = &v
5764	return s
5765}
5766
5767// SetExpiredAt sets the ExpiredAt field's value.
5768func (s *PolicyComplianceDetail) SetExpiredAt(v time.Time) *PolicyComplianceDetail {
5769	s.ExpiredAt = &v
5770	return s
5771}
5772
5773// SetIssueInfoMap sets the IssueInfoMap field's value.
5774func (s *PolicyComplianceDetail) SetIssueInfoMap(v map[string]*string) *PolicyComplianceDetail {
5775	s.IssueInfoMap = v
5776	return s
5777}
5778
5779// SetMemberAccount sets the MemberAccount field's value.
5780func (s *PolicyComplianceDetail) SetMemberAccount(v string) *PolicyComplianceDetail {
5781	s.MemberAccount = &v
5782	return s
5783}
5784
5785// SetPolicyId sets the PolicyId field's value.
5786func (s *PolicyComplianceDetail) SetPolicyId(v string) *PolicyComplianceDetail {
5787	s.PolicyId = &v
5788	return s
5789}
5790
5791// SetPolicyOwner sets the PolicyOwner field's value.
5792func (s *PolicyComplianceDetail) SetPolicyOwner(v string) *PolicyComplianceDetail {
5793	s.PolicyOwner = &v
5794	return s
5795}
5796
5797// SetViolators sets the Violators field's value.
5798func (s *PolicyComplianceDetail) SetViolators(v []*ComplianceViolator) *PolicyComplianceDetail {
5799	s.Violators = v
5800	return s
5801}
5802
5803// Indicates whether the account is compliant with the specified policy. An
5804// account is considered noncompliant if it includes resources that are not
5805// protected by the policy, for AWS WAF and Shield Advanced policies, or that
5806// are noncompliant with the policy, for security group policies.
5807type PolicyComplianceStatus struct {
5808	_ struct{} `type:"structure"`
5809
5810	// An array of EvaluationResult objects.
5811	EvaluationResults []*EvaluationResult `type:"list"`
5812
5813	// Details about problems with dependent services, such as AWS WAF or AWS Config,
5814	// that are causing a resource to be noncompliant. The details include the name
5815	// of the dependent service and the error message received that indicates the
5816	// problem with the service.
5817	IssueInfoMap map[string]*string `type:"map"`
5818
5819	// Timestamp of the last update to the EvaluationResult objects.
5820	LastUpdated *time.Time `type:"timestamp"`
5821
5822	// The member account ID.
5823	MemberAccount *string `min:"1" type:"string"`
5824
5825	// The ID of the AWS Firewall Manager policy.
5826	PolicyId *string `min:"36" type:"string"`
5827
5828	// The name of the AWS Firewall Manager policy.
5829	PolicyName *string `min:"1" type:"string"`
5830
5831	// The AWS account that created the AWS Firewall Manager policy.
5832	PolicyOwner *string `min:"1" type:"string"`
5833}
5834
5835// String returns the string representation
5836func (s PolicyComplianceStatus) String() string {
5837	return awsutil.Prettify(s)
5838}
5839
5840// GoString returns the string representation
5841func (s PolicyComplianceStatus) GoString() string {
5842	return s.String()
5843}
5844
5845// SetEvaluationResults sets the EvaluationResults field's value.
5846func (s *PolicyComplianceStatus) SetEvaluationResults(v []*EvaluationResult) *PolicyComplianceStatus {
5847	s.EvaluationResults = v
5848	return s
5849}
5850
5851// SetIssueInfoMap sets the IssueInfoMap field's value.
5852func (s *PolicyComplianceStatus) SetIssueInfoMap(v map[string]*string) *PolicyComplianceStatus {
5853	s.IssueInfoMap = v
5854	return s
5855}
5856
5857// SetLastUpdated sets the LastUpdated field's value.
5858func (s *PolicyComplianceStatus) SetLastUpdated(v time.Time) *PolicyComplianceStatus {
5859	s.LastUpdated = &v
5860	return s
5861}
5862
5863// SetMemberAccount sets the MemberAccount field's value.
5864func (s *PolicyComplianceStatus) SetMemberAccount(v string) *PolicyComplianceStatus {
5865	s.MemberAccount = &v
5866	return s
5867}
5868
5869// SetPolicyId sets the PolicyId field's value.
5870func (s *PolicyComplianceStatus) SetPolicyId(v string) *PolicyComplianceStatus {
5871	s.PolicyId = &v
5872	return s
5873}
5874
5875// SetPolicyName sets the PolicyName field's value.
5876func (s *PolicyComplianceStatus) SetPolicyName(v string) *PolicyComplianceStatus {
5877	s.PolicyName = &v
5878	return s
5879}
5880
5881// SetPolicyOwner sets the PolicyOwner field's value.
5882func (s *PolicyComplianceStatus) SetPolicyOwner(v string) *PolicyComplianceStatus {
5883	s.PolicyOwner = &v
5884	return s
5885}
5886
5887// Details of the AWS Firewall Manager policy.
5888type PolicySummary struct {
5889	_ struct{} `type:"structure"`
5890
5891	// The Amazon Resource Name (ARN) of the specified policy.
5892	PolicyArn *string `min:"1" type:"string"`
5893
5894	// The ID of the specified policy.
5895	PolicyId *string `min:"36" type:"string"`
5896
5897	// The name of the specified policy.
5898	PolicyName *string `min:"1" type:"string"`
5899
5900	// Indicates if the policy should be automatically applied to new resources.
5901	RemediationEnabled *bool `type:"boolean"`
5902
5903	// The type of resource protected by or in scope of the policy. This is in the
5904	// format shown in the AWS Resource Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html).
5905	// For AWS WAF and Shield Advanced, examples include AWS::ElasticLoadBalancingV2::LoadBalancer
5906	// and AWS::CloudFront::Distribution. For a security group common policy, valid
5907	// values are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For a security
5908	// group content audit policy, valid values are AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface,
5909	// and AWS::EC2::Instance. For a security group usage audit policy, the value
5910	// is AWS::EC2::SecurityGroup. For an AWS Network Firewall policy, the value
5911	// is AWS::EC2::VPC.
5912	ResourceType *string `min:"1" type:"string"`
5913
5914	// The service that the policy is using to protect the resources. This specifies
5915	// the type of policy that is created, either an AWS WAF policy, a Shield Advanced
5916	// policy, or a security group policy.
5917	SecurityServiceType *string `type:"string" enum:"SecurityServiceType"`
5918}
5919
5920// String returns the string representation
5921func (s PolicySummary) String() string {
5922	return awsutil.Prettify(s)
5923}
5924
5925// GoString returns the string representation
5926func (s PolicySummary) GoString() string {
5927	return s.String()
5928}
5929
5930// SetPolicyArn sets the PolicyArn field's value.
5931func (s *PolicySummary) SetPolicyArn(v string) *PolicySummary {
5932	s.PolicyArn = &v
5933	return s
5934}
5935
5936// SetPolicyId sets the PolicyId field's value.
5937func (s *PolicySummary) SetPolicyId(v string) *PolicySummary {
5938	s.PolicyId = &v
5939	return s
5940}
5941
5942// SetPolicyName sets the PolicyName field's value.
5943func (s *PolicySummary) SetPolicyName(v string) *PolicySummary {
5944	s.PolicyName = &v
5945	return s
5946}
5947
5948// SetRemediationEnabled sets the RemediationEnabled field's value.
5949func (s *PolicySummary) SetRemediationEnabled(v bool) *PolicySummary {
5950	s.RemediationEnabled = &v
5951	return s
5952}
5953
5954// SetResourceType sets the ResourceType field's value.
5955func (s *PolicySummary) SetResourceType(v string) *PolicySummary {
5956	s.ResourceType = &v
5957	return s
5958}
5959
5960// SetSecurityServiceType sets the SecurityServiceType field's value.
5961func (s *PolicySummary) SetSecurityServiceType(v string) *PolicySummary {
5962	s.SecurityServiceType = &v
5963	return s
5964}
5965
5966// An AWS Firewall Manager protocols list.
5967type ProtocolsListData struct {
5968	_ struct{} `type:"structure"`
5969
5970	// The time that the AWS Firewall Manager protocols list was created.
5971	CreateTime *time.Time `type:"timestamp"`
5972
5973	// The time that the AWS Firewall Manager protocols list was last updated.
5974	LastUpdateTime *time.Time `type:"timestamp"`
5975
5976	// The ID of the AWS Firewall Manager protocols list.
5977	ListId *string `min:"36" type:"string"`
5978
5979	// The name of the AWS Firewall Manager protocols list.
5980	//
5981	// ListName is a required field
5982	ListName *string `min:"1" type:"string" required:"true"`
5983
5984	// A unique identifier for each update to the list. When you update the list,
5985	// the update token must match the token of the current version of the application
5986	// list. You can retrieve the update token by getting the list.
5987	ListUpdateToken *string `min:"1" type:"string"`
5988
5989	// A map of previous version numbers to their corresponding protocol arrays.
5990	PreviousProtocolsList map[string][]*string `type:"map"`
5991
5992	// An array of protocols in the AWS Firewall Manager protocols list.
5993	//
5994	// ProtocolsList is a required field
5995	ProtocolsList []*string `type:"list" required:"true"`
5996}
5997
5998// String returns the string representation
5999func (s ProtocolsListData) String() string {
6000	return awsutil.Prettify(s)
6001}
6002
6003// GoString returns the string representation
6004func (s ProtocolsListData) GoString() string {
6005	return s.String()
6006}
6007
6008// Validate inspects the fields of the type to determine if they are valid.
6009func (s *ProtocolsListData) Validate() error {
6010	invalidParams := request.ErrInvalidParams{Context: "ProtocolsListData"}
6011	if s.ListId != nil && len(*s.ListId) < 36 {
6012		invalidParams.Add(request.NewErrParamMinLen("ListId", 36))
6013	}
6014	if s.ListName == nil {
6015		invalidParams.Add(request.NewErrParamRequired("ListName"))
6016	}
6017	if s.ListName != nil && len(*s.ListName) < 1 {
6018		invalidParams.Add(request.NewErrParamMinLen("ListName", 1))
6019	}
6020	if s.ListUpdateToken != nil && len(*s.ListUpdateToken) < 1 {
6021		invalidParams.Add(request.NewErrParamMinLen("ListUpdateToken", 1))
6022	}
6023	if s.ProtocolsList == nil {
6024		invalidParams.Add(request.NewErrParamRequired("ProtocolsList"))
6025	}
6026
6027	if invalidParams.Len() > 0 {
6028		return invalidParams
6029	}
6030	return nil
6031}
6032
6033// SetCreateTime sets the CreateTime field's value.
6034func (s *ProtocolsListData) SetCreateTime(v time.Time) *ProtocolsListData {
6035	s.CreateTime = &v
6036	return s
6037}
6038
6039// SetLastUpdateTime sets the LastUpdateTime field's value.
6040func (s *ProtocolsListData) SetLastUpdateTime(v time.Time) *ProtocolsListData {
6041	s.LastUpdateTime = &v
6042	return s
6043}
6044
6045// SetListId sets the ListId field's value.
6046func (s *ProtocolsListData) SetListId(v string) *ProtocolsListData {
6047	s.ListId = &v
6048	return s
6049}
6050
6051// SetListName sets the ListName field's value.
6052func (s *ProtocolsListData) SetListName(v string) *ProtocolsListData {
6053	s.ListName = &v
6054	return s
6055}
6056
6057// SetListUpdateToken sets the ListUpdateToken field's value.
6058func (s *ProtocolsListData) SetListUpdateToken(v string) *ProtocolsListData {
6059	s.ListUpdateToken = &v
6060	return s
6061}
6062
6063// SetPreviousProtocolsList sets the PreviousProtocolsList field's value.
6064func (s *ProtocolsListData) SetPreviousProtocolsList(v map[string][]*string) *ProtocolsListData {
6065	s.PreviousProtocolsList = v
6066	return s
6067}
6068
6069// SetProtocolsList sets the ProtocolsList field's value.
6070func (s *ProtocolsListData) SetProtocolsList(v []*string) *ProtocolsListData {
6071	s.ProtocolsList = v
6072	return s
6073}
6074
6075// Details of the AWS Firewall Manager protocols list.
6076type ProtocolsListDataSummary struct {
6077	_ struct{} `type:"structure"`
6078
6079	// The Amazon Resource Name (ARN) of the specified protocols list.
6080	ListArn *string `min:"1" type:"string"`
6081
6082	// The ID of the specified protocols list.
6083	ListId *string `min:"36" type:"string"`
6084
6085	// The name of the specified protocols list.
6086	ListName *string `min:"1" type:"string"`
6087
6088	// An array of protocols in the AWS Firewall Manager protocols list.
6089	ProtocolsList []*string `type:"list"`
6090}
6091
6092// String returns the string representation
6093func (s ProtocolsListDataSummary) String() string {
6094	return awsutil.Prettify(s)
6095}
6096
6097// GoString returns the string representation
6098func (s ProtocolsListDataSummary) GoString() string {
6099	return s.String()
6100}
6101
6102// SetListArn sets the ListArn field's value.
6103func (s *ProtocolsListDataSummary) SetListArn(v string) *ProtocolsListDataSummary {
6104	s.ListArn = &v
6105	return s
6106}
6107
6108// SetListId sets the ListId field's value.
6109func (s *ProtocolsListDataSummary) SetListId(v string) *ProtocolsListDataSummary {
6110	s.ListId = &v
6111	return s
6112}
6113
6114// SetListName sets the ListName field's value.
6115func (s *ProtocolsListDataSummary) SetListName(v string) *ProtocolsListDataSummary {
6116	s.ListName = &v
6117	return s
6118}
6119
6120// SetProtocolsList sets the ProtocolsList field's value.
6121func (s *ProtocolsListDataSummary) SetProtocolsList(v []*string) *ProtocolsListDataSummary {
6122	s.ProtocolsList = v
6123	return s
6124}
6125
6126type PutAppsListInput struct {
6127	_ struct{} `type:"structure"`
6128
6129	// The details of the AWS Firewall Manager applications list to be created.
6130	//
6131	// AppsList is a required field
6132	AppsList *AppsListData `type:"structure" required:"true"`
6133
6134	// The tags associated with the resource.
6135	TagList []*Tag `type:"list"`
6136}
6137
6138// String returns the string representation
6139func (s PutAppsListInput) String() string {
6140	return awsutil.Prettify(s)
6141}
6142
6143// GoString returns the string representation
6144func (s PutAppsListInput) GoString() string {
6145	return s.String()
6146}
6147
6148// Validate inspects the fields of the type to determine if they are valid.
6149func (s *PutAppsListInput) Validate() error {
6150	invalidParams := request.ErrInvalidParams{Context: "PutAppsListInput"}
6151	if s.AppsList == nil {
6152		invalidParams.Add(request.NewErrParamRequired("AppsList"))
6153	}
6154	if s.AppsList != nil {
6155		if err := s.AppsList.Validate(); err != nil {
6156			invalidParams.AddNested("AppsList", err.(request.ErrInvalidParams))
6157		}
6158	}
6159	if s.TagList != nil {
6160		for i, v := range s.TagList {
6161			if v == nil {
6162				continue
6163			}
6164			if err := v.Validate(); err != nil {
6165				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagList", i), err.(request.ErrInvalidParams))
6166			}
6167		}
6168	}
6169
6170	if invalidParams.Len() > 0 {
6171		return invalidParams
6172	}
6173	return nil
6174}
6175
6176// SetAppsList sets the AppsList field's value.
6177func (s *PutAppsListInput) SetAppsList(v *AppsListData) *PutAppsListInput {
6178	s.AppsList = v
6179	return s
6180}
6181
6182// SetTagList sets the TagList field's value.
6183func (s *PutAppsListInput) SetTagList(v []*Tag) *PutAppsListInput {
6184	s.TagList = v
6185	return s
6186}
6187
6188type PutAppsListOutput struct {
6189	_ struct{} `type:"structure"`
6190
6191	// The details of the AWS Firewall Manager applications list.
6192	AppsList *AppsListData `type:"structure"`
6193
6194	// The Amazon Resource Name (ARN) of the applications list.
6195	AppsListArn *string `min:"1" type:"string"`
6196}
6197
6198// String returns the string representation
6199func (s PutAppsListOutput) String() string {
6200	return awsutil.Prettify(s)
6201}
6202
6203// GoString returns the string representation
6204func (s PutAppsListOutput) GoString() string {
6205	return s.String()
6206}
6207
6208// SetAppsList sets the AppsList field's value.
6209func (s *PutAppsListOutput) SetAppsList(v *AppsListData) *PutAppsListOutput {
6210	s.AppsList = v
6211	return s
6212}
6213
6214// SetAppsListArn sets the AppsListArn field's value.
6215func (s *PutAppsListOutput) SetAppsListArn(v string) *PutAppsListOutput {
6216	s.AppsListArn = &v
6217	return s
6218}
6219
6220type PutNotificationChannelInput struct {
6221	_ struct{} `type:"structure"`
6222
6223	// The Amazon Resource Name (ARN) of the IAM role that allows Amazon SNS to
6224	// record AWS Firewall Manager activity.
6225	//
6226	// SnsRoleName is a required field
6227	SnsRoleName *string `min:"1" type:"string" required:"true"`
6228
6229	// The Amazon Resource Name (ARN) of the SNS topic that collects notifications
6230	// from AWS Firewall Manager.
6231	//
6232	// SnsTopicArn is a required field
6233	SnsTopicArn *string `min:"1" type:"string" required:"true"`
6234}
6235
6236// String returns the string representation
6237func (s PutNotificationChannelInput) String() string {
6238	return awsutil.Prettify(s)
6239}
6240
6241// GoString returns the string representation
6242func (s PutNotificationChannelInput) GoString() string {
6243	return s.String()
6244}
6245
6246// Validate inspects the fields of the type to determine if they are valid.
6247func (s *PutNotificationChannelInput) Validate() error {
6248	invalidParams := request.ErrInvalidParams{Context: "PutNotificationChannelInput"}
6249	if s.SnsRoleName == nil {
6250		invalidParams.Add(request.NewErrParamRequired("SnsRoleName"))
6251	}
6252	if s.SnsRoleName != nil && len(*s.SnsRoleName) < 1 {
6253		invalidParams.Add(request.NewErrParamMinLen("SnsRoleName", 1))
6254	}
6255	if s.SnsTopicArn == nil {
6256		invalidParams.Add(request.NewErrParamRequired("SnsTopicArn"))
6257	}
6258	if s.SnsTopicArn != nil && len(*s.SnsTopicArn) < 1 {
6259		invalidParams.Add(request.NewErrParamMinLen("SnsTopicArn", 1))
6260	}
6261
6262	if invalidParams.Len() > 0 {
6263		return invalidParams
6264	}
6265	return nil
6266}
6267
6268// SetSnsRoleName sets the SnsRoleName field's value.
6269func (s *PutNotificationChannelInput) SetSnsRoleName(v string) *PutNotificationChannelInput {
6270	s.SnsRoleName = &v
6271	return s
6272}
6273
6274// SetSnsTopicArn sets the SnsTopicArn field's value.
6275func (s *PutNotificationChannelInput) SetSnsTopicArn(v string) *PutNotificationChannelInput {
6276	s.SnsTopicArn = &v
6277	return s
6278}
6279
6280type PutNotificationChannelOutput struct {
6281	_ struct{} `type:"structure"`
6282}
6283
6284// String returns the string representation
6285func (s PutNotificationChannelOutput) String() string {
6286	return awsutil.Prettify(s)
6287}
6288
6289// GoString returns the string representation
6290func (s PutNotificationChannelOutput) GoString() string {
6291	return s.String()
6292}
6293
6294type PutPolicyInput struct {
6295	_ struct{} `type:"structure"`
6296
6297	// The details of the AWS Firewall Manager policy to be created.
6298	//
6299	// Policy is a required field
6300	Policy *Policy `type:"structure" required:"true"`
6301
6302	// The tags to add to the AWS resource.
6303	TagList []*Tag `type:"list"`
6304}
6305
6306// String returns the string representation
6307func (s PutPolicyInput) String() string {
6308	return awsutil.Prettify(s)
6309}
6310
6311// GoString returns the string representation
6312func (s PutPolicyInput) GoString() string {
6313	return s.String()
6314}
6315
6316// Validate inspects the fields of the type to determine if they are valid.
6317func (s *PutPolicyInput) Validate() error {
6318	invalidParams := request.ErrInvalidParams{Context: "PutPolicyInput"}
6319	if s.Policy == nil {
6320		invalidParams.Add(request.NewErrParamRequired("Policy"))
6321	}
6322	if s.Policy != nil {
6323		if err := s.Policy.Validate(); err != nil {
6324			invalidParams.AddNested("Policy", err.(request.ErrInvalidParams))
6325		}
6326	}
6327	if s.TagList != nil {
6328		for i, v := range s.TagList {
6329			if v == nil {
6330				continue
6331			}
6332			if err := v.Validate(); err != nil {
6333				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagList", i), err.(request.ErrInvalidParams))
6334			}
6335		}
6336	}
6337
6338	if invalidParams.Len() > 0 {
6339		return invalidParams
6340	}
6341	return nil
6342}
6343
6344// SetPolicy sets the Policy field's value.
6345func (s *PutPolicyInput) SetPolicy(v *Policy) *PutPolicyInput {
6346	s.Policy = v
6347	return s
6348}
6349
6350// SetTagList sets the TagList field's value.
6351func (s *PutPolicyInput) SetTagList(v []*Tag) *PutPolicyInput {
6352	s.TagList = v
6353	return s
6354}
6355
6356type PutPolicyOutput struct {
6357	_ struct{} `type:"structure"`
6358
6359	// The details of the AWS Firewall Manager policy.
6360	Policy *Policy `type:"structure"`
6361
6362	// The Amazon Resource Name (ARN) of the policy.
6363	PolicyArn *string `min:"1" type:"string"`
6364}
6365
6366// String returns the string representation
6367func (s PutPolicyOutput) String() string {
6368	return awsutil.Prettify(s)
6369}
6370
6371// GoString returns the string representation
6372func (s PutPolicyOutput) GoString() string {
6373	return s.String()
6374}
6375
6376// SetPolicy sets the Policy field's value.
6377func (s *PutPolicyOutput) SetPolicy(v *Policy) *PutPolicyOutput {
6378	s.Policy = v
6379	return s
6380}
6381
6382// SetPolicyArn sets the PolicyArn field's value.
6383func (s *PutPolicyOutput) SetPolicyArn(v string) *PutPolicyOutput {
6384	s.PolicyArn = &v
6385	return s
6386}
6387
6388type PutProtocolsListInput struct {
6389	_ struct{} `type:"structure"`
6390
6391	// The details of the AWS Firewall Manager protocols list to be created.
6392	//
6393	// ProtocolsList is a required field
6394	ProtocolsList *ProtocolsListData `type:"structure" required:"true"`
6395
6396	// The tags associated with the resource.
6397	TagList []*Tag `type:"list"`
6398}
6399
6400// String returns the string representation
6401func (s PutProtocolsListInput) String() string {
6402	return awsutil.Prettify(s)
6403}
6404
6405// GoString returns the string representation
6406func (s PutProtocolsListInput) GoString() string {
6407	return s.String()
6408}
6409
6410// Validate inspects the fields of the type to determine if they are valid.
6411func (s *PutProtocolsListInput) Validate() error {
6412	invalidParams := request.ErrInvalidParams{Context: "PutProtocolsListInput"}
6413	if s.ProtocolsList == nil {
6414		invalidParams.Add(request.NewErrParamRequired("ProtocolsList"))
6415	}
6416	if s.ProtocolsList != nil {
6417		if err := s.ProtocolsList.Validate(); err != nil {
6418			invalidParams.AddNested("ProtocolsList", err.(request.ErrInvalidParams))
6419		}
6420	}
6421	if s.TagList != nil {
6422		for i, v := range s.TagList {
6423			if v == nil {
6424				continue
6425			}
6426			if err := v.Validate(); err != nil {
6427				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagList", i), err.(request.ErrInvalidParams))
6428			}
6429		}
6430	}
6431
6432	if invalidParams.Len() > 0 {
6433		return invalidParams
6434	}
6435	return nil
6436}
6437
6438// SetProtocolsList sets the ProtocolsList field's value.
6439func (s *PutProtocolsListInput) SetProtocolsList(v *ProtocolsListData) *PutProtocolsListInput {
6440	s.ProtocolsList = v
6441	return s
6442}
6443
6444// SetTagList sets the TagList field's value.
6445func (s *PutProtocolsListInput) SetTagList(v []*Tag) *PutProtocolsListInput {
6446	s.TagList = v
6447	return s
6448}
6449
6450type PutProtocolsListOutput struct {
6451	_ struct{} `type:"structure"`
6452
6453	// The details of the AWS Firewall Manager protocols list.
6454	ProtocolsList *ProtocolsListData `type:"structure"`
6455
6456	// The Amazon Resource Name (ARN) of the protocols list.
6457	ProtocolsListArn *string `min:"1" type:"string"`
6458}
6459
6460// String returns the string representation
6461func (s PutProtocolsListOutput) String() string {
6462	return awsutil.Prettify(s)
6463}
6464
6465// GoString returns the string representation
6466func (s PutProtocolsListOutput) GoString() string {
6467	return s.String()
6468}
6469
6470// SetProtocolsList sets the ProtocolsList field's value.
6471func (s *PutProtocolsListOutput) SetProtocolsList(v *ProtocolsListData) *PutProtocolsListOutput {
6472	s.ProtocolsList = v
6473	return s
6474}
6475
6476// SetProtocolsListArn sets the ProtocolsListArn field's value.
6477func (s *PutProtocolsListOutput) SetProtocolsListArn(v string) *PutProtocolsListOutput {
6478	s.ProtocolsListArn = &v
6479	return s
6480}
6481
6482// The specified resource was not found.
6483type ResourceNotFoundException struct {
6484	_            struct{}                  `type:"structure"`
6485	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6486
6487	Message_ *string `locationName:"Message" type:"string"`
6488}
6489
6490// String returns the string representation
6491func (s ResourceNotFoundException) String() string {
6492	return awsutil.Prettify(s)
6493}
6494
6495// GoString returns the string representation
6496func (s ResourceNotFoundException) GoString() string {
6497	return s.String()
6498}
6499
6500func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
6501	return &ResourceNotFoundException{
6502		RespMetadata: v,
6503	}
6504}
6505
6506// Code returns the exception type name.
6507func (s *ResourceNotFoundException) Code() string {
6508	return "ResourceNotFoundException"
6509}
6510
6511// Message returns the exception's message.
6512func (s *ResourceNotFoundException) Message() string {
6513	if s.Message_ != nil {
6514		return *s.Message_
6515	}
6516	return ""
6517}
6518
6519// OrigErr always returns nil, satisfies awserr.Error interface.
6520func (s *ResourceNotFoundException) OrigErr() error {
6521	return nil
6522}
6523
6524func (s *ResourceNotFoundException) Error() string {
6525	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6526}
6527
6528// Status code returns the HTTP status code for the request's response error.
6529func (s *ResourceNotFoundException) StatusCode() int {
6530	return s.RespMetadata.StatusCode
6531}
6532
6533// RequestID returns the service's response RequestID for request.
6534func (s *ResourceNotFoundException) RequestID() string {
6535	return s.RespMetadata.RequestID
6536}
6537
6538// The resource tags that AWS Firewall Manager uses to determine if a particular
6539// resource should be included or excluded from the AWS Firewall Manager policy.
6540// Tags enable you to categorize your AWS resources in different ways, for example,
6541// by purpose, owner, or environment. Each tag consists of a key and an optional
6542// value. Firewall Manager combines the tags with "AND" so that, if you add
6543// more than one tag to a policy scope, a resource must have all the specified
6544// tags to be included or excluded. For more information, see Working with Tag
6545// Editor (https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html).
6546type ResourceTag struct {
6547	_ struct{} `type:"structure"`
6548
6549	// The resource tag key.
6550	//
6551	// Key is a required field
6552	Key *string `min:"1" type:"string" required:"true"`
6553
6554	// The resource tag value.
6555	Value *string `type:"string"`
6556}
6557
6558// String returns the string representation
6559func (s ResourceTag) String() string {
6560	return awsutil.Prettify(s)
6561}
6562
6563// GoString returns the string representation
6564func (s ResourceTag) GoString() string {
6565	return s.String()
6566}
6567
6568// Validate inspects the fields of the type to determine if they are valid.
6569func (s *ResourceTag) Validate() error {
6570	invalidParams := request.ErrInvalidParams{Context: "ResourceTag"}
6571	if s.Key == nil {
6572		invalidParams.Add(request.NewErrParamRequired("Key"))
6573	}
6574	if s.Key != nil && len(*s.Key) < 1 {
6575		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
6576	}
6577
6578	if invalidParams.Len() > 0 {
6579		return invalidParams
6580	}
6581	return nil
6582}
6583
6584// SetKey sets the Key field's value.
6585func (s *ResourceTag) SetKey(v string) *ResourceTag {
6586	s.Key = &v
6587	return s
6588}
6589
6590// SetValue sets the Value field's value.
6591func (s *ResourceTag) SetValue(v string) *ResourceTag {
6592	s.Value = &v
6593	return s
6594}
6595
6596// Violation detail based on resource type.
6597type ResourceViolation struct {
6598	_ struct{} `type:"structure"`
6599
6600	// Violation details for an EC2 instance.
6601	AwsEc2InstanceViolation *AwsEc2InstanceViolation `type:"structure"`
6602
6603	// Violation details for network interface.
6604	AwsEc2NetworkInterfaceViolation *AwsEc2NetworkInterfaceViolation `type:"structure"`
6605
6606	// Violation details for security groups.
6607	AwsVPCSecurityGroupViolation *AwsVPCSecurityGroupViolation `type:"structure"`
6608
6609	// Violation detail for a DNS Firewall policy that indicates that a rule group
6610	// that Firewall Manager tried to associate with a VPC is already associated
6611	// with the VPC and can't be associated again.
6612	DnsDuplicateRuleGroupViolation *DnsDuplicateRuleGroupViolation `type:"structure"`
6613
6614	// Violation details for a DNS Firewall policy that indicates that the VPC reached
6615	// the limit for associated DNS Firewall rule groups. Firewall Manager tried
6616	// to associate another rule group with the VPC and failed.
6617	DnsRuleGroupLimitExceededViolation *DnsRuleGroupLimitExceededViolation `type:"structure"`
6618
6619	// Violation detail for a DNS Firewall policy that indicates that a rule group
6620	// that Firewall Manager tried to associate with a VPC has the same priority
6621	// as a rule group that's already associated.
6622	DnsRuleGroupPriorityConflictViolation *DnsRuleGroupPriorityConflictViolation `type:"structure"`
6623
6624	// Violation detail for an Network Firewall policy that indicates that a subnet
6625	// is not associated with the expected Firewall Manager managed route table.
6626	NetworkFirewallMissingExpectedRTViolation *NetworkFirewallMissingExpectedRTViolation `type:"structure"`
6627
6628	// Violation detail for an Network Firewall policy that indicates that a subnet
6629	// has no Firewall Manager managed firewall in its VPC.
6630	NetworkFirewallMissingFirewallViolation *NetworkFirewallMissingFirewallViolation `type:"structure"`
6631
6632	// Violation detail for an Network Firewall policy that indicates that an Availability
6633	// Zone is missing the expected Firewall Manager managed subnet.
6634	NetworkFirewallMissingSubnetViolation *NetworkFirewallMissingSubnetViolation `type:"structure"`
6635
6636	// Violation detail for an Network Firewall policy that indicates that a firewall
6637	// policy in an individual account has been modified in a way that makes it
6638	// noncompliant. For example, the individual account owner might have deleted
6639	// a rule group, changed the priority of a stateless rule group, or changed
6640	// a policy default action.
6641	NetworkFirewallPolicyModifiedViolation *NetworkFirewallPolicyModifiedViolation `type:"structure"`
6642}
6643
6644// String returns the string representation
6645func (s ResourceViolation) String() string {
6646	return awsutil.Prettify(s)
6647}
6648
6649// GoString returns the string representation
6650func (s ResourceViolation) GoString() string {
6651	return s.String()
6652}
6653
6654// SetAwsEc2InstanceViolation sets the AwsEc2InstanceViolation field's value.
6655func (s *ResourceViolation) SetAwsEc2InstanceViolation(v *AwsEc2InstanceViolation) *ResourceViolation {
6656	s.AwsEc2InstanceViolation = v
6657	return s
6658}
6659
6660// SetAwsEc2NetworkInterfaceViolation sets the AwsEc2NetworkInterfaceViolation field's value.
6661func (s *ResourceViolation) SetAwsEc2NetworkInterfaceViolation(v *AwsEc2NetworkInterfaceViolation) *ResourceViolation {
6662	s.AwsEc2NetworkInterfaceViolation = v
6663	return s
6664}
6665
6666// SetAwsVPCSecurityGroupViolation sets the AwsVPCSecurityGroupViolation field's value.
6667func (s *ResourceViolation) SetAwsVPCSecurityGroupViolation(v *AwsVPCSecurityGroupViolation) *ResourceViolation {
6668	s.AwsVPCSecurityGroupViolation = v
6669	return s
6670}
6671
6672// SetDnsDuplicateRuleGroupViolation sets the DnsDuplicateRuleGroupViolation field's value.
6673func (s *ResourceViolation) SetDnsDuplicateRuleGroupViolation(v *DnsDuplicateRuleGroupViolation) *ResourceViolation {
6674	s.DnsDuplicateRuleGroupViolation = v
6675	return s
6676}
6677
6678// SetDnsRuleGroupLimitExceededViolation sets the DnsRuleGroupLimitExceededViolation field's value.
6679func (s *ResourceViolation) SetDnsRuleGroupLimitExceededViolation(v *DnsRuleGroupLimitExceededViolation) *ResourceViolation {
6680	s.DnsRuleGroupLimitExceededViolation = v
6681	return s
6682}
6683
6684// SetDnsRuleGroupPriorityConflictViolation sets the DnsRuleGroupPriorityConflictViolation field's value.
6685func (s *ResourceViolation) SetDnsRuleGroupPriorityConflictViolation(v *DnsRuleGroupPriorityConflictViolation) *ResourceViolation {
6686	s.DnsRuleGroupPriorityConflictViolation = v
6687	return s
6688}
6689
6690// SetNetworkFirewallMissingExpectedRTViolation sets the NetworkFirewallMissingExpectedRTViolation field's value.
6691func (s *ResourceViolation) SetNetworkFirewallMissingExpectedRTViolation(v *NetworkFirewallMissingExpectedRTViolation) *ResourceViolation {
6692	s.NetworkFirewallMissingExpectedRTViolation = v
6693	return s
6694}
6695
6696// SetNetworkFirewallMissingFirewallViolation sets the NetworkFirewallMissingFirewallViolation field's value.
6697func (s *ResourceViolation) SetNetworkFirewallMissingFirewallViolation(v *NetworkFirewallMissingFirewallViolation) *ResourceViolation {
6698	s.NetworkFirewallMissingFirewallViolation = v
6699	return s
6700}
6701
6702// SetNetworkFirewallMissingSubnetViolation sets the NetworkFirewallMissingSubnetViolation field's value.
6703func (s *ResourceViolation) SetNetworkFirewallMissingSubnetViolation(v *NetworkFirewallMissingSubnetViolation) *ResourceViolation {
6704	s.NetworkFirewallMissingSubnetViolation = v
6705	return s
6706}
6707
6708// SetNetworkFirewallPolicyModifiedViolation sets the NetworkFirewallPolicyModifiedViolation field's value.
6709func (s *ResourceViolation) SetNetworkFirewallPolicyModifiedViolation(v *NetworkFirewallPolicyModifiedViolation) *ResourceViolation {
6710	s.NetworkFirewallPolicyModifiedViolation = v
6711	return s
6712}
6713
6714// Remediation option for the rule specified in the ViolationTarget.
6715type SecurityGroupRemediationAction struct {
6716	_ struct{} `type:"structure"`
6717
6718	// Brief description of the action that will be performed.
6719	Description *string `type:"string"`
6720
6721	// Indicates if the current action is the default action.
6722	IsDefaultAction *bool `type:"boolean"`
6723
6724	// The remediation action that will be performed.
6725	RemediationActionType *string `type:"string" enum:"RemediationActionType"`
6726
6727	// The final state of the rule specified in the ViolationTarget after it is
6728	// remediated.
6729	RemediationResult *SecurityGroupRuleDescription `type:"structure"`
6730}
6731
6732// String returns the string representation
6733func (s SecurityGroupRemediationAction) String() string {
6734	return awsutil.Prettify(s)
6735}
6736
6737// GoString returns the string representation
6738func (s SecurityGroupRemediationAction) GoString() string {
6739	return s.String()
6740}
6741
6742// SetDescription sets the Description field's value.
6743func (s *SecurityGroupRemediationAction) SetDescription(v string) *SecurityGroupRemediationAction {
6744	s.Description = &v
6745	return s
6746}
6747
6748// SetIsDefaultAction sets the IsDefaultAction field's value.
6749func (s *SecurityGroupRemediationAction) SetIsDefaultAction(v bool) *SecurityGroupRemediationAction {
6750	s.IsDefaultAction = &v
6751	return s
6752}
6753
6754// SetRemediationActionType sets the RemediationActionType field's value.
6755func (s *SecurityGroupRemediationAction) SetRemediationActionType(v string) *SecurityGroupRemediationAction {
6756	s.RemediationActionType = &v
6757	return s
6758}
6759
6760// SetRemediationResult sets the RemediationResult field's value.
6761func (s *SecurityGroupRemediationAction) SetRemediationResult(v *SecurityGroupRuleDescription) *SecurityGroupRemediationAction {
6762	s.RemediationResult = v
6763	return s
6764}
6765
6766// Describes a set of permissions for a security group rule.
6767type SecurityGroupRuleDescription struct {
6768	_ struct{} `type:"structure"`
6769
6770	// The start of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6
6771	// type number. A value of -1 indicates all ICMP/ICMPv6 types.
6772	FromPort *int64 `type:"long"`
6773
6774	// The IPv4 ranges for the security group rule.
6775	IPV4Range *string `type:"string"`
6776
6777	// The IPv6 ranges for the security group rule.
6778	IPV6Range *string `type:"string"`
6779
6780	// The ID of the prefix list for the security group rule.
6781	PrefixListId *string `min:"1" type:"string"`
6782
6783	// The IP protocol name (tcp, udp, icmp, icmpv6) or number.
6784	Protocol *string `type:"string"`
6785
6786	// The end of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6
6787	// code. A value of -1 indicates all ICMP/ICMPv6 codes.
6788	ToPort *int64 `type:"long"`
6789}
6790
6791// String returns the string representation
6792func (s SecurityGroupRuleDescription) String() string {
6793	return awsutil.Prettify(s)
6794}
6795
6796// GoString returns the string representation
6797func (s SecurityGroupRuleDescription) GoString() string {
6798	return s.String()
6799}
6800
6801// SetFromPort sets the FromPort field's value.
6802func (s *SecurityGroupRuleDescription) SetFromPort(v int64) *SecurityGroupRuleDescription {
6803	s.FromPort = &v
6804	return s
6805}
6806
6807// SetIPV4Range sets the IPV4Range field's value.
6808func (s *SecurityGroupRuleDescription) SetIPV4Range(v string) *SecurityGroupRuleDescription {
6809	s.IPV4Range = &v
6810	return s
6811}
6812
6813// SetIPV6Range sets the IPV6Range field's value.
6814func (s *SecurityGroupRuleDescription) SetIPV6Range(v string) *SecurityGroupRuleDescription {
6815	s.IPV6Range = &v
6816	return s
6817}
6818
6819// SetPrefixListId sets the PrefixListId field's value.
6820func (s *SecurityGroupRuleDescription) SetPrefixListId(v string) *SecurityGroupRuleDescription {
6821	s.PrefixListId = &v
6822	return s
6823}
6824
6825// SetProtocol sets the Protocol field's value.
6826func (s *SecurityGroupRuleDescription) SetProtocol(v string) *SecurityGroupRuleDescription {
6827	s.Protocol = &v
6828	return s
6829}
6830
6831// SetToPort sets the ToPort field's value.
6832func (s *SecurityGroupRuleDescription) SetToPort(v int64) *SecurityGroupRuleDescription {
6833	s.ToPort = &v
6834	return s
6835}
6836
6837// Details about the security service that is being used to protect the resources.
6838type SecurityServicePolicyData struct {
6839	_ struct{} `type:"structure"`
6840
6841	// Details about the service that are specific to the service type, in JSON
6842	// format. For service type SHIELD_ADVANCED, this is an empty string.
6843	//
6844	//    * 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\"]}
6845	//    }"
6846	//
6847	//    * 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\"}]}}"
6848	//    In the loggingConfiguration, you can specify one logDestinationConfigs,
6849	//    you can optionally provide up to 20 redactedFields, and the RedactedFieldType
6850	//    must be one of URI, QUERY_STRING, HEADER, or METHOD.
6851	//
6852	//    * Example: WAF Classic "{\"type\": \"WAF\", \"ruleGroups\": [{\"id\":\"12345678-1bcd-9012-efga-0987654321ab\",
6853	//    \"overrideAction\" : {\"type\": \"COUNT\"}}], \"defaultAction\": {\"type\":
6854	//    \"BLOCK\"}}"
6855	//
6856	//    * Example: SECURITY_GROUPS_COMMON "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false,
6857	//    \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" sg-000e55995d61a06bd\"}]}"
6858	//
6859	//    * Example: SECURITY_GROUPS_CONTENT_AUDIT "{\"type\":\"SECURITY_GROUPS_CONTENT_AUDIT\",\"securityGroups\":[{\"id\":\"sg-000e55995d61a06bd\"}],\"securityGroupAction\":{\"type\":\"ALLOW\"}}"
6860	//    The security group action for content audit can be ALLOW or DENY. For
6861	//    ALLOW, all in-scope security group rules must be within the allowed range
6862	//    of the policy's security group rules. For DENY, all in-scope security
6863	//    group rules must not contain a value or a range that matches a rule value
6864	//    or range in the policy security group.
6865	//
6866	//    * Example: SECURITY_GROUPS_USAGE_AUDIT "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":true,\"coalesceRedundantSecurityGroups\":true}"
6867	ManagedServiceData *string `min:"1" type:"string"`
6868
6869	// The service that the policy is using to protect the resources. This specifies
6870	// the type of policy that is created, either an AWS WAF policy, a Shield Advanced
6871	// policy, or a security group policy. For security group policies, Firewall
6872	// Manager supports one security group for each common policy and for each content
6873	// audit policy. This is an adjustable limit that you can increase by contacting
6874	// AWS Support.
6875	//
6876	// Type is a required field
6877	Type *string `type:"string" required:"true" enum:"SecurityServiceType"`
6878}
6879
6880// String returns the string representation
6881func (s SecurityServicePolicyData) String() string {
6882	return awsutil.Prettify(s)
6883}
6884
6885// GoString returns the string representation
6886func (s SecurityServicePolicyData) GoString() string {
6887	return s.String()
6888}
6889
6890// Validate inspects the fields of the type to determine if they are valid.
6891func (s *SecurityServicePolicyData) Validate() error {
6892	invalidParams := request.ErrInvalidParams{Context: "SecurityServicePolicyData"}
6893	if s.ManagedServiceData != nil && len(*s.ManagedServiceData) < 1 {
6894		invalidParams.Add(request.NewErrParamMinLen("ManagedServiceData", 1))
6895	}
6896	if s.Type == nil {
6897		invalidParams.Add(request.NewErrParamRequired("Type"))
6898	}
6899
6900	if invalidParams.Len() > 0 {
6901		return invalidParams
6902	}
6903	return nil
6904}
6905
6906// SetManagedServiceData sets the ManagedServiceData field's value.
6907func (s *SecurityServicePolicyData) SetManagedServiceData(v string) *SecurityServicePolicyData {
6908	s.ManagedServiceData = &v
6909	return s
6910}
6911
6912// SetType sets the Type field's value.
6913func (s *SecurityServicePolicyData) SetType(v string) *SecurityServicePolicyData {
6914	s.Type = &v
6915	return s
6916}
6917
6918// AWS Network Firewall stateful rule group, used in a NetworkFirewallPolicyDescription.
6919type StatefulRuleGroup struct {
6920	_ struct{} `type:"structure"`
6921
6922	// The resource ID of the rule group.
6923	ResourceId *string `min:"1" type:"string"`
6924
6925	// The name of the rule group.
6926	RuleGroupName *string `min:"1" type:"string"`
6927}
6928
6929// String returns the string representation
6930func (s StatefulRuleGroup) String() string {
6931	return awsutil.Prettify(s)
6932}
6933
6934// GoString returns the string representation
6935func (s StatefulRuleGroup) GoString() string {
6936	return s.String()
6937}
6938
6939// SetResourceId sets the ResourceId field's value.
6940func (s *StatefulRuleGroup) SetResourceId(v string) *StatefulRuleGroup {
6941	s.ResourceId = &v
6942	return s
6943}
6944
6945// SetRuleGroupName sets the RuleGroupName field's value.
6946func (s *StatefulRuleGroup) SetRuleGroupName(v string) *StatefulRuleGroup {
6947	s.RuleGroupName = &v
6948	return s
6949}
6950
6951// AWS Network Firewall stateless rule group, used in a NetworkFirewallPolicyDescription.
6952type StatelessRuleGroup struct {
6953	_ struct{} `type:"structure"`
6954
6955	// The priority of the rule group. AWS Network Firewall evaluates the stateless
6956	// rule groups in a firewall policy starting from the lowest priority setting.
6957	Priority *int64 `min:"1" type:"integer"`
6958
6959	// The resource ID of the rule group.
6960	ResourceId *string `min:"1" type:"string"`
6961
6962	// The name of the rule group.
6963	RuleGroupName *string `min:"1" type:"string"`
6964}
6965
6966// String returns the string representation
6967func (s StatelessRuleGroup) String() string {
6968	return awsutil.Prettify(s)
6969}
6970
6971// GoString returns the string representation
6972func (s StatelessRuleGroup) GoString() string {
6973	return s.String()
6974}
6975
6976// SetPriority sets the Priority field's value.
6977func (s *StatelessRuleGroup) SetPriority(v int64) *StatelessRuleGroup {
6978	s.Priority = &v
6979	return s
6980}
6981
6982// SetResourceId sets the ResourceId field's value.
6983func (s *StatelessRuleGroup) SetResourceId(v string) *StatelessRuleGroup {
6984	s.ResourceId = &v
6985	return s
6986}
6987
6988// SetRuleGroupName sets the RuleGroupName field's value.
6989func (s *StatelessRuleGroup) SetRuleGroupName(v string) *StatelessRuleGroup {
6990	s.RuleGroupName = &v
6991	return s
6992}
6993
6994// A collection of key:value pairs associated with an AWS resource. The key:value
6995// pair can be anything you define. Typically, the tag key represents a category
6996// (such as "environment") and the tag value represents a specific value within
6997// that category (such as "test," "development," or "production"). You can add
6998// up to 50 tags to each AWS resource.
6999type Tag struct {
7000	_ struct{} `type:"structure"`
7001
7002	// Part of the key:value pair that defines a tag. You can use a tag key to describe
7003	// a category of information, such as "customer." Tag keys are case-sensitive.
7004	//
7005	// Key is a required field
7006	Key *string `min:"1" type:"string" required:"true"`
7007
7008	// Part of the key:value pair that defines a tag. You can use a tag value to
7009	// describe a specific value within a category, such as "companyA" or "companyB."
7010	// Tag values are case-sensitive.
7011	//
7012	// Value is a required field
7013	Value *string `type:"string" required:"true"`
7014}
7015
7016// String returns the string representation
7017func (s Tag) String() string {
7018	return awsutil.Prettify(s)
7019}
7020
7021// GoString returns the string representation
7022func (s Tag) GoString() string {
7023	return s.String()
7024}
7025
7026// Validate inspects the fields of the type to determine if they are valid.
7027func (s *Tag) Validate() error {
7028	invalidParams := request.ErrInvalidParams{Context: "Tag"}
7029	if s.Key == nil {
7030		invalidParams.Add(request.NewErrParamRequired("Key"))
7031	}
7032	if s.Key != nil && len(*s.Key) < 1 {
7033		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
7034	}
7035	if s.Value == nil {
7036		invalidParams.Add(request.NewErrParamRequired("Value"))
7037	}
7038
7039	if invalidParams.Len() > 0 {
7040		return invalidParams
7041	}
7042	return nil
7043}
7044
7045// SetKey sets the Key field's value.
7046func (s *Tag) SetKey(v string) *Tag {
7047	s.Key = &v
7048	return s
7049}
7050
7051// SetValue sets the Value field's value.
7052func (s *Tag) SetValue(v string) *Tag {
7053	s.Value = &v
7054	return s
7055}
7056
7057type TagResourceInput struct {
7058	_ struct{} `type:"structure"`
7059
7060	// The Amazon Resource Name (ARN) of the resource to return tags for. The AWS
7061	// Firewall Manager resources that support tagging are policies, applications
7062	// lists, and protocols lists.
7063	//
7064	// ResourceArn is a required field
7065	ResourceArn *string `min:"1" type:"string" required:"true"`
7066
7067	// The tags to add to the resource.
7068	//
7069	// TagList is a required field
7070	TagList []*Tag `type:"list" required:"true"`
7071}
7072
7073// String returns the string representation
7074func (s TagResourceInput) String() string {
7075	return awsutil.Prettify(s)
7076}
7077
7078// GoString returns the string representation
7079func (s TagResourceInput) GoString() string {
7080	return s.String()
7081}
7082
7083// Validate inspects the fields of the type to determine if they are valid.
7084func (s *TagResourceInput) Validate() error {
7085	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
7086	if s.ResourceArn == nil {
7087		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
7088	}
7089	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
7090		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
7091	}
7092	if s.TagList == nil {
7093		invalidParams.Add(request.NewErrParamRequired("TagList"))
7094	}
7095	if s.TagList != nil {
7096		for i, v := range s.TagList {
7097			if v == nil {
7098				continue
7099			}
7100			if err := v.Validate(); err != nil {
7101				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagList", i), err.(request.ErrInvalidParams))
7102			}
7103		}
7104	}
7105
7106	if invalidParams.Len() > 0 {
7107		return invalidParams
7108	}
7109	return nil
7110}
7111
7112// SetResourceArn sets the ResourceArn field's value.
7113func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
7114	s.ResourceArn = &v
7115	return s
7116}
7117
7118// SetTagList sets the TagList field's value.
7119func (s *TagResourceInput) SetTagList(v []*Tag) *TagResourceInput {
7120	s.TagList = v
7121	return s
7122}
7123
7124type TagResourceOutput struct {
7125	_ struct{} `type:"structure"`
7126}
7127
7128// String returns the string representation
7129func (s TagResourceOutput) String() string {
7130	return awsutil.Prettify(s)
7131}
7132
7133// GoString returns the string representation
7134func (s TagResourceOutput) GoString() string {
7135	return s.String()
7136}
7137
7138type UntagResourceInput struct {
7139	_ struct{} `type:"structure"`
7140
7141	// The Amazon Resource Name (ARN) of the resource to return tags for. The AWS
7142	// Firewall Manager resources that support tagging are policies, applications
7143	// lists, and protocols lists.
7144	//
7145	// ResourceArn is a required field
7146	ResourceArn *string `min:"1" type:"string" required:"true"`
7147
7148	// The keys of the tags to remove from the resource.
7149	//
7150	// TagKeys is a required field
7151	TagKeys []*string `type:"list" required:"true"`
7152}
7153
7154// String returns the string representation
7155func (s UntagResourceInput) String() string {
7156	return awsutil.Prettify(s)
7157}
7158
7159// GoString returns the string representation
7160func (s UntagResourceInput) GoString() string {
7161	return s.String()
7162}
7163
7164// Validate inspects the fields of the type to determine if they are valid.
7165func (s *UntagResourceInput) Validate() error {
7166	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
7167	if s.ResourceArn == nil {
7168		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
7169	}
7170	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
7171		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
7172	}
7173	if s.TagKeys == nil {
7174		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
7175	}
7176
7177	if invalidParams.Len() > 0 {
7178		return invalidParams
7179	}
7180	return nil
7181}
7182
7183// SetResourceArn sets the ResourceArn field's value.
7184func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
7185	s.ResourceArn = &v
7186	return s
7187}
7188
7189// SetTagKeys sets the TagKeys field's value.
7190func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
7191	s.TagKeys = v
7192	return s
7193}
7194
7195type UntagResourceOutput struct {
7196	_ struct{} `type:"structure"`
7197}
7198
7199// String returns the string representation
7200func (s UntagResourceOutput) String() string {
7201	return awsutil.Prettify(s)
7202}
7203
7204// GoString returns the string representation
7205func (s UntagResourceOutput) GoString() string {
7206	return s.String()
7207}
7208
7209// Violations for a resource based on the specified AWS Firewall Manager policy
7210// and AWS account.
7211type ViolationDetail struct {
7212	_ struct{} `type:"structure"`
7213
7214	// The AWS account that the violation details were requested for.
7215	//
7216	// MemberAccount is a required field
7217	MemberAccount *string `min:"1" type:"string" required:"true"`
7218
7219	// The ID of the AWS Firewall Manager policy that the violation details were
7220	// requested for.
7221	//
7222	// PolicyId is a required field
7223	PolicyId *string `min:"36" type:"string" required:"true"`
7224
7225	// Brief description for the requested resource.
7226	ResourceDescription *string `type:"string"`
7227
7228	// The resource ID that the violation details were requested for.
7229	//
7230	// ResourceId is a required field
7231	ResourceId *string `min:"1" type:"string" required:"true"`
7232
7233	// The ResourceTag objects associated with the resource.
7234	ResourceTags []*Tag `type:"list"`
7235
7236	// The resource type that the violation details were requested for.
7237	//
7238	// ResourceType is a required field
7239	ResourceType *string `min:"1" type:"string" required:"true"`
7240
7241	// List of violations for the requested resource.
7242	//
7243	// ResourceViolations is a required field
7244	ResourceViolations []*ResourceViolation `type:"list" required:"true"`
7245}
7246
7247// String returns the string representation
7248func (s ViolationDetail) String() string {
7249	return awsutil.Prettify(s)
7250}
7251
7252// GoString returns the string representation
7253func (s ViolationDetail) GoString() string {
7254	return s.String()
7255}
7256
7257// SetMemberAccount sets the MemberAccount field's value.
7258func (s *ViolationDetail) SetMemberAccount(v string) *ViolationDetail {
7259	s.MemberAccount = &v
7260	return s
7261}
7262
7263// SetPolicyId sets the PolicyId field's value.
7264func (s *ViolationDetail) SetPolicyId(v string) *ViolationDetail {
7265	s.PolicyId = &v
7266	return s
7267}
7268
7269// SetResourceDescription sets the ResourceDescription field's value.
7270func (s *ViolationDetail) SetResourceDescription(v string) *ViolationDetail {
7271	s.ResourceDescription = &v
7272	return s
7273}
7274
7275// SetResourceId sets the ResourceId field's value.
7276func (s *ViolationDetail) SetResourceId(v string) *ViolationDetail {
7277	s.ResourceId = &v
7278	return s
7279}
7280
7281// SetResourceTags sets the ResourceTags field's value.
7282func (s *ViolationDetail) SetResourceTags(v []*Tag) *ViolationDetail {
7283	s.ResourceTags = v
7284	return s
7285}
7286
7287// SetResourceType sets the ResourceType field's value.
7288func (s *ViolationDetail) SetResourceType(v string) *ViolationDetail {
7289	s.ResourceType = &v
7290	return s
7291}
7292
7293// SetResourceViolations sets the ResourceViolations field's value.
7294func (s *ViolationDetail) SetResourceViolations(v []*ResourceViolation) *ViolationDetail {
7295	s.ResourceViolations = v
7296	return s
7297}
7298
7299const (
7300	// AccountRoleStatusReady is a AccountRoleStatus enum value
7301	AccountRoleStatusReady = "READY"
7302
7303	// AccountRoleStatusCreating is a AccountRoleStatus enum value
7304	AccountRoleStatusCreating = "CREATING"
7305
7306	// AccountRoleStatusPendingDeletion is a AccountRoleStatus enum value
7307	AccountRoleStatusPendingDeletion = "PENDING_DELETION"
7308
7309	// AccountRoleStatusDeleting is a AccountRoleStatus enum value
7310	AccountRoleStatusDeleting = "DELETING"
7311
7312	// AccountRoleStatusDeleted is a AccountRoleStatus enum value
7313	AccountRoleStatusDeleted = "DELETED"
7314)
7315
7316// AccountRoleStatus_Values returns all elements of the AccountRoleStatus enum
7317func AccountRoleStatus_Values() []string {
7318	return []string{
7319		AccountRoleStatusReady,
7320		AccountRoleStatusCreating,
7321		AccountRoleStatusPendingDeletion,
7322		AccountRoleStatusDeleting,
7323		AccountRoleStatusDeleted,
7324	}
7325}
7326
7327const (
7328	// CustomerPolicyScopeIdTypeAccount is a CustomerPolicyScopeIdType enum value
7329	CustomerPolicyScopeIdTypeAccount = "ACCOUNT"
7330
7331	// CustomerPolicyScopeIdTypeOrgUnit is a CustomerPolicyScopeIdType enum value
7332	CustomerPolicyScopeIdTypeOrgUnit = "ORG_UNIT"
7333)
7334
7335// CustomerPolicyScopeIdType_Values returns all elements of the CustomerPolicyScopeIdType enum
7336func CustomerPolicyScopeIdType_Values() []string {
7337	return []string{
7338		CustomerPolicyScopeIdTypeAccount,
7339		CustomerPolicyScopeIdTypeOrgUnit,
7340	}
7341}
7342
7343const (
7344	// DependentServiceNameAwsconfig is a DependentServiceName enum value
7345	DependentServiceNameAwsconfig = "AWSCONFIG"
7346
7347	// DependentServiceNameAwswaf is a DependentServiceName enum value
7348	DependentServiceNameAwswaf = "AWSWAF"
7349
7350	// DependentServiceNameAwsshieldAdvanced is a DependentServiceName enum value
7351	DependentServiceNameAwsshieldAdvanced = "AWSSHIELD_ADVANCED"
7352
7353	// DependentServiceNameAwsvpc is a DependentServiceName enum value
7354	DependentServiceNameAwsvpc = "AWSVPC"
7355)
7356
7357// DependentServiceName_Values returns all elements of the DependentServiceName enum
7358func DependentServiceName_Values() []string {
7359	return []string{
7360		DependentServiceNameAwsconfig,
7361		DependentServiceNameAwswaf,
7362		DependentServiceNameAwsshieldAdvanced,
7363		DependentServiceNameAwsvpc,
7364	}
7365}
7366
7367const (
7368	// PolicyComplianceStatusTypeCompliant is a PolicyComplianceStatusType enum value
7369	PolicyComplianceStatusTypeCompliant = "COMPLIANT"
7370
7371	// PolicyComplianceStatusTypeNonCompliant is a PolicyComplianceStatusType enum value
7372	PolicyComplianceStatusTypeNonCompliant = "NON_COMPLIANT"
7373)
7374
7375// PolicyComplianceStatusType_Values returns all elements of the PolicyComplianceStatusType enum
7376func PolicyComplianceStatusType_Values() []string {
7377	return []string{
7378		PolicyComplianceStatusTypeCompliant,
7379		PolicyComplianceStatusTypeNonCompliant,
7380	}
7381}
7382
7383const (
7384	// RemediationActionTypeRemove is a RemediationActionType enum value
7385	RemediationActionTypeRemove = "REMOVE"
7386
7387	// RemediationActionTypeModify is a RemediationActionType enum value
7388	RemediationActionTypeModify = "MODIFY"
7389)
7390
7391// RemediationActionType_Values returns all elements of the RemediationActionType enum
7392func RemediationActionType_Values() []string {
7393	return []string{
7394		RemediationActionTypeRemove,
7395		RemediationActionTypeModify,
7396	}
7397}
7398
7399const (
7400	// SecurityServiceTypeWaf is a SecurityServiceType enum value
7401	SecurityServiceTypeWaf = "WAF"
7402
7403	// SecurityServiceTypeWafv2 is a SecurityServiceType enum value
7404	SecurityServiceTypeWafv2 = "WAFV2"
7405
7406	// SecurityServiceTypeShieldAdvanced is a SecurityServiceType enum value
7407	SecurityServiceTypeShieldAdvanced = "SHIELD_ADVANCED"
7408
7409	// SecurityServiceTypeSecurityGroupsCommon is a SecurityServiceType enum value
7410	SecurityServiceTypeSecurityGroupsCommon = "SECURITY_GROUPS_COMMON"
7411
7412	// SecurityServiceTypeSecurityGroupsContentAudit is a SecurityServiceType enum value
7413	SecurityServiceTypeSecurityGroupsContentAudit = "SECURITY_GROUPS_CONTENT_AUDIT"
7414
7415	// SecurityServiceTypeSecurityGroupsUsageAudit is a SecurityServiceType enum value
7416	SecurityServiceTypeSecurityGroupsUsageAudit = "SECURITY_GROUPS_USAGE_AUDIT"
7417
7418	// SecurityServiceTypeNetworkFirewall is a SecurityServiceType enum value
7419	SecurityServiceTypeNetworkFirewall = "NETWORK_FIREWALL"
7420
7421	// SecurityServiceTypeDnsFirewall is a SecurityServiceType enum value
7422	SecurityServiceTypeDnsFirewall = "DNS_FIREWALL"
7423)
7424
7425// SecurityServiceType_Values returns all elements of the SecurityServiceType enum
7426func SecurityServiceType_Values() []string {
7427	return []string{
7428		SecurityServiceTypeWaf,
7429		SecurityServiceTypeWafv2,
7430		SecurityServiceTypeShieldAdvanced,
7431		SecurityServiceTypeSecurityGroupsCommon,
7432		SecurityServiceTypeSecurityGroupsContentAudit,
7433		SecurityServiceTypeSecurityGroupsUsageAudit,
7434		SecurityServiceTypeNetworkFirewall,
7435		SecurityServiceTypeDnsFirewall,
7436	}
7437}
7438
7439const (
7440	// ViolationReasonWebAclMissingRuleGroup is a ViolationReason enum value
7441	ViolationReasonWebAclMissingRuleGroup = "WEB_ACL_MISSING_RULE_GROUP"
7442
7443	// ViolationReasonResourceMissingWebAcl is a ViolationReason enum value
7444	ViolationReasonResourceMissingWebAcl = "RESOURCE_MISSING_WEB_ACL"
7445
7446	// ViolationReasonResourceIncorrectWebAcl is a ViolationReason enum value
7447	ViolationReasonResourceIncorrectWebAcl = "RESOURCE_INCORRECT_WEB_ACL"
7448
7449	// ViolationReasonResourceMissingShieldProtection is a ViolationReason enum value
7450	ViolationReasonResourceMissingShieldProtection = "RESOURCE_MISSING_SHIELD_PROTECTION"
7451
7452	// ViolationReasonResourceMissingWebAclOrShieldProtection is a ViolationReason enum value
7453	ViolationReasonResourceMissingWebAclOrShieldProtection = "RESOURCE_MISSING_WEB_ACL_OR_SHIELD_PROTECTION"
7454
7455	// ViolationReasonResourceMissingSecurityGroup is a ViolationReason enum value
7456	ViolationReasonResourceMissingSecurityGroup = "RESOURCE_MISSING_SECURITY_GROUP"
7457
7458	// ViolationReasonResourceViolatesAuditSecurityGroup is a ViolationReason enum value
7459	ViolationReasonResourceViolatesAuditSecurityGroup = "RESOURCE_VIOLATES_AUDIT_SECURITY_GROUP"
7460
7461	// ViolationReasonSecurityGroupUnused is a ViolationReason enum value
7462	ViolationReasonSecurityGroupUnused = "SECURITY_GROUP_UNUSED"
7463
7464	// ViolationReasonSecurityGroupRedundant is a ViolationReason enum value
7465	ViolationReasonSecurityGroupRedundant = "SECURITY_GROUP_REDUNDANT"
7466
7467	// ViolationReasonFmsCreatedSecurityGroupEdited is a ViolationReason enum value
7468	ViolationReasonFmsCreatedSecurityGroupEdited = "FMS_CREATED_SECURITY_GROUP_EDITED"
7469
7470	// ViolationReasonMissingFirewall is a ViolationReason enum value
7471	ViolationReasonMissingFirewall = "MISSING_FIREWALL"
7472
7473	// ViolationReasonMissingFirewallSubnetInAz is a ViolationReason enum value
7474	ViolationReasonMissingFirewallSubnetInAz = "MISSING_FIREWALL_SUBNET_IN_AZ"
7475
7476	// ViolationReasonMissingExpectedRouteTable is a ViolationReason enum value
7477	ViolationReasonMissingExpectedRouteTable = "MISSING_EXPECTED_ROUTE_TABLE"
7478
7479	// ViolationReasonNetworkFirewallPolicyModified is a ViolationReason enum value
7480	ViolationReasonNetworkFirewallPolicyModified = "NETWORK_FIREWALL_POLICY_MODIFIED"
7481
7482	// ViolationReasonResourceMissingDnsFirewall is a ViolationReason enum value
7483	ViolationReasonResourceMissingDnsFirewall = "RESOURCE_MISSING_DNS_FIREWALL"
7484)
7485
7486// ViolationReason_Values returns all elements of the ViolationReason enum
7487func ViolationReason_Values() []string {
7488	return []string{
7489		ViolationReasonWebAclMissingRuleGroup,
7490		ViolationReasonResourceMissingWebAcl,
7491		ViolationReasonResourceIncorrectWebAcl,
7492		ViolationReasonResourceMissingShieldProtection,
7493		ViolationReasonResourceMissingWebAclOrShieldProtection,
7494		ViolationReasonResourceMissingSecurityGroup,
7495		ViolationReasonResourceViolatesAuditSecurityGroup,
7496		ViolationReasonSecurityGroupUnused,
7497		ViolationReasonSecurityGroupRedundant,
7498		ViolationReasonFmsCreatedSecurityGroupEdited,
7499		ViolationReasonMissingFirewall,
7500		ViolationReasonMissingFirewallSubnetInAz,
7501		ViolationReasonMissingExpectedRouteTable,
7502		ViolationReasonNetworkFirewallPolicyModified,
7503		ViolationReasonResourceMissingDnsFirewall,
7504	}
7505}
7506