github.com/aavshr/aws-sdk-go@v1.41.3/service/fms/api.go (about)

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package fms
     4  
     5  import (
     6  	"fmt"
     7  	"time"
     8  
     9  	"github.com/aavshr/aws-sdk-go/aws"
    10  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    11  	"github.com/aavshr/aws-sdk-go/aws/request"
    12  	"github.com/aavshr/aws-sdk-go/private/protocol"
    13  	"github.com/aavshr/aws-sdk-go/private/protocol/jsonrpc"
    14  )
    15  
    16  const 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
    42  func (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 Firewall Manager administrator account. The account must be a member
    62  // of the organization in Organizations whose resources you want to protect.
    63  // Firewall Manager sets the permissions that allow the account to administer
    64  // your Firewall Manager policies.
    65  //
    66  // The account that you associate with Firewall Manager is called the Firewall
    67  // Manager administrator account.
    68  //
    69  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    70  // with awserr.Error's Code and Message methods to get detailed information about
    71  // the error.
    72  //
    73  // See the AWS API reference guide for Firewall Management Service's
    74  // API operation AssociateAdminAccount for usage and error information.
    75  //
    76  // Returned Error Types:
    77  //   * InvalidOperationException
    78  //   The operation failed because there was nothing to do or the operation wasn't
    79  //   possible. For example, you might have submitted an AssociateAdminAccount
    80  //   request for an account ID that was already set as the Firewall Manager administrator.
    81  //   Or you might have tried to access a Region that's disabled by default, and
    82  //   that you need to enable for the Firewall Manager administrator account and
    83  //   for Organizations before you can access it.
    84  //
    85  //   * InvalidInputException
    86  //   The parameters of the request were invalid.
    87  //
    88  //   * ResourceNotFoundException
    89  //   The specified resource was not found.
    90  //
    91  //   * InternalErrorException
    92  //   The operation failed because of a system problem, even though the request
    93  //   was valid. Retry your request.
    94  //
    95  //   * LimitExceededException
    96  //   The operation exceeds a resource limit, for example, the maximum number of
    97  //   policy objects that you can create for an Amazon Web Services account. For
    98  //   more information, see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
    99  //   in the WAF Developer Guide.
   100  //
   101  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/AssociateAdminAccount
   102  func (c *FMS) AssociateAdminAccount(input *AssociateAdminAccountInput) (*AssociateAdminAccountOutput, error) {
   103  	req, out := c.AssociateAdminAccountRequest(input)
   104  	return out, req.Send()
   105  }
   106  
   107  // AssociateAdminAccountWithContext is the same as AssociateAdminAccount with the addition of
   108  // the ability to pass a context and additional request options.
   109  //
   110  // See AssociateAdminAccount for details on how to use this API operation.
   111  //
   112  // The context must be non-nil and will be used for request cancellation. If
   113  // the context is nil a panic will occur. In the future the SDK may create
   114  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   115  // for more information on using Contexts.
   116  func (c *FMS) AssociateAdminAccountWithContext(ctx aws.Context, input *AssociateAdminAccountInput, opts ...request.Option) (*AssociateAdminAccountOutput, error) {
   117  	req, out := c.AssociateAdminAccountRequest(input)
   118  	req.SetContext(ctx)
   119  	req.ApplyOptions(opts...)
   120  	return out, req.Send()
   121  }
   122  
   123  const opDeleteAppsList = "DeleteAppsList"
   124  
   125  // DeleteAppsListRequest generates a "aws/request.Request" representing the
   126  // client's request for the DeleteAppsList operation. The "output" return
   127  // value will be populated with the request's response once the request completes
   128  // successfully.
   129  //
   130  // Use "Send" method on the returned Request to send the API call to the service.
   131  // the "output" return value is not valid until after Send returns without error.
   132  //
   133  // See DeleteAppsList for more information on using the DeleteAppsList
   134  // API call, and error handling.
   135  //
   136  // This method is useful when you want to inject custom logic or configuration
   137  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   138  //
   139  //
   140  //    // Example sending a request using the DeleteAppsListRequest method.
   141  //    req, resp := client.DeleteAppsListRequest(params)
   142  //
   143  //    err := req.Send()
   144  //    if err == nil { // resp is now filled
   145  //        fmt.Println(resp)
   146  //    }
   147  //
   148  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteAppsList
   149  func (c *FMS) DeleteAppsListRequest(input *DeleteAppsListInput) (req *request.Request, output *DeleteAppsListOutput) {
   150  	op := &request.Operation{
   151  		Name:       opDeleteAppsList,
   152  		HTTPMethod: "POST",
   153  		HTTPPath:   "/",
   154  	}
   155  
   156  	if input == nil {
   157  		input = &DeleteAppsListInput{}
   158  	}
   159  
   160  	output = &DeleteAppsListOutput{}
   161  	req = c.newRequest(op, input, output)
   162  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   163  	return
   164  }
   165  
   166  // DeleteAppsList API operation for Firewall Management Service.
   167  //
   168  // Permanently deletes an Firewall Manager applications list.
   169  //
   170  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   171  // with awserr.Error's Code and Message methods to get detailed information about
   172  // the error.
   173  //
   174  // See the AWS API reference guide for Firewall Management Service's
   175  // API operation DeleteAppsList for usage and error information.
   176  //
   177  // Returned Error Types:
   178  //   * ResourceNotFoundException
   179  //   The specified resource was not found.
   180  //
   181  //   * InvalidOperationException
   182  //   The operation failed because there was nothing to do or the operation wasn't
   183  //   possible. For example, you might have submitted an AssociateAdminAccount
   184  //   request for an account ID that was already set as the Firewall Manager administrator.
   185  //   Or you might have tried to access a Region that's disabled by default, and
   186  //   that you need to enable for the Firewall Manager administrator account and
   187  //   for Organizations before you can access it.
   188  //
   189  //   * InternalErrorException
   190  //   The operation failed because of a system problem, even though the request
   191  //   was valid. Retry your request.
   192  //
   193  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteAppsList
   194  func (c *FMS) DeleteAppsList(input *DeleteAppsListInput) (*DeleteAppsListOutput, error) {
   195  	req, out := c.DeleteAppsListRequest(input)
   196  	return out, req.Send()
   197  }
   198  
   199  // DeleteAppsListWithContext is the same as DeleteAppsList with the addition of
   200  // the ability to pass a context and additional request options.
   201  //
   202  // See DeleteAppsList for details on how to use this API operation.
   203  //
   204  // The context must be non-nil and will be used for request cancellation. If
   205  // the context is nil a panic will occur. In the future the SDK may create
   206  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   207  // for more information on using Contexts.
   208  func (c *FMS) DeleteAppsListWithContext(ctx aws.Context, input *DeleteAppsListInput, opts ...request.Option) (*DeleteAppsListOutput, error) {
   209  	req, out := c.DeleteAppsListRequest(input)
   210  	req.SetContext(ctx)
   211  	req.ApplyOptions(opts...)
   212  	return out, req.Send()
   213  }
   214  
   215  const opDeleteNotificationChannel = "DeleteNotificationChannel"
   216  
   217  // DeleteNotificationChannelRequest generates a "aws/request.Request" representing the
   218  // client's request for the DeleteNotificationChannel operation. The "output" return
   219  // value will be populated with the request's response once the request completes
   220  // successfully.
   221  //
   222  // Use "Send" method on the returned Request to send the API call to the service.
   223  // the "output" return value is not valid until after Send returns without error.
   224  //
   225  // See DeleteNotificationChannel for more information on using the DeleteNotificationChannel
   226  // API call, and error handling.
   227  //
   228  // This method is useful when you want to inject custom logic or configuration
   229  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   230  //
   231  //
   232  //    // Example sending a request using the DeleteNotificationChannelRequest method.
   233  //    req, resp := client.DeleteNotificationChannelRequest(params)
   234  //
   235  //    err := req.Send()
   236  //    if err == nil { // resp is now filled
   237  //        fmt.Println(resp)
   238  //    }
   239  //
   240  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteNotificationChannel
   241  func (c *FMS) DeleteNotificationChannelRequest(input *DeleteNotificationChannelInput) (req *request.Request, output *DeleteNotificationChannelOutput) {
   242  	op := &request.Operation{
   243  		Name:       opDeleteNotificationChannel,
   244  		HTTPMethod: "POST",
   245  		HTTPPath:   "/",
   246  	}
   247  
   248  	if input == nil {
   249  		input = &DeleteNotificationChannelInput{}
   250  	}
   251  
   252  	output = &DeleteNotificationChannelOutput{}
   253  	req = c.newRequest(op, input, output)
   254  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   255  	return
   256  }
   257  
   258  // DeleteNotificationChannel API operation for Firewall Management Service.
   259  //
   260  // Deletes an Firewall Manager association with the IAM role and the Amazon
   261  // Simple Notification Service (SNS) topic that is used to record Firewall Manager
   262  // SNS logs.
   263  //
   264  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   265  // with awserr.Error's Code and Message methods to get detailed information about
   266  // the error.
   267  //
   268  // See the AWS API reference guide for Firewall Management Service's
   269  // API operation DeleteNotificationChannel for usage and error information.
   270  //
   271  // Returned Error Types:
   272  //   * ResourceNotFoundException
   273  //   The specified resource was not found.
   274  //
   275  //   * InvalidOperationException
   276  //   The operation failed because there was nothing to do or the operation wasn't
   277  //   possible. For example, you might have submitted an AssociateAdminAccount
   278  //   request for an account ID that was already set as the Firewall Manager administrator.
   279  //   Or you might have tried to access a Region that's disabled by default, and
   280  //   that you need to enable for the Firewall Manager administrator account and
   281  //   for Organizations before you can access it.
   282  //
   283  //   * InternalErrorException
   284  //   The operation failed because of a system problem, even though the request
   285  //   was valid. Retry your request.
   286  //
   287  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteNotificationChannel
   288  func (c *FMS) DeleteNotificationChannel(input *DeleteNotificationChannelInput) (*DeleteNotificationChannelOutput, error) {
   289  	req, out := c.DeleteNotificationChannelRequest(input)
   290  	return out, req.Send()
   291  }
   292  
   293  // DeleteNotificationChannelWithContext is the same as DeleteNotificationChannel with the addition of
   294  // the ability to pass a context and additional request options.
   295  //
   296  // See DeleteNotificationChannel for details on how to use this API operation.
   297  //
   298  // The context must be non-nil and will be used for request cancellation. If
   299  // the context is nil a panic will occur. In the future the SDK may create
   300  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   301  // for more information on using Contexts.
   302  func (c *FMS) DeleteNotificationChannelWithContext(ctx aws.Context, input *DeleteNotificationChannelInput, opts ...request.Option) (*DeleteNotificationChannelOutput, error) {
   303  	req, out := c.DeleteNotificationChannelRequest(input)
   304  	req.SetContext(ctx)
   305  	req.ApplyOptions(opts...)
   306  	return out, req.Send()
   307  }
   308  
   309  const opDeletePolicy = "DeletePolicy"
   310  
   311  // DeletePolicyRequest generates a "aws/request.Request" representing the
   312  // client's request for the DeletePolicy operation. The "output" return
   313  // value will be populated with the request's response once the request completes
   314  // successfully.
   315  //
   316  // Use "Send" method on the returned Request to send the API call to the service.
   317  // the "output" return value is not valid until after Send returns without error.
   318  //
   319  // See DeletePolicy for more information on using the DeletePolicy
   320  // API call, and error handling.
   321  //
   322  // This method is useful when you want to inject custom logic or configuration
   323  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   324  //
   325  //
   326  //    // Example sending a request using the DeletePolicyRequest method.
   327  //    req, resp := client.DeletePolicyRequest(params)
   328  //
   329  //    err := req.Send()
   330  //    if err == nil { // resp is now filled
   331  //        fmt.Println(resp)
   332  //    }
   333  //
   334  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeletePolicy
   335  func (c *FMS) DeletePolicyRequest(input *DeletePolicyInput) (req *request.Request, output *DeletePolicyOutput) {
   336  	op := &request.Operation{
   337  		Name:       opDeletePolicy,
   338  		HTTPMethod: "POST",
   339  		HTTPPath:   "/",
   340  	}
   341  
   342  	if input == nil {
   343  		input = &DeletePolicyInput{}
   344  	}
   345  
   346  	output = &DeletePolicyOutput{}
   347  	req = c.newRequest(op, input, output)
   348  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   349  	return
   350  }
   351  
   352  // DeletePolicy API operation for Firewall Management Service.
   353  //
   354  // Permanently deletes an Firewall Manager policy.
   355  //
   356  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   357  // with awserr.Error's Code and Message methods to get detailed information about
   358  // the error.
   359  //
   360  // See the AWS API reference guide for Firewall Management Service's
   361  // API operation DeletePolicy for usage and error information.
   362  //
   363  // Returned Error Types:
   364  //   * ResourceNotFoundException
   365  //   The specified resource was not found.
   366  //
   367  //   * InvalidOperationException
   368  //   The operation failed because there was nothing to do or the operation wasn't
   369  //   possible. For example, you might have submitted an AssociateAdminAccount
   370  //   request for an account ID that was already set as the Firewall Manager administrator.
   371  //   Or you might have tried to access a Region that's disabled by default, and
   372  //   that you need to enable for the Firewall Manager administrator account and
   373  //   for Organizations before you can access it.
   374  //
   375  //   * InternalErrorException
   376  //   The operation failed because of a system problem, even though the request
   377  //   was valid. Retry your request.
   378  //
   379  //   * InvalidInputException
   380  //   The parameters of the request were invalid.
   381  //
   382  //   * LimitExceededException
   383  //   The operation exceeds a resource limit, for example, the maximum number of
   384  //   policy objects that you can create for an Amazon Web Services account. For
   385  //   more information, see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
   386  //   in the WAF Developer Guide.
   387  //
   388  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeletePolicy
   389  func (c *FMS) DeletePolicy(input *DeletePolicyInput) (*DeletePolicyOutput, error) {
   390  	req, out := c.DeletePolicyRequest(input)
   391  	return out, req.Send()
   392  }
   393  
   394  // DeletePolicyWithContext is the same as DeletePolicy with the addition of
   395  // the ability to pass a context and additional request options.
   396  //
   397  // See DeletePolicy for details on how to use this API operation.
   398  //
   399  // The context must be non-nil and will be used for request cancellation. If
   400  // the context is nil a panic will occur. In the future the SDK may create
   401  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   402  // for more information on using Contexts.
   403  func (c *FMS) DeletePolicyWithContext(ctx aws.Context, input *DeletePolicyInput, opts ...request.Option) (*DeletePolicyOutput, error) {
   404  	req, out := c.DeletePolicyRequest(input)
   405  	req.SetContext(ctx)
   406  	req.ApplyOptions(opts...)
   407  	return out, req.Send()
   408  }
   409  
   410  const opDeleteProtocolsList = "DeleteProtocolsList"
   411  
   412  // DeleteProtocolsListRequest generates a "aws/request.Request" representing the
   413  // client's request for the DeleteProtocolsList operation. The "output" return
   414  // value will be populated with the request's response once the request completes
   415  // successfully.
   416  //
   417  // Use "Send" method on the returned Request to send the API call to the service.
   418  // the "output" return value is not valid until after Send returns without error.
   419  //
   420  // See DeleteProtocolsList for more information on using the DeleteProtocolsList
   421  // API call, and error handling.
   422  //
   423  // This method is useful when you want to inject custom logic or configuration
   424  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   425  //
   426  //
   427  //    // Example sending a request using the DeleteProtocolsListRequest method.
   428  //    req, resp := client.DeleteProtocolsListRequest(params)
   429  //
   430  //    err := req.Send()
   431  //    if err == nil { // resp is now filled
   432  //        fmt.Println(resp)
   433  //    }
   434  //
   435  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteProtocolsList
   436  func (c *FMS) DeleteProtocolsListRequest(input *DeleteProtocolsListInput) (req *request.Request, output *DeleteProtocolsListOutput) {
   437  	op := &request.Operation{
   438  		Name:       opDeleteProtocolsList,
   439  		HTTPMethod: "POST",
   440  		HTTPPath:   "/",
   441  	}
   442  
   443  	if input == nil {
   444  		input = &DeleteProtocolsListInput{}
   445  	}
   446  
   447  	output = &DeleteProtocolsListOutput{}
   448  	req = c.newRequest(op, input, output)
   449  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   450  	return
   451  }
   452  
   453  // DeleteProtocolsList API operation for Firewall Management Service.
   454  //
   455  // Permanently deletes an Firewall Manager protocols list.
   456  //
   457  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   458  // with awserr.Error's Code and Message methods to get detailed information about
   459  // the error.
   460  //
   461  // See the AWS API reference guide for Firewall Management Service's
   462  // API operation DeleteProtocolsList for usage and error information.
   463  //
   464  // Returned Error Types:
   465  //   * ResourceNotFoundException
   466  //   The specified resource was not found.
   467  //
   468  //   * InvalidOperationException
   469  //   The operation failed because there was nothing to do or the operation wasn't
   470  //   possible. For example, you might have submitted an AssociateAdminAccount
   471  //   request for an account ID that was already set as the Firewall Manager administrator.
   472  //   Or you might have tried to access a Region that's disabled by default, and
   473  //   that you need to enable for the Firewall Manager administrator account and
   474  //   for Organizations before you can access it.
   475  //
   476  //   * InternalErrorException
   477  //   The operation failed because of a system problem, even though the request
   478  //   was valid. Retry your request.
   479  //
   480  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteProtocolsList
   481  func (c *FMS) DeleteProtocolsList(input *DeleteProtocolsListInput) (*DeleteProtocolsListOutput, error) {
   482  	req, out := c.DeleteProtocolsListRequest(input)
   483  	return out, req.Send()
   484  }
   485  
   486  // DeleteProtocolsListWithContext is the same as DeleteProtocolsList with the addition of
   487  // the ability to pass a context and additional request options.
   488  //
   489  // See DeleteProtocolsList for details on how to use this API operation.
   490  //
   491  // The context must be non-nil and will be used for request cancellation. If
   492  // the context is nil a panic will occur. In the future the SDK may create
   493  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   494  // for more information on using Contexts.
   495  func (c *FMS) DeleteProtocolsListWithContext(ctx aws.Context, input *DeleteProtocolsListInput, opts ...request.Option) (*DeleteProtocolsListOutput, error) {
   496  	req, out := c.DeleteProtocolsListRequest(input)
   497  	req.SetContext(ctx)
   498  	req.ApplyOptions(opts...)
   499  	return out, req.Send()
   500  }
   501  
   502  const opDisassociateAdminAccount = "DisassociateAdminAccount"
   503  
   504  // DisassociateAdminAccountRequest generates a "aws/request.Request" representing the
   505  // client's request for the DisassociateAdminAccount operation. The "output" return
   506  // value will be populated with the request's response once the request completes
   507  // successfully.
   508  //
   509  // Use "Send" method on the returned Request to send the API call to the service.
   510  // the "output" return value is not valid until after Send returns without error.
   511  //
   512  // See DisassociateAdminAccount for more information on using the DisassociateAdminAccount
   513  // API call, and error handling.
   514  //
   515  // This method is useful when you want to inject custom logic or configuration
   516  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   517  //
   518  //
   519  //    // Example sending a request using the DisassociateAdminAccountRequest method.
   520  //    req, resp := client.DisassociateAdminAccountRequest(params)
   521  //
   522  //    err := req.Send()
   523  //    if err == nil { // resp is now filled
   524  //        fmt.Println(resp)
   525  //    }
   526  //
   527  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DisassociateAdminAccount
   528  func (c *FMS) DisassociateAdminAccountRequest(input *DisassociateAdminAccountInput) (req *request.Request, output *DisassociateAdminAccountOutput) {
   529  	op := &request.Operation{
   530  		Name:       opDisassociateAdminAccount,
   531  		HTTPMethod: "POST",
   532  		HTTPPath:   "/",
   533  	}
   534  
   535  	if input == nil {
   536  		input = &DisassociateAdminAccountInput{}
   537  	}
   538  
   539  	output = &DisassociateAdminAccountOutput{}
   540  	req = c.newRequest(op, input, output)
   541  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   542  	return
   543  }
   544  
   545  // DisassociateAdminAccount API operation for Firewall Management Service.
   546  //
   547  // Disassociates the account that has been set as the Firewall Manager administrator
   548  // account. To set a different account as the administrator account, you must
   549  // submit an AssociateAdminAccount request.
   550  //
   551  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   552  // with awserr.Error's Code and Message methods to get detailed information about
   553  // the error.
   554  //
   555  // See the AWS API reference guide for Firewall Management Service's
   556  // API operation DisassociateAdminAccount for usage and error information.
   557  //
   558  // Returned Error Types:
   559  //   * InvalidOperationException
   560  //   The operation failed because there was nothing to do or the operation wasn't
   561  //   possible. For example, you might have submitted an AssociateAdminAccount
   562  //   request for an account ID that was already set as the Firewall Manager administrator.
   563  //   Or you might have tried to access a Region that's disabled by default, and
   564  //   that you need to enable for the Firewall Manager administrator account and
   565  //   for Organizations before you can access it.
   566  //
   567  //   * ResourceNotFoundException
   568  //   The specified resource was not found.
   569  //
   570  //   * InternalErrorException
   571  //   The operation failed because of a system problem, even though the request
   572  //   was valid. Retry your request.
   573  //
   574  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DisassociateAdminAccount
   575  func (c *FMS) DisassociateAdminAccount(input *DisassociateAdminAccountInput) (*DisassociateAdminAccountOutput, error) {
   576  	req, out := c.DisassociateAdminAccountRequest(input)
   577  	return out, req.Send()
   578  }
   579  
   580  // DisassociateAdminAccountWithContext is the same as DisassociateAdminAccount with the addition of
   581  // the ability to pass a context and additional request options.
   582  //
   583  // See DisassociateAdminAccount for details on how to use this API operation.
   584  //
   585  // The context must be non-nil and will be used for request cancellation. If
   586  // the context is nil a panic will occur. In the future the SDK may create
   587  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   588  // for more information on using Contexts.
   589  func (c *FMS) DisassociateAdminAccountWithContext(ctx aws.Context, input *DisassociateAdminAccountInput, opts ...request.Option) (*DisassociateAdminAccountOutput, error) {
   590  	req, out := c.DisassociateAdminAccountRequest(input)
   591  	req.SetContext(ctx)
   592  	req.ApplyOptions(opts...)
   593  	return out, req.Send()
   594  }
   595  
   596  const opGetAdminAccount = "GetAdminAccount"
   597  
   598  // GetAdminAccountRequest generates a "aws/request.Request" representing the
   599  // client's request for the GetAdminAccount operation. The "output" return
   600  // value will be populated with the request's response once the request completes
   601  // successfully.
   602  //
   603  // Use "Send" method on the returned Request to send the API call to the service.
   604  // the "output" return value is not valid until after Send returns without error.
   605  //
   606  // See GetAdminAccount for more information on using the GetAdminAccount
   607  // API call, and error handling.
   608  //
   609  // This method is useful when you want to inject custom logic or configuration
   610  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   611  //
   612  //
   613  //    // Example sending a request using the GetAdminAccountRequest method.
   614  //    req, resp := client.GetAdminAccountRequest(params)
   615  //
   616  //    err := req.Send()
   617  //    if err == nil { // resp is now filled
   618  //        fmt.Println(resp)
   619  //    }
   620  //
   621  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAdminAccount
   622  func (c *FMS) GetAdminAccountRequest(input *GetAdminAccountInput) (req *request.Request, output *GetAdminAccountOutput) {
   623  	op := &request.Operation{
   624  		Name:       opGetAdminAccount,
   625  		HTTPMethod: "POST",
   626  		HTTPPath:   "/",
   627  	}
   628  
   629  	if input == nil {
   630  		input = &GetAdminAccountInput{}
   631  	}
   632  
   633  	output = &GetAdminAccountOutput{}
   634  	req = c.newRequest(op, input, output)
   635  	return
   636  }
   637  
   638  // GetAdminAccount API operation for Firewall Management Service.
   639  //
   640  // Returns the Organizations account that is associated with Firewall Manager
   641  // as the Firewall Manager administrator.
   642  //
   643  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   644  // with awserr.Error's Code and Message methods to get detailed information about
   645  // the error.
   646  //
   647  // See the AWS API reference guide for Firewall Management Service's
   648  // API operation GetAdminAccount for usage and error information.
   649  //
   650  // Returned Error Types:
   651  //   * InvalidOperationException
   652  //   The operation failed because there was nothing to do or the operation wasn't
   653  //   possible. For example, you might have submitted an AssociateAdminAccount
   654  //   request for an account ID that was already set as the Firewall Manager administrator.
   655  //   Or you might have tried to access a Region that's disabled by default, and
   656  //   that you need to enable for the Firewall Manager administrator account and
   657  //   for Organizations before you can access it.
   658  //
   659  //   * ResourceNotFoundException
   660  //   The specified resource was not found.
   661  //
   662  //   * InternalErrorException
   663  //   The operation failed because of a system problem, even though the request
   664  //   was valid. Retry your request.
   665  //
   666  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAdminAccount
   667  func (c *FMS) GetAdminAccount(input *GetAdminAccountInput) (*GetAdminAccountOutput, error) {
   668  	req, out := c.GetAdminAccountRequest(input)
   669  	return out, req.Send()
   670  }
   671  
   672  // GetAdminAccountWithContext is the same as GetAdminAccount with the addition of
   673  // the ability to pass a context and additional request options.
   674  //
   675  // See GetAdminAccount for details on how to use this API operation.
   676  //
   677  // The context must be non-nil and will be used for request cancellation. If
   678  // the context is nil a panic will occur. In the future the SDK may create
   679  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   680  // for more information on using Contexts.
   681  func (c *FMS) GetAdminAccountWithContext(ctx aws.Context, input *GetAdminAccountInput, opts ...request.Option) (*GetAdminAccountOutput, error) {
   682  	req, out := c.GetAdminAccountRequest(input)
   683  	req.SetContext(ctx)
   684  	req.ApplyOptions(opts...)
   685  	return out, req.Send()
   686  }
   687  
   688  const opGetAppsList = "GetAppsList"
   689  
   690  // GetAppsListRequest generates a "aws/request.Request" representing the
   691  // client's request for the GetAppsList operation. The "output" return
   692  // value will be populated with the request's response once the request completes
   693  // successfully.
   694  //
   695  // Use "Send" method on the returned Request to send the API call to the service.
   696  // the "output" return value is not valid until after Send returns without error.
   697  //
   698  // See GetAppsList for more information on using the GetAppsList
   699  // API call, and error handling.
   700  //
   701  // This method is useful when you want to inject custom logic or configuration
   702  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   703  //
   704  //
   705  //    // Example sending a request using the GetAppsListRequest method.
   706  //    req, resp := client.GetAppsListRequest(params)
   707  //
   708  //    err := req.Send()
   709  //    if err == nil { // resp is now filled
   710  //        fmt.Println(resp)
   711  //    }
   712  //
   713  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAppsList
   714  func (c *FMS) GetAppsListRequest(input *GetAppsListInput) (req *request.Request, output *GetAppsListOutput) {
   715  	op := &request.Operation{
   716  		Name:       opGetAppsList,
   717  		HTTPMethod: "POST",
   718  		HTTPPath:   "/",
   719  	}
   720  
   721  	if input == nil {
   722  		input = &GetAppsListInput{}
   723  	}
   724  
   725  	output = &GetAppsListOutput{}
   726  	req = c.newRequest(op, input, output)
   727  	return
   728  }
   729  
   730  // GetAppsList API operation for Firewall Management Service.
   731  //
   732  // Returns information about the specified Firewall Manager applications list.
   733  //
   734  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   735  // with awserr.Error's Code and Message methods to get detailed information about
   736  // the error.
   737  //
   738  // See the AWS API reference guide for Firewall Management Service's
   739  // API operation GetAppsList for usage and error information.
   740  //
   741  // Returned Error Types:
   742  //   * ResourceNotFoundException
   743  //   The specified resource was not found.
   744  //
   745  //   * InvalidOperationException
   746  //   The operation failed because there was nothing to do or the operation wasn't
   747  //   possible. For example, you might have submitted an AssociateAdminAccount
   748  //   request for an account ID that was already set as the Firewall Manager administrator.
   749  //   Or you might have tried to access a Region that's disabled by default, and
   750  //   that you need to enable for the Firewall Manager administrator account and
   751  //   for Organizations before you can access it.
   752  //
   753  //   * InternalErrorException
   754  //   The operation failed because of a system problem, even though the request
   755  //   was valid. Retry your request.
   756  //
   757  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAppsList
   758  func (c *FMS) GetAppsList(input *GetAppsListInput) (*GetAppsListOutput, error) {
   759  	req, out := c.GetAppsListRequest(input)
   760  	return out, req.Send()
   761  }
   762  
   763  // GetAppsListWithContext is the same as GetAppsList with the addition of
   764  // the ability to pass a context and additional request options.
   765  //
   766  // See GetAppsList for details on how to use this API operation.
   767  //
   768  // The context must be non-nil and will be used for request cancellation. If
   769  // the context is nil a panic will occur. In the future the SDK may create
   770  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   771  // for more information on using Contexts.
   772  func (c *FMS) GetAppsListWithContext(ctx aws.Context, input *GetAppsListInput, opts ...request.Option) (*GetAppsListOutput, error) {
   773  	req, out := c.GetAppsListRequest(input)
   774  	req.SetContext(ctx)
   775  	req.ApplyOptions(opts...)
   776  	return out, req.Send()
   777  }
   778  
   779  const opGetComplianceDetail = "GetComplianceDetail"
   780  
   781  // GetComplianceDetailRequest generates a "aws/request.Request" representing the
   782  // client's request for the GetComplianceDetail operation. The "output" return
   783  // value will be populated with the request's response once the request completes
   784  // successfully.
   785  //
   786  // Use "Send" method on the returned Request to send the API call to the service.
   787  // the "output" return value is not valid until after Send returns without error.
   788  //
   789  // See GetComplianceDetail for more information on using the GetComplianceDetail
   790  // API call, and error handling.
   791  //
   792  // This method is useful when you want to inject custom logic or configuration
   793  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   794  //
   795  //
   796  //    // Example sending a request using the GetComplianceDetailRequest method.
   797  //    req, resp := client.GetComplianceDetailRequest(params)
   798  //
   799  //    err := req.Send()
   800  //    if err == nil { // resp is now filled
   801  //        fmt.Println(resp)
   802  //    }
   803  //
   804  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetComplianceDetail
   805  func (c *FMS) GetComplianceDetailRequest(input *GetComplianceDetailInput) (req *request.Request, output *GetComplianceDetailOutput) {
   806  	op := &request.Operation{
   807  		Name:       opGetComplianceDetail,
   808  		HTTPMethod: "POST",
   809  		HTTPPath:   "/",
   810  	}
   811  
   812  	if input == nil {
   813  		input = &GetComplianceDetailInput{}
   814  	}
   815  
   816  	output = &GetComplianceDetailOutput{}
   817  	req = c.newRequest(op, input, output)
   818  	return
   819  }
   820  
   821  // GetComplianceDetail API operation for Firewall Management Service.
   822  //
   823  // Returns detailed compliance information about the specified member account.
   824  // Details include resources that are in and out of compliance with the specified
   825  // policy.
   826  //
   827  //    * Resources are considered noncompliant for WAF and Shield Advanced policies
   828  //    if the specified policy has not been applied to them.
   829  //
   830  //    * Resources are considered noncompliant for security group policies if
   831  //    they are in scope of the policy, they violate one or more of the policy
   832  //    rules, and remediation is disabled or not possible.
   833  //
   834  //    * Resources are considered noncompliant for Network Firewall policies
   835  //    if a firewall is missing in the VPC, if the firewall endpoint isn't set
   836  //    up in an expected Availability Zone and subnet, if a subnet created by
   837  //    the Firewall Manager doesn't have the expected route table, and for modifications
   838  //    to a firewall policy that violate the Firewall Manager policy's rules.
   839  //
   840  //    * Resources are considered noncompliant for DNS Firewall policies if a
   841  //    DNS Firewall rule group is missing from the rule group associations for
   842  //    the VPC.
   843  //
   844  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   845  // with awserr.Error's Code and Message methods to get detailed information about
   846  // the error.
   847  //
   848  // See the AWS API reference guide for Firewall Management Service's
   849  // API operation GetComplianceDetail for usage and error information.
   850  //
   851  // Returned Error Types:
   852  //   * ResourceNotFoundException
   853  //   The specified resource was not found.
   854  //
   855  //   * InternalErrorException
   856  //   The operation failed because of a system problem, even though the request
   857  //   was valid. Retry your request.
   858  //
   859  //   * InvalidInputException
   860  //   The parameters of the request were invalid.
   861  //
   862  //   * InvalidOperationException
   863  //   The operation failed because there was nothing to do or the operation wasn't
   864  //   possible. For example, you might have submitted an AssociateAdminAccount
   865  //   request for an account ID that was already set as the Firewall Manager administrator.
   866  //   Or you might have tried to access a Region that's disabled by default, and
   867  //   that you need to enable for the Firewall Manager administrator account and
   868  //   for Organizations before you can access it.
   869  //
   870  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetComplianceDetail
   871  func (c *FMS) GetComplianceDetail(input *GetComplianceDetailInput) (*GetComplianceDetailOutput, error) {
   872  	req, out := c.GetComplianceDetailRequest(input)
   873  	return out, req.Send()
   874  }
   875  
   876  // GetComplianceDetailWithContext is the same as GetComplianceDetail with the addition of
   877  // the ability to pass a context and additional request options.
   878  //
   879  // See GetComplianceDetail for details on how to use this API operation.
   880  //
   881  // The context must be non-nil and will be used for request cancellation. If
   882  // the context is nil a panic will occur. In the future the SDK may create
   883  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   884  // for more information on using Contexts.
   885  func (c *FMS) GetComplianceDetailWithContext(ctx aws.Context, input *GetComplianceDetailInput, opts ...request.Option) (*GetComplianceDetailOutput, error) {
   886  	req, out := c.GetComplianceDetailRequest(input)
   887  	req.SetContext(ctx)
   888  	req.ApplyOptions(opts...)
   889  	return out, req.Send()
   890  }
   891  
   892  const opGetNotificationChannel = "GetNotificationChannel"
   893  
   894  // GetNotificationChannelRequest generates a "aws/request.Request" representing the
   895  // client's request for the GetNotificationChannel operation. The "output" return
   896  // value will be populated with the request's response once the request completes
   897  // successfully.
   898  //
   899  // Use "Send" method on the returned Request to send the API call to the service.
   900  // the "output" return value is not valid until after Send returns without error.
   901  //
   902  // See GetNotificationChannel for more information on using the GetNotificationChannel
   903  // API call, and error handling.
   904  //
   905  // This method is useful when you want to inject custom logic or configuration
   906  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   907  //
   908  //
   909  //    // Example sending a request using the GetNotificationChannelRequest method.
   910  //    req, resp := client.GetNotificationChannelRequest(params)
   911  //
   912  //    err := req.Send()
   913  //    if err == nil { // resp is now filled
   914  //        fmt.Println(resp)
   915  //    }
   916  //
   917  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetNotificationChannel
   918  func (c *FMS) GetNotificationChannelRequest(input *GetNotificationChannelInput) (req *request.Request, output *GetNotificationChannelOutput) {
   919  	op := &request.Operation{
   920  		Name:       opGetNotificationChannel,
   921  		HTTPMethod: "POST",
   922  		HTTPPath:   "/",
   923  	}
   924  
   925  	if input == nil {
   926  		input = &GetNotificationChannelInput{}
   927  	}
   928  
   929  	output = &GetNotificationChannelOutput{}
   930  	req = c.newRequest(op, input, output)
   931  	return
   932  }
   933  
   934  // GetNotificationChannel API operation for Firewall Management Service.
   935  //
   936  // Information about the Amazon Simple Notification Service (SNS) topic that
   937  // is used to record Firewall Manager SNS logs.
   938  //
   939  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   940  // with awserr.Error's Code and Message methods to get detailed information about
   941  // the error.
   942  //
   943  // See the AWS API reference guide for Firewall Management Service's
   944  // API operation GetNotificationChannel for usage and error information.
   945  //
   946  // Returned Error Types:
   947  //   * ResourceNotFoundException
   948  //   The specified resource was not found.
   949  //
   950  //   * InvalidOperationException
   951  //   The operation failed because there was nothing to do or the operation wasn't
   952  //   possible. For example, you might have submitted an AssociateAdminAccount
   953  //   request for an account ID that was already set as the Firewall Manager administrator.
   954  //   Or you might have tried to access a Region that's disabled by default, and
   955  //   that you need to enable for the Firewall Manager administrator account and
   956  //   for Organizations before you can access it.
   957  //
   958  //   * InternalErrorException
   959  //   The operation failed because of a system problem, even though the request
   960  //   was valid. Retry your request.
   961  //
   962  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetNotificationChannel
   963  func (c *FMS) GetNotificationChannel(input *GetNotificationChannelInput) (*GetNotificationChannelOutput, error) {
   964  	req, out := c.GetNotificationChannelRequest(input)
   965  	return out, req.Send()
   966  }
   967  
   968  // GetNotificationChannelWithContext is the same as GetNotificationChannel with the addition of
   969  // the ability to pass a context and additional request options.
   970  //
   971  // See GetNotificationChannel for details on how to use this API operation.
   972  //
   973  // The context must be non-nil and will be used for request cancellation. If
   974  // the context is nil a panic will occur. In the future the SDK may create
   975  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   976  // for more information on using Contexts.
   977  func (c *FMS) GetNotificationChannelWithContext(ctx aws.Context, input *GetNotificationChannelInput, opts ...request.Option) (*GetNotificationChannelOutput, error) {
   978  	req, out := c.GetNotificationChannelRequest(input)
   979  	req.SetContext(ctx)
   980  	req.ApplyOptions(opts...)
   981  	return out, req.Send()
   982  }
   983  
   984  const opGetPolicy = "GetPolicy"
   985  
   986  // GetPolicyRequest generates a "aws/request.Request" representing the
   987  // client's request for the GetPolicy operation. The "output" return
   988  // value will be populated with the request's response once the request completes
   989  // successfully.
   990  //
   991  // Use "Send" method on the returned Request to send the API call to the service.
   992  // the "output" return value is not valid until after Send returns without error.
   993  //
   994  // See GetPolicy for more information on using the GetPolicy
   995  // API call, and error handling.
   996  //
   997  // This method is useful when you want to inject custom logic or configuration
   998  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   999  //
  1000  //
  1001  //    // Example sending a request using the GetPolicyRequest method.
  1002  //    req, resp := client.GetPolicyRequest(params)
  1003  //
  1004  //    err := req.Send()
  1005  //    if err == nil { // resp is now filled
  1006  //        fmt.Println(resp)
  1007  //    }
  1008  //
  1009  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetPolicy
  1010  func (c *FMS) GetPolicyRequest(input *GetPolicyInput) (req *request.Request, output *GetPolicyOutput) {
  1011  	op := &request.Operation{
  1012  		Name:       opGetPolicy,
  1013  		HTTPMethod: "POST",
  1014  		HTTPPath:   "/",
  1015  	}
  1016  
  1017  	if input == nil {
  1018  		input = &GetPolicyInput{}
  1019  	}
  1020  
  1021  	output = &GetPolicyOutput{}
  1022  	req = c.newRequest(op, input, output)
  1023  	return
  1024  }
  1025  
  1026  // GetPolicy API operation for Firewall Management Service.
  1027  //
  1028  // Returns information about the specified Firewall Manager policy.
  1029  //
  1030  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1031  // with awserr.Error's Code and Message methods to get detailed information about
  1032  // the error.
  1033  //
  1034  // See the AWS API reference guide for Firewall Management Service's
  1035  // API operation GetPolicy for usage and error information.
  1036  //
  1037  // Returned Error Types:
  1038  //   * ResourceNotFoundException
  1039  //   The specified resource was not found.
  1040  //
  1041  //   * InvalidOperationException
  1042  //   The operation failed because there was nothing to do or the operation wasn't
  1043  //   possible. For example, you might have submitted an AssociateAdminAccount
  1044  //   request for an account ID that was already set as the Firewall Manager administrator.
  1045  //   Or you might have tried to access a Region that's disabled by default, and
  1046  //   that you need to enable for the Firewall Manager administrator account and
  1047  //   for Organizations before you can access it.
  1048  //
  1049  //   * InternalErrorException
  1050  //   The operation failed because of a system problem, even though the request
  1051  //   was valid. Retry your request.
  1052  //
  1053  //   * InvalidTypeException
  1054  //   The value of the Type parameter is invalid.
  1055  //
  1056  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetPolicy
  1057  func (c *FMS) GetPolicy(input *GetPolicyInput) (*GetPolicyOutput, error) {
  1058  	req, out := c.GetPolicyRequest(input)
  1059  	return out, req.Send()
  1060  }
  1061  
  1062  // GetPolicyWithContext is the same as GetPolicy with the addition of
  1063  // the ability to pass a context and additional request options.
  1064  //
  1065  // See GetPolicy for details on how to use this API operation.
  1066  //
  1067  // The context must be non-nil and will be used for request cancellation. If
  1068  // the context is nil a panic will occur. In the future the SDK may create
  1069  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1070  // for more information on using Contexts.
  1071  func (c *FMS) GetPolicyWithContext(ctx aws.Context, input *GetPolicyInput, opts ...request.Option) (*GetPolicyOutput, error) {
  1072  	req, out := c.GetPolicyRequest(input)
  1073  	req.SetContext(ctx)
  1074  	req.ApplyOptions(opts...)
  1075  	return out, req.Send()
  1076  }
  1077  
  1078  const opGetProtectionStatus = "GetProtectionStatus"
  1079  
  1080  // GetProtectionStatusRequest generates a "aws/request.Request" representing the
  1081  // client's request for the GetProtectionStatus operation. The "output" return
  1082  // value will be populated with the request's response once the request completes
  1083  // successfully.
  1084  //
  1085  // Use "Send" method on the returned Request to send the API call to the service.
  1086  // the "output" return value is not valid until after Send returns without error.
  1087  //
  1088  // See GetProtectionStatus for more information on using the GetProtectionStatus
  1089  // API call, and error handling.
  1090  //
  1091  // This method is useful when you want to inject custom logic or configuration
  1092  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1093  //
  1094  //
  1095  //    // Example sending a request using the GetProtectionStatusRequest method.
  1096  //    req, resp := client.GetProtectionStatusRequest(params)
  1097  //
  1098  //    err := req.Send()
  1099  //    if err == nil { // resp is now filled
  1100  //        fmt.Println(resp)
  1101  //    }
  1102  //
  1103  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetProtectionStatus
  1104  func (c *FMS) GetProtectionStatusRequest(input *GetProtectionStatusInput) (req *request.Request, output *GetProtectionStatusOutput) {
  1105  	op := &request.Operation{
  1106  		Name:       opGetProtectionStatus,
  1107  		HTTPMethod: "POST",
  1108  		HTTPPath:   "/",
  1109  	}
  1110  
  1111  	if input == nil {
  1112  		input = &GetProtectionStatusInput{}
  1113  	}
  1114  
  1115  	output = &GetProtectionStatusOutput{}
  1116  	req = c.newRequest(op, input, output)
  1117  	return
  1118  }
  1119  
  1120  // GetProtectionStatus API operation for Firewall Management Service.
  1121  //
  1122  // If you created a Shield Advanced policy, returns policy-level attack summary
  1123  // information in the event of a potential DDoS attack. Other policy types are
  1124  // currently unsupported.
  1125  //
  1126  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1127  // with awserr.Error's Code and Message methods to get detailed information about
  1128  // the error.
  1129  //
  1130  // See the AWS API reference guide for Firewall Management Service's
  1131  // API operation GetProtectionStatus for usage and error information.
  1132  //
  1133  // Returned Error Types:
  1134  //   * InvalidInputException
  1135  //   The parameters of the request were invalid.
  1136  //
  1137  //   * ResourceNotFoundException
  1138  //   The specified resource was not found.
  1139  //
  1140  //   * InternalErrorException
  1141  //   The operation failed because of a system problem, even though the request
  1142  //   was valid. Retry your request.
  1143  //
  1144  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetProtectionStatus
  1145  func (c *FMS) GetProtectionStatus(input *GetProtectionStatusInput) (*GetProtectionStatusOutput, error) {
  1146  	req, out := c.GetProtectionStatusRequest(input)
  1147  	return out, req.Send()
  1148  }
  1149  
  1150  // GetProtectionStatusWithContext is the same as GetProtectionStatus with the addition of
  1151  // the ability to pass a context and additional request options.
  1152  //
  1153  // See GetProtectionStatus for details on how to use this API operation.
  1154  //
  1155  // The context must be non-nil and will be used for request cancellation. If
  1156  // the context is nil a panic will occur. In the future the SDK may create
  1157  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1158  // for more information on using Contexts.
  1159  func (c *FMS) GetProtectionStatusWithContext(ctx aws.Context, input *GetProtectionStatusInput, opts ...request.Option) (*GetProtectionStatusOutput, error) {
  1160  	req, out := c.GetProtectionStatusRequest(input)
  1161  	req.SetContext(ctx)
  1162  	req.ApplyOptions(opts...)
  1163  	return out, req.Send()
  1164  }
  1165  
  1166  const opGetProtocolsList = "GetProtocolsList"
  1167  
  1168  // GetProtocolsListRequest generates a "aws/request.Request" representing the
  1169  // client's request for the GetProtocolsList operation. The "output" return
  1170  // value will be populated with the request's response once the request completes
  1171  // successfully.
  1172  //
  1173  // Use "Send" method on the returned Request to send the API call to the service.
  1174  // the "output" return value is not valid until after Send returns without error.
  1175  //
  1176  // See GetProtocolsList for more information on using the GetProtocolsList
  1177  // API call, and error handling.
  1178  //
  1179  // This method is useful when you want to inject custom logic or configuration
  1180  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1181  //
  1182  //
  1183  //    // Example sending a request using the GetProtocolsListRequest method.
  1184  //    req, resp := client.GetProtocolsListRequest(params)
  1185  //
  1186  //    err := req.Send()
  1187  //    if err == nil { // resp is now filled
  1188  //        fmt.Println(resp)
  1189  //    }
  1190  //
  1191  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetProtocolsList
  1192  func (c *FMS) GetProtocolsListRequest(input *GetProtocolsListInput) (req *request.Request, output *GetProtocolsListOutput) {
  1193  	op := &request.Operation{
  1194  		Name:       opGetProtocolsList,
  1195  		HTTPMethod: "POST",
  1196  		HTTPPath:   "/",
  1197  	}
  1198  
  1199  	if input == nil {
  1200  		input = &GetProtocolsListInput{}
  1201  	}
  1202  
  1203  	output = &GetProtocolsListOutput{}
  1204  	req = c.newRequest(op, input, output)
  1205  	return
  1206  }
  1207  
  1208  // GetProtocolsList API operation for Firewall Management Service.
  1209  //
  1210  // Returns information about the specified Firewall Manager protocols list.
  1211  //
  1212  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1213  // with awserr.Error's Code and Message methods to get detailed information about
  1214  // the error.
  1215  //
  1216  // See the AWS API reference guide for Firewall Management Service's
  1217  // API operation GetProtocolsList for usage and error information.
  1218  //
  1219  // Returned Error Types:
  1220  //   * ResourceNotFoundException
  1221  //   The specified resource was not found.
  1222  //
  1223  //   * InvalidOperationException
  1224  //   The operation failed because there was nothing to do or the operation wasn't
  1225  //   possible. For example, you might have submitted an AssociateAdminAccount
  1226  //   request for an account ID that was already set as the Firewall Manager administrator.
  1227  //   Or you might have tried to access a Region that's disabled by default, and
  1228  //   that you need to enable for the Firewall Manager administrator account and
  1229  //   for Organizations before you can access it.
  1230  //
  1231  //   * InternalErrorException
  1232  //   The operation failed because of a system problem, even though the request
  1233  //   was valid. Retry your request.
  1234  //
  1235  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetProtocolsList
  1236  func (c *FMS) GetProtocolsList(input *GetProtocolsListInput) (*GetProtocolsListOutput, error) {
  1237  	req, out := c.GetProtocolsListRequest(input)
  1238  	return out, req.Send()
  1239  }
  1240  
  1241  // GetProtocolsListWithContext is the same as GetProtocolsList with the addition of
  1242  // the ability to pass a context and additional request options.
  1243  //
  1244  // See GetProtocolsList for details on how to use this API operation.
  1245  //
  1246  // The context must be non-nil and will be used for request cancellation. If
  1247  // the context is nil a panic will occur. In the future the SDK may create
  1248  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1249  // for more information on using Contexts.
  1250  func (c *FMS) GetProtocolsListWithContext(ctx aws.Context, input *GetProtocolsListInput, opts ...request.Option) (*GetProtocolsListOutput, error) {
  1251  	req, out := c.GetProtocolsListRequest(input)
  1252  	req.SetContext(ctx)
  1253  	req.ApplyOptions(opts...)
  1254  	return out, req.Send()
  1255  }
  1256  
  1257  const opGetViolationDetails = "GetViolationDetails"
  1258  
  1259  // GetViolationDetailsRequest generates a "aws/request.Request" representing the
  1260  // client's request for the GetViolationDetails operation. The "output" return
  1261  // value will be populated with the request's response once the request completes
  1262  // successfully.
  1263  //
  1264  // Use "Send" method on the returned Request to send the API call to the service.
  1265  // the "output" return value is not valid until after Send returns without error.
  1266  //
  1267  // See GetViolationDetails for more information on using the GetViolationDetails
  1268  // API call, and error handling.
  1269  //
  1270  // This method is useful when you want to inject custom logic or configuration
  1271  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1272  //
  1273  //
  1274  //    // Example sending a request using the GetViolationDetailsRequest method.
  1275  //    req, resp := client.GetViolationDetailsRequest(params)
  1276  //
  1277  //    err := req.Send()
  1278  //    if err == nil { // resp is now filled
  1279  //        fmt.Println(resp)
  1280  //    }
  1281  //
  1282  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetViolationDetails
  1283  func (c *FMS) GetViolationDetailsRequest(input *GetViolationDetailsInput) (req *request.Request, output *GetViolationDetailsOutput) {
  1284  	op := &request.Operation{
  1285  		Name:       opGetViolationDetails,
  1286  		HTTPMethod: "POST",
  1287  		HTTPPath:   "/",
  1288  	}
  1289  
  1290  	if input == nil {
  1291  		input = &GetViolationDetailsInput{}
  1292  	}
  1293  
  1294  	output = &GetViolationDetailsOutput{}
  1295  	req = c.newRequest(op, input, output)
  1296  	return
  1297  }
  1298  
  1299  // GetViolationDetails API operation for Firewall Management Service.
  1300  //
  1301  // Retrieves violations for a resource based on the specified Firewall Manager
  1302  // policy and Amazon Web Services account.
  1303  //
  1304  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1305  // with awserr.Error's Code and Message methods to get detailed information about
  1306  // the error.
  1307  //
  1308  // See the AWS API reference guide for Firewall Management Service's
  1309  // API operation GetViolationDetails for usage and error information.
  1310  //
  1311  // Returned Error Types:
  1312  //   * ResourceNotFoundException
  1313  //   The specified resource was not found.
  1314  //
  1315  //   * InvalidInputException
  1316  //   The parameters of the request were invalid.
  1317  //
  1318  //   * InternalErrorException
  1319  //   The operation failed because of a system problem, even though the request
  1320  //   was valid. Retry your request.
  1321  //
  1322  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetViolationDetails
  1323  func (c *FMS) GetViolationDetails(input *GetViolationDetailsInput) (*GetViolationDetailsOutput, error) {
  1324  	req, out := c.GetViolationDetailsRequest(input)
  1325  	return out, req.Send()
  1326  }
  1327  
  1328  // GetViolationDetailsWithContext is the same as GetViolationDetails with the addition of
  1329  // the ability to pass a context and additional request options.
  1330  //
  1331  // See GetViolationDetails for details on how to use this API operation.
  1332  //
  1333  // The context must be non-nil and will be used for request cancellation. If
  1334  // the context is nil a panic will occur. In the future the SDK may create
  1335  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1336  // for more information on using Contexts.
  1337  func (c *FMS) GetViolationDetailsWithContext(ctx aws.Context, input *GetViolationDetailsInput, opts ...request.Option) (*GetViolationDetailsOutput, error) {
  1338  	req, out := c.GetViolationDetailsRequest(input)
  1339  	req.SetContext(ctx)
  1340  	req.ApplyOptions(opts...)
  1341  	return out, req.Send()
  1342  }
  1343  
  1344  const opListAppsLists = "ListAppsLists"
  1345  
  1346  // ListAppsListsRequest generates a "aws/request.Request" representing the
  1347  // client's request for the ListAppsLists operation. The "output" return
  1348  // value will be populated with the request's response once the request completes
  1349  // successfully.
  1350  //
  1351  // Use "Send" method on the returned Request to send the API call to the service.
  1352  // the "output" return value is not valid until after Send returns without error.
  1353  //
  1354  // See ListAppsLists for more information on using the ListAppsLists
  1355  // API call, and error handling.
  1356  //
  1357  // This method is useful when you want to inject custom logic or configuration
  1358  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1359  //
  1360  //
  1361  //    // Example sending a request using the ListAppsListsRequest method.
  1362  //    req, resp := client.ListAppsListsRequest(params)
  1363  //
  1364  //    err := req.Send()
  1365  //    if err == nil { // resp is now filled
  1366  //        fmt.Println(resp)
  1367  //    }
  1368  //
  1369  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListAppsLists
  1370  func (c *FMS) ListAppsListsRequest(input *ListAppsListsInput) (req *request.Request, output *ListAppsListsOutput) {
  1371  	op := &request.Operation{
  1372  		Name:       opListAppsLists,
  1373  		HTTPMethod: "POST",
  1374  		HTTPPath:   "/",
  1375  		Paginator: &request.Paginator{
  1376  			InputTokens:     []string{"NextToken"},
  1377  			OutputTokens:    []string{"NextToken"},
  1378  			LimitToken:      "MaxResults",
  1379  			TruncationToken: "",
  1380  		},
  1381  	}
  1382  
  1383  	if input == nil {
  1384  		input = &ListAppsListsInput{}
  1385  	}
  1386  
  1387  	output = &ListAppsListsOutput{}
  1388  	req = c.newRequest(op, input, output)
  1389  	return
  1390  }
  1391  
  1392  // ListAppsLists API operation for Firewall Management Service.
  1393  //
  1394  // Returns an array of AppsListDataSummary objects.
  1395  //
  1396  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1397  // with awserr.Error's Code and Message methods to get detailed information about
  1398  // the error.
  1399  //
  1400  // See the AWS API reference guide for Firewall Management Service's
  1401  // API operation ListAppsLists for usage and error information.
  1402  //
  1403  // Returned Error Types:
  1404  //   * ResourceNotFoundException
  1405  //   The specified resource was not found.
  1406  //
  1407  //   * InvalidOperationException
  1408  //   The operation failed because there was nothing to do or the operation wasn't
  1409  //   possible. For example, you might have submitted an AssociateAdminAccount
  1410  //   request for an account ID that was already set as the Firewall Manager administrator.
  1411  //   Or you might have tried to access a Region that's disabled by default, and
  1412  //   that you need to enable for the Firewall Manager administrator account and
  1413  //   for Organizations before you can access it.
  1414  //
  1415  //   * LimitExceededException
  1416  //   The operation exceeds a resource limit, for example, the maximum number of
  1417  //   policy objects that you can create for an Amazon Web Services account. For
  1418  //   more information, see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
  1419  //   in the WAF Developer Guide.
  1420  //
  1421  //   * InternalErrorException
  1422  //   The operation failed because of a system problem, even though the request
  1423  //   was valid. Retry your request.
  1424  //
  1425  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListAppsLists
  1426  func (c *FMS) ListAppsLists(input *ListAppsListsInput) (*ListAppsListsOutput, error) {
  1427  	req, out := c.ListAppsListsRequest(input)
  1428  	return out, req.Send()
  1429  }
  1430  
  1431  // ListAppsListsWithContext is the same as ListAppsLists with the addition of
  1432  // the ability to pass a context and additional request options.
  1433  //
  1434  // See ListAppsLists for details on how to use this API operation.
  1435  //
  1436  // The context must be non-nil and will be used for request cancellation. If
  1437  // the context is nil a panic will occur. In the future the SDK may create
  1438  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1439  // for more information on using Contexts.
  1440  func (c *FMS) ListAppsListsWithContext(ctx aws.Context, input *ListAppsListsInput, opts ...request.Option) (*ListAppsListsOutput, error) {
  1441  	req, out := c.ListAppsListsRequest(input)
  1442  	req.SetContext(ctx)
  1443  	req.ApplyOptions(opts...)
  1444  	return out, req.Send()
  1445  }
  1446  
  1447  // ListAppsListsPages iterates over the pages of a ListAppsLists operation,
  1448  // calling the "fn" function with the response data for each page. To stop
  1449  // iterating, return false from the fn function.
  1450  //
  1451  // See ListAppsLists method for more information on how to use this operation.
  1452  //
  1453  // Note: This operation can generate multiple requests to a service.
  1454  //
  1455  //    // Example iterating over at most 3 pages of a ListAppsLists operation.
  1456  //    pageNum := 0
  1457  //    err := client.ListAppsListsPages(params,
  1458  //        func(page *fms.ListAppsListsOutput, lastPage bool) bool {
  1459  //            pageNum++
  1460  //            fmt.Println(page)
  1461  //            return pageNum <= 3
  1462  //        })
  1463  //
  1464  func (c *FMS) ListAppsListsPages(input *ListAppsListsInput, fn func(*ListAppsListsOutput, bool) bool) error {
  1465  	return c.ListAppsListsPagesWithContext(aws.BackgroundContext(), input, fn)
  1466  }
  1467  
  1468  // ListAppsListsPagesWithContext same as ListAppsListsPages except
  1469  // it takes a Context and allows setting request options on the pages.
  1470  //
  1471  // The context must be non-nil and will be used for request cancellation. If
  1472  // the context is nil a panic will occur. In the future the SDK may create
  1473  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1474  // for more information on using Contexts.
  1475  func (c *FMS) ListAppsListsPagesWithContext(ctx aws.Context, input *ListAppsListsInput, fn func(*ListAppsListsOutput, bool) bool, opts ...request.Option) error {
  1476  	p := request.Pagination{
  1477  		NewRequest: func() (*request.Request, error) {
  1478  			var inCpy *ListAppsListsInput
  1479  			if input != nil {
  1480  				tmp := *input
  1481  				inCpy = &tmp
  1482  			}
  1483  			req, _ := c.ListAppsListsRequest(inCpy)
  1484  			req.SetContext(ctx)
  1485  			req.ApplyOptions(opts...)
  1486  			return req, nil
  1487  		},
  1488  	}
  1489  
  1490  	for p.Next() {
  1491  		if !fn(p.Page().(*ListAppsListsOutput), !p.HasNextPage()) {
  1492  			break
  1493  		}
  1494  	}
  1495  
  1496  	return p.Err()
  1497  }
  1498  
  1499  const opListComplianceStatus = "ListComplianceStatus"
  1500  
  1501  // ListComplianceStatusRequest generates a "aws/request.Request" representing the
  1502  // client's request for the ListComplianceStatus operation. The "output" return
  1503  // value will be populated with the request's response once the request completes
  1504  // successfully.
  1505  //
  1506  // Use "Send" method on the returned Request to send the API call to the service.
  1507  // the "output" return value is not valid until after Send returns without error.
  1508  //
  1509  // See ListComplianceStatus for more information on using the ListComplianceStatus
  1510  // API call, and error handling.
  1511  //
  1512  // This method is useful when you want to inject custom logic or configuration
  1513  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1514  //
  1515  //
  1516  //    // Example sending a request using the ListComplianceStatusRequest method.
  1517  //    req, resp := client.ListComplianceStatusRequest(params)
  1518  //
  1519  //    err := req.Send()
  1520  //    if err == nil { // resp is now filled
  1521  //        fmt.Println(resp)
  1522  //    }
  1523  //
  1524  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListComplianceStatus
  1525  func (c *FMS) ListComplianceStatusRequest(input *ListComplianceStatusInput) (req *request.Request, output *ListComplianceStatusOutput) {
  1526  	op := &request.Operation{
  1527  		Name:       opListComplianceStatus,
  1528  		HTTPMethod: "POST",
  1529  		HTTPPath:   "/",
  1530  		Paginator: &request.Paginator{
  1531  			InputTokens:     []string{"NextToken"},
  1532  			OutputTokens:    []string{"NextToken"},
  1533  			LimitToken:      "MaxResults",
  1534  			TruncationToken: "",
  1535  		},
  1536  	}
  1537  
  1538  	if input == nil {
  1539  		input = &ListComplianceStatusInput{}
  1540  	}
  1541  
  1542  	output = &ListComplianceStatusOutput{}
  1543  	req = c.newRequest(op, input, output)
  1544  	return
  1545  }
  1546  
  1547  // ListComplianceStatus API operation for Firewall Management Service.
  1548  //
  1549  // Returns an array of PolicyComplianceStatus objects. Use PolicyComplianceStatus
  1550  // to get a summary of which member accounts are protected by the specified
  1551  // policy.
  1552  //
  1553  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1554  // with awserr.Error's Code and Message methods to get detailed information about
  1555  // the error.
  1556  //
  1557  // See the AWS API reference guide for Firewall Management Service's
  1558  // API operation ListComplianceStatus for usage and error information.
  1559  //
  1560  // Returned Error Types:
  1561  //   * ResourceNotFoundException
  1562  //   The specified resource was not found.
  1563  //
  1564  //   * InternalErrorException
  1565  //   The operation failed because of a system problem, even though the request
  1566  //   was valid. Retry your request.
  1567  //
  1568  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListComplianceStatus
  1569  func (c *FMS) ListComplianceStatus(input *ListComplianceStatusInput) (*ListComplianceStatusOutput, error) {
  1570  	req, out := c.ListComplianceStatusRequest(input)
  1571  	return out, req.Send()
  1572  }
  1573  
  1574  // ListComplianceStatusWithContext is the same as ListComplianceStatus with the addition of
  1575  // the ability to pass a context and additional request options.
  1576  //
  1577  // See ListComplianceStatus for details on how to use this API operation.
  1578  //
  1579  // The context must be non-nil and will be used for request cancellation. If
  1580  // the context is nil a panic will occur. In the future the SDK may create
  1581  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1582  // for more information on using Contexts.
  1583  func (c *FMS) ListComplianceStatusWithContext(ctx aws.Context, input *ListComplianceStatusInput, opts ...request.Option) (*ListComplianceStatusOutput, error) {
  1584  	req, out := c.ListComplianceStatusRequest(input)
  1585  	req.SetContext(ctx)
  1586  	req.ApplyOptions(opts...)
  1587  	return out, req.Send()
  1588  }
  1589  
  1590  // ListComplianceStatusPages iterates over the pages of a ListComplianceStatus operation,
  1591  // calling the "fn" function with the response data for each page. To stop
  1592  // iterating, return false from the fn function.
  1593  //
  1594  // See ListComplianceStatus method for more information on how to use this operation.
  1595  //
  1596  // Note: This operation can generate multiple requests to a service.
  1597  //
  1598  //    // Example iterating over at most 3 pages of a ListComplianceStatus operation.
  1599  //    pageNum := 0
  1600  //    err := client.ListComplianceStatusPages(params,
  1601  //        func(page *fms.ListComplianceStatusOutput, lastPage bool) bool {
  1602  //            pageNum++
  1603  //            fmt.Println(page)
  1604  //            return pageNum <= 3
  1605  //        })
  1606  //
  1607  func (c *FMS) ListComplianceStatusPages(input *ListComplianceStatusInput, fn func(*ListComplianceStatusOutput, bool) bool) error {
  1608  	return c.ListComplianceStatusPagesWithContext(aws.BackgroundContext(), input, fn)
  1609  }
  1610  
  1611  // ListComplianceStatusPagesWithContext same as ListComplianceStatusPages except
  1612  // it takes a Context and allows setting request options on the pages.
  1613  //
  1614  // The context must be non-nil and will be used for request cancellation. If
  1615  // the context is nil a panic will occur. In the future the SDK may create
  1616  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1617  // for more information on using Contexts.
  1618  func (c *FMS) ListComplianceStatusPagesWithContext(ctx aws.Context, input *ListComplianceStatusInput, fn func(*ListComplianceStatusOutput, bool) bool, opts ...request.Option) error {
  1619  	p := request.Pagination{
  1620  		NewRequest: func() (*request.Request, error) {
  1621  			var inCpy *ListComplianceStatusInput
  1622  			if input != nil {
  1623  				tmp := *input
  1624  				inCpy = &tmp
  1625  			}
  1626  			req, _ := c.ListComplianceStatusRequest(inCpy)
  1627  			req.SetContext(ctx)
  1628  			req.ApplyOptions(opts...)
  1629  			return req, nil
  1630  		},
  1631  	}
  1632  
  1633  	for p.Next() {
  1634  		if !fn(p.Page().(*ListComplianceStatusOutput), !p.HasNextPage()) {
  1635  			break
  1636  		}
  1637  	}
  1638  
  1639  	return p.Err()
  1640  }
  1641  
  1642  const opListMemberAccounts = "ListMemberAccounts"
  1643  
  1644  // ListMemberAccountsRequest generates a "aws/request.Request" representing the
  1645  // client's request for the ListMemberAccounts operation. The "output" return
  1646  // value will be populated with the request's response once the request completes
  1647  // successfully.
  1648  //
  1649  // Use "Send" method on the returned Request to send the API call to the service.
  1650  // the "output" return value is not valid until after Send returns without error.
  1651  //
  1652  // See ListMemberAccounts for more information on using the ListMemberAccounts
  1653  // API call, and error handling.
  1654  //
  1655  // This method is useful when you want to inject custom logic or configuration
  1656  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1657  //
  1658  //
  1659  //    // Example sending a request using the ListMemberAccountsRequest method.
  1660  //    req, resp := client.ListMemberAccountsRequest(params)
  1661  //
  1662  //    err := req.Send()
  1663  //    if err == nil { // resp is now filled
  1664  //        fmt.Println(resp)
  1665  //    }
  1666  //
  1667  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListMemberAccounts
  1668  func (c *FMS) ListMemberAccountsRequest(input *ListMemberAccountsInput) (req *request.Request, output *ListMemberAccountsOutput) {
  1669  	op := &request.Operation{
  1670  		Name:       opListMemberAccounts,
  1671  		HTTPMethod: "POST",
  1672  		HTTPPath:   "/",
  1673  		Paginator: &request.Paginator{
  1674  			InputTokens:     []string{"NextToken"},
  1675  			OutputTokens:    []string{"NextToken"},
  1676  			LimitToken:      "MaxResults",
  1677  			TruncationToken: "",
  1678  		},
  1679  	}
  1680  
  1681  	if input == nil {
  1682  		input = &ListMemberAccountsInput{}
  1683  	}
  1684  
  1685  	output = &ListMemberAccountsOutput{}
  1686  	req = c.newRequest(op, input, output)
  1687  	return
  1688  }
  1689  
  1690  // ListMemberAccounts API operation for Firewall Management Service.
  1691  //
  1692  // Returns a MemberAccounts object that lists the member accounts in the administrator's
  1693  // Amazon Web Services organization.
  1694  //
  1695  // The ListMemberAccounts must be submitted by the account that is set as the
  1696  // Firewall Manager administrator.
  1697  //
  1698  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1699  // with awserr.Error's Code and Message methods to get detailed information about
  1700  // the error.
  1701  //
  1702  // See the AWS API reference guide for Firewall Management Service's
  1703  // API operation ListMemberAccounts for usage and error information.
  1704  //
  1705  // Returned Error Types:
  1706  //   * ResourceNotFoundException
  1707  //   The specified resource was not found.
  1708  //
  1709  //   * InternalErrorException
  1710  //   The operation failed because of a system problem, even though the request
  1711  //   was valid. Retry your request.
  1712  //
  1713  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListMemberAccounts
  1714  func (c *FMS) ListMemberAccounts(input *ListMemberAccountsInput) (*ListMemberAccountsOutput, error) {
  1715  	req, out := c.ListMemberAccountsRequest(input)
  1716  	return out, req.Send()
  1717  }
  1718  
  1719  // ListMemberAccountsWithContext is the same as ListMemberAccounts with the addition of
  1720  // the ability to pass a context and additional request options.
  1721  //
  1722  // See ListMemberAccounts for details on how to use this API operation.
  1723  //
  1724  // The context must be non-nil and will be used for request cancellation. If
  1725  // the context is nil a panic will occur. In the future the SDK may create
  1726  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1727  // for more information on using Contexts.
  1728  func (c *FMS) ListMemberAccountsWithContext(ctx aws.Context, input *ListMemberAccountsInput, opts ...request.Option) (*ListMemberAccountsOutput, error) {
  1729  	req, out := c.ListMemberAccountsRequest(input)
  1730  	req.SetContext(ctx)
  1731  	req.ApplyOptions(opts...)
  1732  	return out, req.Send()
  1733  }
  1734  
  1735  // ListMemberAccountsPages iterates over the pages of a ListMemberAccounts operation,
  1736  // calling the "fn" function with the response data for each page. To stop
  1737  // iterating, return false from the fn function.
  1738  //
  1739  // See ListMemberAccounts method for more information on how to use this operation.
  1740  //
  1741  // Note: This operation can generate multiple requests to a service.
  1742  //
  1743  //    // Example iterating over at most 3 pages of a ListMemberAccounts operation.
  1744  //    pageNum := 0
  1745  //    err := client.ListMemberAccountsPages(params,
  1746  //        func(page *fms.ListMemberAccountsOutput, lastPage bool) bool {
  1747  //            pageNum++
  1748  //            fmt.Println(page)
  1749  //            return pageNum <= 3
  1750  //        })
  1751  //
  1752  func (c *FMS) ListMemberAccountsPages(input *ListMemberAccountsInput, fn func(*ListMemberAccountsOutput, bool) bool) error {
  1753  	return c.ListMemberAccountsPagesWithContext(aws.BackgroundContext(), input, fn)
  1754  }
  1755  
  1756  // ListMemberAccountsPagesWithContext same as ListMemberAccountsPages except
  1757  // it takes a Context and allows setting request options on the pages.
  1758  //
  1759  // The context must be non-nil and will be used for request cancellation. If
  1760  // the context is nil a panic will occur. In the future the SDK may create
  1761  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1762  // for more information on using Contexts.
  1763  func (c *FMS) ListMemberAccountsPagesWithContext(ctx aws.Context, input *ListMemberAccountsInput, fn func(*ListMemberAccountsOutput, bool) bool, opts ...request.Option) error {
  1764  	p := request.Pagination{
  1765  		NewRequest: func() (*request.Request, error) {
  1766  			var inCpy *ListMemberAccountsInput
  1767  			if input != nil {
  1768  				tmp := *input
  1769  				inCpy = &tmp
  1770  			}
  1771  			req, _ := c.ListMemberAccountsRequest(inCpy)
  1772  			req.SetContext(ctx)
  1773  			req.ApplyOptions(opts...)
  1774  			return req, nil
  1775  		},
  1776  	}
  1777  
  1778  	for p.Next() {
  1779  		if !fn(p.Page().(*ListMemberAccountsOutput), !p.HasNextPage()) {
  1780  			break
  1781  		}
  1782  	}
  1783  
  1784  	return p.Err()
  1785  }
  1786  
  1787  const opListPolicies = "ListPolicies"
  1788  
  1789  // ListPoliciesRequest generates a "aws/request.Request" representing the
  1790  // client's request for the ListPolicies operation. The "output" return
  1791  // value will be populated with the request's response once the request completes
  1792  // successfully.
  1793  //
  1794  // Use "Send" method on the returned Request to send the API call to the service.
  1795  // the "output" return value is not valid until after Send returns without error.
  1796  //
  1797  // See ListPolicies for more information on using the ListPolicies
  1798  // API call, and error handling.
  1799  //
  1800  // This method is useful when you want to inject custom logic or configuration
  1801  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1802  //
  1803  //
  1804  //    // Example sending a request using the ListPoliciesRequest method.
  1805  //    req, resp := client.ListPoliciesRequest(params)
  1806  //
  1807  //    err := req.Send()
  1808  //    if err == nil { // resp is now filled
  1809  //        fmt.Println(resp)
  1810  //    }
  1811  //
  1812  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListPolicies
  1813  func (c *FMS) ListPoliciesRequest(input *ListPoliciesInput) (req *request.Request, output *ListPoliciesOutput) {
  1814  	op := &request.Operation{
  1815  		Name:       opListPolicies,
  1816  		HTTPMethod: "POST",
  1817  		HTTPPath:   "/",
  1818  		Paginator: &request.Paginator{
  1819  			InputTokens:     []string{"NextToken"},
  1820  			OutputTokens:    []string{"NextToken"},
  1821  			LimitToken:      "MaxResults",
  1822  			TruncationToken: "",
  1823  		},
  1824  	}
  1825  
  1826  	if input == nil {
  1827  		input = &ListPoliciesInput{}
  1828  	}
  1829  
  1830  	output = &ListPoliciesOutput{}
  1831  	req = c.newRequest(op, input, output)
  1832  	return
  1833  }
  1834  
  1835  // ListPolicies API operation for Firewall Management Service.
  1836  //
  1837  // Returns an array of PolicySummary objects.
  1838  //
  1839  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1840  // with awserr.Error's Code and Message methods to get detailed information about
  1841  // the error.
  1842  //
  1843  // See the AWS API reference guide for Firewall Management Service's
  1844  // API operation ListPolicies for usage and error information.
  1845  //
  1846  // Returned Error Types:
  1847  //   * ResourceNotFoundException
  1848  //   The specified resource was not found.
  1849  //
  1850  //   * InvalidOperationException
  1851  //   The operation failed because there was nothing to do or the operation wasn't
  1852  //   possible. For example, you might have submitted an AssociateAdminAccount
  1853  //   request for an account ID that was already set as the Firewall Manager administrator.
  1854  //   Or you might have tried to access a Region that's disabled by default, and
  1855  //   that you need to enable for the Firewall Manager administrator account and
  1856  //   for Organizations before you can access it.
  1857  //
  1858  //   * LimitExceededException
  1859  //   The operation exceeds a resource limit, for example, the maximum number of
  1860  //   policy objects that you can create for an Amazon Web Services account. For
  1861  //   more information, see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
  1862  //   in the WAF Developer Guide.
  1863  //
  1864  //   * InternalErrorException
  1865  //   The operation failed because of a system problem, even though the request
  1866  //   was valid. Retry your request.
  1867  //
  1868  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListPolicies
  1869  func (c *FMS) ListPolicies(input *ListPoliciesInput) (*ListPoliciesOutput, error) {
  1870  	req, out := c.ListPoliciesRequest(input)
  1871  	return out, req.Send()
  1872  }
  1873  
  1874  // ListPoliciesWithContext is the same as ListPolicies with the addition of
  1875  // the ability to pass a context and additional request options.
  1876  //
  1877  // See ListPolicies for details on how to use this API operation.
  1878  //
  1879  // The context must be non-nil and will be used for request cancellation. If
  1880  // the context is nil a panic will occur. In the future the SDK may create
  1881  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1882  // for more information on using Contexts.
  1883  func (c *FMS) ListPoliciesWithContext(ctx aws.Context, input *ListPoliciesInput, opts ...request.Option) (*ListPoliciesOutput, error) {
  1884  	req, out := c.ListPoliciesRequest(input)
  1885  	req.SetContext(ctx)
  1886  	req.ApplyOptions(opts...)
  1887  	return out, req.Send()
  1888  }
  1889  
  1890  // ListPoliciesPages iterates over the pages of a ListPolicies operation,
  1891  // calling the "fn" function with the response data for each page. To stop
  1892  // iterating, return false from the fn function.
  1893  //
  1894  // See ListPolicies method for more information on how to use this operation.
  1895  //
  1896  // Note: This operation can generate multiple requests to a service.
  1897  //
  1898  //    // Example iterating over at most 3 pages of a ListPolicies operation.
  1899  //    pageNum := 0
  1900  //    err := client.ListPoliciesPages(params,
  1901  //        func(page *fms.ListPoliciesOutput, lastPage bool) bool {
  1902  //            pageNum++
  1903  //            fmt.Println(page)
  1904  //            return pageNum <= 3
  1905  //        })
  1906  //
  1907  func (c *FMS) ListPoliciesPages(input *ListPoliciesInput, fn func(*ListPoliciesOutput, bool) bool) error {
  1908  	return c.ListPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
  1909  }
  1910  
  1911  // ListPoliciesPagesWithContext same as ListPoliciesPages except
  1912  // it takes a Context and allows setting request options on the pages.
  1913  //
  1914  // The context must be non-nil and will be used for request cancellation. If
  1915  // the context is nil a panic will occur. In the future the SDK may create
  1916  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1917  // for more information on using Contexts.
  1918  func (c *FMS) ListPoliciesPagesWithContext(ctx aws.Context, input *ListPoliciesInput, fn func(*ListPoliciesOutput, bool) bool, opts ...request.Option) error {
  1919  	p := request.Pagination{
  1920  		NewRequest: func() (*request.Request, error) {
  1921  			var inCpy *ListPoliciesInput
  1922  			if input != nil {
  1923  				tmp := *input
  1924  				inCpy = &tmp
  1925  			}
  1926  			req, _ := c.ListPoliciesRequest(inCpy)
  1927  			req.SetContext(ctx)
  1928  			req.ApplyOptions(opts...)
  1929  			return req, nil
  1930  		},
  1931  	}
  1932  
  1933  	for p.Next() {
  1934  		if !fn(p.Page().(*ListPoliciesOutput), !p.HasNextPage()) {
  1935  			break
  1936  		}
  1937  	}
  1938  
  1939  	return p.Err()
  1940  }
  1941  
  1942  const opListProtocolsLists = "ListProtocolsLists"
  1943  
  1944  // ListProtocolsListsRequest generates a "aws/request.Request" representing the
  1945  // client's request for the ListProtocolsLists operation. The "output" return
  1946  // value will be populated with the request's response once the request completes
  1947  // successfully.
  1948  //
  1949  // Use "Send" method on the returned Request to send the API call to the service.
  1950  // the "output" return value is not valid until after Send returns without error.
  1951  //
  1952  // See ListProtocolsLists for more information on using the ListProtocolsLists
  1953  // API call, and error handling.
  1954  //
  1955  // This method is useful when you want to inject custom logic or configuration
  1956  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1957  //
  1958  //
  1959  //    // Example sending a request using the ListProtocolsListsRequest method.
  1960  //    req, resp := client.ListProtocolsListsRequest(params)
  1961  //
  1962  //    err := req.Send()
  1963  //    if err == nil { // resp is now filled
  1964  //        fmt.Println(resp)
  1965  //    }
  1966  //
  1967  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListProtocolsLists
  1968  func (c *FMS) ListProtocolsListsRequest(input *ListProtocolsListsInput) (req *request.Request, output *ListProtocolsListsOutput) {
  1969  	op := &request.Operation{
  1970  		Name:       opListProtocolsLists,
  1971  		HTTPMethod: "POST",
  1972  		HTTPPath:   "/",
  1973  		Paginator: &request.Paginator{
  1974  			InputTokens:     []string{"NextToken"},
  1975  			OutputTokens:    []string{"NextToken"},
  1976  			LimitToken:      "MaxResults",
  1977  			TruncationToken: "",
  1978  		},
  1979  	}
  1980  
  1981  	if input == nil {
  1982  		input = &ListProtocolsListsInput{}
  1983  	}
  1984  
  1985  	output = &ListProtocolsListsOutput{}
  1986  	req = c.newRequest(op, input, output)
  1987  	return
  1988  }
  1989  
  1990  // ListProtocolsLists API operation for Firewall Management Service.
  1991  //
  1992  // Returns an array of ProtocolsListDataSummary objects.
  1993  //
  1994  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1995  // with awserr.Error's Code and Message methods to get detailed information about
  1996  // the error.
  1997  //
  1998  // See the AWS API reference guide for Firewall Management Service's
  1999  // API operation ListProtocolsLists for usage and error information.
  2000  //
  2001  // Returned Error Types:
  2002  //   * ResourceNotFoundException
  2003  //   The specified resource was not found.
  2004  //
  2005  //   * InvalidOperationException
  2006  //   The operation failed because there was nothing to do or the operation wasn't
  2007  //   possible. For example, you might have submitted an AssociateAdminAccount
  2008  //   request for an account ID that was already set as the Firewall Manager administrator.
  2009  //   Or you might have tried to access a Region that's disabled by default, and
  2010  //   that you need to enable for the Firewall Manager administrator account and
  2011  //   for Organizations before you can access it.
  2012  //
  2013  //   * InternalErrorException
  2014  //   The operation failed because of a system problem, even though the request
  2015  //   was valid. Retry your request.
  2016  //
  2017  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListProtocolsLists
  2018  func (c *FMS) ListProtocolsLists(input *ListProtocolsListsInput) (*ListProtocolsListsOutput, error) {
  2019  	req, out := c.ListProtocolsListsRequest(input)
  2020  	return out, req.Send()
  2021  }
  2022  
  2023  // ListProtocolsListsWithContext is the same as ListProtocolsLists with the addition of
  2024  // the ability to pass a context and additional request options.
  2025  //
  2026  // See ListProtocolsLists for details on how to use this API operation.
  2027  //
  2028  // The context must be non-nil and will be used for request cancellation. If
  2029  // the context is nil a panic will occur. In the future the SDK may create
  2030  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2031  // for more information on using Contexts.
  2032  func (c *FMS) ListProtocolsListsWithContext(ctx aws.Context, input *ListProtocolsListsInput, opts ...request.Option) (*ListProtocolsListsOutput, error) {
  2033  	req, out := c.ListProtocolsListsRequest(input)
  2034  	req.SetContext(ctx)
  2035  	req.ApplyOptions(opts...)
  2036  	return out, req.Send()
  2037  }
  2038  
  2039  // ListProtocolsListsPages iterates over the pages of a ListProtocolsLists operation,
  2040  // calling the "fn" function with the response data for each page. To stop
  2041  // iterating, return false from the fn function.
  2042  //
  2043  // See ListProtocolsLists method for more information on how to use this operation.
  2044  //
  2045  // Note: This operation can generate multiple requests to a service.
  2046  //
  2047  //    // Example iterating over at most 3 pages of a ListProtocolsLists operation.
  2048  //    pageNum := 0
  2049  //    err := client.ListProtocolsListsPages(params,
  2050  //        func(page *fms.ListProtocolsListsOutput, lastPage bool) bool {
  2051  //            pageNum++
  2052  //            fmt.Println(page)
  2053  //            return pageNum <= 3
  2054  //        })
  2055  //
  2056  func (c *FMS) ListProtocolsListsPages(input *ListProtocolsListsInput, fn func(*ListProtocolsListsOutput, bool) bool) error {
  2057  	return c.ListProtocolsListsPagesWithContext(aws.BackgroundContext(), input, fn)
  2058  }
  2059  
  2060  // ListProtocolsListsPagesWithContext same as ListProtocolsListsPages except
  2061  // it takes a Context and allows setting request options on the pages.
  2062  //
  2063  // The context must be non-nil and will be used for request cancellation. If
  2064  // the context is nil a panic will occur. In the future the SDK may create
  2065  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2066  // for more information on using Contexts.
  2067  func (c *FMS) ListProtocolsListsPagesWithContext(ctx aws.Context, input *ListProtocolsListsInput, fn func(*ListProtocolsListsOutput, bool) bool, opts ...request.Option) error {
  2068  	p := request.Pagination{
  2069  		NewRequest: func() (*request.Request, error) {
  2070  			var inCpy *ListProtocolsListsInput
  2071  			if input != nil {
  2072  				tmp := *input
  2073  				inCpy = &tmp
  2074  			}
  2075  			req, _ := c.ListProtocolsListsRequest(inCpy)
  2076  			req.SetContext(ctx)
  2077  			req.ApplyOptions(opts...)
  2078  			return req, nil
  2079  		},
  2080  	}
  2081  
  2082  	for p.Next() {
  2083  		if !fn(p.Page().(*ListProtocolsListsOutput), !p.HasNextPage()) {
  2084  			break
  2085  		}
  2086  	}
  2087  
  2088  	return p.Err()
  2089  }
  2090  
  2091  const opListTagsForResource = "ListTagsForResource"
  2092  
  2093  // ListTagsForResourceRequest generates a "aws/request.Request" representing the
  2094  // client's request for the ListTagsForResource operation. The "output" return
  2095  // value will be populated with the request's response once the request completes
  2096  // successfully.
  2097  //
  2098  // Use "Send" method on the returned Request to send the API call to the service.
  2099  // the "output" return value is not valid until after Send returns without error.
  2100  //
  2101  // See ListTagsForResource for more information on using the ListTagsForResource
  2102  // API call, and error handling.
  2103  //
  2104  // This method is useful when you want to inject custom logic or configuration
  2105  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2106  //
  2107  //
  2108  //    // Example sending a request using the ListTagsForResourceRequest method.
  2109  //    req, resp := client.ListTagsForResourceRequest(params)
  2110  //
  2111  //    err := req.Send()
  2112  //    if err == nil { // resp is now filled
  2113  //        fmt.Println(resp)
  2114  //    }
  2115  //
  2116  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListTagsForResource
  2117  func (c *FMS) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
  2118  	op := &request.Operation{
  2119  		Name:       opListTagsForResource,
  2120  		HTTPMethod: "POST",
  2121  		HTTPPath:   "/",
  2122  	}
  2123  
  2124  	if input == nil {
  2125  		input = &ListTagsForResourceInput{}
  2126  	}
  2127  
  2128  	output = &ListTagsForResourceOutput{}
  2129  	req = c.newRequest(op, input, output)
  2130  	return
  2131  }
  2132  
  2133  // ListTagsForResource API operation for Firewall Management Service.
  2134  //
  2135  // Retrieves the list of tags for the specified Amazon Web Services resource.
  2136  //
  2137  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2138  // with awserr.Error's Code and Message methods to get detailed information about
  2139  // the error.
  2140  //
  2141  // See the AWS API reference guide for Firewall Management Service's
  2142  // API operation ListTagsForResource for usage and error information.
  2143  //
  2144  // Returned Error Types:
  2145  //   * ResourceNotFoundException
  2146  //   The specified resource was not found.
  2147  //
  2148  //   * InvalidOperationException
  2149  //   The operation failed because there was nothing to do or the operation wasn't
  2150  //   possible. For example, you might have submitted an AssociateAdminAccount
  2151  //   request for an account ID that was already set as the Firewall Manager administrator.
  2152  //   Or you might have tried to access a Region that's disabled by default, and
  2153  //   that you need to enable for the Firewall Manager administrator account and
  2154  //   for Organizations before you can access it.
  2155  //
  2156  //   * InternalErrorException
  2157  //   The operation failed because of a system problem, even though the request
  2158  //   was valid. Retry your request.
  2159  //
  2160  //   * InvalidInputException
  2161  //   The parameters of the request were invalid.
  2162  //
  2163  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListTagsForResource
  2164  func (c *FMS) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
  2165  	req, out := c.ListTagsForResourceRequest(input)
  2166  	return out, req.Send()
  2167  }
  2168  
  2169  // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
  2170  // the ability to pass a context and additional request options.
  2171  //
  2172  // See ListTagsForResource for details on how to use this API operation.
  2173  //
  2174  // The context must be non-nil and will be used for request cancellation. If
  2175  // the context is nil a panic will occur. In the future the SDK may create
  2176  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2177  // for more information on using Contexts.
  2178  func (c *FMS) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
  2179  	req, out := c.ListTagsForResourceRequest(input)
  2180  	req.SetContext(ctx)
  2181  	req.ApplyOptions(opts...)
  2182  	return out, req.Send()
  2183  }
  2184  
  2185  const opPutAppsList = "PutAppsList"
  2186  
  2187  // PutAppsListRequest generates a "aws/request.Request" representing the
  2188  // client's request for the PutAppsList operation. The "output" return
  2189  // value will be populated with the request's response once the request completes
  2190  // successfully.
  2191  //
  2192  // Use "Send" method on the returned Request to send the API call to the service.
  2193  // the "output" return value is not valid until after Send returns without error.
  2194  //
  2195  // See PutAppsList for more information on using the PutAppsList
  2196  // API call, and error handling.
  2197  //
  2198  // This method is useful when you want to inject custom logic or configuration
  2199  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2200  //
  2201  //
  2202  //    // Example sending a request using the PutAppsListRequest method.
  2203  //    req, resp := client.PutAppsListRequest(params)
  2204  //
  2205  //    err := req.Send()
  2206  //    if err == nil { // resp is now filled
  2207  //        fmt.Println(resp)
  2208  //    }
  2209  //
  2210  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutAppsList
  2211  func (c *FMS) PutAppsListRequest(input *PutAppsListInput) (req *request.Request, output *PutAppsListOutput) {
  2212  	op := &request.Operation{
  2213  		Name:       opPutAppsList,
  2214  		HTTPMethod: "POST",
  2215  		HTTPPath:   "/",
  2216  	}
  2217  
  2218  	if input == nil {
  2219  		input = &PutAppsListInput{}
  2220  	}
  2221  
  2222  	output = &PutAppsListOutput{}
  2223  	req = c.newRequest(op, input, output)
  2224  	return
  2225  }
  2226  
  2227  // PutAppsList API operation for Firewall Management Service.
  2228  //
  2229  // Creates an Firewall Manager applications list.
  2230  //
  2231  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2232  // with awserr.Error's Code and Message methods to get detailed information about
  2233  // the error.
  2234  //
  2235  // See the AWS API reference guide for Firewall Management Service's
  2236  // API operation PutAppsList for usage and error information.
  2237  //
  2238  // Returned Error Types:
  2239  //   * ResourceNotFoundException
  2240  //   The specified resource was not found.
  2241  //
  2242  //   * InvalidOperationException
  2243  //   The operation failed because there was nothing to do or the operation wasn't
  2244  //   possible. For example, you might have submitted an AssociateAdminAccount
  2245  //   request for an account ID that was already set as the Firewall Manager administrator.
  2246  //   Or you might have tried to access a Region that's disabled by default, and
  2247  //   that you need to enable for the Firewall Manager administrator account and
  2248  //   for Organizations before you can access it.
  2249  //
  2250  //   * InvalidInputException
  2251  //   The parameters of the request were invalid.
  2252  //
  2253  //   * LimitExceededException
  2254  //   The operation exceeds a resource limit, for example, the maximum number of
  2255  //   policy objects that you can create for an Amazon Web Services account. For
  2256  //   more information, see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
  2257  //   in the WAF Developer Guide.
  2258  //
  2259  //   * InternalErrorException
  2260  //   The operation failed because of a system problem, even though the request
  2261  //   was valid. Retry your request.
  2262  //
  2263  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutAppsList
  2264  func (c *FMS) PutAppsList(input *PutAppsListInput) (*PutAppsListOutput, error) {
  2265  	req, out := c.PutAppsListRequest(input)
  2266  	return out, req.Send()
  2267  }
  2268  
  2269  // PutAppsListWithContext is the same as PutAppsList with the addition of
  2270  // the ability to pass a context and additional request options.
  2271  //
  2272  // See PutAppsList for details on how to use this API operation.
  2273  //
  2274  // The context must be non-nil and will be used for request cancellation. If
  2275  // the context is nil a panic will occur. In the future the SDK may create
  2276  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2277  // for more information on using Contexts.
  2278  func (c *FMS) PutAppsListWithContext(ctx aws.Context, input *PutAppsListInput, opts ...request.Option) (*PutAppsListOutput, error) {
  2279  	req, out := c.PutAppsListRequest(input)
  2280  	req.SetContext(ctx)
  2281  	req.ApplyOptions(opts...)
  2282  	return out, req.Send()
  2283  }
  2284  
  2285  const opPutNotificationChannel = "PutNotificationChannel"
  2286  
  2287  // PutNotificationChannelRequest generates a "aws/request.Request" representing the
  2288  // client's request for the PutNotificationChannel operation. The "output" return
  2289  // value will be populated with the request's response once the request completes
  2290  // successfully.
  2291  //
  2292  // Use "Send" method on the returned Request to send the API call to the service.
  2293  // the "output" return value is not valid until after Send returns without error.
  2294  //
  2295  // See PutNotificationChannel for more information on using the PutNotificationChannel
  2296  // API call, and error handling.
  2297  //
  2298  // This method is useful when you want to inject custom logic or configuration
  2299  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2300  //
  2301  //
  2302  //    // Example sending a request using the PutNotificationChannelRequest method.
  2303  //    req, resp := client.PutNotificationChannelRequest(params)
  2304  //
  2305  //    err := req.Send()
  2306  //    if err == nil { // resp is now filled
  2307  //        fmt.Println(resp)
  2308  //    }
  2309  //
  2310  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutNotificationChannel
  2311  func (c *FMS) PutNotificationChannelRequest(input *PutNotificationChannelInput) (req *request.Request, output *PutNotificationChannelOutput) {
  2312  	op := &request.Operation{
  2313  		Name:       opPutNotificationChannel,
  2314  		HTTPMethod: "POST",
  2315  		HTTPPath:   "/",
  2316  	}
  2317  
  2318  	if input == nil {
  2319  		input = &PutNotificationChannelInput{}
  2320  	}
  2321  
  2322  	output = &PutNotificationChannelOutput{}
  2323  	req = c.newRequest(op, input, output)
  2324  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2325  	return
  2326  }
  2327  
  2328  // PutNotificationChannel API operation for Firewall Management Service.
  2329  //
  2330  // Designates the IAM role and Amazon Simple Notification Service (SNS) topic
  2331  // that Firewall Manager uses to record SNS logs.
  2332  //
  2333  // To perform this action outside of the console, you must configure the SNS
  2334  // topic to allow the Firewall Manager role AWSServiceRoleForFMS to publish
  2335  // SNS logs. For more information, see Firewall Manager required permissions
  2336  // for API actions (https://docs.aws.amazon.com/waf/latest/developerguide/fms-api-permissions-ref.html)
  2337  // in the Firewall Manager Developer Guide.
  2338  //
  2339  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2340  // with awserr.Error's Code and Message methods to get detailed information about
  2341  // the error.
  2342  //
  2343  // See the AWS API reference guide for Firewall Management Service's
  2344  // API operation PutNotificationChannel for usage and error information.
  2345  //
  2346  // Returned Error Types:
  2347  //   * ResourceNotFoundException
  2348  //   The specified resource was not found.
  2349  //
  2350  //   * InvalidOperationException
  2351  //   The operation failed because there was nothing to do or the operation wasn't
  2352  //   possible. For example, you might have submitted an AssociateAdminAccount
  2353  //   request for an account ID that was already set as the Firewall Manager administrator.
  2354  //   Or you might have tried to access a Region that's disabled by default, and
  2355  //   that you need to enable for the Firewall Manager administrator account and
  2356  //   for Organizations before you can access it.
  2357  //
  2358  //   * InternalErrorException
  2359  //   The operation failed because of a system problem, even though the request
  2360  //   was valid. Retry your request.
  2361  //
  2362  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutNotificationChannel
  2363  func (c *FMS) PutNotificationChannel(input *PutNotificationChannelInput) (*PutNotificationChannelOutput, error) {
  2364  	req, out := c.PutNotificationChannelRequest(input)
  2365  	return out, req.Send()
  2366  }
  2367  
  2368  // PutNotificationChannelWithContext is the same as PutNotificationChannel with the addition of
  2369  // the ability to pass a context and additional request options.
  2370  //
  2371  // See PutNotificationChannel for details on how to use this API operation.
  2372  //
  2373  // The context must be non-nil and will be used for request cancellation. If
  2374  // the context is nil a panic will occur. In the future the SDK may create
  2375  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2376  // for more information on using Contexts.
  2377  func (c *FMS) PutNotificationChannelWithContext(ctx aws.Context, input *PutNotificationChannelInput, opts ...request.Option) (*PutNotificationChannelOutput, error) {
  2378  	req, out := c.PutNotificationChannelRequest(input)
  2379  	req.SetContext(ctx)
  2380  	req.ApplyOptions(opts...)
  2381  	return out, req.Send()
  2382  }
  2383  
  2384  const opPutPolicy = "PutPolicy"
  2385  
  2386  // PutPolicyRequest generates a "aws/request.Request" representing the
  2387  // client's request for the PutPolicy operation. The "output" return
  2388  // value will be populated with the request's response once the request completes
  2389  // successfully.
  2390  //
  2391  // Use "Send" method on the returned Request to send the API call to the service.
  2392  // the "output" return value is not valid until after Send returns without error.
  2393  //
  2394  // See PutPolicy for more information on using the PutPolicy
  2395  // API call, and error handling.
  2396  //
  2397  // This method is useful when you want to inject custom logic or configuration
  2398  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2399  //
  2400  //
  2401  //    // Example sending a request using the PutPolicyRequest method.
  2402  //    req, resp := client.PutPolicyRequest(params)
  2403  //
  2404  //    err := req.Send()
  2405  //    if err == nil { // resp is now filled
  2406  //        fmt.Println(resp)
  2407  //    }
  2408  //
  2409  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutPolicy
  2410  func (c *FMS) PutPolicyRequest(input *PutPolicyInput) (req *request.Request, output *PutPolicyOutput) {
  2411  	op := &request.Operation{
  2412  		Name:       opPutPolicy,
  2413  		HTTPMethod: "POST",
  2414  		HTTPPath:   "/",
  2415  	}
  2416  
  2417  	if input == nil {
  2418  		input = &PutPolicyInput{}
  2419  	}
  2420  
  2421  	output = &PutPolicyOutput{}
  2422  	req = c.newRequest(op, input, output)
  2423  	return
  2424  }
  2425  
  2426  // PutPolicy API operation for Firewall Management Service.
  2427  //
  2428  // Creates an Firewall Manager policy.
  2429  //
  2430  // Firewall Manager provides the following types of policies:
  2431  //
  2432  //    * An WAF policy (type WAFV2), which defines rule groups to run first in
  2433  //    the corresponding WAF web ACL and rule groups to run last in the web ACL.
  2434  //
  2435  //    * An WAF Classic policy (type WAF), which defines a rule group.
  2436  //
  2437  //    * A Shield Advanced policy, which applies Shield Advanced protection to
  2438  //    specified accounts and resources.
  2439  //
  2440  //    * A security group policy, which manages VPC security groups across your
  2441  //    Amazon Web Services organization.
  2442  //
  2443  //    * An Network Firewall policy, which provides firewall rules to filter
  2444  //    network traffic in specified Amazon VPCs.
  2445  //
  2446  //    * A DNS Firewall policy, which provides Route 53 Resolver DNS Firewall
  2447  //    rules to filter DNS queries for specified VPCs.
  2448  //
  2449  // Each policy is specific to one of the types. If you want to enforce more
  2450  // than one policy type across accounts, create multiple policies. You can create
  2451  // multiple policies for each type.
  2452  //
  2453  // You must be subscribed to Shield Advanced to create a Shield Advanced policy.
  2454  // For more information about subscribing to Shield Advanced, see CreateSubscription
  2455  // (https://docs.aws.amazon.com/waf/latest/DDOSAPIReference/API_CreateSubscription.html).
  2456  //
  2457  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2458  // with awserr.Error's Code and Message methods to get detailed information about
  2459  // the error.
  2460  //
  2461  // See the AWS API reference guide for Firewall Management Service's
  2462  // API operation PutPolicy for usage and error information.
  2463  //
  2464  // Returned Error Types:
  2465  //   * ResourceNotFoundException
  2466  //   The specified resource was not found.
  2467  //
  2468  //   * InvalidOperationException
  2469  //   The operation failed because there was nothing to do or the operation wasn't
  2470  //   possible. For example, you might have submitted an AssociateAdminAccount
  2471  //   request for an account ID that was already set as the Firewall Manager administrator.
  2472  //   Or you might have tried to access a Region that's disabled by default, and
  2473  //   that you need to enable for the Firewall Manager administrator account and
  2474  //   for Organizations before you can access it.
  2475  //
  2476  //   * InvalidInputException
  2477  //   The parameters of the request were invalid.
  2478  //
  2479  //   * LimitExceededException
  2480  //   The operation exceeds a resource limit, for example, the maximum number of
  2481  //   policy objects that you can create for an Amazon Web Services account. For
  2482  //   more information, see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
  2483  //   in the WAF Developer Guide.
  2484  //
  2485  //   * InternalErrorException
  2486  //   The operation failed because of a system problem, even though the request
  2487  //   was valid. Retry your request.
  2488  //
  2489  //   * InvalidTypeException
  2490  //   The value of the Type parameter is invalid.
  2491  //
  2492  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutPolicy
  2493  func (c *FMS) PutPolicy(input *PutPolicyInput) (*PutPolicyOutput, error) {
  2494  	req, out := c.PutPolicyRequest(input)
  2495  	return out, req.Send()
  2496  }
  2497  
  2498  // PutPolicyWithContext is the same as PutPolicy with the addition of
  2499  // the ability to pass a context and additional request options.
  2500  //
  2501  // See PutPolicy for details on how to use this API operation.
  2502  //
  2503  // The context must be non-nil and will be used for request cancellation. If
  2504  // the context is nil a panic will occur. In the future the SDK may create
  2505  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2506  // for more information on using Contexts.
  2507  func (c *FMS) PutPolicyWithContext(ctx aws.Context, input *PutPolicyInput, opts ...request.Option) (*PutPolicyOutput, error) {
  2508  	req, out := c.PutPolicyRequest(input)
  2509  	req.SetContext(ctx)
  2510  	req.ApplyOptions(opts...)
  2511  	return out, req.Send()
  2512  }
  2513  
  2514  const opPutProtocolsList = "PutProtocolsList"
  2515  
  2516  // PutProtocolsListRequest generates a "aws/request.Request" representing the
  2517  // client's request for the PutProtocolsList operation. The "output" return
  2518  // value will be populated with the request's response once the request completes
  2519  // successfully.
  2520  //
  2521  // Use "Send" method on the returned Request to send the API call to the service.
  2522  // the "output" return value is not valid until after Send returns without error.
  2523  //
  2524  // See PutProtocolsList for more information on using the PutProtocolsList
  2525  // API call, and error handling.
  2526  //
  2527  // This method is useful when you want to inject custom logic or configuration
  2528  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2529  //
  2530  //
  2531  //    // Example sending a request using the PutProtocolsListRequest method.
  2532  //    req, resp := client.PutProtocolsListRequest(params)
  2533  //
  2534  //    err := req.Send()
  2535  //    if err == nil { // resp is now filled
  2536  //        fmt.Println(resp)
  2537  //    }
  2538  //
  2539  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutProtocolsList
  2540  func (c *FMS) PutProtocolsListRequest(input *PutProtocolsListInput) (req *request.Request, output *PutProtocolsListOutput) {
  2541  	op := &request.Operation{
  2542  		Name:       opPutProtocolsList,
  2543  		HTTPMethod: "POST",
  2544  		HTTPPath:   "/",
  2545  	}
  2546  
  2547  	if input == nil {
  2548  		input = &PutProtocolsListInput{}
  2549  	}
  2550  
  2551  	output = &PutProtocolsListOutput{}
  2552  	req = c.newRequest(op, input, output)
  2553  	return
  2554  }
  2555  
  2556  // PutProtocolsList API operation for Firewall Management Service.
  2557  //
  2558  // Creates an Firewall Manager protocols list.
  2559  //
  2560  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2561  // with awserr.Error's Code and Message methods to get detailed information about
  2562  // the error.
  2563  //
  2564  // See the AWS API reference guide for Firewall Management Service's
  2565  // API operation PutProtocolsList for usage and error information.
  2566  //
  2567  // Returned Error Types:
  2568  //   * ResourceNotFoundException
  2569  //   The specified resource was not found.
  2570  //
  2571  //   * InvalidOperationException
  2572  //   The operation failed because there was nothing to do or the operation wasn't
  2573  //   possible. For example, you might have submitted an AssociateAdminAccount
  2574  //   request for an account ID that was already set as the Firewall Manager administrator.
  2575  //   Or you might have tried to access a Region that's disabled by default, and
  2576  //   that you need to enable for the Firewall Manager administrator account and
  2577  //   for Organizations before you can access it.
  2578  //
  2579  //   * InvalidInputException
  2580  //   The parameters of the request were invalid.
  2581  //
  2582  //   * LimitExceededException
  2583  //   The operation exceeds a resource limit, for example, the maximum number of
  2584  //   policy objects that you can create for an Amazon Web Services account. For
  2585  //   more information, see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
  2586  //   in the WAF Developer Guide.
  2587  //
  2588  //   * InternalErrorException
  2589  //   The operation failed because of a system problem, even though the request
  2590  //   was valid. Retry your request.
  2591  //
  2592  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutProtocolsList
  2593  func (c *FMS) PutProtocolsList(input *PutProtocolsListInput) (*PutProtocolsListOutput, error) {
  2594  	req, out := c.PutProtocolsListRequest(input)
  2595  	return out, req.Send()
  2596  }
  2597  
  2598  // PutProtocolsListWithContext is the same as PutProtocolsList with the addition of
  2599  // the ability to pass a context and additional request options.
  2600  //
  2601  // See PutProtocolsList for details on how to use this API operation.
  2602  //
  2603  // The context must be non-nil and will be used for request cancellation. If
  2604  // the context is nil a panic will occur. In the future the SDK may create
  2605  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2606  // for more information on using Contexts.
  2607  func (c *FMS) PutProtocolsListWithContext(ctx aws.Context, input *PutProtocolsListInput, opts ...request.Option) (*PutProtocolsListOutput, error) {
  2608  	req, out := c.PutProtocolsListRequest(input)
  2609  	req.SetContext(ctx)
  2610  	req.ApplyOptions(opts...)
  2611  	return out, req.Send()
  2612  }
  2613  
  2614  const opTagResource = "TagResource"
  2615  
  2616  // TagResourceRequest generates a "aws/request.Request" representing the
  2617  // client's request for the TagResource operation. The "output" return
  2618  // value will be populated with the request's response once the request completes
  2619  // successfully.
  2620  //
  2621  // Use "Send" method on the returned Request to send the API call to the service.
  2622  // the "output" return value is not valid until after Send returns without error.
  2623  //
  2624  // See TagResource for more information on using the TagResource
  2625  // API call, and error handling.
  2626  //
  2627  // This method is useful when you want to inject custom logic or configuration
  2628  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2629  //
  2630  //
  2631  //    // Example sending a request using the TagResourceRequest method.
  2632  //    req, resp := client.TagResourceRequest(params)
  2633  //
  2634  //    err := req.Send()
  2635  //    if err == nil { // resp is now filled
  2636  //        fmt.Println(resp)
  2637  //    }
  2638  //
  2639  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/TagResource
  2640  func (c *FMS) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
  2641  	op := &request.Operation{
  2642  		Name:       opTagResource,
  2643  		HTTPMethod: "POST",
  2644  		HTTPPath:   "/",
  2645  	}
  2646  
  2647  	if input == nil {
  2648  		input = &TagResourceInput{}
  2649  	}
  2650  
  2651  	output = &TagResourceOutput{}
  2652  	req = c.newRequest(op, input, output)
  2653  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2654  	return
  2655  }
  2656  
  2657  // TagResource API operation for Firewall Management Service.
  2658  //
  2659  // Adds one or more tags to an Amazon Web Services resource.
  2660  //
  2661  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2662  // with awserr.Error's Code and Message methods to get detailed information about
  2663  // the error.
  2664  //
  2665  // See the AWS API reference guide for Firewall Management Service's
  2666  // API operation TagResource for usage and error information.
  2667  //
  2668  // Returned Error Types:
  2669  //   * ResourceNotFoundException
  2670  //   The specified resource was not found.
  2671  //
  2672  //   * InvalidOperationException
  2673  //   The operation failed because there was nothing to do or the operation wasn't
  2674  //   possible. For example, you might have submitted an AssociateAdminAccount
  2675  //   request for an account ID that was already set as the Firewall Manager administrator.
  2676  //   Or you might have tried to access a Region that's disabled by default, and
  2677  //   that you need to enable for the Firewall Manager administrator account and
  2678  //   for Organizations before you can access it.
  2679  //
  2680  //   * InternalErrorException
  2681  //   The operation failed because of a system problem, even though the request
  2682  //   was valid. Retry your request.
  2683  //
  2684  //   * InvalidInputException
  2685  //   The parameters of the request were invalid.
  2686  //
  2687  //   * LimitExceededException
  2688  //   The operation exceeds a resource limit, for example, the maximum number of
  2689  //   policy objects that you can create for an Amazon Web Services account. For
  2690  //   more information, see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
  2691  //   in the WAF Developer Guide.
  2692  //
  2693  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/TagResource
  2694  func (c *FMS) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
  2695  	req, out := c.TagResourceRequest(input)
  2696  	return out, req.Send()
  2697  }
  2698  
  2699  // TagResourceWithContext is the same as TagResource with the addition of
  2700  // the ability to pass a context and additional request options.
  2701  //
  2702  // See TagResource for details on how to use this API operation.
  2703  //
  2704  // The context must be non-nil and will be used for request cancellation. If
  2705  // the context is nil a panic will occur. In the future the SDK may create
  2706  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2707  // for more information on using Contexts.
  2708  func (c *FMS) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
  2709  	req, out := c.TagResourceRequest(input)
  2710  	req.SetContext(ctx)
  2711  	req.ApplyOptions(opts...)
  2712  	return out, req.Send()
  2713  }
  2714  
  2715  const opUntagResource = "UntagResource"
  2716  
  2717  // UntagResourceRequest generates a "aws/request.Request" representing the
  2718  // client's request for the UntagResource operation. The "output" return
  2719  // value will be populated with the request's response once the request completes
  2720  // successfully.
  2721  //
  2722  // Use "Send" method on the returned Request to send the API call to the service.
  2723  // the "output" return value is not valid until after Send returns without error.
  2724  //
  2725  // See UntagResource for more information on using the UntagResource
  2726  // API call, and error handling.
  2727  //
  2728  // This method is useful when you want to inject custom logic or configuration
  2729  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2730  //
  2731  //
  2732  //    // Example sending a request using the UntagResourceRequest method.
  2733  //    req, resp := client.UntagResourceRequest(params)
  2734  //
  2735  //    err := req.Send()
  2736  //    if err == nil { // resp is now filled
  2737  //        fmt.Println(resp)
  2738  //    }
  2739  //
  2740  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/UntagResource
  2741  func (c *FMS) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
  2742  	op := &request.Operation{
  2743  		Name:       opUntagResource,
  2744  		HTTPMethod: "POST",
  2745  		HTTPPath:   "/",
  2746  	}
  2747  
  2748  	if input == nil {
  2749  		input = &UntagResourceInput{}
  2750  	}
  2751  
  2752  	output = &UntagResourceOutput{}
  2753  	req = c.newRequest(op, input, output)
  2754  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2755  	return
  2756  }
  2757  
  2758  // UntagResource API operation for Firewall Management Service.
  2759  //
  2760  // Removes one or more tags from an Amazon Web Services resource.
  2761  //
  2762  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2763  // with awserr.Error's Code and Message methods to get detailed information about
  2764  // the error.
  2765  //
  2766  // See the AWS API reference guide for Firewall Management Service's
  2767  // API operation UntagResource for usage and error information.
  2768  //
  2769  // Returned Error Types:
  2770  //   * ResourceNotFoundException
  2771  //   The specified resource was not found.
  2772  //
  2773  //   * InvalidOperationException
  2774  //   The operation failed because there was nothing to do or the operation wasn't
  2775  //   possible. For example, you might have submitted an AssociateAdminAccount
  2776  //   request for an account ID that was already set as the Firewall Manager administrator.
  2777  //   Or you might have tried to access a Region that's disabled by default, and
  2778  //   that you need to enable for the Firewall Manager administrator account and
  2779  //   for Organizations before you can access it.
  2780  //
  2781  //   * InternalErrorException
  2782  //   The operation failed because of a system problem, even though the request
  2783  //   was valid. Retry your request.
  2784  //
  2785  //   * InvalidInputException
  2786  //   The parameters of the request were invalid.
  2787  //
  2788  // See also, https://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/UntagResource
  2789  func (c *FMS) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
  2790  	req, out := c.UntagResourceRequest(input)
  2791  	return out, req.Send()
  2792  }
  2793  
  2794  // UntagResourceWithContext is the same as UntagResource with the addition of
  2795  // the ability to pass a context and additional request options.
  2796  //
  2797  // See UntagResource for details on how to use this API operation.
  2798  //
  2799  // The context must be non-nil and will be used for request cancellation. If
  2800  // the context is nil a panic will occur. In the future the SDK may create
  2801  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2802  // for more information on using Contexts.
  2803  func (c *FMS) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
  2804  	req, out := c.UntagResourceRequest(input)
  2805  	req.SetContext(ctx)
  2806  	req.ApplyOptions(opts...)
  2807  	return out, req.Send()
  2808  }
  2809  
  2810  // Describes a remediation action target.
  2811  type ActionTarget struct {
  2812  	_ struct{} `type:"structure"`
  2813  
  2814  	// A description of the remediation action target.
  2815  	Description *string `type:"string"`
  2816  
  2817  	// The ID of the remediation target.
  2818  	ResourceId *string `min:"1" type:"string"`
  2819  }
  2820  
  2821  // String returns the string representation.
  2822  //
  2823  // API parameter values that are decorated as "sensitive" in the API will not
  2824  // be included in the string output. The member name will be present, but the
  2825  // value will be replaced with "sensitive".
  2826  func (s ActionTarget) String() string {
  2827  	return awsutil.Prettify(s)
  2828  }
  2829  
  2830  // GoString returns the string representation.
  2831  //
  2832  // API parameter values that are decorated as "sensitive" in the API will not
  2833  // be included in the string output. The member name will be present, but the
  2834  // value will be replaced with "sensitive".
  2835  func (s ActionTarget) GoString() string {
  2836  	return s.String()
  2837  }
  2838  
  2839  // SetDescription sets the Description field's value.
  2840  func (s *ActionTarget) SetDescription(v string) *ActionTarget {
  2841  	s.Description = &v
  2842  	return s
  2843  }
  2844  
  2845  // SetResourceId sets the ResourceId field's value.
  2846  func (s *ActionTarget) SetResourceId(v string) *ActionTarget {
  2847  	s.ResourceId = &v
  2848  	return s
  2849  }
  2850  
  2851  // An individual Firewall Manager application.
  2852  type App struct {
  2853  	_ struct{} `type:"structure"`
  2854  
  2855  	// The application's name.
  2856  	//
  2857  	// AppName is a required field
  2858  	AppName *string `min:"1" type:"string" required:"true"`
  2859  
  2860  	// The application's port number, for example 80.
  2861  	//
  2862  	// Port is a required field
  2863  	Port *int64 `type:"long" required:"true"`
  2864  
  2865  	// The IP protocol name or number. The name can be one of tcp, udp, or icmp.
  2866  	// For information on possible numbers, see Protocol Numbers (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml).
  2867  	//
  2868  	// Protocol is a required field
  2869  	Protocol *string `min:"1" type:"string" required:"true"`
  2870  }
  2871  
  2872  // String returns the string representation.
  2873  //
  2874  // API parameter values that are decorated as "sensitive" in the API will not
  2875  // be included in the string output. The member name will be present, but the
  2876  // value will be replaced with "sensitive".
  2877  func (s App) String() string {
  2878  	return awsutil.Prettify(s)
  2879  }
  2880  
  2881  // GoString returns the string representation.
  2882  //
  2883  // API parameter values that are decorated as "sensitive" in the API will not
  2884  // be included in the string output. The member name will be present, but the
  2885  // value will be replaced with "sensitive".
  2886  func (s App) GoString() string {
  2887  	return s.String()
  2888  }
  2889  
  2890  // Validate inspects the fields of the type to determine if they are valid.
  2891  func (s *App) Validate() error {
  2892  	invalidParams := request.ErrInvalidParams{Context: "App"}
  2893  	if s.AppName == nil {
  2894  		invalidParams.Add(request.NewErrParamRequired("AppName"))
  2895  	}
  2896  	if s.AppName != nil && len(*s.AppName) < 1 {
  2897  		invalidParams.Add(request.NewErrParamMinLen("AppName", 1))
  2898  	}
  2899  	if s.Port == nil {
  2900  		invalidParams.Add(request.NewErrParamRequired("Port"))
  2901  	}
  2902  	if s.Protocol == nil {
  2903  		invalidParams.Add(request.NewErrParamRequired("Protocol"))
  2904  	}
  2905  	if s.Protocol != nil && len(*s.Protocol) < 1 {
  2906  		invalidParams.Add(request.NewErrParamMinLen("Protocol", 1))
  2907  	}
  2908  
  2909  	if invalidParams.Len() > 0 {
  2910  		return invalidParams
  2911  	}
  2912  	return nil
  2913  }
  2914  
  2915  // SetAppName sets the AppName field's value.
  2916  func (s *App) SetAppName(v string) *App {
  2917  	s.AppName = &v
  2918  	return s
  2919  }
  2920  
  2921  // SetPort sets the Port field's value.
  2922  func (s *App) SetPort(v int64) *App {
  2923  	s.Port = &v
  2924  	return s
  2925  }
  2926  
  2927  // SetProtocol sets the Protocol field's value.
  2928  func (s *App) SetProtocol(v string) *App {
  2929  	s.Protocol = &v
  2930  	return s
  2931  }
  2932  
  2933  // An Firewall Manager applications list.
  2934  type AppsListData struct {
  2935  	_ struct{} `type:"structure"`
  2936  
  2937  	// An array of applications in the Firewall Manager applications list.
  2938  	//
  2939  	// AppsList is a required field
  2940  	AppsList []*App `type:"list" required:"true"`
  2941  
  2942  	// The time that the Firewall Manager applications list was created.
  2943  	CreateTime *time.Time `type:"timestamp"`
  2944  
  2945  	// The time that the Firewall Manager applications list was last updated.
  2946  	LastUpdateTime *time.Time `type:"timestamp"`
  2947  
  2948  	// The ID of the Firewall Manager applications list.
  2949  	ListId *string `min:"36" type:"string"`
  2950  
  2951  	// The name of the Firewall Manager applications list.
  2952  	//
  2953  	// ListName is a required field
  2954  	ListName *string `min:"1" type:"string" required:"true"`
  2955  
  2956  	// A unique identifier for each update to the list. When you update the list,
  2957  	// the update token must match the token of the current version of the application
  2958  	// list. You can retrieve the update token by getting the list.
  2959  	ListUpdateToken *string `min:"1" type:"string"`
  2960  
  2961  	// A map of previous version numbers to their corresponding App object arrays.
  2962  	PreviousAppsList map[string][]*App `type:"map"`
  2963  }
  2964  
  2965  // String returns the string representation.
  2966  //
  2967  // API parameter values that are decorated as "sensitive" in the API will not
  2968  // be included in the string output. The member name will be present, but the
  2969  // value will be replaced with "sensitive".
  2970  func (s AppsListData) String() string {
  2971  	return awsutil.Prettify(s)
  2972  }
  2973  
  2974  // GoString returns the string representation.
  2975  //
  2976  // API parameter values that are decorated as "sensitive" in the API will not
  2977  // be included in the string output. The member name will be present, but the
  2978  // value will be replaced with "sensitive".
  2979  func (s AppsListData) GoString() string {
  2980  	return s.String()
  2981  }
  2982  
  2983  // Validate inspects the fields of the type to determine if they are valid.
  2984  func (s *AppsListData) Validate() error {
  2985  	invalidParams := request.ErrInvalidParams{Context: "AppsListData"}
  2986  	if s.AppsList == nil {
  2987  		invalidParams.Add(request.NewErrParamRequired("AppsList"))
  2988  	}
  2989  	if s.ListId != nil && len(*s.ListId) < 36 {
  2990  		invalidParams.Add(request.NewErrParamMinLen("ListId", 36))
  2991  	}
  2992  	if s.ListName == nil {
  2993  		invalidParams.Add(request.NewErrParamRequired("ListName"))
  2994  	}
  2995  	if s.ListName != nil && len(*s.ListName) < 1 {
  2996  		invalidParams.Add(request.NewErrParamMinLen("ListName", 1))
  2997  	}
  2998  	if s.ListUpdateToken != nil && len(*s.ListUpdateToken) < 1 {
  2999  		invalidParams.Add(request.NewErrParamMinLen("ListUpdateToken", 1))
  3000  	}
  3001  	if s.AppsList != nil {
  3002  		for i, v := range s.AppsList {
  3003  			if v == nil {
  3004  				continue
  3005  			}
  3006  			if err := v.Validate(); err != nil {
  3007  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AppsList", i), err.(request.ErrInvalidParams))
  3008  			}
  3009  		}
  3010  	}
  3011  
  3012  	if invalidParams.Len() > 0 {
  3013  		return invalidParams
  3014  	}
  3015  	return nil
  3016  }
  3017  
  3018  // SetAppsList sets the AppsList field's value.
  3019  func (s *AppsListData) SetAppsList(v []*App) *AppsListData {
  3020  	s.AppsList = v
  3021  	return s
  3022  }
  3023  
  3024  // SetCreateTime sets the CreateTime field's value.
  3025  func (s *AppsListData) SetCreateTime(v time.Time) *AppsListData {
  3026  	s.CreateTime = &v
  3027  	return s
  3028  }
  3029  
  3030  // SetLastUpdateTime sets the LastUpdateTime field's value.
  3031  func (s *AppsListData) SetLastUpdateTime(v time.Time) *AppsListData {
  3032  	s.LastUpdateTime = &v
  3033  	return s
  3034  }
  3035  
  3036  // SetListId sets the ListId field's value.
  3037  func (s *AppsListData) SetListId(v string) *AppsListData {
  3038  	s.ListId = &v
  3039  	return s
  3040  }
  3041  
  3042  // SetListName sets the ListName field's value.
  3043  func (s *AppsListData) SetListName(v string) *AppsListData {
  3044  	s.ListName = &v
  3045  	return s
  3046  }
  3047  
  3048  // SetListUpdateToken sets the ListUpdateToken field's value.
  3049  func (s *AppsListData) SetListUpdateToken(v string) *AppsListData {
  3050  	s.ListUpdateToken = &v
  3051  	return s
  3052  }
  3053  
  3054  // SetPreviousAppsList sets the PreviousAppsList field's value.
  3055  func (s *AppsListData) SetPreviousAppsList(v map[string][]*App) *AppsListData {
  3056  	s.PreviousAppsList = v
  3057  	return s
  3058  }
  3059  
  3060  // Details of the Firewall Manager applications list.
  3061  type AppsListDataSummary struct {
  3062  	_ struct{} `type:"structure"`
  3063  
  3064  	// An array of App objects in the Firewall Manager applications list.
  3065  	AppsList []*App `type:"list"`
  3066  
  3067  	// The Amazon Resource Name (ARN) of the applications list.
  3068  	ListArn *string `min:"1" type:"string"`
  3069  
  3070  	// The ID of the applications list.
  3071  	ListId *string `min:"36" type:"string"`
  3072  
  3073  	// The name of the applications list.
  3074  	ListName *string `min:"1" type:"string"`
  3075  }
  3076  
  3077  // String returns the string representation.
  3078  //
  3079  // API parameter values that are decorated as "sensitive" in the API will not
  3080  // be included in the string output. The member name will be present, but the
  3081  // value will be replaced with "sensitive".
  3082  func (s AppsListDataSummary) String() string {
  3083  	return awsutil.Prettify(s)
  3084  }
  3085  
  3086  // GoString returns the string representation.
  3087  //
  3088  // API parameter values that are decorated as "sensitive" in the API will not
  3089  // be included in the string output. The member name will be present, but the
  3090  // value will be replaced with "sensitive".
  3091  func (s AppsListDataSummary) GoString() string {
  3092  	return s.String()
  3093  }
  3094  
  3095  // SetAppsList sets the AppsList field's value.
  3096  func (s *AppsListDataSummary) SetAppsList(v []*App) *AppsListDataSummary {
  3097  	s.AppsList = v
  3098  	return s
  3099  }
  3100  
  3101  // SetListArn sets the ListArn field's value.
  3102  func (s *AppsListDataSummary) SetListArn(v string) *AppsListDataSummary {
  3103  	s.ListArn = &v
  3104  	return s
  3105  }
  3106  
  3107  // SetListId sets the ListId field's value.
  3108  func (s *AppsListDataSummary) SetListId(v string) *AppsListDataSummary {
  3109  	s.ListId = &v
  3110  	return s
  3111  }
  3112  
  3113  // SetListName sets the ListName field's value.
  3114  func (s *AppsListDataSummary) SetListName(v string) *AppsListDataSummary {
  3115  	s.ListName = &v
  3116  	return s
  3117  }
  3118  
  3119  type AssociateAdminAccountInput struct {
  3120  	_ struct{} `type:"structure"`
  3121  
  3122  	// The Amazon Web Services account ID to associate with Firewall Manager as
  3123  	// the Firewall Manager administrator account. This must be an Organizations
  3124  	// member account. For more information about Organizations, see Managing the
  3125  	// Amazon Web Services Accounts in Your Organization (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts.html).
  3126  	//
  3127  	// AdminAccount is a required field
  3128  	AdminAccount *string `min:"1" type:"string" required:"true"`
  3129  }
  3130  
  3131  // String returns the string representation.
  3132  //
  3133  // API parameter values that are decorated as "sensitive" in the API will not
  3134  // be included in the string output. The member name will be present, but the
  3135  // value will be replaced with "sensitive".
  3136  func (s AssociateAdminAccountInput) String() string {
  3137  	return awsutil.Prettify(s)
  3138  }
  3139  
  3140  // GoString returns the string representation.
  3141  //
  3142  // API parameter values that are decorated as "sensitive" in the API will not
  3143  // be included in the string output. The member name will be present, but the
  3144  // value will be replaced with "sensitive".
  3145  func (s AssociateAdminAccountInput) GoString() string {
  3146  	return s.String()
  3147  }
  3148  
  3149  // Validate inspects the fields of the type to determine if they are valid.
  3150  func (s *AssociateAdminAccountInput) Validate() error {
  3151  	invalidParams := request.ErrInvalidParams{Context: "AssociateAdminAccountInput"}
  3152  	if s.AdminAccount == nil {
  3153  		invalidParams.Add(request.NewErrParamRequired("AdminAccount"))
  3154  	}
  3155  	if s.AdminAccount != nil && len(*s.AdminAccount) < 1 {
  3156  		invalidParams.Add(request.NewErrParamMinLen("AdminAccount", 1))
  3157  	}
  3158  
  3159  	if invalidParams.Len() > 0 {
  3160  		return invalidParams
  3161  	}
  3162  	return nil
  3163  }
  3164  
  3165  // SetAdminAccount sets the AdminAccount field's value.
  3166  func (s *AssociateAdminAccountInput) SetAdminAccount(v string) *AssociateAdminAccountInput {
  3167  	s.AdminAccount = &v
  3168  	return s
  3169  }
  3170  
  3171  type AssociateAdminAccountOutput struct {
  3172  	_ struct{} `type:"structure"`
  3173  }
  3174  
  3175  // String returns the string representation.
  3176  //
  3177  // API parameter values that are decorated as "sensitive" in the API will not
  3178  // be included in the string output. The member name will be present, but the
  3179  // value will be replaced with "sensitive".
  3180  func (s AssociateAdminAccountOutput) String() string {
  3181  	return awsutil.Prettify(s)
  3182  }
  3183  
  3184  // GoString returns the string representation.
  3185  //
  3186  // API parameter values that are decorated as "sensitive" in the API will not
  3187  // be included in the string output. The member name will be present, but the
  3188  // value will be replaced with "sensitive".
  3189  func (s AssociateAdminAccountOutput) GoString() string {
  3190  	return s.String()
  3191  }
  3192  
  3193  // Violation detail for an EC2 instance resource.
  3194  type AwsEc2InstanceViolation struct {
  3195  	_ struct{} `type:"structure"`
  3196  
  3197  	// Violation detail for network interfaces associated with the EC2 instance.
  3198  	AwsEc2NetworkInterfaceViolations []*AwsEc2NetworkInterfaceViolation `type:"list"`
  3199  
  3200  	// The resource ID of the EC2 instance.
  3201  	ViolationTarget *string `type:"string"`
  3202  }
  3203  
  3204  // String returns the string representation.
  3205  //
  3206  // API parameter values that are decorated as "sensitive" in the API will not
  3207  // be included in the string output. The member name will be present, but the
  3208  // value will be replaced with "sensitive".
  3209  func (s AwsEc2InstanceViolation) String() string {
  3210  	return awsutil.Prettify(s)
  3211  }
  3212  
  3213  // GoString returns the string representation.
  3214  //
  3215  // API parameter values that are decorated as "sensitive" in the API will not
  3216  // be included in the string output. The member name will be present, but the
  3217  // value will be replaced with "sensitive".
  3218  func (s AwsEc2InstanceViolation) GoString() string {
  3219  	return s.String()
  3220  }
  3221  
  3222  // SetAwsEc2NetworkInterfaceViolations sets the AwsEc2NetworkInterfaceViolations field's value.
  3223  func (s *AwsEc2InstanceViolation) SetAwsEc2NetworkInterfaceViolations(v []*AwsEc2NetworkInterfaceViolation) *AwsEc2InstanceViolation {
  3224  	s.AwsEc2NetworkInterfaceViolations = v
  3225  	return s
  3226  }
  3227  
  3228  // SetViolationTarget sets the ViolationTarget field's value.
  3229  func (s *AwsEc2InstanceViolation) SetViolationTarget(v string) *AwsEc2InstanceViolation {
  3230  	s.ViolationTarget = &v
  3231  	return s
  3232  }
  3233  
  3234  // Violation detail for network interfaces associated with an EC2 instance.
  3235  type AwsEc2NetworkInterfaceViolation struct {
  3236  	_ struct{} `type:"structure"`
  3237  
  3238  	// List of security groups that violate the rules specified in the primary security
  3239  	// group of the Firewall Manager policy.
  3240  	ViolatingSecurityGroups []*string `type:"list"`
  3241  
  3242  	// The resource ID of the network interface.
  3243  	ViolationTarget *string `type:"string"`
  3244  }
  3245  
  3246  // String returns the string representation.
  3247  //
  3248  // API parameter values that are decorated as "sensitive" in the API will not
  3249  // be included in the string output. The member name will be present, but the
  3250  // value will be replaced with "sensitive".
  3251  func (s AwsEc2NetworkInterfaceViolation) String() string {
  3252  	return awsutil.Prettify(s)
  3253  }
  3254  
  3255  // GoString returns the string representation.
  3256  //
  3257  // API parameter values that are decorated as "sensitive" in the API will not
  3258  // be included in the string output. The member name will be present, but the
  3259  // value will be replaced with "sensitive".
  3260  func (s AwsEc2NetworkInterfaceViolation) GoString() string {
  3261  	return s.String()
  3262  }
  3263  
  3264  // SetViolatingSecurityGroups sets the ViolatingSecurityGroups field's value.
  3265  func (s *AwsEc2NetworkInterfaceViolation) SetViolatingSecurityGroups(v []*string) *AwsEc2NetworkInterfaceViolation {
  3266  	s.ViolatingSecurityGroups = v
  3267  	return s
  3268  }
  3269  
  3270  // SetViolationTarget sets the ViolationTarget field's value.
  3271  func (s *AwsEc2NetworkInterfaceViolation) SetViolationTarget(v string) *AwsEc2NetworkInterfaceViolation {
  3272  	s.ViolationTarget = &v
  3273  	return s
  3274  }
  3275  
  3276  // Violation detail for the rule violation in a security group when compared
  3277  // to the primary security group of the Firewall Manager policy.
  3278  type AwsVPCSecurityGroupViolation struct {
  3279  	_ struct{} `type:"structure"`
  3280  
  3281  	// List of rules specified in the security group of the Firewall Manager policy
  3282  	// that partially match the ViolationTarget rule.
  3283  	PartialMatches []*PartialMatch `type:"list"`
  3284  
  3285  	// Remediation options for the rule specified in the ViolationTarget.
  3286  	PossibleSecurityGroupRemediationActions []*SecurityGroupRemediationAction `type:"list"`
  3287  
  3288  	// The security group rule that is being evaluated.
  3289  	ViolationTarget *string `type:"string"`
  3290  
  3291  	// A description of the security group that violates the policy.
  3292  	ViolationTargetDescription *string `type:"string"`
  3293  }
  3294  
  3295  // String returns the string representation.
  3296  //
  3297  // API parameter values that are decorated as "sensitive" in the API will not
  3298  // be included in the string output. The member name will be present, but the
  3299  // value will be replaced with "sensitive".
  3300  func (s AwsVPCSecurityGroupViolation) String() string {
  3301  	return awsutil.Prettify(s)
  3302  }
  3303  
  3304  // GoString returns the string representation.
  3305  //
  3306  // API parameter values that are decorated as "sensitive" in the API will not
  3307  // be included in the string output. The member name will be present, but the
  3308  // value will be replaced with "sensitive".
  3309  func (s AwsVPCSecurityGroupViolation) GoString() string {
  3310  	return s.String()
  3311  }
  3312  
  3313  // SetPartialMatches sets the PartialMatches field's value.
  3314  func (s *AwsVPCSecurityGroupViolation) SetPartialMatches(v []*PartialMatch) *AwsVPCSecurityGroupViolation {
  3315  	s.PartialMatches = v
  3316  	return s
  3317  }
  3318  
  3319  // SetPossibleSecurityGroupRemediationActions sets the PossibleSecurityGroupRemediationActions field's value.
  3320  func (s *AwsVPCSecurityGroupViolation) SetPossibleSecurityGroupRemediationActions(v []*SecurityGroupRemediationAction) *AwsVPCSecurityGroupViolation {
  3321  	s.PossibleSecurityGroupRemediationActions = v
  3322  	return s
  3323  }
  3324  
  3325  // SetViolationTarget sets the ViolationTarget field's value.
  3326  func (s *AwsVPCSecurityGroupViolation) SetViolationTarget(v string) *AwsVPCSecurityGroupViolation {
  3327  	s.ViolationTarget = &v
  3328  	return s
  3329  }
  3330  
  3331  // SetViolationTargetDescription sets the ViolationTargetDescription field's value.
  3332  func (s *AwsVPCSecurityGroupViolation) SetViolationTargetDescription(v string) *AwsVPCSecurityGroupViolation {
  3333  	s.ViolationTargetDescription = &v
  3334  	return s
  3335  }
  3336  
  3337  // Details of the resource that is not protected by the policy.
  3338  type ComplianceViolator struct {
  3339  	_ struct{} `type:"structure"`
  3340  
  3341  	// The resource ID.
  3342  	ResourceId *string `min:"1" type:"string"`
  3343  
  3344  	// The resource type. This is in the format shown in the Amazon Web Services
  3345  	// Resource Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html).
  3346  	// For example: AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::CloudFront::Distribution,
  3347  	// or AWS::NetworkFirewall::FirewallPolicy.
  3348  	ResourceType *string `min:"1" type:"string"`
  3349  
  3350  	// The reason that the resource is not protected by the policy.
  3351  	ViolationReason *string `type:"string" enum:"ViolationReason"`
  3352  }
  3353  
  3354  // String returns the string representation.
  3355  //
  3356  // API parameter values that are decorated as "sensitive" in the API will not
  3357  // be included in the string output. The member name will be present, but the
  3358  // value will be replaced with "sensitive".
  3359  func (s ComplianceViolator) String() string {
  3360  	return awsutil.Prettify(s)
  3361  }
  3362  
  3363  // GoString returns the string representation.
  3364  //
  3365  // API parameter values that are decorated as "sensitive" in the API will not
  3366  // be included in the string output. The member name will be present, but the
  3367  // value will be replaced with "sensitive".
  3368  func (s ComplianceViolator) GoString() string {
  3369  	return s.String()
  3370  }
  3371  
  3372  // SetResourceId sets the ResourceId field's value.
  3373  func (s *ComplianceViolator) SetResourceId(v string) *ComplianceViolator {
  3374  	s.ResourceId = &v
  3375  	return s
  3376  }
  3377  
  3378  // SetResourceType sets the ResourceType field's value.
  3379  func (s *ComplianceViolator) SetResourceType(v string) *ComplianceViolator {
  3380  	s.ResourceType = &v
  3381  	return s
  3382  }
  3383  
  3384  // SetViolationReason sets the ViolationReason field's value.
  3385  func (s *ComplianceViolator) SetViolationReason(v string) *ComplianceViolator {
  3386  	s.ViolationReason = &v
  3387  	return s
  3388  }
  3389  
  3390  type DeleteAppsListInput struct {
  3391  	_ struct{} `type:"structure"`
  3392  
  3393  	// The ID of the applications list that you want to delete. You can retrieve
  3394  	// this ID from PutAppsList, ListAppsLists, and GetAppsList.
  3395  	//
  3396  	// ListId is a required field
  3397  	ListId *string `min:"36" type:"string" required:"true"`
  3398  }
  3399  
  3400  // String returns the string representation.
  3401  //
  3402  // API parameter values that are decorated as "sensitive" in the API will not
  3403  // be included in the string output. The member name will be present, but the
  3404  // value will be replaced with "sensitive".
  3405  func (s DeleteAppsListInput) String() string {
  3406  	return awsutil.Prettify(s)
  3407  }
  3408  
  3409  // GoString returns the string representation.
  3410  //
  3411  // API parameter values that are decorated as "sensitive" in the API will not
  3412  // be included in the string output. The member name will be present, but the
  3413  // value will be replaced with "sensitive".
  3414  func (s DeleteAppsListInput) GoString() string {
  3415  	return s.String()
  3416  }
  3417  
  3418  // Validate inspects the fields of the type to determine if they are valid.
  3419  func (s *DeleteAppsListInput) Validate() error {
  3420  	invalidParams := request.ErrInvalidParams{Context: "DeleteAppsListInput"}
  3421  	if s.ListId == nil {
  3422  		invalidParams.Add(request.NewErrParamRequired("ListId"))
  3423  	}
  3424  	if s.ListId != nil && len(*s.ListId) < 36 {
  3425  		invalidParams.Add(request.NewErrParamMinLen("ListId", 36))
  3426  	}
  3427  
  3428  	if invalidParams.Len() > 0 {
  3429  		return invalidParams
  3430  	}
  3431  	return nil
  3432  }
  3433  
  3434  // SetListId sets the ListId field's value.
  3435  func (s *DeleteAppsListInput) SetListId(v string) *DeleteAppsListInput {
  3436  	s.ListId = &v
  3437  	return s
  3438  }
  3439  
  3440  type DeleteAppsListOutput struct {
  3441  	_ struct{} `type:"structure"`
  3442  }
  3443  
  3444  // String returns the string representation.
  3445  //
  3446  // API parameter values that are decorated as "sensitive" in the API will not
  3447  // be included in the string output. The member name will be present, but the
  3448  // value will be replaced with "sensitive".
  3449  func (s DeleteAppsListOutput) String() string {
  3450  	return awsutil.Prettify(s)
  3451  }
  3452  
  3453  // GoString returns the string representation.
  3454  //
  3455  // API parameter values that are decorated as "sensitive" in the API will not
  3456  // be included in the string output. The member name will be present, but the
  3457  // value will be replaced with "sensitive".
  3458  func (s DeleteAppsListOutput) GoString() string {
  3459  	return s.String()
  3460  }
  3461  
  3462  type DeleteNotificationChannelInput struct {
  3463  	_ struct{} `type:"structure"`
  3464  }
  3465  
  3466  // String returns the string representation.
  3467  //
  3468  // API parameter values that are decorated as "sensitive" in the API will not
  3469  // be included in the string output. The member name will be present, but the
  3470  // value will be replaced with "sensitive".
  3471  func (s DeleteNotificationChannelInput) String() string {
  3472  	return awsutil.Prettify(s)
  3473  }
  3474  
  3475  // GoString returns the string representation.
  3476  //
  3477  // API parameter values that are decorated as "sensitive" in the API will not
  3478  // be included in the string output. The member name will be present, but the
  3479  // value will be replaced with "sensitive".
  3480  func (s DeleteNotificationChannelInput) GoString() string {
  3481  	return s.String()
  3482  }
  3483  
  3484  type DeleteNotificationChannelOutput struct {
  3485  	_ struct{} `type:"structure"`
  3486  }
  3487  
  3488  // String returns the string representation.
  3489  //
  3490  // API parameter values that are decorated as "sensitive" in the API will not
  3491  // be included in the string output. The member name will be present, but the
  3492  // value will be replaced with "sensitive".
  3493  func (s DeleteNotificationChannelOutput) String() string {
  3494  	return awsutil.Prettify(s)
  3495  }
  3496  
  3497  // GoString returns the string representation.
  3498  //
  3499  // API parameter values that are decorated as "sensitive" in the API will not
  3500  // be included in the string output. The member name will be present, but the
  3501  // value will be replaced with "sensitive".
  3502  func (s DeleteNotificationChannelOutput) GoString() string {
  3503  	return s.String()
  3504  }
  3505  
  3506  type DeletePolicyInput struct {
  3507  	_ struct{} `type:"structure"`
  3508  
  3509  	// If True, the request performs cleanup according to the policy type.
  3510  	//
  3511  	// For WAF and Shield Advanced policies, the cleanup does the following:
  3512  	//
  3513  	//    * Deletes rule groups created by Firewall Manager
  3514  	//
  3515  	//    * Removes web ACLs from in-scope resources
  3516  	//
  3517  	//    * Deletes web ACLs that contain no rules or rule groups
  3518  	//
  3519  	// For security group policies, the cleanup does the following for each security
  3520  	// group in the policy:
  3521  	//
  3522  	//    * Disassociates the security group from in-scope resources
  3523  	//
  3524  	//    * Deletes the security group if it was created through Firewall Manager
  3525  	//    and if it's no longer associated with any resources through another policy
  3526  	//
  3527  	// After the cleanup, in-scope resources are no longer protected by web ACLs
  3528  	// in this policy. Protection of out-of-scope resources remains unchanged. Scope
  3529  	// is determined by tags that you create and accounts that you associate with
  3530  	// the policy. When creating the policy, if you specify that only resources
  3531  	// in specific accounts or with specific tags are in scope of the policy, those
  3532  	// accounts and resources are handled by the policy. All others are out of scope.
  3533  	// If you don't specify tags or accounts, all resources are in scope.
  3534  	DeleteAllPolicyResources *bool `type:"boolean"`
  3535  
  3536  	// The ID of the policy that you want to delete. You can retrieve this ID from
  3537  	// PutPolicy and ListPolicies.
  3538  	//
  3539  	// PolicyId is a required field
  3540  	PolicyId *string `min:"36" type:"string" required:"true"`
  3541  }
  3542  
  3543  // String returns the string representation.
  3544  //
  3545  // API parameter values that are decorated as "sensitive" in the API will not
  3546  // be included in the string output. The member name will be present, but the
  3547  // value will be replaced with "sensitive".
  3548  func (s DeletePolicyInput) String() string {
  3549  	return awsutil.Prettify(s)
  3550  }
  3551  
  3552  // GoString returns the string representation.
  3553  //
  3554  // API parameter values that are decorated as "sensitive" in the API will not
  3555  // be included in the string output. The member name will be present, but the
  3556  // value will be replaced with "sensitive".
  3557  func (s DeletePolicyInput) GoString() string {
  3558  	return s.String()
  3559  }
  3560  
  3561  // Validate inspects the fields of the type to determine if they are valid.
  3562  func (s *DeletePolicyInput) Validate() error {
  3563  	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyInput"}
  3564  	if s.PolicyId == nil {
  3565  		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
  3566  	}
  3567  	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
  3568  		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
  3569  	}
  3570  
  3571  	if invalidParams.Len() > 0 {
  3572  		return invalidParams
  3573  	}
  3574  	return nil
  3575  }
  3576  
  3577  // SetDeleteAllPolicyResources sets the DeleteAllPolicyResources field's value.
  3578  func (s *DeletePolicyInput) SetDeleteAllPolicyResources(v bool) *DeletePolicyInput {
  3579  	s.DeleteAllPolicyResources = &v
  3580  	return s
  3581  }
  3582  
  3583  // SetPolicyId sets the PolicyId field's value.
  3584  func (s *DeletePolicyInput) SetPolicyId(v string) *DeletePolicyInput {
  3585  	s.PolicyId = &v
  3586  	return s
  3587  }
  3588  
  3589  type DeletePolicyOutput struct {
  3590  	_ struct{} `type:"structure"`
  3591  }
  3592  
  3593  // String returns the string representation.
  3594  //
  3595  // API parameter values that are decorated as "sensitive" in the API will not
  3596  // be included in the string output. The member name will be present, but the
  3597  // value will be replaced with "sensitive".
  3598  func (s DeletePolicyOutput) String() string {
  3599  	return awsutil.Prettify(s)
  3600  }
  3601  
  3602  // GoString returns the string representation.
  3603  //
  3604  // API parameter values that are decorated as "sensitive" in the API will not
  3605  // be included in the string output. The member name will be present, but the
  3606  // value will be replaced with "sensitive".
  3607  func (s DeletePolicyOutput) GoString() string {
  3608  	return s.String()
  3609  }
  3610  
  3611  type DeleteProtocolsListInput struct {
  3612  	_ struct{} `type:"structure"`
  3613  
  3614  	// The ID of the protocols list that you want to delete. You can retrieve this
  3615  	// ID from PutProtocolsList, ListProtocolsLists, and GetProtocolsLost.
  3616  	//
  3617  	// ListId is a required field
  3618  	ListId *string `min:"36" type:"string" required:"true"`
  3619  }
  3620  
  3621  // String returns the string representation.
  3622  //
  3623  // API parameter values that are decorated as "sensitive" in the API will not
  3624  // be included in the string output. The member name will be present, but the
  3625  // value will be replaced with "sensitive".
  3626  func (s DeleteProtocolsListInput) String() string {
  3627  	return awsutil.Prettify(s)
  3628  }
  3629  
  3630  // GoString returns the string representation.
  3631  //
  3632  // API parameter values that are decorated as "sensitive" in the API will not
  3633  // be included in the string output. The member name will be present, but the
  3634  // value will be replaced with "sensitive".
  3635  func (s DeleteProtocolsListInput) GoString() string {
  3636  	return s.String()
  3637  }
  3638  
  3639  // Validate inspects the fields of the type to determine if they are valid.
  3640  func (s *DeleteProtocolsListInput) Validate() error {
  3641  	invalidParams := request.ErrInvalidParams{Context: "DeleteProtocolsListInput"}
  3642  	if s.ListId == nil {
  3643  		invalidParams.Add(request.NewErrParamRequired("ListId"))
  3644  	}
  3645  	if s.ListId != nil && len(*s.ListId) < 36 {
  3646  		invalidParams.Add(request.NewErrParamMinLen("ListId", 36))
  3647  	}
  3648  
  3649  	if invalidParams.Len() > 0 {
  3650  		return invalidParams
  3651  	}
  3652  	return nil
  3653  }
  3654  
  3655  // SetListId sets the ListId field's value.
  3656  func (s *DeleteProtocolsListInput) SetListId(v string) *DeleteProtocolsListInput {
  3657  	s.ListId = &v
  3658  	return s
  3659  }
  3660  
  3661  type DeleteProtocolsListOutput struct {
  3662  	_ struct{} `type:"structure"`
  3663  }
  3664  
  3665  // String returns the string representation.
  3666  //
  3667  // API parameter values that are decorated as "sensitive" in the API will not
  3668  // be included in the string output. The member name will be present, but the
  3669  // value will be replaced with "sensitive".
  3670  func (s DeleteProtocolsListOutput) String() string {
  3671  	return awsutil.Prettify(s)
  3672  }
  3673  
  3674  // GoString returns the string representation.
  3675  //
  3676  // API parameter values that are decorated as "sensitive" in the API will not
  3677  // be included in the string output. The member name will be present, but the
  3678  // value will be replaced with "sensitive".
  3679  func (s DeleteProtocolsListOutput) GoString() string {
  3680  	return s.String()
  3681  }
  3682  
  3683  type DisassociateAdminAccountInput struct {
  3684  	_ struct{} `type:"structure"`
  3685  }
  3686  
  3687  // String returns the string representation.
  3688  //
  3689  // API parameter values that are decorated as "sensitive" in the API will not
  3690  // be included in the string output. The member name will be present, but the
  3691  // value will be replaced with "sensitive".
  3692  func (s DisassociateAdminAccountInput) String() string {
  3693  	return awsutil.Prettify(s)
  3694  }
  3695  
  3696  // GoString returns the string representation.
  3697  //
  3698  // API parameter values that are decorated as "sensitive" in the API will not
  3699  // be included in the string output. The member name will be present, but the
  3700  // value will be replaced with "sensitive".
  3701  func (s DisassociateAdminAccountInput) GoString() string {
  3702  	return s.String()
  3703  }
  3704  
  3705  type DisassociateAdminAccountOutput struct {
  3706  	_ struct{} `type:"structure"`
  3707  }
  3708  
  3709  // String returns the string representation.
  3710  //
  3711  // API parameter values that are decorated as "sensitive" in the API will not
  3712  // be included in the string output. The member name will be present, but the
  3713  // value will be replaced with "sensitive".
  3714  func (s DisassociateAdminAccountOutput) String() string {
  3715  	return awsutil.Prettify(s)
  3716  }
  3717  
  3718  // GoString returns the string representation.
  3719  //
  3720  // API parameter values that are decorated as "sensitive" in the API will not
  3721  // be included in the string output. The member name will be present, but the
  3722  // value will be replaced with "sensitive".
  3723  func (s DisassociateAdminAccountOutput) GoString() string {
  3724  	return s.String()
  3725  }
  3726  
  3727  // A DNS Firewall rule group that Firewall Manager tried to associate with a
  3728  // VPC is already associated with the VPC and can't be associated again.
  3729  type DnsDuplicateRuleGroupViolation struct {
  3730  	_ struct{} `type:"structure"`
  3731  
  3732  	// Information about the VPC ID.
  3733  	ViolationTarget *string `type:"string"`
  3734  
  3735  	// A description of the violation that specifies the rule group and VPC.
  3736  	ViolationTargetDescription *string `type:"string"`
  3737  }
  3738  
  3739  // String returns the string representation.
  3740  //
  3741  // API parameter values that are decorated as "sensitive" in the API will not
  3742  // be included in the string output. The member name will be present, but the
  3743  // value will be replaced with "sensitive".
  3744  func (s DnsDuplicateRuleGroupViolation) String() string {
  3745  	return awsutil.Prettify(s)
  3746  }
  3747  
  3748  // GoString returns the string representation.
  3749  //
  3750  // API parameter values that are decorated as "sensitive" in the API will not
  3751  // be included in the string output. The member name will be present, but the
  3752  // value will be replaced with "sensitive".
  3753  func (s DnsDuplicateRuleGroupViolation) GoString() string {
  3754  	return s.String()
  3755  }
  3756  
  3757  // SetViolationTarget sets the ViolationTarget field's value.
  3758  func (s *DnsDuplicateRuleGroupViolation) SetViolationTarget(v string) *DnsDuplicateRuleGroupViolation {
  3759  	s.ViolationTarget = &v
  3760  	return s
  3761  }
  3762  
  3763  // SetViolationTargetDescription sets the ViolationTargetDescription field's value.
  3764  func (s *DnsDuplicateRuleGroupViolation) SetViolationTargetDescription(v string) *DnsDuplicateRuleGroupViolation {
  3765  	s.ViolationTargetDescription = &v
  3766  	return s
  3767  }
  3768  
  3769  // The VPC that Firewall Manager was applying a DNS Fireall policy to reached
  3770  // the limit for associated DNS Firewall rule groups. Firewall Manager tried
  3771  // to associate another rule group with the VPC and failed due to the limit.
  3772  type DnsRuleGroupLimitExceededViolation struct {
  3773  	_ struct{} `type:"structure"`
  3774  
  3775  	// The number of rule groups currently associated with the VPC.
  3776  	NumberOfRuleGroupsAlreadyAssociated *int64 `type:"integer"`
  3777  
  3778  	// Information about the VPC ID.
  3779  	ViolationTarget *string `type:"string"`
  3780  
  3781  	// A description of the violation that specifies the rule group and VPC.
  3782  	ViolationTargetDescription *string `type:"string"`
  3783  }
  3784  
  3785  // String returns the string representation.
  3786  //
  3787  // API parameter values that are decorated as "sensitive" in the API will not
  3788  // be included in the string output. The member name will be present, but the
  3789  // value will be replaced with "sensitive".
  3790  func (s DnsRuleGroupLimitExceededViolation) String() string {
  3791  	return awsutil.Prettify(s)
  3792  }
  3793  
  3794  // GoString returns the string representation.
  3795  //
  3796  // API parameter values that are decorated as "sensitive" in the API will not
  3797  // be included in the string output. The member name will be present, but the
  3798  // value will be replaced with "sensitive".
  3799  func (s DnsRuleGroupLimitExceededViolation) GoString() string {
  3800  	return s.String()
  3801  }
  3802  
  3803  // SetNumberOfRuleGroupsAlreadyAssociated sets the NumberOfRuleGroupsAlreadyAssociated field's value.
  3804  func (s *DnsRuleGroupLimitExceededViolation) SetNumberOfRuleGroupsAlreadyAssociated(v int64) *DnsRuleGroupLimitExceededViolation {
  3805  	s.NumberOfRuleGroupsAlreadyAssociated = &v
  3806  	return s
  3807  }
  3808  
  3809  // SetViolationTarget sets the ViolationTarget field's value.
  3810  func (s *DnsRuleGroupLimitExceededViolation) SetViolationTarget(v string) *DnsRuleGroupLimitExceededViolation {
  3811  	s.ViolationTarget = &v
  3812  	return s
  3813  }
  3814  
  3815  // SetViolationTargetDescription sets the ViolationTargetDescription field's value.
  3816  func (s *DnsRuleGroupLimitExceededViolation) SetViolationTargetDescription(v string) *DnsRuleGroupLimitExceededViolation {
  3817  	s.ViolationTargetDescription = &v
  3818  	return s
  3819  }
  3820  
  3821  // A rule group that Firewall Manager tried to associate with a VPC has the
  3822  // same priority as a rule group that's already associated.
  3823  type DnsRuleGroupPriorityConflictViolation struct {
  3824  	_ struct{} `type:"structure"`
  3825  
  3826  	// The ID of the Firewall Manager DNS Firewall policy that was already applied
  3827  	// to the VPC. This policy contains the rule group that's already associated
  3828  	// with the VPC.
  3829  	ConflictingPolicyId *string `min:"36" type:"string"`
  3830  
  3831  	// The priority setting of the two conflicting rule groups.
  3832  	ConflictingPriority *int64 `type:"integer"`
  3833  
  3834  	// The priorities of rule groups that are already associated with the VPC. To
  3835  	// retry your operation, choose priority settings that aren't in this list for
  3836  	// the rule groups in your new DNS Firewall policy.
  3837  	UnavailablePriorities []*int64 `type:"list"`
  3838  
  3839  	// Information about the VPC ID.
  3840  	ViolationTarget *string `type:"string"`
  3841  
  3842  	// A description of the violation that specifies the VPC and the rule group
  3843  	// that's already associated with it.
  3844  	ViolationTargetDescription *string `type:"string"`
  3845  }
  3846  
  3847  // String returns the string representation.
  3848  //
  3849  // API parameter values that are decorated as "sensitive" in the API will not
  3850  // be included in the string output. The member name will be present, but the
  3851  // value will be replaced with "sensitive".
  3852  func (s DnsRuleGroupPriorityConflictViolation) String() string {
  3853  	return awsutil.Prettify(s)
  3854  }
  3855  
  3856  // GoString returns the string representation.
  3857  //
  3858  // API parameter values that are decorated as "sensitive" in the API will not
  3859  // be included in the string output. The member name will be present, but the
  3860  // value will be replaced with "sensitive".
  3861  func (s DnsRuleGroupPriorityConflictViolation) GoString() string {
  3862  	return s.String()
  3863  }
  3864  
  3865  // SetConflictingPolicyId sets the ConflictingPolicyId field's value.
  3866  func (s *DnsRuleGroupPriorityConflictViolation) SetConflictingPolicyId(v string) *DnsRuleGroupPriorityConflictViolation {
  3867  	s.ConflictingPolicyId = &v
  3868  	return s
  3869  }
  3870  
  3871  // SetConflictingPriority sets the ConflictingPriority field's value.
  3872  func (s *DnsRuleGroupPriorityConflictViolation) SetConflictingPriority(v int64) *DnsRuleGroupPriorityConflictViolation {
  3873  	s.ConflictingPriority = &v
  3874  	return s
  3875  }
  3876  
  3877  // SetUnavailablePriorities sets the UnavailablePriorities field's value.
  3878  func (s *DnsRuleGroupPriorityConflictViolation) SetUnavailablePriorities(v []*int64) *DnsRuleGroupPriorityConflictViolation {
  3879  	s.UnavailablePriorities = v
  3880  	return s
  3881  }
  3882  
  3883  // SetViolationTarget sets the ViolationTarget field's value.
  3884  func (s *DnsRuleGroupPriorityConflictViolation) SetViolationTarget(v string) *DnsRuleGroupPriorityConflictViolation {
  3885  	s.ViolationTarget = &v
  3886  	return s
  3887  }
  3888  
  3889  // SetViolationTargetDescription sets the ViolationTargetDescription field's value.
  3890  func (s *DnsRuleGroupPriorityConflictViolation) SetViolationTargetDescription(v string) *DnsRuleGroupPriorityConflictViolation {
  3891  	s.ViolationTargetDescription = &v
  3892  	return s
  3893  }
  3894  
  3895  // The action of associating an EC2 resource, such as a subnet or internet gateway,
  3896  // with a route table.
  3897  type EC2AssociateRouteTableAction struct {
  3898  	_ struct{} `type:"structure"`
  3899  
  3900  	// A description of the EC2 route table that is associated with the remediation
  3901  	// action.
  3902  	Description *string `type:"string"`
  3903  
  3904  	// The ID of the gateway to be used with the EC2 route table that is associated
  3905  	// with the remediation action.
  3906  	GatewayId *ActionTarget `type:"structure"`
  3907  
  3908  	// The ID of the EC2 route table that is associated with the remediation action.
  3909  	//
  3910  	// RouteTableId is a required field
  3911  	RouteTableId *ActionTarget `type:"structure" required:"true"`
  3912  
  3913  	// The ID of the subnet for the EC2 route table that is associated with the
  3914  	// remediation action.
  3915  	SubnetId *ActionTarget `type:"structure"`
  3916  }
  3917  
  3918  // String returns the string representation.
  3919  //
  3920  // API parameter values that are decorated as "sensitive" in the API will not
  3921  // be included in the string output. The member name will be present, but the
  3922  // value will be replaced with "sensitive".
  3923  func (s EC2AssociateRouteTableAction) String() string {
  3924  	return awsutil.Prettify(s)
  3925  }
  3926  
  3927  // GoString returns the string representation.
  3928  //
  3929  // API parameter values that are decorated as "sensitive" in the API will not
  3930  // be included in the string output. The member name will be present, but the
  3931  // value will be replaced with "sensitive".
  3932  func (s EC2AssociateRouteTableAction) GoString() string {
  3933  	return s.String()
  3934  }
  3935  
  3936  // SetDescription sets the Description field's value.
  3937  func (s *EC2AssociateRouteTableAction) SetDescription(v string) *EC2AssociateRouteTableAction {
  3938  	s.Description = &v
  3939  	return s
  3940  }
  3941  
  3942  // SetGatewayId sets the GatewayId field's value.
  3943  func (s *EC2AssociateRouteTableAction) SetGatewayId(v *ActionTarget) *EC2AssociateRouteTableAction {
  3944  	s.GatewayId = v
  3945  	return s
  3946  }
  3947  
  3948  // SetRouteTableId sets the RouteTableId field's value.
  3949  func (s *EC2AssociateRouteTableAction) SetRouteTableId(v *ActionTarget) *EC2AssociateRouteTableAction {
  3950  	s.RouteTableId = v
  3951  	return s
  3952  }
  3953  
  3954  // SetSubnetId sets the SubnetId field's value.
  3955  func (s *EC2AssociateRouteTableAction) SetSubnetId(v *ActionTarget) *EC2AssociateRouteTableAction {
  3956  	s.SubnetId = v
  3957  	return s
  3958  }
  3959  
  3960  // An action that copies the EC2 route table for use in remediation.
  3961  type EC2CopyRouteTableAction struct {
  3962  	_ struct{} `type:"structure"`
  3963  
  3964  	// A description of the copied EC2 route table that is associated with the remediation
  3965  	// action.
  3966  	Description *string `type:"string"`
  3967  
  3968  	// The ID of the copied EC2 route table that is associated with the remediation
  3969  	// action.
  3970  	//
  3971  	// RouteTableId is a required field
  3972  	RouteTableId *ActionTarget `type:"structure" required:"true"`
  3973  
  3974  	// The VPC ID of the copied EC2 route table that is associated with the remediation
  3975  	// action.
  3976  	//
  3977  	// VpcId is a required field
  3978  	VpcId *ActionTarget `type:"structure" required:"true"`
  3979  }
  3980  
  3981  // String returns the string representation.
  3982  //
  3983  // API parameter values that are decorated as "sensitive" in the API will not
  3984  // be included in the string output. The member name will be present, but the
  3985  // value will be replaced with "sensitive".
  3986  func (s EC2CopyRouteTableAction) String() string {
  3987  	return awsutil.Prettify(s)
  3988  }
  3989  
  3990  // GoString returns the string representation.
  3991  //
  3992  // API parameter values that are decorated as "sensitive" in the API will not
  3993  // be included in the string output. The member name will be present, but the
  3994  // value will be replaced with "sensitive".
  3995  func (s EC2CopyRouteTableAction) GoString() string {
  3996  	return s.String()
  3997  }
  3998  
  3999  // SetDescription sets the Description field's value.
  4000  func (s *EC2CopyRouteTableAction) SetDescription(v string) *EC2CopyRouteTableAction {
  4001  	s.Description = &v
  4002  	return s
  4003  }
  4004  
  4005  // SetRouteTableId sets the RouteTableId field's value.
  4006  func (s *EC2CopyRouteTableAction) SetRouteTableId(v *ActionTarget) *EC2CopyRouteTableAction {
  4007  	s.RouteTableId = v
  4008  	return s
  4009  }
  4010  
  4011  // SetVpcId sets the VpcId field's value.
  4012  func (s *EC2CopyRouteTableAction) SetVpcId(v *ActionTarget) *EC2CopyRouteTableAction {
  4013  	s.VpcId = v
  4014  	return s
  4015  }
  4016  
  4017  // Information about the CreateRoute action in Amazon EC2.
  4018  type EC2CreateRouteAction struct {
  4019  	_ struct{} `type:"structure"`
  4020  
  4021  	// A description of CreateRoute action in Amazon EC2.
  4022  	Description *string `type:"string"`
  4023  
  4024  	// Information about the IPv4 CIDR address block used for the destination match.
  4025  	DestinationCidrBlock *string `type:"string"`
  4026  
  4027  	// Information about the IPv6 CIDR block destination.
  4028  	DestinationIpv6CidrBlock *string `type:"string"`
  4029  
  4030  	// Information about the ID of a prefix list used for the destination match.
  4031  	DestinationPrefixListId *string `min:"1" type:"string"`
  4032  
  4033  	// Information about the ID of an internet gateway or virtual private gateway
  4034  	// attached to your VPC.
  4035  	GatewayId *ActionTarget `type:"structure"`
  4036  
  4037  	// Information about the ID of the route table for the route.
  4038  	//
  4039  	// RouteTableId is a required field
  4040  	RouteTableId *ActionTarget `type:"structure" required:"true"`
  4041  
  4042  	// Information about the ID of a VPC endpoint. Supported for Gateway Load Balancer
  4043  	// endpoints only.
  4044  	VpcEndpointId *ActionTarget `type:"structure"`
  4045  }
  4046  
  4047  // String returns the string representation.
  4048  //
  4049  // API parameter values that are decorated as "sensitive" in the API will not
  4050  // be included in the string output. The member name will be present, but the
  4051  // value will be replaced with "sensitive".
  4052  func (s EC2CreateRouteAction) String() string {
  4053  	return awsutil.Prettify(s)
  4054  }
  4055  
  4056  // GoString returns the string representation.
  4057  //
  4058  // API parameter values that are decorated as "sensitive" in the API will not
  4059  // be included in the string output. The member name will be present, but the
  4060  // value will be replaced with "sensitive".
  4061  func (s EC2CreateRouteAction) GoString() string {
  4062  	return s.String()
  4063  }
  4064  
  4065  // SetDescription sets the Description field's value.
  4066  func (s *EC2CreateRouteAction) SetDescription(v string) *EC2CreateRouteAction {
  4067  	s.Description = &v
  4068  	return s
  4069  }
  4070  
  4071  // SetDestinationCidrBlock sets the DestinationCidrBlock field's value.
  4072  func (s *EC2CreateRouteAction) SetDestinationCidrBlock(v string) *EC2CreateRouteAction {
  4073  	s.DestinationCidrBlock = &v
  4074  	return s
  4075  }
  4076  
  4077  // SetDestinationIpv6CidrBlock sets the DestinationIpv6CidrBlock field's value.
  4078  func (s *EC2CreateRouteAction) SetDestinationIpv6CidrBlock(v string) *EC2CreateRouteAction {
  4079  	s.DestinationIpv6CidrBlock = &v
  4080  	return s
  4081  }
  4082  
  4083  // SetDestinationPrefixListId sets the DestinationPrefixListId field's value.
  4084  func (s *EC2CreateRouteAction) SetDestinationPrefixListId(v string) *EC2CreateRouteAction {
  4085  	s.DestinationPrefixListId = &v
  4086  	return s
  4087  }
  4088  
  4089  // SetGatewayId sets the GatewayId field's value.
  4090  func (s *EC2CreateRouteAction) SetGatewayId(v *ActionTarget) *EC2CreateRouteAction {
  4091  	s.GatewayId = v
  4092  	return s
  4093  }
  4094  
  4095  // SetRouteTableId sets the RouteTableId field's value.
  4096  func (s *EC2CreateRouteAction) SetRouteTableId(v *ActionTarget) *EC2CreateRouteAction {
  4097  	s.RouteTableId = v
  4098  	return s
  4099  }
  4100  
  4101  // SetVpcEndpointId sets the VpcEndpointId field's value.
  4102  func (s *EC2CreateRouteAction) SetVpcEndpointId(v *ActionTarget) *EC2CreateRouteAction {
  4103  	s.VpcEndpointId = v
  4104  	return s
  4105  }
  4106  
  4107  // Information about the CreateRouteTable action in Amazon EC2.
  4108  type EC2CreateRouteTableAction struct {
  4109  	_ struct{} `type:"structure"`
  4110  
  4111  	// A description of the CreateRouteTable action.
  4112  	Description *string `type:"string"`
  4113  
  4114  	// Information about the ID of a VPC.
  4115  	//
  4116  	// VpcId is a required field
  4117  	VpcId *ActionTarget `type:"structure" required:"true"`
  4118  }
  4119  
  4120  // String returns the string representation.
  4121  //
  4122  // API parameter values that are decorated as "sensitive" in the API will not
  4123  // be included in the string output. The member name will be present, but the
  4124  // value will be replaced with "sensitive".
  4125  func (s EC2CreateRouteTableAction) String() string {
  4126  	return awsutil.Prettify(s)
  4127  }
  4128  
  4129  // GoString returns the string representation.
  4130  //
  4131  // API parameter values that are decorated as "sensitive" in the API will not
  4132  // be included in the string output. The member name will be present, but the
  4133  // value will be replaced with "sensitive".
  4134  func (s EC2CreateRouteTableAction) GoString() string {
  4135  	return s.String()
  4136  }
  4137  
  4138  // SetDescription sets the Description field's value.
  4139  func (s *EC2CreateRouteTableAction) SetDescription(v string) *EC2CreateRouteTableAction {
  4140  	s.Description = &v
  4141  	return s
  4142  }
  4143  
  4144  // SetVpcId sets the VpcId field's value.
  4145  func (s *EC2CreateRouteTableAction) SetVpcId(v *ActionTarget) *EC2CreateRouteTableAction {
  4146  	s.VpcId = v
  4147  	return s
  4148  }
  4149  
  4150  // Information about the DeleteRoute action in Amazon EC2.
  4151  type EC2DeleteRouteAction struct {
  4152  	_ struct{} `type:"structure"`
  4153  
  4154  	// A description of the DeleteRoute action.
  4155  	Description *string `type:"string"`
  4156  
  4157  	// Information about the IPv4 CIDR range for the route. The value you specify
  4158  	// must match the CIDR for the route exactly.
  4159  	DestinationCidrBlock *string `type:"string"`
  4160  
  4161  	// Information about the IPv6 CIDR range for the route. The value you specify
  4162  	// must match the CIDR for the route exactly.
  4163  	DestinationIpv6CidrBlock *string `type:"string"`
  4164  
  4165  	// Information about the ID of the prefix list for the route.
  4166  	DestinationPrefixListId *string `min:"1" type:"string"`
  4167  
  4168  	// Information about the ID of the route table.
  4169  	//
  4170  	// RouteTableId is a required field
  4171  	RouteTableId *ActionTarget `type:"structure" required:"true"`
  4172  }
  4173  
  4174  // String returns the string representation.
  4175  //
  4176  // API parameter values that are decorated as "sensitive" in the API will not
  4177  // be included in the string output. The member name will be present, but the
  4178  // value will be replaced with "sensitive".
  4179  func (s EC2DeleteRouteAction) String() string {
  4180  	return awsutil.Prettify(s)
  4181  }
  4182  
  4183  // GoString returns the string representation.
  4184  //
  4185  // API parameter values that are decorated as "sensitive" in the API will not
  4186  // be included in the string output. The member name will be present, but the
  4187  // value will be replaced with "sensitive".
  4188  func (s EC2DeleteRouteAction) GoString() string {
  4189  	return s.String()
  4190  }
  4191  
  4192  // SetDescription sets the Description field's value.
  4193  func (s *EC2DeleteRouteAction) SetDescription(v string) *EC2DeleteRouteAction {
  4194  	s.Description = &v
  4195  	return s
  4196  }
  4197  
  4198  // SetDestinationCidrBlock sets the DestinationCidrBlock field's value.
  4199  func (s *EC2DeleteRouteAction) SetDestinationCidrBlock(v string) *EC2DeleteRouteAction {
  4200  	s.DestinationCidrBlock = &v
  4201  	return s
  4202  }
  4203  
  4204  // SetDestinationIpv6CidrBlock sets the DestinationIpv6CidrBlock field's value.
  4205  func (s *EC2DeleteRouteAction) SetDestinationIpv6CidrBlock(v string) *EC2DeleteRouteAction {
  4206  	s.DestinationIpv6CidrBlock = &v
  4207  	return s
  4208  }
  4209  
  4210  // SetDestinationPrefixListId sets the DestinationPrefixListId field's value.
  4211  func (s *EC2DeleteRouteAction) SetDestinationPrefixListId(v string) *EC2DeleteRouteAction {
  4212  	s.DestinationPrefixListId = &v
  4213  	return s
  4214  }
  4215  
  4216  // SetRouteTableId sets the RouteTableId field's value.
  4217  func (s *EC2DeleteRouteAction) SetRouteTableId(v *ActionTarget) *EC2DeleteRouteAction {
  4218  	s.RouteTableId = v
  4219  	return s
  4220  }
  4221  
  4222  // Information about the ReplaceRoute action in Amazon EC2.
  4223  type EC2ReplaceRouteAction struct {
  4224  	_ struct{} `type:"structure"`
  4225  
  4226  	// A description of the ReplaceRoute action in Amazon EC2.
  4227  	Description *string `type:"string"`
  4228  
  4229  	// Information about the IPv4 CIDR address block used for the destination match.
  4230  	// The value that you provide must match the CIDR of an existing route in the
  4231  	// table.
  4232  	DestinationCidrBlock *string `type:"string"`
  4233  
  4234  	// Information about the IPv6 CIDR address block used for the destination match.
  4235  	// The value that you provide must match the CIDR of an existing route in the
  4236  	// table.
  4237  	DestinationIpv6CidrBlock *string `type:"string"`
  4238  
  4239  	// Information about the ID of the prefix list for the route.
  4240  	DestinationPrefixListId *string `min:"1" type:"string"`
  4241  
  4242  	// Information about the ID of an internet gateway or virtual private gateway.
  4243  	GatewayId *ActionTarget `type:"structure"`
  4244  
  4245  	// Information about the ID of the route table.
  4246  	//
  4247  	// RouteTableId is a required field
  4248  	RouteTableId *ActionTarget `type:"structure" required:"true"`
  4249  }
  4250  
  4251  // String returns the string representation.
  4252  //
  4253  // API parameter values that are decorated as "sensitive" in the API will not
  4254  // be included in the string output. The member name will be present, but the
  4255  // value will be replaced with "sensitive".
  4256  func (s EC2ReplaceRouteAction) String() string {
  4257  	return awsutil.Prettify(s)
  4258  }
  4259  
  4260  // GoString returns the string representation.
  4261  //
  4262  // API parameter values that are decorated as "sensitive" in the API will not
  4263  // be included in the string output. The member name will be present, but the
  4264  // value will be replaced with "sensitive".
  4265  func (s EC2ReplaceRouteAction) GoString() string {
  4266  	return s.String()
  4267  }
  4268  
  4269  // SetDescription sets the Description field's value.
  4270  func (s *EC2ReplaceRouteAction) SetDescription(v string) *EC2ReplaceRouteAction {
  4271  	s.Description = &v
  4272  	return s
  4273  }
  4274  
  4275  // SetDestinationCidrBlock sets the DestinationCidrBlock field's value.
  4276  func (s *EC2ReplaceRouteAction) SetDestinationCidrBlock(v string) *EC2ReplaceRouteAction {
  4277  	s.DestinationCidrBlock = &v
  4278  	return s
  4279  }
  4280  
  4281  // SetDestinationIpv6CidrBlock sets the DestinationIpv6CidrBlock field's value.
  4282  func (s *EC2ReplaceRouteAction) SetDestinationIpv6CidrBlock(v string) *EC2ReplaceRouteAction {
  4283  	s.DestinationIpv6CidrBlock = &v
  4284  	return s
  4285  }
  4286  
  4287  // SetDestinationPrefixListId sets the DestinationPrefixListId field's value.
  4288  func (s *EC2ReplaceRouteAction) SetDestinationPrefixListId(v string) *EC2ReplaceRouteAction {
  4289  	s.DestinationPrefixListId = &v
  4290  	return s
  4291  }
  4292  
  4293  // SetGatewayId sets the GatewayId field's value.
  4294  func (s *EC2ReplaceRouteAction) SetGatewayId(v *ActionTarget) *EC2ReplaceRouteAction {
  4295  	s.GatewayId = v
  4296  	return s
  4297  }
  4298  
  4299  // SetRouteTableId sets the RouteTableId field's value.
  4300  func (s *EC2ReplaceRouteAction) SetRouteTableId(v *ActionTarget) *EC2ReplaceRouteAction {
  4301  	s.RouteTableId = v
  4302  	return s
  4303  }
  4304  
  4305  // Information about the ReplaceRouteTableAssociation action in Amazon EC2.
  4306  type EC2ReplaceRouteTableAssociationAction struct {
  4307  	_ struct{} `type:"structure"`
  4308  
  4309  	// Information about the association ID.
  4310  	//
  4311  	// AssociationId is a required field
  4312  	AssociationId *ActionTarget `type:"structure" required:"true"`
  4313  
  4314  	// A description of the ReplaceRouteTableAssociation action in Amazon EC2.
  4315  	Description *string `type:"string"`
  4316  
  4317  	// Information about the ID of the new route table to associate with the subnet.
  4318  	//
  4319  	// RouteTableId is a required field
  4320  	RouteTableId *ActionTarget `type:"structure" required:"true"`
  4321  }
  4322  
  4323  // String returns the string representation.
  4324  //
  4325  // API parameter values that are decorated as "sensitive" in the API will not
  4326  // be included in the string output. The member name will be present, but the
  4327  // value will be replaced with "sensitive".
  4328  func (s EC2ReplaceRouteTableAssociationAction) String() string {
  4329  	return awsutil.Prettify(s)
  4330  }
  4331  
  4332  // GoString returns the string representation.
  4333  //
  4334  // API parameter values that are decorated as "sensitive" in the API will not
  4335  // be included in the string output. The member name will be present, but the
  4336  // value will be replaced with "sensitive".
  4337  func (s EC2ReplaceRouteTableAssociationAction) GoString() string {
  4338  	return s.String()
  4339  }
  4340  
  4341  // SetAssociationId sets the AssociationId field's value.
  4342  func (s *EC2ReplaceRouteTableAssociationAction) SetAssociationId(v *ActionTarget) *EC2ReplaceRouteTableAssociationAction {
  4343  	s.AssociationId = v
  4344  	return s
  4345  }
  4346  
  4347  // SetDescription sets the Description field's value.
  4348  func (s *EC2ReplaceRouteTableAssociationAction) SetDescription(v string) *EC2ReplaceRouteTableAssociationAction {
  4349  	s.Description = &v
  4350  	return s
  4351  }
  4352  
  4353  // SetRouteTableId sets the RouteTableId field's value.
  4354  func (s *EC2ReplaceRouteTableAssociationAction) SetRouteTableId(v *ActionTarget) *EC2ReplaceRouteTableAssociationAction {
  4355  	s.RouteTableId = v
  4356  	return s
  4357  }
  4358  
  4359  // Describes the compliance status for the account. An account is considered
  4360  // noncompliant if it includes resources that are not protected by the specified
  4361  // policy or that don't comply with the policy.
  4362  type EvaluationResult struct {
  4363  	_ struct{} `type:"structure"`
  4364  
  4365  	// Describes an Amazon Web Services account's compliance with the Firewall Manager
  4366  	// policy.
  4367  	ComplianceStatus *string `type:"string" enum:"PolicyComplianceStatusType"`
  4368  
  4369  	// Indicates that over 100 resources are noncompliant with the Firewall Manager
  4370  	// policy.
  4371  	EvaluationLimitExceeded *bool `type:"boolean"`
  4372  
  4373  	// The number of resources that are noncompliant with the specified policy.
  4374  	// For WAF and Shield Advanced policies, a resource is considered noncompliant
  4375  	// if it is not associated with the policy. For security group policies, a resource
  4376  	// is considered noncompliant if it doesn't comply with the rules of the policy
  4377  	// and remediation is disabled or not possible.
  4378  	ViolatorCount *int64 `type:"long"`
  4379  }
  4380  
  4381  // String returns the string representation.
  4382  //
  4383  // API parameter values that are decorated as "sensitive" in the API will not
  4384  // be included in the string output. The member name will be present, but the
  4385  // value will be replaced with "sensitive".
  4386  func (s EvaluationResult) String() string {
  4387  	return awsutil.Prettify(s)
  4388  }
  4389  
  4390  // GoString returns the string representation.
  4391  //
  4392  // API parameter values that are decorated as "sensitive" in the API will not
  4393  // be included in the string output. The member name will be present, but the
  4394  // value will be replaced with "sensitive".
  4395  func (s EvaluationResult) GoString() string {
  4396  	return s.String()
  4397  }
  4398  
  4399  // SetComplianceStatus sets the ComplianceStatus field's value.
  4400  func (s *EvaluationResult) SetComplianceStatus(v string) *EvaluationResult {
  4401  	s.ComplianceStatus = &v
  4402  	return s
  4403  }
  4404  
  4405  // SetEvaluationLimitExceeded sets the EvaluationLimitExceeded field's value.
  4406  func (s *EvaluationResult) SetEvaluationLimitExceeded(v bool) *EvaluationResult {
  4407  	s.EvaluationLimitExceeded = &v
  4408  	return s
  4409  }
  4410  
  4411  // SetViolatorCount sets the ViolatorCount field's value.
  4412  func (s *EvaluationResult) SetViolatorCount(v int64) *EvaluationResult {
  4413  	s.ViolatorCount = &v
  4414  	return s
  4415  }
  4416  
  4417  // Information about the expected route in the route table.
  4418  type ExpectedRoute struct {
  4419  	_ struct{} `type:"structure"`
  4420  
  4421  	// Information about the allowed targets.
  4422  	AllowedTargets []*string `type:"list"`
  4423  
  4424  	// Information about the contributing subnets.
  4425  	ContributingSubnets []*string `type:"list"`
  4426  
  4427  	// Information about the IPv4 CIDR block.
  4428  	IpV4Cidr *string `type:"string"`
  4429  
  4430  	// Information about the IPv6 CIDR block.
  4431  	IpV6Cidr *string `type:"string"`
  4432  
  4433  	// Information about the ID of the prefix list for the route.
  4434  	PrefixListId *string `type:"string"`
  4435  
  4436  	// Information about the route table ID.
  4437  	RouteTableId *string `min:"1" type:"string"`
  4438  }
  4439  
  4440  // String returns the string representation.
  4441  //
  4442  // API parameter values that are decorated as "sensitive" in the API will not
  4443  // be included in the string output. The member name will be present, but the
  4444  // value will be replaced with "sensitive".
  4445  func (s ExpectedRoute) String() string {
  4446  	return awsutil.Prettify(s)
  4447  }
  4448  
  4449  // GoString returns the string representation.
  4450  //
  4451  // API parameter values that are decorated as "sensitive" in the API will not
  4452  // be included in the string output. The member name will be present, but the
  4453  // value will be replaced with "sensitive".
  4454  func (s ExpectedRoute) GoString() string {
  4455  	return s.String()
  4456  }
  4457  
  4458  // SetAllowedTargets sets the AllowedTargets field's value.
  4459  func (s *ExpectedRoute) SetAllowedTargets(v []*string) *ExpectedRoute {
  4460  	s.AllowedTargets = v
  4461  	return s
  4462  }
  4463  
  4464  // SetContributingSubnets sets the ContributingSubnets field's value.
  4465  func (s *ExpectedRoute) SetContributingSubnets(v []*string) *ExpectedRoute {
  4466  	s.ContributingSubnets = v
  4467  	return s
  4468  }
  4469  
  4470  // SetIpV4Cidr sets the IpV4Cidr field's value.
  4471  func (s *ExpectedRoute) SetIpV4Cidr(v string) *ExpectedRoute {
  4472  	s.IpV4Cidr = &v
  4473  	return s
  4474  }
  4475  
  4476  // SetIpV6Cidr sets the IpV6Cidr field's value.
  4477  func (s *ExpectedRoute) SetIpV6Cidr(v string) *ExpectedRoute {
  4478  	s.IpV6Cidr = &v
  4479  	return s
  4480  }
  4481  
  4482  // SetPrefixListId sets the PrefixListId field's value.
  4483  func (s *ExpectedRoute) SetPrefixListId(v string) *ExpectedRoute {
  4484  	s.PrefixListId = &v
  4485  	return s
  4486  }
  4487  
  4488  // SetRouteTableId sets the RouteTableId field's value.
  4489  func (s *ExpectedRoute) SetRouteTableId(v string) *ExpectedRoute {
  4490  	s.RouteTableId = &v
  4491  	return s
  4492  }
  4493  
  4494  type GetAdminAccountInput struct {
  4495  	_ struct{} `type:"structure"`
  4496  }
  4497  
  4498  // String returns the string representation.
  4499  //
  4500  // API parameter values that are decorated as "sensitive" in the API will not
  4501  // be included in the string output. The member name will be present, but the
  4502  // value will be replaced with "sensitive".
  4503  func (s GetAdminAccountInput) String() string {
  4504  	return awsutil.Prettify(s)
  4505  }
  4506  
  4507  // GoString returns the string representation.
  4508  //
  4509  // API parameter values that are decorated as "sensitive" in the API will not
  4510  // be included in the string output. The member name will be present, but the
  4511  // value will be replaced with "sensitive".
  4512  func (s GetAdminAccountInput) GoString() string {
  4513  	return s.String()
  4514  }
  4515  
  4516  type GetAdminAccountOutput struct {
  4517  	_ struct{} `type:"structure"`
  4518  
  4519  	// The Amazon Web Services account that is set as the Firewall Manager administrator.
  4520  	AdminAccount *string `min:"1" type:"string"`
  4521  
  4522  	// The status of the Amazon Web Services account that you set as the Firewall
  4523  	// Manager administrator.
  4524  	RoleStatus *string `type:"string" enum:"AccountRoleStatus"`
  4525  }
  4526  
  4527  // String returns the string representation.
  4528  //
  4529  // API parameter values that are decorated as "sensitive" in the API will not
  4530  // be included in the string output. The member name will be present, but the
  4531  // value will be replaced with "sensitive".
  4532  func (s GetAdminAccountOutput) String() string {
  4533  	return awsutil.Prettify(s)
  4534  }
  4535  
  4536  // GoString returns the string representation.
  4537  //
  4538  // API parameter values that are decorated as "sensitive" in the API will not
  4539  // be included in the string output. The member name will be present, but the
  4540  // value will be replaced with "sensitive".
  4541  func (s GetAdminAccountOutput) GoString() string {
  4542  	return s.String()
  4543  }
  4544  
  4545  // SetAdminAccount sets the AdminAccount field's value.
  4546  func (s *GetAdminAccountOutput) SetAdminAccount(v string) *GetAdminAccountOutput {
  4547  	s.AdminAccount = &v
  4548  	return s
  4549  }
  4550  
  4551  // SetRoleStatus sets the RoleStatus field's value.
  4552  func (s *GetAdminAccountOutput) SetRoleStatus(v string) *GetAdminAccountOutput {
  4553  	s.RoleStatus = &v
  4554  	return s
  4555  }
  4556  
  4557  type GetAppsListInput struct {
  4558  	_ struct{} `type:"structure"`
  4559  
  4560  	// Specifies whether the list to retrieve is a default list owned by Firewall
  4561  	// Manager.
  4562  	DefaultList *bool `type:"boolean"`
  4563  
  4564  	// The ID of the Firewall Manager applications list that you want the details
  4565  	// for.
  4566  	//
  4567  	// ListId is a required field
  4568  	ListId *string `min:"36" type:"string" required:"true"`
  4569  }
  4570  
  4571  // String returns the string representation.
  4572  //
  4573  // API parameter values that are decorated as "sensitive" in the API will not
  4574  // be included in the string output. The member name will be present, but the
  4575  // value will be replaced with "sensitive".
  4576  func (s GetAppsListInput) String() string {
  4577  	return awsutil.Prettify(s)
  4578  }
  4579  
  4580  // GoString returns the string representation.
  4581  //
  4582  // API parameter values that are decorated as "sensitive" in the API will not
  4583  // be included in the string output. The member name will be present, but the
  4584  // value will be replaced with "sensitive".
  4585  func (s GetAppsListInput) GoString() string {
  4586  	return s.String()
  4587  }
  4588  
  4589  // Validate inspects the fields of the type to determine if they are valid.
  4590  func (s *GetAppsListInput) Validate() error {
  4591  	invalidParams := request.ErrInvalidParams{Context: "GetAppsListInput"}
  4592  	if s.ListId == nil {
  4593  		invalidParams.Add(request.NewErrParamRequired("ListId"))
  4594  	}
  4595  	if s.ListId != nil && len(*s.ListId) < 36 {
  4596  		invalidParams.Add(request.NewErrParamMinLen("ListId", 36))
  4597  	}
  4598  
  4599  	if invalidParams.Len() > 0 {
  4600  		return invalidParams
  4601  	}
  4602  	return nil
  4603  }
  4604  
  4605  // SetDefaultList sets the DefaultList field's value.
  4606  func (s *GetAppsListInput) SetDefaultList(v bool) *GetAppsListInput {
  4607  	s.DefaultList = &v
  4608  	return s
  4609  }
  4610  
  4611  // SetListId sets the ListId field's value.
  4612  func (s *GetAppsListInput) SetListId(v string) *GetAppsListInput {
  4613  	s.ListId = &v
  4614  	return s
  4615  }
  4616  
  4617  type GetAppsListOutput struct {
  4618  	_ struct{} `type:"structure"`
  4619  
  4620  	// Information about the specified Firewall Manager applications list.
  4621  	AppsList *AppsListData `type:"structure"`
  4622  
  4623  	// The Amazon Resource Name (ARN) of the applications list.
  4624  	AppsListArn *string `min:"1" type:"string"`
  4625  }
  4626  
  4627  // String returns the string representation.
  4628  //
  4629  // API parameter values that are decorated as "sensitive" in the API will not
  4630  // be included in the string output. The member name will be present, but the
  4631  // value will be replaced with "sensitive".
  4632  func (s GetAppsListOutput) String() string {
  4633  	return awsutil.Prettify(s)
  4634  }
  4635  
  4636  // GoString returns the string representation.
  4637  //
  4638  // API parameter values that are decorated as "sensitive" in the API will not
  4639  // be included in the string output. The member name will be present, but the
  4640  // value will be replaced with "sensitive".
  4641  func (s GetAppsListOutput) GoString() string {
  4642  	return s.String()
  4643  }
  4644  
  4645  // SetAppsList sets the AppsList field's value.
  4646  func (s *GetAppsListOutput) SetAppsList(v *AppsListData) *GetAppsListOutput {
  4647  	s.AppsList = v
  4648  	return s
  4649  }
  4650  
  4651  // SetAppsListArn sets the AppsListArn field's value.
  4652  func (s *GetAppsListOutput) SetAppsListArn(v string) *GetAppsListOutput {
  4653  	s.AppsListArn = &v
  4654  	return s
  4655  }
  4656  
  4657  type GetComplianceDetailInput struct {
  4658  	_ struct{} `type:"structure"`
  4659  
  4660  	// The Amazon Web Services account that owns the resources that you want to
  4661  	// get the details for.
  4662  	//
  4663  	// MemberAccount is a required field
  4664  	MemberAccount *string `min:"1" type:"string" required:"true"`
  4665  
  4666  	// The ID of the policy that you want to get the details for. PolicyId is returned
  4667  	// by PutPolicy and by ListPolicies.
  4668  	//
  4669  	// PolicyId is a required field
  4670  	PolicyId *string `min:"36" type:"string" required:"true"`
  4671  }
  4672  
  4673  // String returns the string representation.
  4674  //
  4675  // API parameter values that are decorated as "sensitive" in the API will not
  4676  // be included in the string output. The member name will be present, but the
  4677  // value will be replaced with "sensitive".
  4678  func (s GetComplianceDetailInput) String() string {
  4679  	return awsutil.Prettify(s)
  4680  }
  4681  
  4682  // GoString returns the string representation.
  4683  //
  4684  // API parameter values that are decorated as "sensitive" in the API will not
  4685  // be included in the string output. The member name will be present, but the
  4686  // value will be replaced with "sensitive".
  4687  func (s GetComplianceDetailInput) GoString() string {
  4688  	return s.String()
  4689  }
  4690  
  4691  // Validate inspects the fields of the type to determine if they are valid.
  4692  func (s *GetComplianceDetailInput) Validate() error {
  4693  	invalidParams := request.ErrInvalidParams{Context: "GetComplianceDetailInput"}
  4694  	if s.MemberAccount == nil {
  4695  		invalidParams.Add(request.NewErrParamRequired("MemberAccount"))
  4696  	}
  4697  	if s.MemberAccount != nil && len(*s.MemberAccount) < 1 {
  4698  		invalidParams.Add(request.NewErrParamMinLen("MemberAccount", 1))
  4699  	}
  4700  	if s.PolicyId == nil {
  4701  		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
  4702  	}
  4703  	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
  4704  		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
  4705  	}
  4706  
  4707  	if invalidParams.Len() > 0 {
  4708  		return invalidParams
  4709  	}
  4710  	return nil
  4711  }
  4712  
  4713  // SetMemberAccount sets the MemberAccount field's value.
  4714  func (s *GetComplianceDetailInput) SetMemberAccount(v string) *GetComplianceDetailInput {
  4715  	s.MemberAccount = &v
  4716  	return s
  4717  }
  4718  
  4719  // SetPolicyId sets the PolicyId field's value.
  4720  func (s *GetComplianceDetailInput) SetPolicyId(v string) *GetComplianceDetailInput {
  4721  	s.PolicyId = &v
  4722  	return s
  4723  }
  4724  
  4725  type GetComplianceDetailOutput struct {
  4726  	_ struct{} `type:"structure"`
  4727  
  4728  	// Information about the resources and the policy that you specified in the
  4729  	// GetComplianceDetail request.
  4730  	PolicyComplianceDetail *PolicyComplianceDetail `type:"structure"`
  4731  }
  4732  
  4733  // String returns the string representation.
  4734  //
  4735  // API parameter values that are decorated as "sensitive" in the API will not
  4736  // be included in the string output. The member name will be present, but the
  4737  // value will be replaced with "sensitive".
  4738  func (s GetComplianceDetailOutput) String() string {
  4739  	return awsutil.Prettify(s)
  4740  }
  4741  
  4742  // GoString returns the string representation.
  4743  //
  4744  // API parameter values that are decorated as "sensitive" in the API will not
  4745  // be included in the string output. The member name will be present, but the
  4746  // value will be replaced with "sensitive".
  4747  func (s GetComplianceDetailOutput) GoString() string {
  4748  	return s.String()
  4749  }
  4750  
  4751  // SetPolicyComplianceDetail sets the PolicyComplianceDetail field's value.
  4752  func (s *GetComplianceDetailOutput) SetPolicyComplianceDetail(v *PolicyComplianceDetail) *GetComplianceDetailOutput {
  4753  	s.PolicyComplianceDetail = v
  4754  	return s
  4755  }
  4756  
  4757  type GetNotificationChannelInput struct {
  4758  	_ struct{} `type:"structure"`
  4759  }
  4760  
  4761  // String returns the string representation.
  4762  //
  4763  // API parameter values that are decorated as "sensitive" in the API will not
  4764  // be included in the string output. The member name will be present, but the
  4765  // value will be replaced with "sensitive".
  4766  func (s GetNotificationChannelInput) String() string {
  4767  	return awsutil.Prettify(s)
  4768  }
  4769  
  4770  // GoString returns the string representation.
  4771  //
  4772  // API parameter values that are decorated as "sensitive" in the API will not
  4773  // be included in the string output. The member name will be present, but the
  4774  // value will be replaced with "sensitive".
  4775  func (s GetNotificationChannelInput) GoString() string {
  4776  	return s.String()
  4777  }
  4778  
  4779  type GetNotificationChannelOutput struct {
  4780  	_ struct{} `type:"structure"`
  4781  
  4782  	// The IAM role that is used by Firewall Manager to record activity to SNS.
  4783  	SnsRoleName *string `min:"1" type:"string"`
  4784  
  4785  	// The SNS topic that records Firewall Manager activity.
  4786  	SnsTopicArn *string `min:"1" type:"string"`
  4787  }
  4788  
  4789  // String returns the string representation.
  4790  //
  4791  // API parameter values that are decorated as "sensitive" in the API will not
  4792  // be included in the string output. The member name will be present, but the
  4793  // value will be replaced with "sensitive".
  4794  func (s GetNotificationChannelOutput) String() string {
  4795  	return awsutil.Prettify(s)
  4796  }
  4797  
  4798  // GoString returns the string representation.
  4799  //
  4800  // API parameter values that are decorated as "sensitive" in the API will not
  4801  // be included in the string output. The member name will be present, but the
  4802  // value will be replaced with "sensitive".
  4803  func (s GetNotificationChannelOutput) GoString() string {
  4804  	return s.String()
  4805  }
  4806  
  4807  // SetSnsRoleName sets the SnsRoleName field's value.
  4808  func (s *GetNotificationChannelOutput) SetSnsRoleName(v string) *GetNotificationChannelOutput {
  4809  	s.SnsRoleName = &v
  4810  	return s
  4811  }
  4812  
  4813  // SetSnsTopicArn sets the SnsTopicArn field's value.
  4814  func (s *GetNotificationChannelOutput) SetSnsTopicArn(v string) *GetNotificationChannelOutput {
  4815  	s.SnsTopicArn = &v
  4816  	return s
  4817  }
  4818  
  4819  type GetPolicyInput struct {
  4820  	_ struct{} `type:"structure"`
  4821  
  4822  	// The ID of the Firewall Manager policy that you want the details for.
  4823  	//
  4824  	// PolicyId is a required field
  4825  	PolicyId *string `min:"36" type:"string" required:"true"`
  4826  }
  4827  
  4828  // String returns the string representation.
  4829  //
  4830  // API parameter values that are decorated as "sensitive" in the API will not
  4831  // be included in the string output. The member name will be present, but the
  4832  // value will be replaced with "sensitive".
  4833  func (s GetPolicyInput) String() string {
  4834  	return awsutil.Prettify(s)
  4835  }
  4836  
  4837  // GoString returns the string representation.
  4838  //
  4839  // API parameter values that are decorated as "sensitive" in the API will not
  4840  // be included in the string output. The member name will be present, but the
  4841  // value will be replaced with "sensitive".
  4842  func (s GetPolicyInput) GoString() string {
  4843  	return s.String()
  4844  }
  4845  
  4846  // Validate inspects the fields of the type to determine if they are valid.
  4847  func (s *GetPolicyInput) Validate() error {
  4848  	invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"}
  4849  	if s.PolicyId == nil {
  4850  		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
  4851  	}
  4852  	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
  4853  		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
  4854  	}
  4855  
  4856  	if invalidParams.Len() > 0 {
  4857  		return invalidParams
  4858  	}
  4859  	return nil
  4860  }
  4861  
  4862  // SetPolicyId sets the PolicyId field's value.
  4863  func (s *GetPolicyInput) SetPolicyId(v string) *GetPolicyInput {
  4864  	s.PolicyId = &v
  4865  	return s
  4866  }
  4867  
  4868  type GetPolicyOutput struct {
  4869  	_ struct{} `type:"structure"`
  4870  
  4871  	// Information about the specified Firewall Manager policy.
  4872  	Policy *Policy `type:"structure"`
  4873  
  4874  	// The Amazon Resource Name (ARN) of the specified policy.
  4875  	PolicyArn *string `min:"1" type:"string"`
  4876  }
  4877  
  4878  // String returns the string representation.
  4879  //
  4880  // API parameter values that are decorated as "sensitive" in the API will not
  4881  // be included in the string output. The member name will be present, but the
  4882  // value will be replaced with "sensitive".
  4883  func (s GetPolicyOutput) String() string {
  4884  	return awsutil.Prettify(s)
  4885  }
  4886  
  4887  // GoString returns the string representation.
  4888  //
  4889  // API parameter values that are decorated as "sensitive" in the API will not
  4890  // be included in the string output. The member name will be present, but the
  4891  // value will be replaced with "sensitive".
  4892  func (s GetPolicyOutput) GoString() string {
  4893  	return s.String()
  4894  }
  4895  
  4896  // SetPolicy sets the Policy field's value.
  4897  func (s *GetPolicyOutput) SetPolicy(v *Policy) *GetPolicyOutput {
  4898  	s.Policy = v
  4899  	return s
  4900  }
  4901  
  4902  // SetPolicyArn sets the PolicyArn field's value.
  4903  func (s *GetPolicyOutput) SetPolicyArn(v string) *GetPolicyOutput {
  4904  	s.PolicyArn = &v
  4905  	return s
  4906  }
  4907  
  4908  type GetProtectionStatusInput struct {
  4909  	_ struct{} `type:"structure"`
  4910  
  4911  	// The end of the time period to query for the attacks. This is a timestamp
  4912  	// type. The request syntax listing indicates a number type because the default
  4913  	// used by Firewall Manager is Unix time in seconds. However, any valid timestamp
  4914  	// format is allowed.
  4915  	EndTime *time.Time `type:"timestamp"`
  4916  
  4917  	// Specifies the number of objects that you want Firewall Manager to return
  4918  	// for this request. If you have more objects than the number that you specify
  4919  	// for MaxResults, the response includes a NextToken value that you can use
  4920  	// to get another batch of objects.
  4921  	MaxResults *int64 `min:"1" type:"integer"`
  4922  
  4923  	// The Amazon Web Services account that is in scope of the policy that you want
  4924  	// to get the details for.
  4925  	MemberAccountId *string `min:"1" type:"string"`
  4926  
  4927  	// If you specify a value for MaxResults and you have more objects than the
  4928  	// number that you specify for MaxResults, Firewall Manager returns a NextToken
  4929  	// value in the response, which you can use to retrieve another group of objects.
  4930  	// For the second and subsequent GetProtectionStatus requests, specify the value
  4931  	// of NextToken from the previous response to get information about another
  4932  	// batch of objects.
  4933  	NextToken *string `min:"1" type:"string"`
  4934  
  4935  	// The ID of the policy for which you want to get the attack information.
  4936  	//
  4937  	// PolicyId is a required field
  4938  	PolicyId *string `min:"36" type:"string" required:"true"`
  4939  
  4940  	// The start of the time period to query for the attacks. This is a timestamp
  4941  	// type. The request syntax listing indicates a number type because the default
  4942  	// used by Firewall Manager is Unix time in seconds. However, any valid timestamp
  4943  	// format is allowed.
  4944  	StartTime *time.Time `type:"timestamp"`
  4945  }
  4946  
  4947  // String returns the string representation.
  4948  //
  4949  // API parameter values that are decorated as "sensitive" in the API will not
  4950  // be included in the string output. The member name will be present, but the
  4951  // value will be replaced with "sensitive".
  4952  func (s GetProtectionStatusInput) String() string {
  4953  	return awsutil.Prettify(s)
  4954  }
  4955  
  4956  // GoString returns the string representation.
  4957  //
  4958  // API parameter values that are decorated as "sensitive" in the API will not
  4959  // be included in the string output. The member name will be present, but the
  4960  // value will be replaced with "sensitive".
  4961  func (s GetProtectionStatusInput) GoString() string {
  4962  	return s.String()
  4963  }
  4964  
  4965  // Validate inspects the fields of the type to determine if they are valid.
  4966  func (s *GetProtectionStatusInput) Validate() error {
  4967  	invalidParams := request.ErrInvalidParams{Context: "GetProtectionStatusInput"}
  4968  	if s.MaxResults != nil && *s.MaxResults < 1 {
  4969  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  4970  	}
  4971  	if s.MemberAccountId != nil && len(*s.MemberAccountId) < 1 {
  4972  		invalidParams.Add(request.NewErrParamMinLen("MemberAccountId", 1))
  4973  	}
  4974  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  4975  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  4976  	}
  4977  	if s.PolicyId == nil {
  4978  		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
  4979  	}
  4980  	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
  4981  		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
  4982  	}
  4983  
  4984  	if invalidParams.Len() > 0 {
  4985  		return invalidParams
  4986  	}
  4987  	return nil
  4988  }
  4989  
  4990  // SetEndTime sets the EndTime field's value.
  4991  func (s *GetProtectionStatusInput) SetEndTime(v time.Time) *GetProtectionStatusInput {
  4992  	s.EndTime = &v
  4993  	return s
  4994  }
  4995  
  4996  // SetMaxResults sets the MaxResults field's value.
  4997  func (s *GetProtectionStatusInput) SetMaxResults(v int64) *GetProtectionStatusInput {
  4998  	s.MaxResults = &v
  4999  	return s
  5000  }
  5001  
  5002  // SetMemberAccountId sets the MemberAccountId field's value.
  5003  func (s *GetProtectionStatusInput) SetMemberAccountId(v string) *GetProtectionStatusInput {
  5004  	s.MemberAccountId = &v
  5005  	return s
  5006  }
  5007  
  5008  // SetNextToken sets the NextToken field's value.
  5009  func (s *GetProtectionStatusInput) SetNextToken(v string) *GetProtectionStatusInput {
  5010  	s.NextToken = &v
  5011  	return s
  5012  }
  5013  
  5014  // SetPolicyId sets the PolicyId field's value.
  5015  func (s *GetProtectionStatusInput) SetPolicyId(v string) *GetProtectionStatusInput {
  5016  	s.PolicyId = &v
  5017  	return s
  5018  }
  5019  
  5020  // SetStartTime sets the StartTime field's value.
  5021  func (s *GetProtectionStatusInput) SetStartTime(v time.Time) *GetProtectionStatusInput {
  5022  	s.StartTime = &v
  5023  	return s
  5024  }
  5025  
  5026  type GetProtectionStatusOutput struct {
  5027  	_ struct{} `type:"structure"`
  5028  
  5029  	// The ID of the Firewall Manager administrator account for this policy.
  5030  	AdminAccountId *string `min:"1" type:"string"`
  5031  
  5032  	// Details about the attack, including the following:
  5033  	//
  5034  	//    * Attack type
  5035  	//
  5036  	//    * Account ID
  5037  	//
  5038  	//    * ARN of the resource attacked
  5039  	//
  5040  	//    * Start time of the attack
  5041  	//
  5042  	//    * End time of the attack (ongoing attacks will not have an end time)
  5043  	//
  5044  	// The details are in JSON format.
  5045  	Data *string `type:"string"`
  5046  
  5047  	// If you have more objects than the number that you specified for MaxResults
  5048  	// in the request, the response includes a NextToken value. To list more objects,
  5049  	// submit another GetProtectionStatus request, and specify the NextToken value
  5050  	// from the response in the NextToken value in the next request.
  5051  	//
  5052  	// Amazon Web Services SDKs provide auto-pagination that identify NextToken
  5053  	// in a response and make subsequent request calls automatically on your behalf.
  5054  	// However, this feature is not supported by GetProtectionStatus. You must submit
  5055  	// subsequent requests with NextToken using your own processes.
  5056  	NextToken *string `min:"1" type:"string"`
  5057  
  5058  	// The service type that is protected by the policy. Currently, this is always
  5059  	// SHIELD_ADVANCED.
  5060  	ServiceType *string `type:"string" enum:"SecurityServiceType"`
  5061  }
  5062  
  5063  // String returns the string representation.
  5064  //
  5065  // API parameter values that are decorated as "sensitive" in the API will not
  5066  // be included in the string output. The member name will be present, but the
  5067  // value will be replaced with "sensitive".
  5068  func (s GetProtectionStatusOutput) String() string {
  5069  	return awsutil.Prettify(s)
  5070  }
  5071  
  5072  // GoString returns the string representation.
  5073  //
  5074  // API parameter values that are decorated as "sensitive" in the API will not
  5075  // be included in the string output. The member name will be present, but the
  5076  // value will be replaced with "sensitive".
  5077  func (s GetProtectionStatusOutput) GoString() string {
  5078  	return s.String()
  5079  }
  5080  
  5081  // SetAdminAccountId sets the AdminAccountId field's value.
  5082  func (s *GetProtectionStatusOutput) SetAdminAccountId(v string) *GetProtectionStatusOutput {
  5083  	s.AdminAccountId = &v
  5084  	return s
  5085  }
  5086  
  5087  // SetData sets the Data field's value.
  5088  func (s *GetProtectionStatusOutput) SetData(v string) *GetProtectionStatusOutput {
  5089  	s.Data = &v
  5090  	return s
  5091  }
  5092  
  5093  // SetNextToken sets the NextToken field's value.
  5094  func (s *GetProtectionStatusOutput) SetNextToken(v string) *GetProtectionStatusOutput {
  5095  	s.NextToken = &v
  5096  	return s
  5097  }
  5098  
  5099  // SetServiceType sets the ServiceType field's value.
  5100  func (s *GetProtectionStatusOutput) SetServiceType(v string) *GetProtectionStatusOutput {
  5101  	s.ServiceType = &v
  5102  	return s
  5103  }
  5104  
  5105  type GetProtocolsListInput struct {
  5106  	_ struct{} `type:"structure"`
  5107  
  5108  	// Specifies whether the list to retrieve is a default list owned by Firewall
  5109  	// Manager.
  5110  	DefaultList *bool `type:"boolean"`
  5111  
  5112  	// The ID of the Firewall Manager protocols list that you want the details for.
  5113  	//
  5114  	// ListId is a required field
  5115  	ListId *string `min:"36" type:"string" required:"true"`
  5116  }
  5117  
  5118  // String returns the string representation.
  5119  //
  5120  // API parameter values that are decorated as "sensitive" in the API will not
  5121  // be included in the string output. The member name will be present, but the
  5122  // value will be replaced with "sensitive".
  5123  func (s GetProtocolsListInput) String() string {
  5124  	return awsutil.Prettify(s)
  5125  }
  5126  
  5127  // GoString returns the string representation.
  5128  //
  5129  // API parameter values that are decorated as "sensitive" in the API will not
  5130  // be included in the string output. The member name will be present, but the
  5131  // value will be replaced with "sensitive".
  5132  func (s GetProtocolsListInput) GoString() string {
  5133  	return s.String()
  5134  }
  5135  
  5136  // Validate inspects the fields of the type to determine if they are valid.
  5137  func (s *GetProtocolsListInput) Validate() error {
  5138  	invalidParams := request.ErrInvalidParams{Context: "GetProtocolsListInput"}
  5139  	if s.ListId == nil {
  5140  		invalidParams.Add(request.NewErrParamRequired("ListId"))
  5141  	}
  5142  	if s.ListId != nil && len(*s.ListId) < 36 {
  5143  		invalidParams.Add(request.NewErrParamMinLen("ListId", 36))
  5144  	}
  5145  
  5146  	if invalidParams.Len() > 0 {
  5147  		return invalidParams
  5148  	}
  5149  	return nil
  5150  }
  5151  
  5152  // SetDefaultList sets the DefaultList field's value.
  5153  func (s *GetProtocolsListInput) SetDefaultList(v bool) *GetProtocolsListInput {
  5154  	s.DefaultList = &v
  5155  	return s
  5156  }
  5157  
  5158  // SetListId sets the ListId field's value.
  5159  func (s *GetProtocolsListInput) SetListId(v string) *GetProtocolsListInput {
  5160  	s.ListId = &v
  5161  	return s
  5162  }
  5163  
  5164  type GetProtocolsListOutput struct {
  5165  	_ struct{} `type:"structure"`
  5166  
  5167  	// Information about the specified Firewall Manager protocols list.
  5168  	ProtocolsList *ProtocolsListData `type:"structure"`
  5169  
  5170  	// The Amazon Resource Name (ARN) of the specified protocols list.
  5171  	ProtocolsListArn *string `min:"1" type:"string"`
  5172  }
  5173  
  5174  // String returns the string representation.
  5175  //
  5176  // API parameter values that are decorated as "sensitive" in the API will not
  5177  // be included in the string output. The member name will be present, but the
  5178  // value will be replaced with "sensitive".
  5179  func (s GetProtocolsListOutput) String() string {
  5180  	return awsutil.Prettify(s)
  5181  }
  5182  
  5183  // GoString returns the string representation.
  5184  //
  5185  // API parameter values that are decorated as "sensitive" in the API will not
  5186  // be included in the string output. The member name will be present, but the
  5187  // value will be replaced with "sensitive".
  5188  func (s GetProtocolsListOutput) GoString() string {
  5189  	return s.String()
  5190  }
  5191  
  5192  // SetProtocolsList sets the ProtocolsList field's value.
  5193  func (s *GetProtocolsListOutput) SetProtocolsList(v *ProtocolsListData) *GetProtocolsListOutput {
  5194  	s.ProtocolsList = v
  5195  	return s
  5196  }
  5197  
  5198  // SetProtocolsListArn sets the ProtocolsListArn field's value.
  5199  func (s *GetProtocolsListOutput) SetProtocolsListArn(v string) *GetProtocolsListOutput {
  5200  	s.ProtocolsListArn = &v
  5201  	return s
  5202  }
  5203  
  5204  type GetViolationDetailsInput struct {
  5205  	_ struct{} `type:"structure"`
  5206  
  5207  	// The Amazon Web Services account ID that you want the details for.
  5208  	//
  5209  	// MemberAccount is a required field
  5210  	MemberAccount *string `min:"1" type:"string" required:"true"`
  5211  
  5212  	// The ID of the Firewall Manager policy that you want the details for. This
  5213  	// currently only supports security group content audit policies.
  5214  	//
  5215  	// PolicyId is a required field
  5216  	PolicyId *string `min:"36" type:"string" required:"true"`
  5217  
  5218  	// The ID of the resource that has violations.
  5219  	//
  5220  	// ResourceId is a required field
  5221  	ResourceId *string `min:"1" type:"string" required:"true"`
  5222  
  5223  	// The resource type. This is in the format shown in the Amazon Web Services
  5224  	// Resource Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html).
  5225  	// Supported resource types are: AWS::EC2::Instance, AWS::EC2::NetworkInterface,
  5226  	// AWS::EC2::SecurityGroup, AWS::NetworkFirewall::FirewallPolicy, and AWS::EC2::Subnet.
  5227  	//
  5228  	// ResourceType is a required field
  5229  	ResourceType *string `min:"1" type:"string" required:"true"`
  5230  }
  5231  
  5232  // String returns the string representation.
  5233  //
  5234  // API parameter values that are decorated as "sensitive" in the API will not
  5235  // be included in the string output. The member name will be present, but the
  5236  // value will be replaced with "sensitive".
  5237  func (s GetViolationDetailsInput) String() string {
  5238  	return awsutil.Prettify(s)
  5239  }
  5240  
  5241  // GoString returns the string representation.
  5242  //
  5243  // API parameter values that are decorated as "sensitive" in the API will not
  5244  // be included in the string output. The member name will be present, but the
  5245  // value will be replaced with "sensitive".
  5246  func (s GetViolationDetailsInput) GoString() string {
  5247  	return s.String()
  5248  }
  5249  
  5250  // Validate inspects the fields of the type to determine if they are valid.
  5251  func (s *GetViolationDetailsInput) Validate() error {
  5252  	invalidParams := request.ErrInvalidParams{Context: "GetViolationDetailsInput"}
  5253  	if s.MemberAccount == nil {
  5254  		invalidParams.Add(request.NewErrParamRequired("MemberAccount"))
  5255  	}
  5256  	if s.MemberAccount != nil && len(*s.MemberAccount) < 1 {
  5257  		invalidParams.Add(request.NewErrParamMinLen("MemberAccount", 1))
  5258  	}
  5259  	if s.PolicyId == nil {
  5260  		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
  5261  	}
  5262  	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
  5263  		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
  5264  	}
  5265  	if s.ResourceId == nil {
  5266  		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
  5267  	}
  5268  	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
  5269  		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
  5270  	}
  5271  	if s.ResourceType == nil {
  5272  		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
  5273  	}
  5274  	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
  5275  		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
  5276  	}
  5277  
  5278  	if invalidParams.Len() > 0 {
  5279  		return invalidParams
  5280  	}
  5281  	return nil
  5282  }
  5283  
  5284  // SetMemberAccount sets the MemberAccount field's value.
  5285  func (s *GetViolationDetailsInput) SetMemberAccount(v string) *GetViolationDetailsInput {
  5286  	s.MemberAccount = &v
  5287  	return s
  5288  }
  5289  
  5290  // SetPolicyId sets the PolicyId field's value.
  5291  func (s *GetViolationDetailsInput) SetPolicyId(v string) *GetViolationDetailsInput {
  5292  	s.PolicyId = &v
  5293  	return s
  5294  }
  5295  
  5296  // SetResourceId sets the ResourceId field's value.
  5297  func (s *GetViolationDetailsInput) SetResourceId(v string) *GetViolationDetailsInput {
  5298  	s.ResourceId = &v
  5299  	return s
  5300  }
  5301  
  5302  // SetResourceType sets the ResourceType field's value.
  5303  func (s *GetViolationDetailsInput) SetResourceType(v string) *GetViolationDetailsInput {
  5304  	s.ResourceType = &v
  5305  	return s
  5306  }
  5307  
  5308  type GetViolationDetailsOutput struct {
  5309  	_ struct{} `type:"structure"`
  5310  
  5311  	// Violation detail for a resource.
  5312  	ViolationDetail *ViolationDetail `type:"structure"`
  5313  }
  5314  
  5315  // String returns the string representation.
  5316  //
  5317  // API parameter values that are decorated as "sensitive" in the API will not
  5318  // be included in the string output. The member name will be present, but the
  5319  // value will be replaced with "sensitive".
  5320  func (s GetViolationDetailsOutput) String() string {
  5321  	return awsutil.Prettify(s)
  5322  }
  5323  
  5324  // GoString returns the string representation.
  5325  //
  5326  // API parameter values that are decorated as "sensitive" in the API will not
  5327  // be included in the string output. The member name will be present, but the
  5328  // value will be replaced with "sensitive".
  5329  func (s GetViolationDetailsOutput) GoString() string {
  5330  	return s.String()
  5331  }
  5332  
  5333  // SetViolationDetail sets the ViolationDetail field's value.
  5334  func (s *GetViolationDetailsOutput) SetViolationDetail(v *ViolationDetail) *GetViolationDetailsOutput {
  5335  	s.ViolationDetail = v
  5336  	return s
  5337  }
  5338  
  5339  // The operation failed because of a system problem, even though the request
  5340  // was valid. Retry your request.
  5341  type InternalErrorException struct {
  5342  	_            struct{}                  `type:"structure"`
  5343  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5344  
  5345  	Message_ *string `locationName:"Message" type:"string"`
  5346  }
  5347  
  5348  // String returns the string representation.
  5349  //
  5350  // API parameter values that are decorated as "sensitive" in the API will not
  5351  // be included in the string output. The member name will be present, but the
  5352  // value will be replaced with "sensitive".
  5353  func (s InternalErrorException) String() string {
  5354  	return awsutil.Prettify(s)
  5355  }
  5356  
  5357  // GoString returns the string representation.
  5358  //
  5359  // API parameter values that are decorated as "sensitive" in the API will not
  5360  // be included in the string output. The member name will be present, but the
  5361  // value will be replaced with "sensitive".
  5362  func (s InternalErrorException) GoString() string {
  5363  	return s.String()
  5364  }
  5365  
  5366  func newErrorInternalErrorException(v protocol.ResponseMetadata) error {
  5367  	return &InternalErrorException{
  5368  		RespMetadata: v,
  5369  	}
  5370  }
  5371  
  5372  // Code returns the exception type name.
  5373  func (s *InternalErrorException) Code() string {
  5374  	return "InternalErrorException"
  5375  }
  5376  
  5377  // Message returns the exception's message.
  5378  func (s *InternalErrorException) Message() string {
  5379  	if s.Message_ != nil {
  5380  		return *s.Message_
  5381  	}
  5382  	return ""
  5383  }
  5384  
  5385  // OrigErr always returns nil, satisfies awserr.Error interface.
  5386  func (s *InternalErrorException) OrigErr() error {
  5387  	return nil
  5388  }
  5389  
  5390  func (s *InternalErrorException) Error() string {
  5391  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5392  }
  5393  
  5394  // Status code returns the HTTP status code for the request's response error.
  5395  func (s *InternalErrorException) StatusCode() int {
  5396  	return s.RespMetadata.StatusCode
  5397  }
  5398  
  5399  // RequestID returns the service's response RequestID for request.
  5400  func (s *InternalErrorException) RequestID() string {
  5401  	return s.RespMetadata.RequestID
  5402  }
  5403  
  5404  // The parameters of the request were invalid.
  5405  type InvalidInputException struct {
  5406  	_            struct{}                  `type:"structure"`
  5407  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5408  
  5409  	Message_ *string `locationName:"Message" type:"string"`
  5410  }
  5411  
  5412  // String returns the string representation.
  5413  //
  5414  // API parameter values that are decorated as "sensitive" in the API will not
  5415  // be included in the string output. The member name will be present, but the
  5416  // value will be replaced with "sensitive".
  5417  func (s InvalidInputException) String() string {
  5418  	return awsutil.Prettify(s)
  5419  }
  5420  
  5421  // GoString returns the string representation.
  5422  //
  5423  // API parameter values that are decorated as "sensitive" in the API will not
  5424  // be included in the string output. The member name will be present, but the
  5425  // value will be replaced with "sensitive".
  5426  func (s InvalidInputException) GoString() string {
  5427  	return s.String()
  5428  }
  5429  
  5430  func newErrorInvalidInputException(v protocol.ResponseMetadata) error {
  5431  	return &InvalidInputException{
  5432  		RespMetadata: v,
  5433  	}
  5434  }
  5435  
  5436  // Code returns the exception type name.
  5437  func (s *InvalidInputException) Code() string {
  5438  	return "InvalidInputException"
  5439  }
  5440  
  5441  // Message returns the exception's message.
  5442  func (s *InvalidInputException) Message() string {
  5443  	if s.Message_ != nil {
  5444  		return *s.Message_
  5445  	}
  5446  	return ""
  5447  }
  5448  
  5449  // OrigErr always returns nil, satisfies awserr.Error interface.
  5450  func (s *InvalidInputException) OrigErr() error {
  5451  	return nil
  5452  }
  5453  
  5454  func (s *InvalidInputException) Error() string {
  5455  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5456  }
  5457  
  5458  // Status code returns the HTTP status code for the request's response error.
  5459  func (s *InvalidInputException) StatusCode() int {
  5460  	return s.RespMetadata.StatusCode
  5461  }
  5462  
  5463  // RequestID returns the service's response RequestID for request.
  5464  func (s *InvalidInputException) RequestID() string {
  5465  	return s.RespMetadata.RequestID
  5466  }
  5467  
  5468  // The operation failed because there was nothing to do or the operation wasn't
  5469  // possible. For example, you might have submitted an AssociateAdminAccount
  5470  // request for an account ID that was already set as the Firewall Manager administrator.
  5471  // Or you might have tried to access a Region that's disabled by default, and
  5472  // that you need to enable for the Firewall Manager administrator account and
  5473  // for Organizations before you can access it.
  5474  type InvalidOperationException struct {
  5475  	_            struct{}                  `type:"structure"`
  5476  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5477  
  5478  	Message_ *string `locationName:"Message" type:"string"`
  5479  }
  5480  
  5481  // String returns the string representation.
  5482  //
  5483  // API parameter values that are decorated as "sensitive" in the API will not
  5484  // be included in the string output. The member name will be present, but the
  5485  // value will be replaced with "sensitive".
  5486  func (s InvalidOperationException) String() string {
  5487  	return awsutil.Prettify(s)
  5488  }
  5489  
  5490  // GoString returns the string representation.
  5491  //
  5492  // API parameter values that are decorated as "sensitive" in the API will not
  5493  // be included in the string output. The member name will be present, but the
  5494  // value will be replaced with "sensitive".
  5495  func (s InvalidOperationException) GoString() string {
  5496  	return s.String()
  5497  }
  5498  
  5499  func newErrorInvalidOperationException(v protocol.ResponseMetadata) error {
  5500  	return &InvalidOperationException{
  5501  		RespMetadata: v,
  5502  	}
  5503  }
  5504  
  5505  // Code returns the exception type name.
  5506  func (s *InvalidOperationException) Code() string {
  5507  	return "InvalidOperationException"
  5508  }
  5509  
  5510  // Message returns the exception's message.
  5511  func (s *InvalidOperationException) Message() string {
  5512  	if s.Message_ != nil {
  5513  		return *s.Message_
  5514  	}
  5515  	return ""
  5516  }
  5517  
  5518  // OrigErr always returns nil, satisfies awserr.Error interface.
  5519  func (s *InvalidOperationException) OrigErr() error {
  5520  	return nil
  5521  }
  5522  
  5523  func (s *InvalidOperationException) Error() string {
  5524  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5525  }
  5526  
  5527  // Status code returns the HTTP status code for the request's response error.
  5528  func (s *InvalidOperationException) StatusCode() int {
  5529  	return s.RespMetadata.StatusCode
  5530  }
  5531  
  5532  // RequestID returns the service's response RequestID for request.
  5533  func (s *InvalidOperationException) RequestID() string {
  5534  	return s.RespMetadata.RequestID
  5535  }
  5536  
  5537  // The value of the Type parameter is invalid.
  5538  type InvalidTypeException struct {
  5539  	_            struct{}                  `type:"structure"`
  5540  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5541  
  5542  	Message_ *string `locationName:"Message" type:"string"`
  5543  }
  5544  
  5545  // String returns the string representation.
  5546  //
  5547  // API parameter values that are decorated as "sensitive" in the API will not
  5548  // be included in the string output. The member name will be present, but the
  5549  // value will be replaced with "sensitive".
  5550  func (s InvalidTypeException) String() string {
  5551  	return awsutil.Prettify(s)
  5552  }
  5553  
  5554  // GoString returns the string representation.
  5555  //
  5556  // API parameter values that are decorated as "sensitive" in the API will not
  5557  // be included in the string output. The member name will be present, but the
  5558  // value will be replaced with "sensitive".
  5559  func (s InvalidTypeException) GoString() string {
  5560  	return s.String()
  5561  }
  5562  
  5563  func newErrorInvalidTypeException(v protocol.ResponseMetadata) error {
  5564  	return &InvalidTypeException{
  5565  		RespMetadata: v,
  5566  	}
  5567  }
  5568  
  5569  // Code returns the exception type name.
  5570  func (s *InvalidTypeException) Code() string {
  5571  	return "InvalidTypeException"
  5572  }
  5573  
  5574  // Message returns the exception's message.
  5575  func (s *InvalidTypeException) Message() string {
  5576  	if s.Message_ != nil {
  5577  		return *s.Message_
  5578  	}
  5579  	return ""
  5580  }
  5581  
  5582  // OrigErr always returns nil, satisfies awserr.Error interface.
  5583  func (s *InvalidTypeException) OrigErr() error {
  5584  	return nil
  5585  }
  5586  
  5587  func (s *InvalidTypeException) Error() string {
  5588  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5589  }
  5590  
  5591  // Status code returns the HTTP status code for the request's response error.
  5592  func (s *InvalidTypeException) StatusCode() int {
  5593  	return s.RespMetadata.StatusCode
  5594  }
  5595  
  5596  // RequestID returns the service's response RequestID for request.
  5597  func (s *InvalidTypeException) RequestID() string {
  5598  	return s.RespMetadata.RequestID
  5599  }
  5600  
  5601  // The operation exceeds a resource limit, for example, the maximum number of
  5602  // policy objects that you can create for an Amazon Web Services account. For
  5603  // more information, see Firewall Manager Limits (https://docs.aws.amazon.com/waf/latest/developerguide/fms-limits.html)
  5604  // in the WAF Developer Guide.
  5605  type LimitExceededException struct {
  5606  	_            struct{}                  `type:"structure"`
  5607  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5608  
  5609  	Message_ *string `locationName:"Message" type:"string"`
  5610  }
  5611  
  5612  // String returns the string representation.
  5613  //
  5614  // API parameter values that are decorated as "sensitive" in the API will not
  5615  // be included in the string output. The member name will be present, but the
  5616  // value will be replaced with "sensitive".
  5617  func (s LimitExceededException) String() string {
  5618  	return awsutil.Prettify(s)
  5619  }
  5620  
  5621  // GoString returns the string representation.
  5622  //
  5623  // API parameter values that are decorated as "sensitive" in the API will not
  5624  // be included in the string output. The member name will be present, but the
  5625  // value will be replaced with "sensitive".
  5626  func (s LimitExceededException) GoString() string {
  5627  	return s.String()
  5628  }
  5629  
  5630  func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
  5631  	return &LimitExceededException{
  5632  		RespMetadata: v,
  5633  	}
  5634  }
  5635  
  5636  // Code returns the exception type name.
  5637  func (s *LimitExceededException) Code() string {
  5638  	return "LimitExceededException"
  5639  }
  5640  
  5641  // Message returns the exception's message.
  5642  func (s *LimitExceededException) Message() string {
  5643  	if s.Message_ != nil {
  5644  		return *s.Message_
  5645  	}
  5646  	return ""
  5647  }
  5648  
  5649  // OrigErr always returns nil, satisfies awserr.Error interface.
  5650  func (s *LimitExceededException) OrigErr() error {
  5651  	return nil
  5652  }
  5653  
  5654  func (s *LimitExceededException) Error() string {
  5655  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5656  }
  5657  
  5658  // Status code returns the HTTP status code for the request's response error.
  5659  func (s *LimitExceededException) StatusCode() int {
  5660  	return s.RespMetadata.StatusCode
  5661  }
  5662  
  5663  // RequestID returns the service's response RequestID for request.
  5664  func (s *LimitExceededException) RequestID() string {
  5665  	return s.RespMetadata.RequestID
  5666  }
  5667  
  5668  type ListAppsListsInput struct {
  5669  	_ struct{} `type:"structure"`
  5670  
  5671  	// Specifies whether the lists to retrieve are default lists owned by Firewall
  5672  	// Manager.
  5673  	DefaultLists *bool `type:"boolean"`
  5674  
  5675  	// The maximum number of objects that you want Firewall Manager to return for
  5676  	// this request. If more objects are available, in the response, Firewall Manager
  5677  	// provides a NextToken value that you can use in a subsequent call to get the
  5678  	// next batch of objects.
  5679  	//
  5680  	// If you don't specify this, Firewall Manager returns all available objects.
  5681  	//
  5682  	// MaxResults is a required field
  5683  	MaxResults *int64 `min:"1" type:"integer" required:"true"`
  5684  
  5685  	// If you specify a value for MaxResults in your list request, and you have
  5686  	// more objects than the maximum, Firewall Manager returns this token in the
  5687  	// response. For all but the first request, you provide the token returned by
  5688  	// the prior request in the request parameters, to retrieve the next batch of
  5689  	// objects.
  5690  	NextToken *string `min:"1" type:"string"`
  5691  }
  5692  
  5693  // String returns the string representation.
  5694  //
  5695  // API parameter values that are decorated as "sensitive" in the API will not
  5696  // be included in the string output. The member name will be present, but the
  5697  // value will be replaced with "sensitive".
  5698  func (s ListAppsListsInput) String() string {
  5699  	return awsutil.Prettify(s)
  5700  }
  5701  
  5702  // GoString returns the string representation.
  5703  //
  5704  // API parameter values that are decorated as "sensitive" in the API will not
  5705  // be included in the string output. The member name will be present, but the
  5706  // value will be replaced with "sensitive".
  5707  func (s ListAppsListsInput) GoString() string {
  5708  	return s.String()
  5709  }
  5710  
  5711  // Validate inspects the fields of the type to determine if they are valid.
  5712  func (s *ListAppsListsInput) Validate() error {
  5713  	invalidParams := request.ErrInvalidParams{Context: "ListAppsListsInput"}
  5714  	if s.MaxResults == nil {
  5715  		invalidParams.Add(request.NewErrParamRequired("MaxResults"))
  5716  	}
  5717  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5718  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5719  	}
  5720  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  5721  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  5722  	}
  5723  
  5724  	if invalidParams.Len() > 0 {
  5725  		return invalidParams
  5726  	}
  5727  	return nil
  5728  }
  5729  
  5730  // SetDefaultLists sets the DefaultLists field's value.
  5731  func (s *ListAppsListsInput) SetDefaultLists(v bool) *ListAppsListsInput {
  5732  	s.DefaultLists = &v
  5733  	return s
  5734  }
  5735  
  5736  // SetMaxResults sets the MaxResults field's value.
  5737  func (s *ListAppsListsInput) SetMaxResults(v int64) *ListAppsListsInput {
  5738  	s.MaxResults = &v
  5739  	return s
  5740  }
  5741  
  5742  // SetNextToken sets the NextToken field's value.
  5743  func (s *ListAppsListsInput) SetNextToken(v string) *ListAppsListsInput {
  5744  	s.NextToken = &v
  5745  	return s
  5746  }
  5747  
  5748  type ListAppsListsOutput struct {
  5749  	_ struct{} `type:"structure"`
  5750  
  5751  	// An array of AppsListDataSummary objects.
  5752  	AppsLists []*AppsListDataSummary `type:"list"`
  5753  
  5754  	// If you specify a value for MaxResults in your list request, and you have
  5755  	// more objects than the maximum, Firewall Manager returns this token in the
  5756  	// response. You can use this token in subsequent requests to retrieve the next
  5757  	// batch of objects.
  5758  	NextToken *string `min:"1" type:"string"`
  5759  }
  5760  
  5761  // String returns the string representation.
  5762  //
  5763  // API parameter values that are decorated as "sensitive" in the API will not
  5764  // be included in the string output. The member name will be present, but the
  5765  // value will be replaced with "sensitive".
  5766  func (s ListAppsListsOutput) String() string {
  5767  	return awsutil.Prettify(s)
  5768  }
  5769  
  5770  // GoString returns the string representation.
  5771  //
  5772  // API parameter values that are decorated as "sensitive" in the API will not
  5773  // be included in the string output. The member name will be present, but the
  5774  // value will be replaced with "sensitive".
  5775  func (s ListAppsListsOutput) GoString() string {
  5776  	return s.String()
  5777  }
  5778  
  5779  // SetAppsLists sets the AppsLists field's value.
  5780  func (s *ListAppsListsOutput) SetAppsLists(v []*AppsListDataSummary) *ListAppsListsOutput {
  5781  	s.AppsLists = v
  5782  	return s
  5783  }
  5784  
  5785  // SetNextToken sets the NextToken field's value.
  5786  func (s *ListAppsListsOutput) SetNextToken(v string) *ListAppsListsOutput {
  5787  	s.NextToken = &v
  5788  	return s
  5789  }
  5790  
  5791  type ListComplianceStatusInput struct {
  5792  	_ struct{} `type:"structure"`
  5793  
  5794  	// Specifies the number of PolicyComplianceStatus objects that you want Firewall
  5795  	// Manager to return for this request. If you have more PolicyComplianceStatus
  5796  	// objects than the number that you specify for MaxResults, the response includes
  5797  	// a NextToken value that you can use to get another batch of PolicyComplianceStatus
  5798  	// objects.
  5799  	MaxResults *int64 `min:"1" type:"integer"`
  5800  
  5801  	// If you specify a value for MaxResults and you have more PolicyComplianceStatus
  5802  	// objects than the number that you specify for MaxResults, Firewall Manager
  5803  	// returns a NextToken value in the response that allows you to list another
  5804  	// group of PolicyComplianceStatus objects. For the second and subsequent ListComplianceStatus
  5805  	// requests, specify the value of NextToken from the previous response to get
  5806  	// information about another batch of PolicyComplianceStatus objects.
  5807  	NextToken *string `min:"1" type:"string"`
  5808  
  5809  	// The ID of the Firewall Manager policy that you want the details for.
  5810  	//
  5811  	// PolicyId is a required field
  5812  	PolicyId *string `min:"36" type:"string" required:"true"`
  5813  }
  5814  
  5815  // String returns the string representation.
  5816  //
  5817  // API parameter values that are decorated as "sensitive" in the API will not
  5818  // be included in the string output. The member name will be present, but the
  5819  // value will be replaced with "sensitive".
  5820  func (s ListComplianceStatusInput) String() string {
  5821  	return awsutil.Prettify(s)
  5822  }
  5823  
  5824  // GoString returns the string representation.
  5825  //
  5826  // API parameter values that are decorated as "sensitive" in the API will not
  5827  // be included in the string output. The member name will be present, but the
  5828  // value will be replaced with "sensitive".
  5829  func (s ListComplianceStatusInput) GoString() string {
  5830  	return s.String()
  5831  }
  5832  
  5833  // Validate inspects the fields of the type to determine if they are valid.
  5834  func (s *ListComplianceStatusInput) Validate() error {
  5835  	invalidParams := request.ErrInvalidParams{Context: "ListComplianceStatusInput"}
  5836  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5837  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5838  	}
  5839  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  5840  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  5841  	}
  5842  	if s.PolicyId == nil {
  5843  		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
  5844  	}
  5845  	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
  5846  		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
  5847  	}
  5848  
  5849  	if invalidParams.Len() > 0 {
  5850  		return invalidParams
  5851  	}
  5852  	return nil
  5853  }
  5854  
  5855  // SetMaxResults sets the MaxResults field's value.
  5856  func (s *ListComplianceStatusInput) SetMaxResults(v int64) *ListComplianceStatusInput {
  5857  	s.MaxResults = &v
  5858  	return s
  5859  }
  5860  
  5861  // SetNextToken sets the NextToken field's value.
  5862  func (s *ListComplianceStatusInput) SetNextToken(v string) *ListComplianceStatusInput {
  5863  	s.NextToken = &v
  5864  	return s
  5865  }
  5866  
  5867  // SetPolicyId sets the PolicyId field's value.
  5868  func (s *ListComplianceStatusInput) SetPolicyId(v string) *ListComplianceStatusInput {
  5869  	s.PolicyId = &v
  5870  	return s
  5871  }
  5872  
  5873  type ListComplianceStatusOutput struct {
  5874  	_ struct{} `type:"structure"`
  5875  
  5876  	// If you have more PolicyComplianceStatus objects than the number that you
  5877  	// specified for MaxResults in the request, the response includes a NextToken
  5878  	// value. To list more PolicyComplianceStatus objects, submit another ListComplianceStatus
  5879  	// request, and specify the NextToken value from the response in the NextToken
  5880  	// value in the next request.
  5881  	NextToken *string `min:"1" type:"string"`
  5882  
  5883  	// An array of PolicyComplianceStatus objects.
  5884  	PolicyComplianceStatusList []*PolicyComplianceStatus `type:"list"`
  5885  }
  5886  
  5887  // String returns the string representation.
  5888  //
  5889  // API parameter values that are decorated as "sensitive" in the API will not
  5890  // be included in the string output. The member name will be present, but the
  5891  // value will be replaced with "sensitive".
  5892  func (s ListComplianceStatusOutput) String() string {
  5893  	return awsutil.Prettify(s)
  5894  }
  5895  
  5896  // GoString returns the string representation.
  5897  //
  5898  // API parameter values that are decorated as "sensitive" in the API will not
  5899  // be included in the string output. The member name will be present, but the
  5900  // value will be replaced with "sensitive".
  5901  func (s ListComplianceStatusOutput) GoString() string {
  5902  	return s.String()
  5903  }
  5904  
  5905  // SetNextToken sets the NextToken field's value.
  5906  func (s *ListComplianceStatusOutput) SetNextToken(v string) *ListComplianceStatusOutput {
  5907  	s.NextToken = &v
  5908  	return s
  5909  }
  5910  
  5911  // SetPolicyComplianceStatusList sets the PolicyComplianceStatusList field's value.
  5912  func (s *ListComplianceStatusOutput) SetPolicyComplianceStatusList(v []*PolicyComplianceStatus) *ListComplianceStatusOutput {
  5913  	s.PolicyComplianceStatusList = v
  5914  	return s
  5915  }
  5916  
  5917  type ListMemberAccountsInput struct {
  5918  	_ struct{} `type:"structure"`
  5919  
  5920  	// Specifies the number of member account IDs that you want Firewall Manager
  5921  	// to return for this request. If you have more IDs than the number that you
  5922  	// specify for MaxResults, the response includes a NextToken value that you
  5923  	// can use to get another batch of member account IDs.
  5924  	MaxResults *int64 `min:"1" type:"integer"`
  5925  
  5926  	// If you specify a value for MaxResults and you have more account IDs than
  5927  	// the number that you specify for MaxResults, Firewall Manager returns a NextToken
  5928  	// value in the response that allows you to list another group of IDs. For the
  5929  	// second and subsequent ListMemberAccountsRequest requests, specify the value
  5930  	// of NextToken from the previous response to get information about another
  5931  	// batch of member account IDs.
  5932  	NextToken *string `min:"1" type:"string"`
  5933  }
  5934  
  5935  // String returns the string representation.
  5936  //
  5937  // API parameter values that are decorated as "sensitive" in the API will not
  5938  // be included in the string output. The member name will be present, but the
  5939  // value will be replaced with "sensitive".
  5940  func (s ListMemberAccountsInput) String() string {
  5941  	return awsutil.Prettify(s)
  5942  }
  5943  
  5944  // GoString returns the string representation.
  5945  //
  5946  // API parameter values that are decorated as "sensitive" in the API will not
  5947  // be included in the string output. The member name will be present, but the
  5948  // value will be replaced with "sensitive".
  5949  func (s ListMemberAccountsInput) GoString() string {
  5950  	return s.String()
  5951  }
  5952  
  5953  // Validate inspects the fields of the type to determine if they are valid.
  5954  func (s *ListMemberAccountsInput) Validate() error {
  5955  	invalidParams := request.ErrInvalidParams{Context: "ListMemberAccountsInput"}
  5956  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5957  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5958  	}
  5959  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  5960  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  5961  	}
  5962  
  5963  	if invalidParams.Len() > 0 {
  5964  		return invalidParams
  5965  	}
  5966  	return nil
  5967  }
  5968  
  5969  // SetMaxResults sets the MaxResults field's value.
  5970  func (s *ListMemberAccountsInput) SetMaxResults(v int64) *ListMemberAccountsInput {
  5971  	s.MaxResults = &v
  5972  	return s
  5973  }
  5974  
  5975  // SetNextToken sets the NextToken field's value.
  5976  func (s *ListMemberAccountsInput) SetNextToken(v string) *ListMemberAccountsInput {
  5977  	s.NextToken = &v
  5978  	return s
  5979  }
  5980  
  5981  type ListMemberAccountsOutput struct {
  5982  	_ struct{} `type:"structure"`
  5983  
  5984  	// An array of account IDs.
  5985  	MemberAccounts []*string `type:"list"`
  5986  
  5987  	// If you have more member account IDs than the number that you specified for
  5988  	// MaxResults in the request, the response includes a NextToken value. To list
  5989  	// more IDs, submit another ListMemberAccounts request, and specify the NextToken
  5990  	// value from the response in the NextToken value in the next request.
  5991  	NextToken *string `min:"1" type:"string"`
  5992  }
  5993  
  5994  // String returns the string representation.
  5995  //
  5996  // API parameter values that are decorated as "sensitive" in the API will not
  5997  // be included in the string output. The member name will be present, but the
  5998  // value will be replaced with "sensitive".
  5999  func (s ListMemberAccountsOutput) String() string {
  6000  	return awsutil.Prettify(s)
  6001  }
  6002  
  6003  // GoString returns the string representation.
  6004  //
  6005  // API parameter values that are decorated as "sensitive" in the API will not
  6006  // be included in the string output. The member name will be present, but the
  6007  // value will be replaced with "sensitive".
  6008  func (s ListMemberAccountsOutput) GoString() string {
  6009  	return s.String()
  6010  }
  6011  
  6012  // SetMemberAccounts sets the MemberAccounts field's value.
  6013  func (s *ListMemberAccountsOutput) SetMemberAccounts(v []*string) *ListMemberAccountsOutput {
  6014  	s.MemberAccounts = v
  6015  	return s
  6016  }
  6017  
  6018  // SetNextToken sets the NextToken field's value.
  6019  func (s *ListMemberAccountsOutput) SetNextToken(v string) *ListMemberAccountsOutput {
  6020  	s.NextToken = &v
  6021  	return s
  6022  }
  6023  
  6024  type ListPoliciesInput struct {
  6025  	_ struct{} `type:"structure"`
  6026  
  6027  	// Specifies the number of PolicySummary objects that you want Firewall Manager
  6028  	// to return for this request. If you have more PolicySummary objects than the
  6029  	// number that you specify for MaxResults, the response includes a NextToken
  6030  	// value that you can use to get another batch of PolicySummary objects.
  6031  	MaxResults *int64 `min:"1" type:"integer"`
  6032  
  6033  	// If you specify a value for MaxResults and you have more PolicySummary objects
  6034  	// than the number that you specify for MaxResults, Firewall Manager returns
  6035  	// a NextToken value in the response that allows you to list another group of
  6036  	// PolicySummary objects. For the second and subsequent ListPolicies requests,
  6037  	// specify the value of NextToken from the previous response to get information
  6038  	// about another batch of PolicySummary objects.
  6039  	NextToken *string `min:"1" type:"string"`
  6040  }
  6041  
  6042  // String returns the string representation.
  6043  //
  6044  // API parameter values that are decorated as "sensitive" in the API will not
  6045  // be included in the string output. The member name will be present, but the
  6046  // value will be replaced with "sensitive".
  6047  func (s ListPoliciesInput) String() string {
  6048  	return awsutil.Prettify(s)
  6049  }
  6050  
  6051  // GoString returns the string representation.
  6052  //
  6053  // API parameter values that are decorated as "sensitive" in the API will not
  6054  // be included in the string output. The member name will be present, but the
  6055  // value will be replaced with "sensitive".
  6056  func (s ListPoliciesInput) GoString() string {
  6057  	return s.String()
  6058  }
  6059  
  6060  // Validate inspects the fields of the type to determine if they are valid.
  6061  func (s *ListPoliciesInput) Validate() error {
  6062  	invalidParams := request.ErrInvalidParams{Context: "ListPoliciesInput"}
  6063  	if s.MaxResults != nil && *s.MaxResults < 1 {
  6064  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  6065  	}
  6066  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  6067  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  6068  	}
  6069  
  6070  	if invalidParams.Len() > 0 {
  6071  		return invalidParams
  6072  	}
  6073  	return nil
  6074  }
  6075  
  6076  // SetMaxResults sets the MaxResults field's value.
  6077  func (s *ListPoliciesInput) SetMaxResults(v int64) *ListPoliciesInput {
  6078  	s.MaxResults = &v
  6079  	return s
  6080  }
  6081  
  6082  // SetNextToken sets the NextToken field's value.
  6083  func (s *ListPoliciesInput) SetNextToken(v string) *ListPoliciesInput {
  6084  	s.NextToken = &v
  6085  	return s
  6086  }
  6087  
  6088  type ListPoliciesOutput struct {
  6089  	_ struct{} `type:"structure"`
  6090  
  6091  	// If you have more PolicySummary objects than the number that you specified
  6092  	// for MaxResults in the request, the response includes a NextToken value. To
  6093  	// list more PolicySummary objects, submit another ListPolicies request, and
  6094  	// specify the NextToken value from the response in the NextToken value in the
  6095  	// next request.
  6096  	NextToken *string `min:"1" type:"string"`
  6097  
  6098  	// An array of PolicySummary objects.
  6099  	PolicyList []*PolicySummary `type:"list"`
  6100  }
  6101  
  6102  // String returns the string representation.
  6103  //
  6104  // API parameter values that are decorated as "sensitive" in the API will not
  6105  // be included in the string output. The member name will be present, but the
  6106  // value will be replaced with "sensitive".
  6107  func (s ListPoliciesOutput) String() string {
  6108  	return awsutil.Prettify(s)
  6109  }
  6110  
  6111  // GoString returns the string representation.
  6112  //
  6113  // API parameter values that are decorated as "sensitive" in the API will not
  6114  // be included in the string output. The member name will be present, but the
  6115  // value will be replaced with "sensitive".
  6116  func (s ListPoliciesOutput) GoString() string {
  6117  	return s.String()
  6118  }
  6119  
  6120  // SetNextToken sets the NextToken field's value.
  6121  func (s *ListPoliciesOutput) SetNextToken(v string) *ListPoliciesOutput {
  6122  	s.NextToken = &v
  6123  	return s
  6124  }
  6125  
  6126  // SetPolicyList sets the PolicyList field's value.
  6127  func (s *ListPoliciesOutput) SetPolicyList(v []*PolicySummary) *ListPoliciesOutput {
  6128  	s.PolicyList = v
  6129  	return s
  6130  }
  6131  
  6132  type ListProtocolsListsInput struct {
  6133  	_ struct{} `type:"structure"`
  6134  
  6135  	// Specifies whether the lists to retrieve are default lists owned by Firewall
  6136  	// Manager.
  6137  	DefaultLists *bool `type:"boolean"`
  6138  
  6139  	// The maximum number of objects that you want Firewall Manager to return for
  6140  	// this request. If more objects are available, in the response, Firewall Manager
  6141  	// provides a NextToken value that you can use in a subsequent call to get the
  6142  	// next batch of objects.
  6143  	//
  6144  	// If you don't specify this, Firewall Manager returns all available objects.
  6145  	//
  6146  	// MaxResults is a required field
  6147  	MaxResults *int64 `min:"1" type:"integer" required:"true"`
  6148  
  6149  	// If you specify a value for MaxResults in your list request, and you have
  6150  	// more objects than the maximum, Firewall Manager returns this token in the
  6151  	// response. For all but the first request, you provide the token returned by
  6152  	// the prior request in the request parameters, to retrieve the next batch of
  6153  	// objects.
  6154  	NextToken *string `min:"1" type:"string"`
  6155  }
  6156  
  6157  // String returns the string representation.
  6158  //
  6159  // API parameter values that are decorated as "sensitive" in the API will not
  6160  // be included in the string output. The member name will be present, but the
  6161  // value will be replaced with "sensitive".
  6162  func (s ListProtocolsListsInput) String() string {
  6163  	return awsutil.Prettify(s)
  6164  }
  6165  
  6166  // GoString returns the string representation.
  6167  //
  6168  // API parameter values that are decorated as "sensitive" in the API will not
  6169  // be included in the string output. The member name will be present, but the
  6170  // value will be replaced with "sensitive".
  6171  func (s ListProtocolsListsInput) GoString() string {
  6172  	return s.String()
  6173  }
  6174  
  6175  // Validate inspects the fields of the type to determine if they are valid.
  6176  func (s *ListProtocolsListsInput) Validate() error {
  6177  	invalidParams := request.ErrInvalidParams{Context: "ListProtocolsListsInput"}
  6178  	if s.MaxResults == nil {
  6179  		invalidParams.Add(request.NewErrParamRequired("MaxResults"))
  6180  	}
  6181  	if s.MaxResults != nil && *s.MaxResults < 1 {
  6182  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  6183  	}
  6184  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  6185  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  6186  	}
  6187  
  6188  	if invalidParams.Len() > 0 {
  6189  		return invalidParams
  6190  	}
  6191  	return nil
  6192  }
  6193  
  6194  // SetDefaultLists sets the DefaultLists field's value.
  6195  func (s *ListProtocolsListsInput) SetDefaultLists(v bool) *ListProtocolsListsInput {
  6196  	s.DefaultLists = &v
  6197  	return s
  6198  }
  6199  
  6200  // SetMaxResults sets the MaxResults field's value.
  6201  func (s *ListProtocolsListsInput) SetMaxResults(v int64) *ListProtocolsListsInput {
  6202  	s.MaxResults = &v
  6203  	return s
  6204  }
  6205  
  6206  // SetNextToken sets the NextToken field's value.
  6207  func (s *ListProtocolsListsInput) SetNextToken(v string) *ListProtocolsListsInput {
  6208  	s.NextToken = &v
  6209  	return s
  6210  }
  6211  
  6212  type ListProtocolsListsOutput struct {
  6213  	_ struct{} `type:"structure"`
  6214  
  6215  	// If you specify a value for MaxResults in your list request, and you have
  6216  	// more objects than the maximum, Firewall Manager returns this token in the
  6217  	// response. You can use this token in subsequent requests to retrieve the next
  6218  	// batch of objects.
  6219  	NextToken *string `min:"1" type:"string"`
  6220  
  6221  	// An array of ProtocolsListDataSummary objects.
  6222  	ProtocolsLists []*ProtocolsListDataSummary `type:"list"`
  6223  }
  6224  
  6225  // String returns the string representation.
  6226  //
  6227  // API parameter values that are decorated as "sensitive" in the API will not
  6228  // be included in the string output. The member name will be present, but the
  6229  // value will be replaced with "sensitive".
  6230  func (s ListProtocolsListsOutput) String() string {
  6231  	return awsutil.Prettify(s)
  6232  }
  6233  
  6234  // GoString returns the string representation.
  6235  //
  6236  // API parameter values that are decorated as "sensitive" in the API will not
  6237  // be included in the string output. The member name will be present, but the
  6238  // value will be replaced with "sensitive".
  6239  func (s ListProtocolsListsOutput) GoString() string {
  6240  	return s.String()
  6241  }
  6242  
  6243  // SetNextToken sets the NextToken field's value.
  6244  func (s *ListProtocolsListsOutput) SetNextToken(v string) *ListProtocolsListsOutput {
  6245  	s.NextToken = &v
  6246  	return s
  6247  }
  6248  
  6249  // SetProtocolsLists sets the ProtocolsLists field's value.
  6250  func (s *ListProtocolsListsOutput) SetProtocolsLists(v []*ProtocolsListDataSummary) *ListProtocolsListsOutput {
  6251  	s.ProtocolsLists = v
  6252  	return s
  6253  }
  6254  
  6255  type ListTagsForResourceInput struct {
  6256  	_ struct{} `type:"structure"`
  6257  
  6258  	// The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall
  6259  	// Manager resources that support tagging are policies, applications lists,
  6260  	// and protocols lists.
  6261  	//
  6262  	// ResourceArn is a required field
  6263  	ResourceArn *string `min:"1" type:"string" required:"true"`
  6264  }
  6265  
  6266  // String returns the string representation.
  6267  //
  6268  // API parameter values that are decorated as "sensitive" in the API will not
  6269  // be included in the string output. The member name will be present, but the
  6270  // value will be replaced with "sensitive".
  6271  func (s ListTagsForResourceInput) String() string {
  6272  	return awsutil.Prettify(s)
  6273  }
  6274  
  6275  // GoString returns the string representation.
  6276  //
  6277  // API parameter values that are decorated as "sensitive" in the API will not
  6278  // be included in the string output. The member name will be present, but the
  6279  // value will be replaced with "sensitive".
  6280  func (s ListTagsForResourceInput) GoString() string {
  6281  	return s.String()
  6282  }
  6283  
  6284  // Validate inspects the fields of the type to determine if they are valid.
  6285  func (s *ListTagsForResourceInput) Validate() error {
  6286  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
  6287  	if s.ResourceArn == nil {
  6288  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  6289  	}
  6290  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
  6291  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
  6292  	}
  6293  
  6294  	if invalidParams.Len() > 0 {
  6295  		return invalidParams
  6296  	}
  6297  	return nil
  6298  }
  6299  
  6300  // SetResourceArn sets the ResourceArn field's value.
  6301  func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
  6302  	s.ResourceArn = &v
  6303  	return s
  6304  }
  6305  
  6306  type ListTagsForResourceOutput struct {
  6307  	_ struct{} `type:"structure"`
  6308  
  6309  	// The tags associated with the resource.
  6310  	TagList []*Tag `type:"list"`
  6311  }
  6312  
  6313  // String returns the string representation.
  6314  //
  6315  // API parameter values that are decorated as "sensitive" in the API will not
  6316  // be included in the string output. The member name will be present, but the
  6317  // value will be replaced with "sensitive".
  6318  func (s ListTagsForResourceOutput) String() string {
  6319  	return awsutil.Prettify(s)
  6320  }
  6321  
  6322  // GoString returns the string representation.
  6323  //
  6324  // API parameter values that are decorated as "sensitive" in the API will not
  6325  // be included in the string output. The member name will be present, but the
  6326  // value will be replaced with "sensitive".
  6327  func (s ListTagsForResourceOutput) GoString() string {
  6328  	return s.String()
  6329  }
  6330  
  6331  // SetTagList sets the TagList field's value.
  6332  func (s *ListTagsForResourceOutput) SetTagList(v []*Tag) *ListTagsForResourceOutput {
  6333  	s.TagList = v
  6334  	return s
  6335  }
  6336  
  6337  // Violation detail for an internet gateway route with an inactive state in
  6338  // the customer subnet route table or Network Firewall subnet route table.
  6339  type NetworkFirewallBlackHoleRouteDetectedViolation struct {
  6340  	_ struct{} `type:"structure"`
  6341  
  6342  	// Information about the route table ID.
  6343  	RouteTableId *string `min:"1" type:"string"`
  6344  
  6345  	// Information about the route or routes that are in violation.
  6346  	ViolatingRoutes []*Route `type:"list"`
  6347  
  6348  	// The subnet that has an inactive state.
  6349  	ViolationTarget *string `type:"string"`
  6350  
  6351  	// Information about the VPC ID.
  6352  	VpcId *string `min:"1" type:"string"`
  6353  }
  6354  
  6355  // String returns the string representation.
  6356  //
  6357  // API parameter values that are decorated as "sensitive" in the API will not
  6358  // be included in the string output. The member name will be present, but the
  6359  // value will be replaced with "sensitive".
  6360  func (s NetworkFirewallBlackHoleRouteDetectedViolation) String() string {
  6361  	return awsutil.Prettify(s)
  6362  }
  6363  
  6364  // GoString returns the string representation.
  6365  //
  6366  // API parameter values that are decorated as "sensitive" in the API will not
  6367  // be included in the string output. The member name will be present, but the
  6368  // value will be replaced with "sensitive".
  6369  func (s NetworkFirewallBlackHoleRouteDetectedViolation) GoString() string {
  6370  	return s.String()
  6371  }
  6372  
  6373  // SetRouteTableId sets the RouteTableId field's value.
  6374  func (s *NetworkFirewallBlackHoleRouteDetectedViolation) SetRouteTableId(v string) *NetworkFirewallBlackHoleRouteDetectedViolation {
  6375  	s.RouteTableId = &v
  6376  	return s
  6377  }
  6378  
  6379  // SetViolatingRoutes sets the ViolatingRoutes field's value.
  6380  func (s *NetworkFirewallBlackHoleRouteDetectedViolation) SetViolatingRoutes(v []*Route) *NetworkFirewallBlackHoleRouteDetectedViolation {
  6381  	s.ViolatingRoutes = v
  6382  	return s
  6383  }
  6384  
  6385  // SetViolationTarget sets the ViolationTarget field's value.
  6386  func (s *NetworkFirewallBlackHoleRouteDetectedViolation) SetViolationTarget(v string) *NetworkFirewallBlackHoleRouteDetectedViolation {
  6387  	s.ViolationTarget = &v
  6388  	return s
  6389  }
  6390  
  6391  // SetVpcId sets the VpcId field's value.
  6392  func (s *NetworkFirewallBlackHoleRouteDetectedViolation) SetVpcId(v string) *NetworkFirewallBlackHoleRouteDetectedViolation {
  6393  	s.VpcId = &v
  6394  	return s
  6395  }
  6396  
  6397  // Violation detail for the subnet for which internet traffic that hasn't been
  6398  // inspected.
  6399  type NetworkFirewallInternetTrafficNotInspectedViolation struct {
  6400  	_ struct{} `type:"structure"`
  6401  
  6402  	// The actual firewall subnet routes.
  6403  	ActualFirewallSubnetRoutes []*Route `type:"list"`
  6404  
  6405  	// The actual internet gateway routes.
  6406  	ActualInternetGatewayRoutes []*Route `type:"list"`
  6407  
  6408  	// Information about the subnet route table for the current firewall.
  6409  	CurrentFirewallSubnetRouteTable *string `min:"1" type:"string"`
  6410  
  6411  	// The current route table for the internet gateway.
  6412  	CurrentInternetGatewayRouteTable *string `min:"1" type:"string"`
  6413  
  6414  	// The expected endpoint for the current firewall.
  6415  	ExpectedFirewallEndpoint *string `min:"1" type:"string"`
  6416  
  6417  	// The firewall subnet routes that are expected.
  6418  	ExpectedFirewallSubnetRoutes []*ExpectedRoute `type:"list"`
  6419  
  6420  	// The internet gateway routes that are expected.
  6421  	ExpectedInternetGatewayRoutes []*ExpectedRoute `type:"list"`
  6422  
  6423  	// The firewall subnet ID.
  6424  	FirewallSubnetId *string `min:"1" type:"string"`
  6425  
  6426  	// The internet gateway ID.
  6427  	InternetGatewayId *string `min:"1" type:"string"`
  6428  
  6429  	// Information about whether the route table is used in another Availability
  6430  	// Zone.
  6431  	IsRouteTableUsedInDifferentAZ *bool `type:"boolean"`
  6432  
  6433  	// Information about the route table ID.
  6434  	RouteTableId *string `min:"1" type:"string"`
  6435  
  6436  	// The subnet Availability Zone.
  6437  	SubnetAvailabilityZone *string `type:"string"`
  6438  
  6439  	// The subnet ID.
  6440  	SubnetId *string `min:"1" type:"string"`
  6441  
  6442  	// The route or routes that are in violation.
  6443  	ViolatingRoutes []*Route `type:"list"`
  6444  
  6445  	// Information about the VPC ID.
  6446  	VpcId *string `min:"1" type:"string"`
  6447  }
  6448  
  6449  // String returns the string representation.
  6450  //
  6451  // API parameter values that are decorated as "sensitive" in the API will not
  6452  // be included in the string output. The member name will be present, but the
  6453  // value will be replaced with "sensitive".
  6454  func (s NetworkFirewallInternetTrafficNotInspectedViolation) String() string {
  6455  	return awsutil.Prettify(s)
  6456  }
  6457  
  6458  // GoString returns the string representation.
  6459  //
  6460  // API parameter values that are decorated as "sensitive" in the API will not
  6461  // be included in the string output. The member name will be present, but the
  6462  // value will be replaced with "sensitive".
  6463  func (s NetworkFirewallInternetTrafficNotInspectedViolation) GoString() string {
  6464  	return s.String()
  6465  }
  6466  
  6467  // SetActualFirewallSubnetRoutes sets the ActualFirewallSubnetRoutes field's value.
  6468  func (s *NetworkFirewallInternetTrafficNotInspectedViolation) SetActualFirewallSubnetRoutes(v []*Route) *NetworkFirewallInternetTrafficNotInspectedViolation {
  6469  	s.ActualFirewallSubnetRoutes = v
  6470  	return s
  6471  }
  6472  
  6473  // SetActualInternetGatewayRoutes sets the ActualInternetGatewayRoutes field's value.
  6474  func (s *NetworkFirewallInternetTrafficNotInspectedViolation) SetActualInternetGatewayRoutes(v []*Route) *NetworkFirewallInternetTrafficNotInspectedViolation {
  6475  	s.ActualInternetGatewayRoutes = v
  6476  	return s
  6477  }
  6478  
  6479  // SetCurrentFirewallSubnetRouteTable sets the CurrentFirewallSubnetRouteTable field's value.
  6480  func (s *NetworkFirewallInternetTrafficNotInspectedViolation) SetCurrentFirewallSubnetRouteTable(v string) *NetworkFirewallInternetTrafficNotInspectedViolation {
  6481  	s.CurrentFirewallSubnetRouteTable = &v
  6482  	return s
  6483  }
  6484  
  6485  // SetCurrentInternetGatewayRouteTable sets the CurrentInternetGatewayRouteTable field's value.
  6486  func (s *NetworkFirewallInternetTrafficNotInspectedViolation) SetCurrentInternetGatewayRouteTable(v string) *NetworkFirewallInternetTrafficNotInspectedViolation {
  6487  	s.CurrentInternetGatewayRouteTable = &v
  6488  	return s
  6489  }
  6490  
  6491  // SetExpectedFirewallEndpoint sets the ExpectedFirewallEndpoint field's value.
  6492  func (s *NetworkFirewallInternetTrafficNotInspectedViolation) SetExpectedFirewallEndpoint(v string) *NetworkFirewallInternetTrafficNotInspectedViolation {
  6493  	s.ExpectedFirewallEndpoint = &v
  6494  	return s
  6495  }
  6496  
  6497  // SetExpectedFirewallSubnetRoutes sets the ExpectedFirewallSubnetRoutes field's value.
  6498  func (s *NetworkFirewallInternetTrafficNotInspectedViolation) SetExpectedFirewallSubnetRoutes(v []*ExpectedRoute) *NetworkFirewallInternetTrafficNotInspectedViolation {
  6499  	s.ExpectedFirewallSubnetRoutes = v
  6500  	return s
  6501  }
  6502  
  6503  // SetExpectedInternetGatewayRoutes sets the ExpectedInternetGatewayRoutes field's value.
  6504  func (s *NetworkFirewallInternetTrafficNotInspectedViolation) SetExpectedInternetGatewayRoutes(v []*ExpectedRoute) *NetworkFirewallInternetTrafficNotInspectedViolation {
  6505  	s.ExpectedInternetGatewayRoutes = v
  6506  	return s
  6507  }
  6508  
  6509  // SetFirewallSubnetId sets the FirewallSubnetId field's value.
  6510  func (s *NetworkFirewallInternetTrafficNotInspectedViolation) SetFirewallSubnetId(v string) *NetworkFirewallInternetTrafficNotInspectedViolation {
  6511  	s.FirewallSubnetId = &v
  6512  	return s
  6513  }
  6514  
  6515  // SetInternetGatewayId sets the InternetGatewayId field's value.
  6516  func (s *NetworkFirewallInternetTrafficNotInspectedViolation) SetInternetGatewayId(v string) *NetworkFirewallInternetTrafficNotInspectedViolation {
  6517  	s.InternetGatewayId = &v
  6518  	return s
  6519  }
  6520  
  6521  // SetIsRouteTableUsedInDifferentAZ sets the IsRouteTableUsedInDifferentAZ field's value.
  6522  func (s *NetworkFirewallInternetTrafficNotInspectedViolation) SetIsRouteTableUsedInDifferentAZ(v bool) *NetworkFirewallInternetTrafficNotInspectedViolation {
  6523  	s.IsRouteTableUsedInDifferentAZ = &v
  6524  	return s
  6525  }
  6526  
  6527  // SetRouteTableId sets the RouteTableId field's value.
  6528  func (s *NetworkFirewallInternetTrafficNotInspectedViolation) SetRouteTableId(v string) *NetworkFirewallInternetTrafficNotInspectedViolation {
  6529  	s.RouteTableId = &v
  6530  	return s
  6531  }
  6532  
  6533  // SetSubnetAvailabilityZone sets the SubnetAvailabilityZone field's value.
  6534  func (s *NetworkFirewallInternetTrafficNotInspectedViolation) SetSubnetAvailabilityZone(v string) *NetworkFirewallInternetTrafficNotInspectedViolation {
  6535  	s.SubnetAvailabilityZone = &v
  6536  	return s
  6537  }
  6538  
  6539  // SetSubnetId sets the SubnetId field's value.
  6540  func (s *NetworkFirewallInternetTrafficNotInspectedViolation) SetSubnetId(v string) *NetworkFirewallInternetTrafficNotInspectedViolation {
  6541  	s.SubnetId = &v
  6542  	return s
  6543  }
  6544  
  6545  // SetViolatingRoutes sets the ViolatingRoutes field's value.
  6546  func (s *NetworkFirewallInternetTrafficNotInspectedViolation) SetViolatingRoutes(v []*Route) *NetworkFirewallInternetTrafficNotInspectedViolation {
  6547  	s.ViolatingRoutes = v
  6548  	return s
  6549  }
  6550  
  6551  // SetVpcId sets the VpcId field's value.
  6552  func (s *NetworkFirewallInternetTrafficNotInspectedViolation) SetVpcId(v string) *NetworkFirewallInternetTrafficNotInspectedViolation {
  6553  	s.VpcId = &v
  6554  	return s
  6555  }
  6556  
  6557  // Violation detail for the improperly configured subnet route. It's possible
  6558  // there is a missing route table route, or a configuration that causes traffic
  6559  // to cross an Availability Zone boundary.
  6560  type NetworkFirewallInvalidRouteConfigurationViolation struct {
  6561  	_ struct{} `type:"structure"`
  6562  
  6563  	// The actual firewall endpoint.
  6564  	ActualFirewallEndpoint *string `min:"1" type:"string"`
  6565  
  6566  	// The actual subnet ID for the firewall.
  6567  	ActualFirewallSubnetId *string `min:"1" type:"string"`
  6568  
  6569  	// The actual firewall subnet routes that are expected.
  6570  	ActualFirewallSubnetRoutes []*Route `type:"list"`
  6571  
  6572  	// The actual internet gateway routes.
  6573  	ActualInternetGatewayRoutes []*Route `type:"list"`
  6574  
  6575  	// The subnets that are affected.
  6576  	AffectedSubnets []*string `type:"list"`
  6577  
  6578  	// The subnet route table for the current firewall.
  6579  	CurrentFirewallSubnetRouteTable *string `min:"1" type:"string"`
  6580  
  6581  	// The route table for the current internet gateway.
  6582  	CurrentInternetGatewayRouteTable *string `min:"1" type:"string"`
  6583  
  6584  	// The firewall endpoint that's expected.
  6585  	ExpectedFirewallEndpoint *string `min:"1" type:"string"`
  6586  
  6587  	// The expected subnet ID for the firewall.
  6588  	ExpectedFirewallSubnetId *string `min:"1" type:"string"`
  6589  
  6590  	// The firewall subnet routes that are expected.
  6591  	ExpectedFirewallSubnetRoutes []*ExpectedRoute `type:"list"`
  6592  
  6593  	// The expected routes for the internet gateway.
  6594  	ExpectedInternetGatewayRoutes []*ExpectedRoute `type:"list"`
  6595  
  6596  	// The internet gateway ID.
  6597  	InternetGatewayId *string `min:"1" type:"string"`
  6598  
  6599  	// Information about whether the route table is used in another Availability
  6600  	// Zone.
  6601  	IsRouteTableUsedInDifferentAZ *bool `type:"boolean"`
  6602  
  6603  	// The route table ID.
  6604  	RouteTableId *string `min:"1" type:"string"`
  6605  
  6606  	// The route that's in violation.
  6607  	ViolatingRoute *Route `type:"structure"`
  6608  
  6609  	// Information about the VPC ID.
  6610  	VpcId *string `min:"1" type:"string"`
  6611  }
  6612  
  6613  // String returns the string representation.
  6614  //
  6615  // API parameter values that are decorated as "sensitive" in the API will not
  6616  // be included in the string output. The member name will be present, but the
  6617  // value will be replaced with "sensitive".
  6618  func (s NetworkFirewallInvalidRouteConfigurationViolation) String() string {
  6619  	return awsutil.Prettify(s)
  6620  }
  6621  
  6622  // GoString returns the string representation.
  6623  //
  6624  // API parameter values that are decorated as "sensitive" in the API will not
  6625  // be included in the string output. The member name will be present, but the
  6626  // value will be replaced with "sensitive".
  6627  func (s NetworkFirewallInvalidRouteConfigurationViolation) GoString() string {
  6628  	return s.String()
  6629  }
  6630  
  6631  // SetActualFirewallEndpoint sets the ActualFirewallEndpoint field's value.
  6632  func (s *NetworkFirewallInvalidRouteConfigurationViolation) SetActualFirewallEndpoint(v string) *NetworkFirewallInvalidRouteConfigurationViolation {
  6633  	s.ActualFirewallEndpoint = &v
  6634  	return s
  6635  }
  6636  
  6637  // SetActualFirewallSubnetId sets the ActualFirewallSubnetId field's value.
  6638  func (s *NetworkFirewallInvalidRouteConfigurationViolation) SetActualFirewallSubnetId(v string) *NetworkFirewallInvalidRouteConfigurationViolation {
  6639  	s.ActualFirewallSubnetId = &v
  6640  	return s
  6641  }
  6642  
  6643  // SetActualFirewallSubnetRoutes sets the ActualFirewallSubnetRoutes field's value.
  6644  func (s *NetworkFirewallInvalidRouteConfigurationViolation) SetActualFirewallSubnetRoutes(v []*Route) *NetworkFirewallInvalidRouteConfigurationViolation {
  6645  	s.ActualFirewallSubnetRoutes = v
  6646  	return s
  6647  }
  6648  
  6649  // SetActualInternetGatewayRoutes sets the ActualInternetGatewayRoutes field's value.
  6650  func (s *NetworkFirewallInvalidRouteConfigurationViolation) SetActualInternetGatewayRoutes(v []*Route) *NetworkFirewallInvalidRouteConfigurationViolation {
  6651  	s.ActualInternetGatewayRoutes = v
  6652  	return s
  6653  }
  6654  
  6655  // SetAffectedSubnets sets the AffectedSubnets field's value.
  6656  func (s *NetworkFirewallInvalidRouteConfigurationViolation) SetAffectedSubnets(v []*string) *NetworkFirewallInvalidRouteConfigurationViolation {
  6657  	s.AffectedSubnets = v
  6658  	return s
  6659  }
  6660  
  6661  // SetCurrentFirewallSubnetRouteTable sets the CurrentFirewallSubnetRouteTable field's value.
  6662  func (s *NetworkFirewallInvalidRouteConfigurationViolation) SetCurrentFirewallSubnetRouteTable(v string) *NetworkFirewallInvalidRouteConfigurationViolation {
  6663  	s.CurrentFirewallSubnetRouteTable = &v
  6664  	return s
  6665  }
  6666  
  6667  // SetCurrentInternetGatewayRouteTable sets the CurrentInternetGatewayRouteTable field's value.
  6668  func (s *NetworkFirewallInvalidRouteConfigurationViolation) SetCurrentInternetGatewayRouteTable(v string) *NetworkFirewallInvalidRouteConfigurationViolation {
  6669  	s.CurrentInternetGatewayRouteTable = &v
  6670  	return s
  6671  }
  6672  
  6673  // SetExpectedFirewallEndpoint sets the ExpectedFirewallEndpoint field's value.
  6674  func (s *NetworkFirewallInvalidRouteConfigurationViolation) SetExpectedFirewallEndpoint(v string) *NetworkFirewallInvalidRouteConfigurationViolation {
  6675  	s.ExpectedFirewallEndpoint = &v
  6676  	return s
  6677  }
  6678  
  6679  // SetExpectedFirewallSubnetId sets the ExpectedFirewallSubnetId field's value.
  6680  func (s *NetworkFirewallInvalidRouteConfigurationViolation) SetExpectedFirewallSubnetId(v string) *NetworkFirewallInvalidRouteConfigurationViolation {
  6681  	s.ExpectedFirewallSubnetId = &v
  6682  	return s
  6683  }
  6684  
  6685  // SetExpectedFirewallSubnetRoutes sets the ExpectedFirewallSubnetRoutes field's value.
  6686  func (s *NetworkFirewallInvalidRouteConfigurationViolation) SetExpectedFirewallSubnetRoutes(v []*ExpectedRoute) *NetworkFirewallInvalidRouteConfigurationViolation {
  6687  	s.ExpectedFirewallSubnetRoutes = v
  6688  	return s
  6689  }
  6690  
  6691  // SetExpectedInternetGatewayRoutes sets the ExpectedInternetGatewayRoutes field's value.
  6692  func (s *NetworkFirewallInvalidRouteConfigurationViolation) SetExpectedInternetGatewayRoutes(v []*ExpectedRoute) *NetworkFirewallInvalidRouteConfigurationViolation {
  6693  	s.ExpectedInternetGatewayRoutes = v
  6694  	return s
  6695  }
  6696  
  6697  // SetInternetGatewayId sets the InternetGatewayId field's value.
  6698  func (s *NetworkFirewallInvalidRouteConfigurationViolation) SetInternetGatewayId(v string) *NetworkFirewallInvalidRouteConfigurationViolation {
  6699  	s.InternetGatewayId = &v
  6700  	return s
  6701  }
  6702  
  6703  // SetIsRouteTableUsedInDifferentAZ sets the IsRouteTableUsedInDifferentAZ field's value.
  6704  func (s *NetworkFirewallInvalidRouteConfigurationViolation) SetIsRouteTableUsedInDifferentAZ(v bool) *NetworkFirewallInvalidRouteConfigurationViolation {
  6705  	s.IsRouteTableUsedInDifferentAZ = &v
  6706  	return s
  6707  }
  6708  
  6709  // SetRouteTableId sets the RouteTableId field's value.
  6710  func (s *NetworkFirewallInvalidRouteConfigurationViolation) SetRouteTableId(v string) *NetworkFirewallInvalidRouteConfigurationViolation {
  6711  	s.RouteTableId = &v
  6712  	return s
  6713  }
  6714  
  6715  // SetViolatingRoute sets the ViolatingRoute field's value.
  6716  func (s *NetworkFirewallInvalidRouteConfigurationViolation) SetViolatingRoute(v *Route) *NetworkFirewallInvalidRouteConfigurationViolation {
  6717  	s.ViolatingRoute = v
  6718  	return s
  6719  }
  6720  
  6721  // SetVpcId sets the VpcId field's value.
  6722  func (s *NetworkFirewallInvalidRouteConfigurationViolation) SetVpcId(v string) *NetworkFirewallInvalidRouteConfigurationViolation {
  6723  	s.VpcId = &v
  6724  	return s
  6725  }
  6726  
  6727  // Violation detail for Network Firewall for a subnet that's not associated
  6728  // to the expected Firewall Manager managed route table.
  6729  type NetworkFirewallMissingExpectedRTViolation struct {
  6730  	_ struct{} `type:"structure"`
  6731  
  6732  	// The Availability Zone of a violating subnet.
  6733  	AvailabilityZone *string `type:"string"`
  6734  
  6735  	// The resource ID of the current route table that's associated with the subnet,
  6736  	// if one is available.
  6737  	CurrentRouteTable *string `min:"1" type:"string"`
  6738  
  6739  	// The resource ID of the route table that should be associated with the subnet.
  6740  	ExpectedRouteTable *string `min:"1" type:"string"`
  6741  
  6742  	// The resource ID of the VPC associated with a violating subnet.
  6743  	VPC *string `min:"1" type:"string"`
  6744  
  6745  	// The ID of the Network Firewall or VPC resource that's in violation.
  6746  	ViolationTarget *string `type:"string"`
  6747  }
  6748  
  6749  // String returns the string representation.
  6750  //
  6751  // API parameter values that are decorated as "sensitive" in the API will not
  6752  // be included in the string output. The member name will be present, but the
  6753  // value will be replaced with "sensitive".
  6754  func (s NetworkFirewallMissingExpectedRTViolation) String() string {
  6755  	return awsutil.Prettify(s)
  6756  }
  6757  
  6758  // GoString returns the string representation.
  6759  //
  6760  // API parameter values that are decorated as "sensitive" in the API will not
  6761  // be included in the string output. The member name will be present, but the
  6762  // value will be replaced with "sensitive".
  6763  func (s NetworkFirewallMissingExpectedRTViolation) GoString() string {
  6764  	return s.String()
  6765  }
  6766  
  6767  // SetAvailabilityZone sets the AvailabilityZone field's value.
  6768  func (s *NetworkFirewallMissingExpectedRTViolation) SetAvailabilityZone(v string) *NetworkFirewallMissingExpectedRTViolation {
  6769  	s.AvailabilityZone = &v
  6770  	return s
  6771  }
  6772  
  6773  // SetCurrentRouteTable sets the CurrentRouteTable field's value.
  6774  func (s *NetworkFirewallMissingExpectedRTViolation) SetCurrentRouteTable(v string) *NetworkFirewallMissingExpectedRTViolation {
  6775  	s.CurrentRouteTable = &v
  6776  	return s
  6777  }
  6778  
  6779  // SetExpectedRouteTable sets the ExpectedRouteTable field's value.
  6780  func (s *NetworkFirewallMissingExpectedRTViolation) SetExpectedRouteTable(v string) *NetworkFirewallMissingExpectedRTViolation {
  6781  	s.ExpectedRouteTable = &v
  6782  	return s
  6783  }
  6784  
  6785  // SetVPC sets the VPC field's value.
  6786  func (s *NetworkFirewallMissingExpectedRTViolation) SetVPC(v string) *NetworkFirewallMissingExpectedRTViolation {
  6787  	s.VPC = &v
  6788  	return s
  6789  }
  6790  
  6791  // SetViolationTarget sets the ViolationTarget field's value.
  6792  func (s *NetworkFirewallMissingExpectedRTViolation) SetViolationTarget(v string) *NetworkFirewallMissingExpectedRTViolation {
  6793  	s.ViolationTarget = &v
  6794  	return s
  6795  }
  6796  
  6797  // Violation detail for an expected route missing in Network Firewall.
  6798  type NetworkFirewallMissingExpectedRoutesViolation struct {
  6799  	_ struct{} `type:"structure"`
  6800  
  6801  	// The expected routes.
  6802  	ExpectedRoutes []*ExpectedRoute `type:"list"`
  6803  
  6804  	// The target of the violation.
  6805  	ViolationTarget *string `type:"string"`
  6806  
  6807  	// Information about the VPC ID.
  6808  	VpcId *string `min:"1" type:"string"`
  6809  }
  6810  
  6811  // String returns the string representation.
  6812  //
  6813  // API parameter values that are decorated as "sensitive" in the API will not
  6814  // be included in the string output. The member name will be present, but the
  6815  // value will be replaced with "sensitive".
  6816  func (s NetworkFirewallMissingExpectedRoutesViolation) String() string {
  6817  	return awsutil.Prettify(s)
  6818  }
  6819  
  6820  // GoString returns the string representation.
  6821  //
  6822  // API parameter values that are decorated as "sensitive" in the API will not
  6823  // be included in the string output. The member name will be present, but the
  6824  // value will be replaced with "sensitive".
  6825  func (s NetworkFirewallMissingExpectedRoutesViolation) GoString() string {
  6826  	return s.String()
  6827  }
  6828  
  6829  // SetExpectedRoutes sets the ExpectedRoutes field's value.
  6830  func (s *NetworkFirewallMissingExpectedRoutesViolation) SetExpectedRoutes(v []*ExpectedRoute) *NetworkFirewallMissingExpectedRoutesViolation {
  6831  	s.ExpectedRoutes = v
  6832  	return s
  6833  }
  6834  
  6835  // SetViolationTarget sets the ViolationTarget field's value.
  6836  func (s *NetworkFirewallMissingExpectedRoutesViolation) SetViolationTarget(v string) *NetworkFirewallMissingExpectedRoutesViolation {
  6837  	s.ViolationTarget = &v
  6838  	return s
  6839  }
  6840  
  6841  // SetVpcId sets the VpcId field's value.
  6842  func (s *NetworkFirewallMissingExpectedRoutesViolation) SetVpcId(v string) *NetworkFirewallMissingExpectedRoutesViolation {
  6843  	s.VpcId = &v
  6844  	return s
  6845  }
  6846  
  6847  // Violation detail for Network Firewall for a subnet that doesn't have a Firewall
  6848  // Manager managed firewall in its VPC.
  6849  type NetworkFirewallMissingFirewallViolation struct {
  6850  	_ struct{} `type:"structure"`
  6851  
  6852  	// The Availability Zone of a violating subnet.
  6853  	AvailabilityZone *string `type:"string"`
  6854  
  6855  	// The reason the resource has this violation, if one is available.
  6856  	TargetViolationReason *string `type:"string"`
  6857  
  6858  	// The resource ID of the VPC associated with a violating subnet.
  6859  	VPC *string `min:"1" type:"string"`
  6860  
  6861  	// The ID of the Network Firewall or VPC resource that's in violation.
  6862  	ViolationTarget *string `type:"string"`
  6863  }
  6864  
  6865  // String returns the string representation.
  6866  //
  6867  // API parameter values that are decorated as "sensitive" in the API will not
  6868  // be included in the string output. The member name will be present, but the
  6869  // value will be replaced with "sensitive".
  6870  func (s NetworkFirewallMissingFirewallViolation) String() string {
  6871  	return awsutil.Prettify(s)
  6872  }
  6873  
  6874  // GoString returns the string representation.
  6875  //
  6876  // API parameter values that are decorated as "sensitive" in the API will not
  6877  // be included in the string output. The member name will be present, but the
  6878  // value will be replaced with "sensitive".
  6879  func (s NetworkFirewallMissingFirewallViolation) GoString() string {
  6880  	return s.String()
  6881  }
  6882  
  6883  // SetAvailabilityZone sets the AvailabilityZone field's value.
  6884  func (s *NetworkFirewallMissingFirewallViolation) SetAvailabilityZone(v string) *NetworkFirewallMissingFirewallViolation {
  6885  	s.AvailabilityZone = &v
  6886  	return s
  6887  }
  6888  
  6889  // SetTargetViolationReason sets the TargetViolationReason field's value.
  6890  func (s *NetworkFirewallMissingFirewallViolation) SetTargetViolationReason(v string) *NetworkFirewallMissingFirewallViolation {
  6891  	s.TargetViolationReason = &v
  6892  	return s
  6893  }
  6894  
  6895  // SetVPC sets the VPC field's value.
  6896  func (s *NetworkFirewallMissingFirewallViolation) SetVPC(v string) *NetworkFirewallMissingFirewallViolation {
  6897  	s.VPC = &v
  6898  	return s
  6899  }
  6900  
  6901  // SetViolationTarget sets the ViolationTarget field's value.
  6902  func (s *NetworkFirewallMissingFirewallViolation) SetViolationTarget(v string) *NetworkFirewallMissingFirewallViolation {
  6903  	s.ViolationTarget = &v
  6904  	return s
  6905  }
  6906  
  6907  // Violation detail for Network Firewall for an Availability Zone that's missing
  6908  // the expected Firewall Manager managed subnet.
  6909  type NetworkFirewallMissingSubnetViolation struct {
  6910  	_ struct{} `type:"structure"`
  6911  
  6912  	// The Availability Zone of a violating subnet.
  6913  	AvailabilityZone *string `type:"string"`
  6914  
  6915  	// The reason the resource has this violation, if one is available.
  6916  	TargetViolationReason *string `type:"string"`
  6917  
  6918  	// The resource ID of the VPC associated with a violating subnet.
  6919  	VPC *string `min:"1" type:"string"`
  6920  
  6921  	// The ID of the Network Firewall or VPC resource that's in violation.
  6922  	ViolationTarget *string `type:"string"`
  6923  }
  6924  
  6925  // String returns the string representation.
  6926  //
  6927  // API parameter values that are decorated as "sensitive" in the API will not
  6928  // be included in the string output. The member name will be present, but the
  6929  // value will be replaced with "sensitive".
  6930  func (s NetworkFirewallMissingSubnetViolation) String() string {
  6931  	return awsutil.Prettify(s)
  6932  }
  6933  
  6934  // GoString returns the string representation.
  6935  //
  6936  // API parameter values that are decorated as "sensitive" in the API will not
  6937  // be included in the string output. The member name will be present, but the
  6938  // value will be replaced with "sensitive".
  6939  func (s NetworkFirewallMissingSubnetViolation) GoString() string {
  6940  	return s.String()
  6941  }
  6942  
  6943  // SetAvailabilityZone sets the AvailabilityZone field's value.
  6944  func (s *NetworkFirewallMissingSubnetViolation) SetAvailabilityZone(v string) *NetworkFirewallMissingSubnetViolation {
  6945  	s.AvailabilityZone = &v
  6946  	return s
  6947  }
  6948  
  6949  // SetTargetViolationReason sets the TargetViolationReason field's value.
  6950  func (s *NetworkFirewallMissingSubnetViolation) SetTargetViolationReason(v string) *NetworkFirewallMissingSubnetViolation {
  6951  	s.TargetViolationReason = &v
  6952  	return s
  6953  }
  6954  
  6955  // SetVPC sets the VPC field's value.
  6956  func (s *NetworkFirewallMissingSubnetViolation) SetVPC(v string) *NetworkFirewallMissingSubnetViolation {
  6957  	s.VPC = &v
  6958  	return s
  6959  }
  6960  
  6961  // SetViolationTarget sets the ViolationTarget field's value.
  6962  func (s *NetworkFirewallMissingSubnetViolation) SetViolationTarget(v string) *NetworkFirewallMissingSubnetViolation {
  6963  	s.ViolationTarget = &v
  6964  	return s
  6965  }
  6966  
  6967  // The definition of the Network Firewall firewall policy.
  6968  type NetworkFirewallPolicyDescription struct {
  6969  	_ struct{} `type:"structure"`
  6970  
  6971  	// The stateful rule groups that are used in the Network Firewall firewall policy.
  6972  	StatefulRuleGroups []*StatefulRuleGroup `type:"list"`
  6973  
  6974  	// Names of custom actions that are available for use in the stateless default
  6975  	// actions settings.
  6976  	StatelessCustomActions []*string `type:"list"`
  6977  
  6978  	// The actions to take on packets that don't match any of the stateless rule
  6979  	// groups.
  6980  	StatelessDefaultActions []*string `type:"list"`
  6981  
  6982  	// The actions to take on packet fragments that don't match any of the stateless
  6983  	// rule groups.
  6984  	StatelessFragmentDefaultActions []*string `type:"list"`
  6985  
  6986  	// The stateless rule groups that are used in the Network Firewall firewall
  6987  	// policy.
  6988  	StatelessRuleGroups []*StatelessRuleGroup `type:"list"`
  6989  }
  6990  
  6991  // String returns the string representation.
  6992  //
  6993  // API parameter values that are decorated as "sensitive" in the API will not
  6994  // be included in the string output. The member name will be present, but the
  6995  // value will be replaced with "sensitive".
  6996  func (s NetworkFirewallPolicyDescription) String() string {
  6997  	return awsutil.Prettify(s)
  6998  }
  6999  
  7000  // GoString returns the string representation.
  7001  //
  7002  // API parameter values that are decorated as "sensitive" in the API will not
  7003  // be included in the string output. The member name will be present, but the
  7004  // value will be replaced with "sensitive".
  7005  func (s NetworkFirewallPolicyDescription) GoString() string {
  7006  	return s.String()
  7007  }
  7008  
  7009  // SetStatefulRuleGroups sets the StatefulRuleGroups field's value.
  7010  func (s *NetworkFirewallPolicyDescription) SetStatefulRuleGroups(v []*StatefulRuleGroup) *NetworkFirewallPolicyDescription {
  7011  	s.StatefulRuleGroups = v
  7012  	return s
  7013  }
  7014  
  7015  // SetStatelessCustomActions sets the StatelessCustomActions field's value.
  7016  func (s *NetworkFirewallPolicyDescription) SetStatelessCustomActions(v []*string) *NetworkFirewallPolicyDescription {
  7017  	s.StatelessCustomActions = v
  7018  	return s
  7019  }
  7020  
  7021  // SetStatelessDefaultActions sets the StatelessDefaultActions field's value.
  7022  func (s *NetworkFirewallPolicyDescription) SetStatelessDefaultActions(v []*string) *NetworkFirewallPolicyDescription {
  7023  	s.StatelessDefaultActions = v
  7024  	return s
  7025  }
  7026  
  7027  // SetStatelessFragmentDefaultActions sets the StatelessFragmentDefaultActions field's value.
  7028  func (s *NetworkFirewallPolicyDescription) SetStatelessFragmentDefaultActions(v []*string) *NetworkFirewallPolicyDescription {
  7029  	s.StatelessFragmentDefaultActions = v
  7030  	return s
  7031  }
  7032  
  7033  // SetStatelessRuleGroups sets the StatelessRuleGroups field's value.
  7034  func (s *NetworkFirewallPolicyDescription) SetStatelessRuleGroups(v []*StatelessRuleGroup) *NetworkFirewallPolicyDescription {
  7035  	s.StatelessRuleGroups = v
  7036  	return s
  7037  }
  7038  
  7039  // Violation detail for Network Firewall for a firewall policy that has a different
  7040  // NetworkFirewallPolicyDescription than is required by the Firewall Manager
  7041  // policy.
  7042  type NetworkFirewallPolicyModifiedViolation struct {
  7043  	_ struct{} `type:"structure"`
  7044  
  7045  	// The policy that's currently in use in the individual account.
  7046  	CurrentPolicyDescription *NetworkFirewallPolicyDescription `type:"structure"`
  7047  
  7048  	// The policy that should be in use in the individual account in order to be
  7049  	// compliant.
  7050  	ExpectedPolicyDescription *NetworkFirewallPolicyDescription `type:"structure"`
  7051  
  7052  	// The ID of the Network Firewall or VPC resource that's in violation.
  7053  	ViolationTarget *string `type:"string"`
  7054  }
  7055  
  7056  // String returns the string representation.
  7057  //
  7058  // API parameter values that are decorated as "sensitive" in the API will not
  7059  // be included in the string output. The member name will be present, but the
  7060  // value will be replaced with "sensitive".
  7061  func (s NetworkFirewallPolicyModifiedViolation) String() string {
  7062  	return awsutil.Prettify(s)
  7063  }
  7064  
  7065  // GoString returns the string representation.
  7066  //
  7067  // API parameter values that are decorated as "sensitive" in the API will not
  7068  // be included in the string output. The member name will be present, but the
  7069  // value will be replaced with "sensitive".
  7070  func (s NetworkFirewallPolicyModifiedViolation) GoString() string {
  7071  	return s.String()
  7072  }
  7073  
  7074  // SetCurrentPolicyDescription sets the CurrentPolicyDescription field's value.
  7075  func (s *NetworkFirewallPolicyModifiedViolation) SetCurrentPolicyDescription(v *NetworkFirewallPolicyDescription) *NetworkFirewallPolicyModifiedViolation {
  7076  	s.CurrentPolicyDescription = v
  7077  	return s
  7078  }
  7079  
  7080  // SetExpectedPolicyDescription sets the ExpectedPolicyDescription field's value.
  7081  func (s *NetworkFirewallPolicyModifiedViolation) SetExpectedPolicyDescription(v *NetworkFirewallPolicyDescription) *NetworkFirewallPolicyModifiedViolation {
  7082  	s.ExpectedPolicyDescription = v
  7083  	return s
  7084  }
  7085  
  7086  // SetViolationTarget sets the ViolationTarget field's value.
  7087  func (s *NetworkFirewallPolicyModifiedViolation) SetViolationTarget(v string) *NetworkFirewallPolicyModifiedViolation {
  7088  	s.ViolationTarget = &v
  7089  	return s
  7090  }
  7091  
  7092  // Violation detail for an unexpected route that's present in a route table.
  7093  type NetworkFirewallUnexpectedFirewallRoutesViolation struct {
  7094  	_ struct{} `type:"structure"`
  7095  
  7096  	// The endpoint of the firewall.
  7097  	FirewallEndpoint *string `min:"1" type:"string"`
  7098  
  7099  	// The subnet ID for the firewall.
  7100  	FirewallSubnetId *string `min:"1" type:"string"`
  7101  
  7102  	// The ID of the route table.
  7103  	RouteTableId *string `min:"1" type:"string"`
  7104  
  7105  	// The routes that are in violation.
  7106  	ViolatingRoutes []*Route `type:"list"`
  7107  
  7108  	// Information about the VPC ID.
  7109  	VpcId *string `min:"1" type:"string"`
  7110  }
  7111  
  7112  // String returns the string representation.
  7113  //
  7114  // API parameter values that are decorated as "sensitive" in the API will not
  7115  // be included in the string output. The member name will be present, but the
  7116  // value will be replaced with "sensitive".
  7117  func (s NetworkFirewallUnexpectedFirewallRoutesViolation) String() string {
  7118  	return awsutil.Prettify(s)
  7119  }
  7120  
  7121  // GoString returns the string representation.
  7122  //
  7123  // API parameter values that are decorated as "sensitive" in the API will not
  7124  // be included in the string output. The member name will be present, but the
  7125  // value will be replaced with "sensitive".
  7126  func (s NetworkFirewallUnexpectedFirewallRoutesViolation) GoString() string {
  7127  	return s.String()
  7128  }
  7129  
  7130  // SetFirewallEndpoint sets the FirewallEndpoint field's value.
  7131  func (s *NetworkFirewallUnexpectedFirewallRoutesViolation) SetFirewallEndpoint(v string) *NetworkFirewallUnexpectedFirewallRoutesViolation {
  7132  	s.FirewallEndpoint = &v
  7133  	return s
  7134  }
  7135  
  7136  // SetFirewallSubnetId sets the FirewallSubnetId field's value.
  7137  func (s *NetworkFirewallUnexpectedFirewallRoutesViolation) SetFirewallSubnetId(v string) *NetworkFirewallUnexpectedFirewallRoutesViolation {
  7138  	s.FirewallSubnetId = &v
  7139  	return s
  7140  }
  7141  
  7142  // SetRouteTableId sets the RouteTableId field's value.
  7143  func (s *NetworkFirewallUnexpectedFirewallRoutesViolation) SetRouteTableId(v string) *NetworkFirewallUnexpectedFirewallRoutesViolation {
  7144  	s.RouteTableId = &v
  7145  	return s
  7146  }
  7147  
  7148  // SetViolatingRoutes sets the ViolatingRoutes field's value.
  7149  func (s *NetworkFirewallUnexpectedFirewallRoutesViolation) SetViolatingRoutes(v []*Route) *NetworkFirewallUnexpectedFirewallRoutesViolation {
  7150  	s.ViolatingRoutes = v
  7151  	return s
  7152  }
  7153  
  7154  // SetVpcId sets the VpcId field's value.
  7155  func (s *NetworkFirewallUnexpectedFirewallRoutesViolation) SetVpcId(v string) *NetworkFirewallUnexpectedFirewallRoutesViolation {
  7156  	s.VpcId = &v
  7157  	return s
  7158  }
  7159  
  7160  // Violation detail for an unexpected gateway route that’s present in a route
  7161  // table.
  7162  type NetworkFirewallUnexpectedGatewayRoutesViolation struct {
  7163  	_ struct{} `type:"structure"`
  7164  
  7165  	// Information about the gateway ID.
  7166  	GatewayId *string `min:"1" type:"string"`
  7167  
  7168  	// Information about the route table.
  7169  	RouteTableId *string `min:"1" type:"string"`
  7170  
  7171  	// The routes that are in violation.
  7172  	ViolatingRoutes []*Route `type:"list"`
  7173  
  7174  	// Information about the VPC ID.
  7175  	VpcId *string `min:"1" type:"string"`
  7176  }
  7177  
  7178  // String returns the string representation.
  7179  //
  7180  // API parameter values that are decorated as "sensitive" in the API will not
  7181  // be included in the string output. The member name will be present, but the
  7182  // value will be replaced with "sensitive".
  7183  func (s NetworkFirewallUnexpectedGatewayRoutesViolation) String() string {
  7184  	return awsutil.Prettify(s)
  7185  }
  7186  
  7187  // GoString returns the string representation.
  7188  //
  7189  // API parameter values that are decorated as "sensitive" in the API will not
  7190  // be included in the string output. The member name will be present, but the
  7191  // value will be replaced with "sensitive".
  7192  func (s NetworkFirewallUnexpectedGatewayRoutesViolation) GoString() string {
  7193  	return s.String()
  7194  }
  7195  
  7196  // SetGatewayId sets the GatewayId field's value.
  7197  func (s *NetworkFirewallUnexpectedGatewayRoutesViolation) SetGatewayId(v string) *NetworkFirewallUnexpectedGatewayRoutesViolation {
  7198  	s.GatewayId = &v
  7199  	return s
  7200  }
  7201  
  7202  // SetRouteTableId sets the RouteTableId field's value.
  7203  func (s *NetworkFirewallUnexpectedGatewayRoutesViolation) SetRouteTableId(v string) *NetworkFirewallUnexpectedGatewayRoutesViolation {
  7204  	s.RouteTableId = &v
  7205  	return s
  7206  }
  7207  
  7208  // SetViolatingRoutes sets the ViolatingRoutes field's value.
  7209  func (s *NetworkFirewallUnexpectedGatewayRoutesViolation) SetViolatingRoutes(v []*Route) *NetworkFirewallUnexpectedGatewayRoutesViolation {
  7210  	s.ViolatingRoutes = v
  7211  	return s
  7212  }
  7213  
  7214  // SetVpcId sets the VpcId field's value.
  7215  func (s *NetworkFirewallUnexpectedGatewayRoutesViolation) SetVpcId(v string) *NetworkFirewallUnexpectedGatewayRoutesViolation {
  7216  	s.VpcId = &v
  7217  	return s
  7218  }
  7219  
  7220  // The reference rule that partially matches the ViolationTarget rule and violation
  7221  // reason.
  7222  type PartialMatch struct {
  7223  	_ struct{} `type:"structure"`
  7224  
  7225  	// The reference rule from the primary security group of the Firewall Manager
  7226  	// policy.
  7227  	Reference *string `type:"string"`
  7228  
  7229  	// The violation reason.
  7230  	TargetViolationReasons []*string `type:"list"`
  7231  }
  7232  
  7233  // String returns the string representation.
  7234  //
  7235  // API parameter values that are decorated as "sensitive" in the API will not
  7236  // be included in the string output. The member name will be present, but the
  7237  // value will be replaced with "sensitive".
  7238  func (s PartialMatch) String() string {
  7239  	return awsutil.Prettify(s)
  7240  }
  7241  
  7242  // GoString returns the string representation.
  7243  //
  7244  // API parameter values that are decorated as "sensitive" in the API will not
  7245  // be included in the string output. The member name will be present, but the
  7246  // value will be replaced with "sensitive".
  7247  func (s PartialMatch) GoString() string {
  7248  	return s.String()
  7249  }
  7250  
  7251  // SetReference sets the Reference field's value.
  7252  func (s *PartialMatch) SetReference(v string) *PartialMatch {
  7253  	s.Reference = &v
  7254  	return s
  7255  }
  7256  
  7257  // SetTargetViolationReasons sets the TargetViolationReasons field's value.
  7258  func (s *PartialMatch) SetTargetViolationReasons(v []*string) *PartialMatch {
  7259  	s.TargetViolationReasons = v
  7260  	return s
  7261  }
  7262  
  7263  // An Firewall Manager policy.
  7264  type Policy struct {
  7265  	_ struct{} `type:"structure"`
  7266  
  7267  	// Indicates whether Firewall Manager should delete Firewall Manager managed
  7268  	// resources, such as web ACLs and security groups, when they are not in use
  7269  	// by the Firewall Manager policy. By default, Firewall Manager doesn't delete
  7270  	// unused Firewall Manager managed resources. This option is not available for
  7271  	// Shield Advanced or WAF Classic policies.
  7272  	DeleteUnusedFMManagedResources *bool `type:"boolean"`
  7273  
  7274  	// Specifies the Amazon Web Services account IDs and Organizations organizational
  7275  	// units (OUs) to exclude from the policy. Specifying an OU is the equivalent
  7276  	// of specifying all accounts in the OU and in any of its child OUs, including
  7277  	// any child OUs and accounts that are added at a later time.
  7278  	//
  7279  	// You can specify inclusions or exclusions, but not both. If you specify an
  7280  	// IncludeMap, Firewall Manager applies the policy to all accounts specified
  7281  	// by the IncludeMap, and does not evaluate any ExcludeMap specifications. If
  7282  	// you do not specify an IncludeMap, then Firewall Manager applies the policy
  7283  	// to all accounts except for those specified by the ExcludeMap.
  7284  	//
  7285  	// You can specify account IDs, OUs, or a combination:
  7286  	//
  7287  	//    * Specify account IDs by setting the key to ACCOUNT. For example, the
  7288  	//    following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”]}.
  7289  	//
  7290  	//    * Specify OUs by setting the key to ORG_UNIT. For example, the following
  7291  	//    is a valid map: {“ORG_UNIT” : [“ouid111”, “ouid112”]}.
  7292  	//
  7293  	//    * Specify accounts and OUs together in a single map, separated with a
  7294  	//    comma. For example, the following is a valid map: {“ACCOUNT” : [“accountID1”,
  7295  	//    “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}.
  7296  	ExcludeMap map[string][]*string `type:"map"`
  7297  
  7298  	// If set to True, resources with the tags that are specified in the ResourceTag
  7299  	// array are not in scope of the policy. If set to False, and the ResourceTag
  7300  	// array is not null, only resources with the specified tags are in scope of
  7301  	// the policy.
  7302  	//
  7303  	// ExcludeResourceTags is a required field
  7304  	ExcludeResourceTags *bool `type:"boolean" required:"true"`
  7305  
  7306  	// Specifies the Amazon Web Services account IDs and Organizations organizational
  7307  	// units (OUs) to include in the policy. Specifying an OU is the equivalent
  7308  	// of specifying all accounts in the OU and in any of its child OUs, including
  7309  	// any child OUs and accounts that are added at a later time.
  7310  	//
  7311  	// You can specify inclusions or exclusions, but not both. If you specify an
  7312  	// IncludeMap, Firewall Manager applies the policy to all accounts specified
  7313  	// by the IncludeMap, and does not evaluate any ExcludeMap specifications. If
  7314  	// you do not specify an IncludeMap, then Firewall Manager applies the policy
  7315  	// to all accounts except for those specified by the ExcludeMap.
  7316  	//
  7317  	// You can specify account IDs, OUs, or a combination:
  7318  	//
  7319  	//    * Specify account IDs by setting the key to ACCOUNT. For example, the
  7320  	//    following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”]}.
  7321  	//
  7322  	//    * Specify OUs by setting the key to ORG_UNIT. For example, the following
  7323  	//    is a valid map: {“ORG_UNIT” : [“ouid111”, “ouid112”]}.
  7324  	//
  7325  	//    * Specify accounts and OUs together in a single map, separated with a
  7326  	//    comma. For example, the following is a valid map: {“ACCOUNT” : [“accountID1”,
  7327  	//    “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}.
  7328  	IncludeMap map[string][]*string `type:"map"`
  7329  
  7330  	// The ID of the Firewall Manager policy.
  7331  	PolicyId *string `min:"36" type:"string"`
  7332  
  7333  	// The name of the Firewall Manager policy.
  7334  	//
  7335  	// PolicyName is a required field
  7336  	PolicyName *string `min:"1" type:"string" required:"true"`
  7337  
  7338  	// A unique identifier for each update to the policy. When issuing a PutPolicy
  7339  	// request, the PolicyUpdateToken in the request must match the PolicyUpdateToken
  7340  	// of the current policy version. To get the PolicyUpdateToken of the current
  7341  	// policy version, use a GetPolicy request.
  7342  	PolicyUpdateToken *string `min:"1" type:"string"`
  7343  
  7344  	// Indicates if the policy should be automatically applied to new resources.
  7345  	//
  7346  	// RemediationEnabled is a required field
  7347  	RemediationEnabled *bool `type:"boolean" required:"true"`
  7348  
  7349  	// An array of ResourceTag objects.
  7350  	ResourceTags []*ResourceTag `type:"list"`
  7351  
  7352  	// The type of resource protected by or in scope of the policy. This is in the
  7353  	// format shown in the Amazon Web Services Resource Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html).
  7354  	// To apply this policy to multiple resource types, specify a resource type
  7355  	// of ResourceTypeList and then specify the resource types in a ResourceTypeList.
  7356  	//
  7357  	// For WAF and Shield Advanced, example resource types include AWS::ElasticLoadBalancingV2::LoadBalancer
  7358  	// and AWS::CloudFront::Distribution. For a security group common policy, valid
  7359  	// values are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For a security
  7360  	// group content audit policy, valid values are AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface,
  7361  	// and AWS::EC2::Instance. For a security group usage audit policy, the value
  7362  	// is AWS::EC2::SecurityGroup. For an Network Firewall policy or DNS Firewall
  7363  	// policy, the value is AWS::EC2::VPC.
  7364  	//
  7365  	// ResourceType is a required field
  7366  	ResourceType *string `min:"1" type:"string" required:"true"`
  7367  
  7368  	// An array of ResourceType objects. Use this only to specify multiple resource
  7369  	// types. To specify a single resource type, use ResourceType.
  7370  	ResourceTypeList []*string `type:"list"`
  7371  
  7372  	// Details about the security service that is being used to protect the resources.
  7373  	//
  7374  	// SecurityServicePolicyData is a required field
  7375  	SecurityServicePolicyData *SecurityServicePolicyData `type:"structure" required:"true"`
  7376  }
  7377  
  7378  // String returns the string representation.
  7379  //
  7380  // API parameter values that are decorated as "sensitive" in the API will not
  7381  // be included in the string output. The member name will be present, but the
  7382  // value will be replaced with "sensitive".
  7383  func (s Policy) String() string {
  7384  	return awsutil.Prettify(s)
  7385  }
  7386  
  7387  // GoString returns the string representation.
  7388  //
  7389  // API parameter values that are decorated as "sensitive" in the API will not
  7390  // be included in the string output. The member name will be present, but the
  7391  // value will be replaced with "sensitive".
  7392  func (s Policy) GoString() string {
  7393  	return s.String()
  7394  }
  7395  
  7396  // Validate inspects the fields of the type to determine if they are valid.
  7397  func (s *Policy) Validate() error {
  7398  	invalidParams := request.ErrInvalidParams{Context: "Policy"}
  7399  	if s.ExcludeResourceTags == nil {
  7400  		invalidParams.Add(request.NewErrParamRequired("ExcludeResourceTags"))
  7401  	}
  7402  	if s.PolicyId != nil && len(*s.PolicyId) < 36 {
  7403  		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 36))
  7404  	}
  7405  	if s.PolicyName == nil {
  7406  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  7407  	}
  7408  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
  7409  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
  7410  	}
  7411  	if s.PolicyUpdateToken != nil && len(*s.PolicyUpdateToken) < 1 {
  7412  		invalidParams.Add(request.NewErrParamMinLen("PolicyUpdateToken", 1))
  7413  	}
  7414  	if s.RemediationEnabled == nil {
  7415  		invalidParams.Add(request.NewErrParamRequired("RemediationEnabled"))
  7416  	}
  7417  	if s.ResourceType == nil {
  7418  		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
  7419  	}
  7420  	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
  7421  		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
  7422  	}
  7423  	if s.SecurityServicePolicyData == nil {
  7424  		invalidParams.Add(request.NewErrParamRequired("SecurityServicePolicyData"))
  7425  	}
  7426  	if s.ResourceTags != nil {
  7427  		for i, v := range s.ResourceTags {
  7428  			if v == nil {
  7429  				continue
  7430  			}
  7431  			if err := v.Validate(); err != nil {
  7432  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceTags", i), err.(request.ErrInvalidParams))
  7433  			}
  7434  		}
  7435  	}
  7436  	if s.SecurityServicePolicyData != nil {
  7437  		if err := s.SecurityServicePolicyData.Validate(); err != nil {
  7438  			invalidParams.AddNested("SecurityServicePolicyData", err.(request.ErrInvalidParams))
  7439  		}
  7440  	}
  7441  
  7442  	if invalidParams.Len() > 0 {
  7443  		return invalidParams
  7444  	}
  7445  	return nil
  7446  }
  7447  
  7448  // SetDeleteUnusedFMManagedResources sets the DeleteUnusedFMManagedResources field's value.
  7449  func (s *Policy) SetDeleteUnusedFMManagedResources(v bool) *Policy {
  7450  	s.DeleteUnusedFMManagedResources = &v
  7451  	return s
  7452  }
  7453  
  7454  // SetExcludeMap sets the ExcludeMap field's value.
  7455  func (s *Policy) SetExcludeMap(v map[string][]*string) *Policy {
  7456  	s.ExcludeMap = v
  7457  	return s
  7458  }
  7459  
  7460  // SetExcludeResourceTags sets the ExcludeResourceTags field's value.
  7461  func (s *Policy) SetExcludeResourceTags(v bool) *Policy {
  7462  	s.ExcludeResourceTags = &v
  7463  	return s
  7464  }
  7465  
  7466  // SetIncludeMap sets the IncludeMap field's value.
  7467  func (s *Policy) SetIncludeMap(v map[string][]*string) *Policy {
  7468  	s.IncludeMap = v
  7469  	return s
  7470  }
  7471  
  7472  // SetPolicyId sets the PolicyId field's value.
  7473  func (s *Policy) SetPolicyId(v string) *Policy {
  7474  	s.PolicyId = &v
  7475  	return s
  7476  }
  7477  
  7478  // SetPolicyName sets the PolicyName field's value.
  7479  func (s *Policy) SetPolicyName(v string) *Policy {
  7480  	s.PolicyName = &v
  7481  	return s
  7482  }
  7483  
  7484  // SetPolicyUpdateToken sets the PolicyUpdateToken field's value.
  7485  func (s *Policy) SetPolicyUpdateToken(v string) *Policy {
  7486  	s.PolicyUpdateToken = &v
  7487  	return s
  7488  }
  7489  
  7490  // SetRemediationEnabled sets the RemediationEnabled field's value.
  7491  func (s *Policy) SetRemediationEnabled(v bool) *Policy {
  7492  	s.RemediationEnabled = &v
  7493  	return s
  7494  }
  7495  
  7496  // SetResourceTags sets the ResourceTags field's value.
  7497  func (s *Policy) SetResourceTags(v []*ResourceTag) *Policy {
  7498  	s.ResourceTags = v
  7499  	return s
  7500  }
  7501  
  7502  // SetResourceType sets the ResourceType field's value.
  7503  func (s *Policy) SetResourceType(v string) *Policy {
  7504  	s.ResourceType = &v
  7505  	return s
  7506  }
  7507  
  7508  // SetResourceTypeList sets the ResourceTypeList field's value.
  7509  func (s *Policy) SetResourceTypeList(v []*string) *Policy {
  7510  	s.ResourceTypeList = v
  7511  	return s
  7512  }
  7513  
  7514  // SetSecurityServicePolicyData sets the SecurityServicePolicyData field's value.
  7515  func (s *Policy) SetSecurityServicePolicyData(v *SecurityServicePolicyData) *Policy {
  7516  	s.SecurityServicePolicyData = v
  7517  	return s
  7518  }
  7519  
  7520  // Describes the noncompliant resources in a member account for a specific Firewall
  7521  // Manager policy. A maximum of 100 entries are displayed. If more than 100
  7522  // resources are noncompliant, EvaluationLimitExceeded is set to True.
  7523  type PolicyComplianceDetail struct {
  7524  	_ struct{} `type:"structure"`
  7525  
  7526  	// Indicates if over 100 resources are noncompliant with the Firewall Manager
  7527  	// policy.
  7528  	EvaluationLimitExceeded *bool `type:"boolean"`
  7529  
  7530  	// A timestamp that indicates when the returned information should be considered
  7531  	// out of date.
  7532  	ExpiredAt *time.Time `type:"timestamp"`
  7533  
  7534  	// Details about problems with dependent services, such as WAF or Config, and
  7535  	// the error message received that indicates the problem with the service.
  7536  	IssueInfoMap map[string]*string `type:"map"`
  7537  
  7538  	// The Amazon Web Services account ID.
  7539  	MemberAccount *string `min:"1" type:"string"`
  7540  
  7541  	// The ID of the Firewall Manager policy.
  7542  	PolicyId *string `min:"36" type:"string"`
  7543  
  7544  	// The Amazon Web Services account that created the Firewall Manager policy.
  7545  	PolicyOwner *string `min:"1" type:"string"`
  7546  
  7547  	// An array of resources that aren't protected by the WAF or Shield Advanced
  7548  	// policy or that aren't in compliance with the security group policy.
  7549  	Violators []*ComplianceViolator `type:"list"`
  7550  }
  7551  
  7552  // String returns the string representation.
  7553  //
  7554  // API parameter values that are decorated as "sensitive" in the API will not
  7555  // be included in the string output. The member name will be present, but the
  7556  // value will be replaced with "sensitive".
  7557  func (s PolicyComplianceDetail) String() string {
  7558  	return awsutil.Prettify(s)
  7559  }
  7560  
  7561  // GoString returns the string representation.
  7562  //
  7563  // API parameter values that are decorated as "sensitive" in the API will not
  7564  // be included in the string output. The member name will be present, but the
  7565  // value will be replaced with "sensitive".
  7566  func (s PolicyComplianceDetail) GoString() string {
  7567  	return s.String()
  7568  }
  7569  
  7570  // SetEvaluationLimitExceeded sets the EvaluationLimitExceeded field's value.
  7571  func (s *PolicyComplianceDetail) SetEvaluationLimitExceeded(v bool) *PolicyComplianceDetail {
  7572  	s.EvaluationLimitExceeded = &v
  7573  	return s
  7574  }
  7575  
  7576  // SetExpiredAt sets the ExpiredAt field's value.
  7577  func (s *PolicyComplianceDetail) SetExpiredAt(v time.Time) *PolicyComplianceDetail {
  7578  	s.ExpiredAt = &v
  7579  	return s
  7580  }
  7581  
  7582  // SetIssueInfoMap sets the IssueInfoMap field's value.
  7583  func (s *PolicyComplianceDetail) SetIssueInfoMap(v map[string]*string) *PolicyComplianceDetail {
  7584  	s.IssueInfoMap = v
  7585  	return s
  7586  }
  7587  
  7588  // SetMemberAccount sets the MemberAccount field's value.
  7589  func (s *PolicyComplianceDetail) SetMemberAccount(v string) *PolicyComplianceDetail {
  7590  	s.MemberAccount = &v
  7591  	return s
  7592  }
  7593  
  7594  // SetPolicyId sets the PolicyId field's value.
  7595  func (s *PolicyComplianceDetail) SetPolicyId(v string) *PolicyComplianceDetail {
  7596  	s.PolicyId = &v
  7597  	return s
  7598  }
  7599  
  7600  // SetPolicyOwner sets the PolicyOwner field's value.
  7601  func (s *PolicyComplianceDetail) SetPolicyOwner(v string) *PolicyComplianceDetail {
  7602  	s.PolicyOwner = &v
  7603  	return s
  7604  }
  7605  
  7606  // SetViolators sets the Violators field's value.
  7607  func (s *PolicyComplianceDetail) SetViolators(v []*ComplianceViolator) *PolicyComplianceDetail {
  7608  	s.Violators = v
  7609  	return s
  7610  }
  7611  
  7612  // Indicates whether the account is compliant with the specified policy. An
  7613  // account is considered noncompliant if it includes resources that are not
  7614  // protected by the policy, for WAF and Shield Advanced policies, or that are
  7615  // noncompliant with the policy, for security group policies.
  7616  type PolicyComplianceStatus struct {
  7617  	_ struct{} `type:"structure"`
  7618  
  7619  	// An array of EvaluationResult objects.
  7620  	EvaluationResults []*EvaluationResult `type:"list"`
  7621  
  7622  	// Details about problems with dependent services, such as WAF or Config, and
  7623  	// the error message received that indicates the problem with the service.
  7624  	IssueInfoMap map[string]*string `type:"map"`
  7625  
  7626  	// Timestamp of the last update to the EvaluationResult objects.
  7627  	LastUpdated *time.Time `type:"timestamp"`
  7628  
  7629  	// The member account ID.
  7630  	MemberAccount *string `min:"1" type:"string"`
  7631  
  7632  	// The ID of the Firewall Manager policy.
  7633  	PolicyId *string `min:"36" type:"string"`
  7634  
  7635  	// The name of the Firewall Manager policy.
  7636  	PolicyName *string `min:"1" type:"string"`
  7637  
  7638  	// The Amazon Web Services account that created the Firewall Manager policy.
  7639  	PolicyOwner *string `min:"1" type:"string"`
  7640  }
  7641  
  7642  // String returns the string representation.
  7643  //
  7644  // API parameter values that are decorated as "sensitive" in the API will not
  7645  // be included in the string output. The member name will be present, but the
  7646  // value will be replaced with "sensitive".
  7647  func (s PolicyComplianceStatus) String() string {
  7648  	return awsutil.Prettify(s)
  7649  }
  7650  
  7651  // GoString returns the string representation.
  7652  //
  7653  // API parameter values that are decorated as "sensitive" in the API will not
  7654  // be included in the string output. The member name will be present, but the
  7655  // value will be replaced with "sensitive".
  7656  func (s PolicyComplianceStatus) GoString() string {
  7657  	return s.String()
  7658  }
  7659  
  7660  // SetEvaluationResults sets the EvaluationResults field's value.
  7661  func (s *PolicyComplianceStatus) SetEvaluationResults(v []*EvaluationResult) *PolicyComplianceStatus {
  7662  	s.EvaluationResults = v
  7663  	return s
  7664  }
  7665  
  7666  // SetIssueInfoMap sets the IssueInfoMap field's value.
  7667  func (s *PolicyComplianceStatus) SetIssueInfoMap(v map[string]*string) *PolicyComplianceStatus {
  7668  	s.IssueInfoMap = v
  7669  	return s
  7670  }
  7671  
  7672  // SetLastUpdated sets the LastUpdated field's value.
  7673  func (s *PolicyComplianceStatus) SetLastUpdated(v time.Time) *PolicyComplianceStatus {
  7674  	s.LastUpdated = &v
  7675  	return s
  7676  }
  7677  
  7678  // SetMemberAccount sets the MemberAccount field's value.
  7679  func (s *PolicyComplianceStatus) SetMemberAccount(v string) *PolicyComplianceStatus {
  7680  	s.MemberAccount = &v
  7681  	return s
  7682  }
  7683  
  7684  // SetPolicyId sets the PolicyId field's value.
  7685  func (s *PolicyComplianceStatus) SetPolicyId(v string) *PolicyComplianceStatus {
  7686  	s.PolicyId = &v
  7687  	return s
  7688  }
  7689  
  7690  // SetPolicyName sets the PolicyName field's value.
  7691  func (s *PolicyComplianceStatus) SetPolicyName(v string) *PolicyComplianceStatus {
  7692  	s.PolicyName = &v
  7693  	return s
  7694  }
  7695  
  7696  // SetPolicyOwner sets the PolicyOwner field's value.
  7697  func (s *PolicyComplianceStatus) SetPolicyOwner(v string) *PolicyComplianceStatus {
  7698  	s.PolicyOwner = &v
  7699  	return s
  7700  }
  7701  
  7702  // Details of the Firewall Manager policy.
  7703  type PolicySummary struct {
  7704  	_ struct{} `type:"structure"`
  7705  
  7706  	// Indicates whether Firewall Manager should delete Firewall Manager managed
  7707  	// resources, such as web ACLs and security groups, when they are not in use
  7708  	// by the Firewall Manager policy. By default, Firewall Manager doesn't delete
  7709  	// unused Firewall Manager managed resources. This option is not available for
  7710  	// Shield Advanced or WAF Classic policies.
  7711  	DeleteUnusedFMManagedResources *bool `type:"boolean"`
  7712  
  7713  	// The Amazon Resource Name (ARN) of the specified policy.
  7714  	PolicyArn *string `min:"1" type:"string"`
  7715  
  7716  	// The ID of the specified policy.
  7717  	PolicyId *string `min:"36" type:"string"`
  7718  
  7719  	// The name of the specified policy.
  7720  	PolicyName *string `min:"1" type:"string"`
  7721  
  7722  	// Indicates if the policy should be automatically applied to new resources.
  7723  	RemediationEnabled *bool `type:"boolean"`
  7724  
  7725  	// The type of resource protected by or in scope of the policy. This is in the
  7726  	// format shown in the Amazon Web Services Resource Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html).
  7727  	// For WAF and Shield Advanced, examples include AWS::ElasticLoadBalancingV2::LoadBalancer
  7728  	// and AWS::CloudFront::Distribution. For a security group common policy, valid
  7729  	// values are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For a security
  7730  	// group content audit policy, valid values are AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface,
  7731  	// and AWS::EC2::Instance. For a security group usage audit policy, the value
  7732  	// is AWS::EC2::SecurityGroup. For an Network Firewall policy or DNS Firewall
  7733  	// policy, the value is AWS::EC2::VPC.
  7734  	ResourceType *string `min:"1" type:"string"`
  7735  
  7736  	// The service that the policy is using to protect the resources. This specifies
  7737  	// the type of policy that is created, either an WAF policy, a Shield Advanced
  7738  	// policy, or a security group policy.
  7739  	SecurityServiceType *string `type:"string" enum:"SecurityServiceType"`
  7740  }
  7741  
  7742  // String returns the string representation.
  7743  //
  7744  // API parameter values that are decorated as "sensitive" in the API will not
  7745  // be included in the string output. The member name will be present, but the
  7746  // value will be replaced with "sensitive".
  7747  func (s PolicySummary) String() string {
  7748  	return awsutil.Prettify(s)
  7749  }
  7750  
  7751  // GoString returns the string representation.
  7752  //
  7753  // API parameter values that are decorated as "sensitive" in the API will not
  7754  // be included in the string output. The member name will be present, but the
  7755  // value will be replaced with "sensitive".
  7756  func (s PolicySummary) GoString() string {
  7757  	return s.String()
  7758  }
  7759  
  7760  // SetDeleteUnusedFMManagedResources sets the DeleteUnusedFMManagedResources field's value.
  7761  func (s *PolicySummary) SetDeleteUnusedFMManagedResources(v bool) *PolicySummary {
  7762  	s.DeleteUnusedFMManagedResources = &v
  7763  	return s
  7764  }
  7765  
  7766  // SetPolicyArn sets the PolicyArn field's value.
  7767  func (s *PolicySummary) SetPolicyArn(v string) *PolicySummary {
  7768  	s.PolicyArn = &v
  7769  	return s
  7770  }
  7771  
  7772  // SetPolicyId sets the PolicyId field's value.
  7773  func (s *PolicySummary) SetPolicyId(v string) *PolicySummary {
  7774  	s.PolicyId = &v
  7775  	return s
  7776  }
  7777  
  7778  // SetPolicyName sets the PolicyName field's value.
  7779  func (s *PolicySummary) SetPolicyName(v string) *PolicySummary {
  7780  	s.PolicyName = &v
  7781  	return s
  7782  }
  7783  
  7784  // SetRemediationEnabled sets the RemediationEnabled field's value.
  7785  func (s *PolicySummary) SetRemediationEnabled(v bool) *PolicySummary {
  7786  	s.RemediationEnabled = &v
  7787  	return s
  7788  }
  7789  
  7790  // SetResourceType sets the ResourceType field's value.
  7791  func (s *PolicySummary) SetResourceType(v string) *PolicySummary {
  7792  	s.ResourceType = &v
  7793  	return s
  7794  }
  7795  
  7796  // SetSecurityServiceType sets the SecurityServiceType field's value.
  7797  func (s *PolicySummary) SetSecurityServiceType(v string) *PolicySummary {
  7798  	s.SecurityServiceType = &v
  7799  	return s
  7800  }
  7801  
  7802  // A list of remediation actions.
  7803  type PossibleRemediationAction struct {
  7804  	_ struct{} `type:"structure"`
  7805  
  7806  	// A description of the list of remediation actions.
  7807  	Description *string `type:"string"`
  7808  
  7809  	// Information about whether an action is taken by default.
  7810  	IsDefaultAction *bool `type:"boolean"`
  7811  
  7812  	// The ordered list of remediation actions.
  7813  	//
  7814  	// OrderedRemediationActions is a required field
  7815  	OrderedRemediationActions []*RemediationActionWithOrder `type:"list" required:"true"`
  7816  }
  7817  
  7818  // String returns the string representation.
  7819  //
  7820  // API parameter values that are decorated as "sensitive" in the API will not
  7821  // be included in the string output. The member name will be present, but the
  7822  // value will be replaced with "sensitive".
  7823  func (s PossibleRemediationAction) String() string {
  7824  	return awsutil.Prettify(s)
  7825  }
  7826  
  7827  // GoString returns the string representation.
  7828  //
  7829  // API parameter values that are decorated as "sensitive" in the API will not
  7830  // be included in the string output. The member name will be present, but the
  7831  // value will be replaced with "sensitive".
  7832  func (s PossibleRemediationAction) GoString() string {
  7833  	return s.String()
  7834  }
  7835  
  7836  // SetDescription sets the Description field's value.
  7837  func (s *PossibleRemediationAction) SetDescription(v string) *PossibleRemediationAction {
  7838  	s.Description = &v
  7839  	return s
  7840  }
  7841  
  7842  // SetIsDefaultAction sets the IsDefaultAction field's value.
  7843  func (s *PossibleRemediationAction) SetIsDefaultAction(v bool) *PossibleRemediationAction {
  7844  	s.IsDefaultAction = &v
  7845  	return s
  7846  }
  7847  
  7848  // SetOrderedRemediationActions sets the OrderedRemediationActions field's value.
  7849  func (s *PossibleRemediationAction) SetOrderedRemediationActions(v []*RemediationActionWithOrder) *PossibleRemediationAction {
  7850  	s.OrderedRemediationActions = v
  7851  	return s
  7852  }
  7853  
  7854  // A list of possible remediation action lists. Each individual possible remediation
  7855  // action is a list of individual remediation actions.
  7856  type PossibleRemediationActions struct {
  7857  	_ struct{} `type:"structure"`
  7858  
  7859  	// Information about the actions.
  7860  	Actions []*PossibleRemediationAction `type:"list"`
  7861  
  7862  	// A description of the possible remediation actions list.
  7863  	Description *string `type:"string"`
  7864  }
  7865  
  7866  // String returns the string representation.
  7867  //
  7868  // API parameter values that are decorated as "sensitive" in the API will not
  7869  // be included in the string output. The member name will be present, but the
  7870  // value will be replaced with "sensitive".
  7871  func (s PossibleRemediationActions) String() string {
  7872  	return awsutil.Prettify(s)
  7873  }
  7874  
  7875  // GoString returns the string representation.
  7876  //
  7877  // API parameter values that are decorated as "sensitive" in the API will not
  7878  // be included in the string output. The member name will be present, but the
  7879  // value will be replaced with "sensitive".
  7880  func (s PossibleRemediationActions) GoString() string {
  7881  	return s.String()
  7882  }
  7883  
  7884  // SetActions sets the Actions field's value.
  7885  func (s *PossibleRemediationActions) SetActions(v []*PossibleRemediationAction) *PossibleRemediationActions {
  7886  	s.Actions = v
  7887  	return s
  7888  }
  7889  
  7890  // SetDescription sets the Description field's value.
  7891  func (s *PossibleRemediationActions) SetDescription(v string) *PossibleRemediationActions {
  7892  	s.Description = &v
  7893  	return s
  7894  }
  7895  
  7896  // An Firewall Manager protocols list.
  7897  type ProtocolsListData struct {
  7898  	_ struct{} `type:"structure"`
  7899  
  7900  	// The time that the Firewall Manager protocols list was created.
  7901  	CreateTime *time.Time `type:"timestamp"`
  7902  
  7903  	// The time that the Firewall Manager protocols list was last updated.
  7904  	LastUpdateTime *time.Time `type:"timestamp"`
  7905  
  7906  	// The ID of the Firewall Manager protocols list.
  7907  	ListId *string `min:"36" type:"string"`
  7908  
  7909  	// The name of the Firewall Manager protocols list.
  7910  	//
  7911  	// ListName is a required field
  7912  	ListName *string `min:"1" type:"string" required:"true"`
  7913  
  7914  	// A unique identifier for each update to the list. When you update the list,
  7915  	// the update token must match the token of the current version of the application
  7916  	// list. You can retrieve the update token by getting the list.
  7917  	ListUpdateToken *string `min:"1" type:"string"`
  7918  
  7919  	// A map of previous version numbers to their corresponding protocol arrays.
  7920  	PreviousProtocolsList map[string][]*string `type:"map"`
  7921  
  7922  	// An array of protocols in the Firewall Manager protocols list.
  7923  	//
  7924  	// ProtocolsList is a required field
  7925  	ProtocolsList []*string `type:"list" required:"true"`
  7926  }
  7927  
  7928  // String returns the string representation.
  7929  //
  7930  // API parameter values that are decorated as "sensitive" in the API will not
  7931  // be included in the string output. The member name will be present, but the
  7932  // value will be replaced with "sensitive".
  7933  func (s ProtocolsListData) String() string {
  7934  	return awsutil.Prettify(s)
  7935  }
  7936  
  7937  // GoString returns the string representation.
  7938  //
  7939  // API parameter values that are decorated as "sensitive" in the API will not
  7940  // be included in the string output. The member name will be present, but the
  7941  // value will be replaced with "sensitive".
  7942  func (s ProtocolsListData) GoString() string {
  7943  	return s.String()
  7944  }
  7945  
  7946  // Validate inspects the fields of the type to determine if they are valid.
  7947  func (s *ProtocolsListData) Validate() error {
  7948  	invalidParams := request.ErrInvalidParams{Context: "ProtocolsListData"}
  7949  	if s.ListId != nil && len(*s.ListId) < 36 {
  7950  		invalidParams.Add(request.NewErrParamMinLen("ListId", 36))
  7951  	}
  7952  	if s.ListName == nil {
  7953  		invalidParams.Add(request.NewErrParamRequired("ListName"))
  7954  	}
  7955  	if s.ListName != nil && len(*s.ListName) < 1 {
  7956  		invalidParams.Add(request.NewErrParamMinLen("ListName", 1))
  7957  	}
  7958  	if s.ListUpdateToken != nil && len(*s.ListUpdateToken) < 1 {
  7959  		invalidParams.Add(request.NewErrParamMinLen("ListUpdateToken", 1))
  7960  	}
  7961  	if s.ProtocolsList == nil {
  7962  		invalidParams.Add(request.NewErrParamRequired("ProtocolsList"))
  7963  	}
  7964  
  7965  	if invalidParams.Len() > 0 {
  7966  		return invalidParams
  7967  	}
  7968  	return nil
  7969  }
  7970  
  7971  // SetCreateTime sets the CreateTime field's value.
  7972  func (s *ProtocolsListData) SetCreateTime(v time.Time) *ProtocolsListData {
  7973  	s.CreateTime = &v
  7974  	return s
  7975  }
  7976  
  7977  // SetLastUpdateTime sets the LastUpdateTime field's value.
  7978  func (s *ProtocolsListData) SetLastUpdateTime(v time.Time) *ProtocolsListData {
  7979  	s.LastUpdateTime = &v
  7980  	return s
  7981  }
  7982  
  7983  // SetListId sets the ListId field's value.
  7984  func (s *ProtocolsListData) SetListId(v string) *ProtocolsListData {
  7985  	s.ListId = &v
  7986  	return s
  7987  }
  7988  
  7989  // SetListName sets the ListName field's value.
  7990  func (s *ProtocolsListData) SetListName(v string) *ProtocolsListData {
  7991  	s.ListName = &v
  7992  	return s
  7993  }
  7994  
  7995  // SetListUpdateToken sets the ListUpdateToken field's value.
  7996  func (s *ProtocolsListData) SetListUpdateToken(v string) *ProtocolsListData {
  7997  	s.ListUpdateToken = &v
  7998  	return s
  7999  }
  8000  
  8001  // SetPreviousProtocolsList sets the PreviousProtocolsList field's value.
  8002  func (s *ProtocolsListData) SetPreviousProtocolsList(v map[string][]*string) *ProtocolsListData {
  8003  	s.PreviousProtocolsList = v
  8004  	return s
  8005  }
  8006  
  8007  // SetProtocolsList sets the ProtocolsList field's value.
  8008  func (s *ProtocolsListData) SetProtocolsList(v []*string) *ProtocolsListData {
  8009  	s.ProtocolsList = v
  8010  	return s
  8011  }
  8012  
  8013  // Details of the Firewall Manager protocols list.
  8014  type ProtocolsListDataSummary struct {
  8015  	_ struct{} `type:"structure"`
  8016  
  8017  	// The Amazon Resource Name (ARN) of the specified protocols list.
  8018  	ListArn *string `min:"1" type:"string"`
  8019  
  8020  	// The ID of the specified protocols list.
  8021  	ListId *string `min:"36" type:"string"`
  8022  
  8023  	// The name of the specified protocols list.
  8024  	ListName *string `min:"1" type:"string"`
  8025  
  8026  	// An array of protocols in the Firewall Manager protocols list.
  8027  	ProtocolsList []*string `type:"list"`
  8028  }
  8029  
  8030  // String returns the string representation.
  8031  //
  8032  // API parameter values that are decorated as "sensitive" in the API will not
  8033  // be included in the string output. The member name will be present, but the
  8034  // value will be replaced with "sensitive".
  8035  func (s ProtocolsListDataSummary) String() string {
  8036  	return awsutil.Prettify(s)
  8037  }
  8038  
  8039  // GoString returns the string representation.
  8040  //
  8041  // API parameter values that are decorated as "sensitive" in the API will not
  8042  // be included in the string output. The member name will be present, but the
  8043  // value will be replaced with "sensitive".
  8044  func (s ProtocolsListDataSummary) GoString() string {
  8045  	return s.String()
  8046  }
  8047  
  8048  // SetListArn sets the ListArn field's value.
  8049  func (s *ProtocolsListDataSummary) SetListArn(v string) *ProtocolsListDataSummary {
  8050  	s.ListArn = &v
  8051  	return s
  8052  }
  8053  
  8054  // SetListId sets the ListId field's value.
  8055  func (s *ProtocolsListDataSummary) SetListId(v string) *ProtocolsListDataSummary {
  8056  	s.ListId = &v
  8057  	return s
  8058  }
  8059  
  8060  // SetListName sets the ListName field's value.
  8061  func (s *ProtocolsListDataSummary) SetListName(v string) *ProtocolsListDataSummary {
  8062  	s.ListName = &v
  8063  	return s
  8064  }
  8065  
  8066  // SetProtocolsList sets the ProtocolsList field's value.
  8067  func (s *ProtocolsListDataSummary) SetProtocolsList(v []*string) *ProtocolsListDataSummary {
  8068  	s.ProtocolsList = v
  8069  	return s
  8070  }
  8071  
  8072  type PutAppsListInput struct {
  8073  	_ struct{} `type:"structure"`
  8074  
  8075  	// The details of the Firewall Manager applications list to be created.
  8076  	//
  8077  	// AppsList is a required field
  8078  	AppsList *AppsListData `type:"structure" required:"true"`
  8079  
  8080  	// The tags associated with the resource.
  8081  	TagList []*Tag `type:"list"`
  8082  }
  8083  
  8084  // String returns the string representation.
  8085  //
  8086  // API parameter values that are decorated as "sensitive" in the API will not
  8087  // be included in the string output. The member name will be present, but the
  8088  // value will be replaced with "sensitive".
  8089  func (s PutAppsListInput) String() string {
  8090  	return awsutil.Prettify(s)
  8091  }
  8092  
  8093  // GoString returns the string representation.
  8094  //
  8095  // API parameter values that are decorated as "sensitive" in the API will not
  8096  // be included in the string output. The member name will be present, but the
  8097  // value will be replaced with "sensitive".
  8098  func (s PutAppsListInput) GoString() string {
  8099  	return s.String()
  8100  }
  8101  
  8102  // Validate inspects the fields of the type to determine if they are valid.
  8103  func (s *PutAppsListInput) Validate() error {
  8104  	invalidParams := request.ErrInvalidParams{Context: "PutAppsListInput"}
  8105  	if s.AppsList == nil {
  8106  		invalidParams.Add(request.NewErrParamRequired("AppsList"))
  8107  	}
  8108  	if s.AppsList != nil {
  8109  		if err := s.AppsList.Validate(); err != nil {
  8110  			invalidParams.AddNested("AppsList", err.(request.ErrInvalidParams))
  8111  		}
  8112  	}
  8113  	if s.TagList != nil {
  8114  		for i, v := range s.TagList {
  8115  			if v == nil {
  8116  				continue
  8117  			}
  8118  			if err := v.Validate(); err != nil {
  8119  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagList", i), err.(request.ErrInvalidParams))
  8120  			}
  8121  		}
  8122  	}
  8123  
  8124  	if invalidParams.Len() > 0 {
  8125  		return invalidParams
  8126  	}
  8127  	return nil
  8128  }
  8129  
  8130  // SetAppsList sets the AppsList field's value.
  8131  func (s *PutAppsListInput) SetAppsList(v *AppsListData) *PutAppsListInput {
  8132  	s.AppsList = v
  8133  	return s
  8134  }
  8135  
  8136  // SetTagList sets the TagList field's value.
  8137  func (s *PutAppsListInput) SetTagList(v []*Tag) *PutAppsListInput {
  8138  	s.TagList = v
  8139  	return s
  8140  }
  8141  
  8142  type PutAppsListOutput struct {
  8143  	_ struct{} `type:"structure"`
  8144  
  8145  	// The details of the Firewall Manager applications list.
  8146  	AppsList *AppsListData `type:"structure"`
  8147  
  8148  	// The Amazon Resource Name (ARN) of the applications list.
  8149  	AppsListArn *string `min:"1" type:"string"`
  8150  }
  8151  
  8152  // String returns the string representation.
  8153  //
  8154  // API parameter values that are decorated as "sensitive" in the API will not
  8155  // be included in the string output. The member name will be present, but the
  8156  // value will be replaced with "sensitive".
  8157  func (s PutAppsListOutput) String() string {
  8158  	return awsutil.Prettify(s)
  8159  }
  8160  
  8161  // GoString returns the string representation.
  8162  //
  8163  // API parameter values that are decorated as "sensitive" in the API will not
  8164  // be included in the string output. The member name will be present, but the
  8165  // value will be replaced with "sensitive".
  8166  func (s PutAppsListOutput) GoString() string {
  8167  	return s.String()
  8168  }
  8169  
  8170  // SetAppsList sets the AppsList field's value.
  8171  func (s *PutAppsListOutput) SetAppsList(v *AppsListData) *PutAppsListOutput {
  8172  	s.AppsList = v
  8173  	return s
  8174  }
  8175  
  8176  // SetAppsListArn sets the AppsListArn field's value.
  8177  func (s *PutAppsListOutput) SetAppsListArn(v string) *PutAppsListOutput {
  8178  	s.AppsListArn = &v
  8179  	return s
  8180  }
  8181  
  8182  type PutNotificationChannelInput struct {
  8183  	_ struct{} `type:"structure"`
  8184  
  8185  	// The Amazon Resource Name (ARN) of the IAM role that allows Amazon SNS to
  8186  	// record Firewall Manager activity.
  8187  	//
  8188  	// SnsRoleName is a required field
  8189  	SnsRoleName *string `min:"1" type:"string" required:"true"`
  8190  
  8191  	// The Amazon Resource Name (ARN) of the SNS topic that collects notifications
  8192  	// from Firewall Manager.
  8193  	//
  8194  	// SnsTopicArn is a required field
  8195  	SnsTopicArn *string `min:"1" type:"string" required:"true"`
  8196  }
  8197  
  8198  // String returns the string representation.
  8199  //
  8200  // API parameter values that are decorated as "sensitive" in the API will not
  8201  // be included in the string output. The member name will be present, but the
  8202  // value will be replaced with "sensitive".
  8203  func (s PutNotificationChannelInput) String() string {
  8204  	return awsutil.Prettify(s)
  8205  }
  8206  
  8207  // GoString returns the string representation.
  8208  //
  8209  // API parameter values that are decorated as "sensitive" in the API will not
  8210  // be included in the string output. The member name will be present, but the
  8211  // value will be replaced with "sensitive".
  8212  func (s PutNotificationChannelInput) GoString() string {
  8213  	return s.String()
  8214  }
  8215  
  8216  // Validate inspects the fields of the type to determine if they are valid.
  8217  func (s *PutNotificationChannelInput) Validate() error {
  8218  	invalidParams := request.ErrInvalidParams{Context: "PutNotificationChannelInput"}
  8219  	if s.SnsRoleName == nil {
  8220  		invalidParams.Add(request.NewErrParamRequired("SnsRoleName"))
  8221  	}
  8222  	if s.SnsRoleName != nil && len(*s.SnsRoleName) < 1 {
  8223  		invalidParams.Add(request.NewErrParamMinLen("SnsRoleName", 1))
  8224  	}
  8225  	if s.SnsTopicArn == nil {
  8226  		invalidParams.Add(request.NewErrParamRequired("SnsTopicArn"))
  8227  	}
  8228  	if s.SnsTopicArn != nil && len(*s.SnsTopicArn) < 1 {
  8229  		invalidParams.Add(request.NewErrParamMinLen("SnsTopicArn", 1))
  8230  	}
  8231  
  8232  	if invalidParams.Len() > 0 {
  8233  		return invalidParams
  8234  	}
  8235  	return nil
  8236  }
  8237  
  8238  // SetSnsRoleName sets the SnsRoleName field's value.
  8239  func (s *PutNotificationChannelInput) SetSnsRoleName(v string) *PutNotificationChannelInput {
  8240  	s.SnsRoleName = &v
  8241  	return s
  8242  }
  8243  
  8244  // SetSnsTopicArn sets the SnsTopicArn field's value.
  8245  func (s *PutNotificationChannelInput) SetSnsTopicArn(v string) *PutNotificationChannelInput {
  8246  	s.SnsTopicArn = &v
  8247  	return s
  8248  }
  8249  
  8250  type PutNotificationChannelOutput struct {
  8251  	_ struct{} `type:"structure"`
  8252  }
  8253  
  8254  // String returns the string representation.
  8255  //
  8256  // API parameter values that are decorated as "sensitive" in the API will not
  8257  // be included in the string output. The member name will be present, but the
  8258  // value will be replaced with "sensitive".
  8259  func (s PutNotificationChannelOutput) String() string {
  8260  	return awsutil.Prettify(s)
  8261  }
  8262  
  8263  // GoString returns the string representation.
  8264  //
  8265  // API parameter values that are decorated as "sensitive" in the API will not
  8266  // be included in the string output. The member name will be present, but the
  8267  // value will be replaced with "sensitive".
  8268  func (s PutNotificationChannelOutput) GoString() string {
  8269  	return s.String()
  8270  }
  8271  
  8272  type PutPolicyInput struct {
  8273  	_ struct{} `type:"structure"`
  8274  
  8275  	// The details of the Firewall Manager policy to be created.
  8276  	//
  8277  	// Policy is a required field
  8278  	Policy *Policy `type:"structure" required:"true"`
  8279  
  8280  	// The tags to add to the Amazon Web Services resource.
  8281  	TagList []*Tag `type:"list"`
  8282  }
  8283  
  8284  // String returns the string representation.
  8285  //
  8286  // API parameter values that are decorated as "sensitive" in the API will not
  8287  // be included in the string output. The member name will be present, but the
  8288  // value will be replaced with "sensitive".
  8289  func (s PutPolicyInput) String() string {
  8290  	return awsutil.Prettify(s)
  8291  }
  8292  
  8293  // GoString returns the string representation.
  8294  //
  8295  // API parameter values that are decorated as "sensitive" in the API will not
  8296  // be included in the string output. The member name will be present, but the
  8297  // value will be replaced with "sensitive".
  8298  func (s PutPolicyInput) GoString() string {
  8299  	return s.String()
  8300  }
  8301  
  8302  // Validate inspects the fields of the type to determine if they are valid.
  8303  func (s *PutPolicyInput) Validate() error {
  8304  	invalidParams := request.ErrInvalidParams{Context: "PutPolicyInput"}
  8305  	if s.Policy == nil {
  8306  		invalidParams.Add(request.NewErrParamRequired("Policy"))
  8307  	}
  8308  	if s.Policy != nil {
  8309  		if err := s.Policy.Validate(); err != nil {
  8310  			invalidParams.AddNested("Policy", err.(request.ErrInvalidParams))
  8311  		}
  8312  	}
  8313  	if s.TagList != nil {
  8314  		for i, v := range s.TagList {
  8315  			if v == nil {
  8316  				continue
  8317  			}
  8318  			if err := v.Validate(); err != nil {
  8319  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagList", i), err.(request.ErrInvalidParams))
  8320  			}
  8321  		}
  8322  	}
  8323  
  8324  	if invalidParams.Len() > 0 {
  8325  		return invalidParams
  8326  	}
  8327  	return nil
  8328  }
  8329  
  8330  // SetPolicy sets the Policy field's value.
  8331  func (s *PutPolicyInput) SetPolicy(v *Policy) *PutPolicyInput {
  8332  	s.Policy = v
  8333  	return s
  8334  }
  8335  
  8336  // SetTagList sets the TagList field's value.
  8337  func (s *PutPolicyInput) SetTagList(v []*Tag) *PutPolicyInput {
  8338  	s.TagList = v
  8339  	return s
  8340  }
  8341  
  8342  type PutPolicyOutput struct {
  8343  	_ struct{} `type:"structure"`
  8344  
  8345  	// The details of the Firewall Manager policy.
  8346  	Policy *Policy `type:"structure"`
  8347  
  8348  	// The Amazon Resource Name (ARN) of the policy.
  8349  	PolicyArn *string `min:"1" type:"string"`
  8350  }
  8351  
  8352  // String returns the string representation.
  8353  //
  8354  // API parameter values that are decorated as "sensitive" in the API will not
  8355  // be included in the string output. The member name will be present, but the
  8356  // value will be replaced with "sensitive".
  8357  func (s PutPolicyOutput) String() string {
  8358  	return awsutil.Prettify(s)
  8359  }
  8360  
  8361  // GoString returns the string representation.
  8362  //
  8363  // API parameter values that are decorated as "sensitive" in the API will not
  8364  // be included in the string output. The member name will be present, but the
  8365  // value will be replaced with "sensitive".
  8366  func (s PutPolicyOutput) GoString() string {
  8367  	return s.String()
  8368  }
  8369  
  8370  // SetPolicy sets the Policy field's value.
  8371  func (s *PutPolicyOutput) SetPolicy(v *Policy) *PutPolicyOutput {
  8372  	s.Policy = v
  8373  	return s
  8374  }
  8375  
  8376  // SetPolicyArn sets the PolicyArn field's value.
  8377  func (s *PutPolicyOutput) SetPolicyArn(v string) *PutPolicyOutput {
  8378  	s.PolicyArn = &v
  8379  	return s
  8380  }
  8381  
  8382  type PutProtocolsListInput struct {
  8383  	_ struct{} `type:"structure"`
  8384  
  8385  	// The details of the Firewall Manager protocols list to be created.
  8386  	//
  8387  	// ProtocolsList is a required field
  8388  	ProtocolsList *ProtocolsListData `type:"structure" required:"true"`
  8389  
  8390  	// The tags associated with the resource.
  8391  	TagList []*Tag `type:"list"`
  8392  }
  8393  
  8394  // String returns the string representation.
  8395  //
  8396  // API parameter values that are decorated as "sensitive" in the API will not
  8397  // be included in the string output. The member name will be present, but the
  8398  // value will be replaced with "sensitive".
  8399  func (s PutProtocolsListInput) String() string {
  8400  	return awsutil.Prettify(s)
  8401  }
  8402  
  8403  // GoString returns the string representation.
  8404  //
  8405  // API parameter values that are decorated as "sensitive" in the API will not
  8406  // be included in the string output. The member name will be present, but the
  8407  // value will be replaced with "sensitive".
  8408  func (s PutProtocolsListInput) GoString() string {
  8409  	return s.String()
  8410  }
  8411  
  8412  // Validate inspects the fields of the type to determine if they are valid.
  8413  func (s *PutProtocolsListInput) Validate() error {
  8414  	invalidParams := request.ErrInvalidParams{Context: "PutProtocolsListInput"}
  8415  	if s.ProtocolsList == nil {
  8416  		invalidParams.Add(request.NewErrParamRequired("ProtocolsList"))
  8417  	}
  8418  	if s.ProtocolsList != nil {
  8419  		if err := s.ProtocolsList.Validate(); err != nil {
  8420  			invalidParams.AddNested("ProtocolsList", err.(request.ErrInvalidParams))
  8421  		}
  8422  	}
  8423  	if s.TagList != nil {
  8424  		for i, v := range s.TagList {
  8425  			if v == nil {
  8426  				continue
  8427  			}
  8428  			if err := v.Validate(); err != nil {
  8429  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagList", i), err.(request.ErrInvalidParams))
  8430  			}
  8431  		}
  8432  	}
  8433  
  8434  	if invalidParams.Len() > 0 {
  8435  		return invalidParams
  8436  	}
  8437  	return nil
  8438  }
  8439  
  8440  // SetProtocolsList sets the ProtocolsList field's value.
  8441  func (s *PutProtocolsListInput) SetProtocolsList(v *ProtocolsListData) *PutProtocolsListInput {
  8442  	s.ProtocolsList = v
  8443  	return s
  8444  }
  8445  
  8446  // SetTagList sets the TagList field's value.
  8447  func (s *PutProtocolsListInput) SetTagList(v []*Tag) *PutProtocolsListInput {
  8448  	s.TagList = v
  8449  	return s
  8450  }
  8451  
  8452  type PutProtocolsListOutput struct {
  8453  	_ struct{} `type:"structure"`
  8454  
  8455  	// The details of the Firewall Manager protocols list.
  8456  	ProtocolsList *ProtocolsListData `type:"structure"`
  8457  
  8458  	// The Amazon Resource Name (ARN) of the protocols list.
  8459  	ProtocolsListArn *string `min:"1" type:"string"`
  8460  }
  8461  
  8462  // String returns the string representation.
  8463  //
  8464  // API parameter values that are decorated as "sensitive" in the API will not
  8465  // be included in the string output. The member name will be present, but the
  8466  // value will be replaced with "sensitive".
  8467  func (s PutProtocolsListOutput) String() string {
  8468  	return awsutil.Prettify(s)
  8469  }
  8470  
  8471  // GoString returns the string representation.
  8472  //
  8473  // API parameter values that are decorated as "sensitive" in the API will not
  8474  // be included in the string output. The member name will be present, but the
  8475  // value will be replaced with "sensitive".
  8476  func (s PutProtocolsListOutput) GoString() string {
  8477  	return s.String()
  8478  }
  8479  
  8480  // SetProtocolsList sets the ProtocolsList field's value.
  8481  func (s *PutProtocolsListOutput) SetProtocolsList(v *ProtocolsListData) *PutProtocolsListOutput {
  8482  	s.ProtocolsList = v
  8483  	return s
  8484  }
  8485  
  8486  // SetProtocolsListArn sets the ProtocolsListArn field's value.
  8487  func (s *PutProtocolsListOutput) SetProtocolsListArn(v string) *PutProtocolsListOutput {
  8488  	s.ProtocolsListArn = &v
  8489  	return s
  8490  }
  8491  
  8492  // Information about an individual action you can take to remediate a violation.
  8493  type RemediationAction struct {
  8494  	_ struct{} `type:"structure"`
  8495  
  8496  	// A description of a remediation action.
  8497  	Description *string `type:"string"`
  8498  
  8499  	// Information about the AssociateRouteTable action in the Amazon EC2 API.
  8500  	EC2AssociateRouteTableAction *EC2AssociateRouteTableAction `type:"structure"`
  8501  
  8502  	// Information about the CopyRouteTable action in the Amazon EC2 API.
  8503  	EC2CopyRouteTableAction *EC2CopyRouteTableAction `type:"structure"`
  8504  
  8505  	// Information about the CreateRoute action in the Amazon EC2 API.
  8506  	EC2CreateRouteAction *EC2CreateRouteAction `type:"structure"`
  8507  
  8508  	// Information about the CreateRouteTable action in the Amazon EC2 API.
  8509  	EC2CreateRouteTableAction *EC2CreateRouteTableAction `type:"structure"`
  8510  
  8511  	// Information about the DeleteRoute action in the Amazon EC2 API.
  8512  	EC2DeleteRouteAction *EC2DeleteRouteAction `type:"structure"`
  8513  
  8514  	// Information about the ReplaceRoute action in the Amazon EC2 API.
  8515  	EC2ReplaceRouteAction *EC2ReplaceRouteAction `type:"structure"`
  8516  
  8517  	// Information about the ReplaceRouteTableAssociation action in the Amazon EC2
  8518  	// API.
  8519  	EC2ReplaceRouteTableAssociationAction *EC2ReplaceRouteTableAssociationAction `type:"structure"`
  8520  }
  8521  
  8522  // String returns the string representation.
  8523  //
  8524  // API parameter values that are decorated as "sensitive" in the API will not
  8525  // be included in the string output. The member name will be present, but the
  8526  // value will be replaced with "sensitive".
  8527  func (s RemediationAction) String() string {
  8528  	return awsutil.Prettify(s)
  8529  }
  8530  
  8531  // GoString returns the string representation.
  8532  //
  8533  // API parameter values that are decorated as "sensitive" in the API will not
  8534  // be included in the string output. The member name will be present, but the
  8535  // value will be replaced with "sensitive".
  8536  func (s RemediationAction) GoString() string {
  8537  	return s.String()
  8538  }
  8539  
  8540  // SetDescription sets the Description field's value.
  8541  func (s *RemediationAction) SetDescription(v string) *RemediationAction {
  8542  	s.Description = &v
  8543  	return s
  8544  }
  8545  
  8546  // SetEC2AssociateRouteTableAction sets the EC2AssociateRouteTableAction field's value.
  8547  func (s *RemediationAction) SetEC2AssociateRouteTableAction(v *EC2AssociateRouteTableAction) *RemediationAction {
  8548  	s.EC2AssociateRouteTableAction = v
  8549  	return s
  8550  }
  8551  
  8552  // SetEC2CopyRouteTableAction sets the EC2CopyRouteTableAction field's value.
  8553  func (s *RemediationAction) SetEC2CopyRouteTableAction(v *EC2CopyRouteTableAction) *RemediationAction {
  8554  	s.EC2CopyRouteTableAction = v
  8555  	return s
  8556  }
  8557  
  8558  // SetEC2CreateRouteAction sets the EC2CreateRouteAction field's value.
  8559  func (s *RemediationAction) SetEC2CreateRouteAction(v *EC2CreateRouteAction) *RemediationAction {
  8560  	s.EC2CreateRouteAction = v
  8561  	return s
  8562  }
  8563  
  8564  // SetEC2CreateRouteTableAction sets the EC2CreateRouteTableAction field's value.
  8565  func (s *RemediationAction) SetEC2CreateRouteTableAction(v *EC2CreateRouteTableAction) *RemediationAction {
  8566  	s.EC2CreateRouteTableAction = v
  8567  	return s
  8568  }
  8569  
  8570  // SetEC2DeleteRouteAction sets the EC2DeleteRouteAction field's value.
  8571  func (s *RemediationAction) SetEC2DeleteRouteAction(v *EC2DeleteRouteAction) *RemediationAction {
  8572  	s.EC2DeleteRouteAction = v
  8573  	return s
  8574  }
  8575  
  8576  // SetEC2ReplaceRouteAction sets the EC2ReplaceRouteAction field's value.
  8577  func (s *RemediationAction) SetEC2ReplaceRouteAction(v *EC2ReplaceRouteAction) *RemediationAction {
  8578  	s.EC2ReplaceRouteAction = v
  8579  	return s
  8580  }
  8581  
  8582  // SetEC2ReplaceRouteTableAssociationAction sets the EC2ReplaceRouteTableAssociationAction field's value.
  8583  func (s *RemediationAction) SetEC2ReplaceRouteTableAssociationAction(v *EC2ReplaceRouteTableAssociationAction) *RemediationAction {
  8584  	s.EC2ReplaceRouteTableAssociationAction = v
  8585  	return s
  8586  }
  8587  
  8588  // An ordered list of actions you can take to remediate a violation.
  8589  type RemediationActionWithOrder struct {
  8590  	_ struct{} `type:"structure"`
  8591  
  8592  	// The order of the remediation actions in the list.
  8593  	Order *int64 `type:"integer"`
  8594  
  8595  	// Information about an action you can take to remediate a violation.
  8596  	RemediationAction *RemediationAction `type:"structure"`
  8597  }
  8598  
  8599  // String returns the string representation.
  8600  //
  8601  // API parameter values that are decorated as "sensitive" in the API will not
  8602  // be included in the string output. The member name will be present, but the
  8603  // value will be replaced with "sensitive".
  8604  func (s RemediationActionWithOrder) String() string {
  8605  	return awsutil.Prettify(s)
  8606  }
  8607  
  8608  // GoString returns the string representation.
  8609  //
  8610  // API parameter values that are decorated as "sensitive" in the API will not
  8611  // be included in the string output. The member name will be present, but the
  8612  // value will be replaced with "sensitive".
  8613  func (s RemediationActionWithOrder) GoString() string {
  8614  	return s.String()
  8615  }
  8616  
  8617  // SetOrder sets the Order field's value.
  8618  func (s *RemediationActionWithOrder) SetOrder(v int64) *RemediationActionWithOrder {
  8619  	s.Order = &v
  8620  	return s
  8621  }
  8622  
  8623  // SetRemediationAction sets the RemediationAction field's value.
  8624  func (s *RemediationActionWithOrder) SetRemediationAction(v *RemediationAction) *RemediationActionWithOrder {
  8625  	s.RemediationAction = v
  8626  	return s
  8627  }
  8628  
  8629  // The specified resource was not found.
  8630  type ResourceNotFoundException struct {
  8631  	_            struct{}                  `type:"structure"`
  8632  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8633  
  8634  	Message_ *string `locationName:"Message" type:"string"`
  8635  }
  8636  
  8637  // String returns the string representation.
  8638  //
  8639  // API parameter values that are decorated as "sensitive" in the API will not
  8640  // be included in the string output. The member name will be present, but the
  8641  // value will be replaced with "sensitive".
  8642  func (s ResourceNotFoundException) String() string {
  8643  	return awsutil.Prettify(s)
  8644  }
  8645  
  8646  // GoString returns the string representation.
  8647  //
  8648  // API parameter values that are decorated as "sensitive" in the API will not
  8649  // be included in the string output. The member name will be present, but the
  8650  // value will be replaced with "sensitive".
  8651  func (s ResourceNotFoundException) GoString() string {
  8652  	return s.String()
  8653  }
  8654  
  8655  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
  8656  	return &ResourceNotFoundException{
  8657  		RespMetadata: v,
  8658  	}
  8659  }
  8660  
  8661  // Code returns the exception type name.
  8662  func (s *ResourceNotFoundException) Code() string {
  8663  	return "ResourceNotFoundException"
  8664  }
  8665  
  8666  // Message returns the exception's message.
  8667  func (s *ResourceNotFoundException) Message() string {
  8668  	if s.Message_ != nil {
  8669  		return *s.Message_
  8670  	}
  8671  	return ""
  8672  }
  8673  
  8674  // OrigErr always returns nil, satisfies awserr.Error interface.
  8675  func (s *ResourceNotFoundException) OrigErr() error {
  8676  	return nil
  8677  }
  8678  
  8679  func (s *ResourceNotFoundException) Error() string {
  8680  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  8681  }
  8682  
  8683  // Status code returns the HTTP status code for the request's response error.
  8684  func (s *ResourceNotFoundException) StatusCode() int {
  8685  	return s.RespMetadata.StatusCode
  8686  }
  8687  
  8688  // RequestID returns the service's response RequestID for request.
  8689  func (s *ResourceNotFoundException) RequestID() string {
  8690  	return s.RespMetadata.RequestID
  8691  }
  8692  
  8693  // The resource tags that Firewall Manager uses to determine if a particular
  8694  // resource should be included or excluded from the Firewall Manager policy.
  8695  // Tags enable you to categorize your Amazon Web Services resources in different
  8696  // ways, for example, by purpose, owner, or environment. Each tag consists of
  8697  // a key and an optional value. Firewall Manager combines the tags with "AND"
  8698  // so that, if you add more than one tag to a policy scope, a resource must
  8699  // have all the specified tags to be included or excluded. For more information,
  8700  // see Working with Tag Editor (https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html).
  8701  type ResourceTag struct {
  8702  	_ struct{} `type:"structure"`
  8703  
  8704  	// The resource tag key.
  8705  	//
  8706  	// Key is a required field
  8707  	Key *string `min:"1" type:"string" required:"true"`
  8708  
  8709  	// The resource tag value.
  8710  	Value *string `type:"string"`
  8711  }
  8712  
  8713  // String returns the string representation.
  8714  //
  8715  // API parameter values that are decorated as "sensitive" in the API will not
  8716  // be included in the string output. The member name will be present, but the
  8717  // value will be replaced with "sensitive".
  8718  func (s ResourceTag) String() string {
  8719  	return awsutil.Prettify(s)
  8720  }
  8721  
  8722  // GoString returns the string representation.
  8723  //
  8724  // API parameter values that are decorated as "sensitive" in the API will not
  8725  // be included in the string output. The member name will be present, but the
  8726  // value will be replaced with "sensitive".
  8727  func (s ResourceTag) GoString() string {
  8728  	return s.String()
  8729  }
  8730  
  8731  // Validate inspects the fields of the type to determine if they are valid.
  8732  func (s *ResourceTag) Validate() error {
  8733  	invalidParams := request.ErrInvalidParams{Context: "ResourceTag"}
  8734  	if s.Key == nil {
  8735  		invalidParams.Add(request.NewErrParamRequired("Key"))
  8736  	}
  8737  	if s.Key != nil && len(*s.Key) < 1 {
  8738  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
  8739  	}
  8740  
  8741  	if invalidParams.Len() > 0 {
  8742  		return invalidParams
  8743  	}
  8744  	return nil
  8745  }
  8746  
  8747  // SetKey sets the Key field's value.
  8748  func (s *ResourceTag) SetKey(v string) *ResourceTag {
  8749  	s.Key = &v
  8750  	return s
  8751  }
  8752  
  8753  // SetValue sets the Value field's value.
  8754  func (s *ResourceTag) SetValue(v string) *ResourceTag {
  8755  	s.Value = &v
  8756  	return s
  8757  }
  8758  
  8759  // Violation detail based on resource type.
  8760  type ResourceViolation struct {
  8761  	_ struct{} `type:"structure"`
  8762  
  8763  	// Violation detail for an EC2 instance.
  8764  	AwsEc2InstanceViolation *AwsEc2InstanceViolation `type:"structure"`
  8765  
  8766  	// Violation detail for a network interface.
  8767  	AwsEc2NetworkInterfaceViolation *AwsEc2NetworkInterfaceViolation `type:"structure"`
  8768  
  8769  	// Violation detail for security groups.
  8770  	AwsVPCSecurityGroupViolation *AwsVPCSecurityGroupViolation `type:"structure"`
  8771  
  8772  	// Violation detail for a DNS Firewall policy that indicates that a rule group
  8773  	// that Firewall Manager tried to associate with a VPC is already associated
  8774  	// with the VPC and can't be associated again.
  8775  	DnsDuplicateRuleGroupViolation *DnsDuplicateRuleGroupViolation `type:"structure"`
  8776  
  8777  	// Violation detail for a DNS Firewall policy that indicates that the VPC reached
  8778  	// the limit for associated DNS Firewall rule groups. Firewall Manager tried
  8779  	// to associate another rule group with the VPC and failed.
  8780  	DnsRuleGroupLimitExceededViolation *DnsRuleGroupLimitExceededViolation `type:"structure"`
  8781  
  8782  	// Violation detail for a DNS Firewall policy that indicates that a rule group
  8783  	// that Firewall Manager tried to associate with a VPC has the same priority
  8784  	// as a rule group that's already associated.
  8785  	DnsRuleGroupPriorityConflictViolation *DnsRuleGroupPriorityConflictViolation `type:"structure"`
  8786  
  8787  	// Violation detail for an internet gateway route with an inactive state in
  8788  	// the customer subnet route table or Network Firewall subnet route table.
  8789  	NetworkFirewallBlackHoleRouteDetectedViolation *NetworkFirewallBlackHoleRouteDetectedViolation `type:"structure"`
  8790  
  8791  	// Violation detail for the subnet for which internet traffic hasn't been inspected.
  8792  	NetworkFirewallInternetTrafficNotInspectedViolation *NetworkFirewallInternetTrafficNotInspectedViolation `type:"structure"`
  8793  
  8794  	// The route configuration is invalid.
  8795  	NetworkFirewallInvalidRouteConfigurationViolation *NetworkFirewallInvalidRouteConfigurationViolation `type:"structure"`
  8796  
  8797  	// Violation detail for an Network Firewall policy that indicates that a subnet
  8798  	// is not associated with the expected Firewall Manager managed route table.
  8799  	NetworkFirewallMissingExpectedRTViolation *NetworkFirewallMissingExpectedRTViolation `type:"structure"`
  8800  
  8801  	// Expected routes are missing from Network Firewall.
  8802  	NetworkFirewallMissingExpectedRoutesViolation *NetworkFirewallMissingExpectedRoutesViolation `type:"structure"`
  8803  
  8804  	// Violation detail for an Network Firewall policy that indicates that a subnet
  8805  	// has no Firewall Manager managed firewall in its VPC.
  8806  	NetworkFirewallMissingFirewallViolation *NetworkFirewallMissingFirewallViolation `type:"structure"`
  8807  
  8808  	// Violation detail for an Network Firewall policy that indicates that an Availability
  8809  	// Zone is missing the expected Firewall Manager managed subnet.
  8810  	NetworkFirewallMissingSubnetViolation *NetworkFirewallMissingSubnetViolation `type:"structure"`
  8811  
  8812  	// Violation detail for an Network Firewall policy that indicates that a firewall
  8813  	// policy in an individual account has been modified in a way that makes it
  8814  	// noncompliant. For example, the individual account owner might have deleted
  8815  	// a rule group, changed the priority of a stateless rule group, or changed
  8816  	// a policy default action.
  8817  	NetworkFirewallPolicyModifiedViolation *NetworkFirewallPolicyModifiedViolation `type:"structure"`
  8818  
  8819  	// There's an unexpected firewall route.
  8820  	NetworkFirewallUnexpectedFirewallRoutesViolation *NetworkFirewallUnexpectedFirewallRoutesViolation `type:"structure"`
  8821  
  8822  	// There's an unexpected gateway route.
  8823  	NetworkFirewallUnexpectedGatewayRoutesViolation *NetworkFirewallUnexpectedGatewayRoutesViolation `type:"structure"`
  8824  
  8825  	// A list of possible remediation action lists. Each individual possible remediation
  8826  	// action is a list of individual remediation actions.
  8827  	PossibleRemediationActions *PossibleRemediationActions `type:"structure"`
  8828  }
  8829  
  8830  // String returns the string representation.
  8831  //
  8832  // API parameter values that are decorated as "sensitive" in the API will not
  8833  // be included in the string output. The member name will be present, but the
  8834  // value will be replaced with "sensitive".
  8835  func (s ResourceViolation) String() string {
  8836  	return awsutil.Prettify(s)
  8837  }
  8838  
  8839  // GoString returns the string representation.
  8840  //
  8841  // API parameter values that are decorated as "sensitive" in the API will not
  8842  // be included in the string output. The member name will be present, but the
  8843  // value will be replaced with "sensitive".
  8844  func (s ResourceViolation) GoString() string {
  8845  	return s.String()
  8846  }
  8847  
  8848  // SetAwsEc2InstanceViolation sets the AwsEc2InstanceViolation field's value.
  8849  func (s *ResourceViolation) SetAwsEc2InstanceViolation(v *AwsEc2InstanceViolation) *ResourceViolation {
  8850  	s.AwsEc2InstanceViolation = v
  8851  	return s
  8852  }
  8853  
  8854  // SetAwsEc2NetworkInterfaceViolation sets the AwsEc2NetworkInterfaceViolation field's value.
  8855  func (s *ResourceViolation) SetAwsEc2NetworkInterfaceViolation(v *AwsEc2NetworkInterfaceViolation) *ResourceViolation {
  8856  	s.AwsEc2NetworkInterfaceViolation = v
  8857  	return s
  8858  }
  8859  
  8860  // SetAwsVPCSecurityGroupViolation sets the AwsVPCSecurityGroupViolation field's value.
  8861  func (s *ResourceViolation) SetAwsVPCSecurityGroupViolation(v *AwsVPCSecurityGroupViolation) *ResourceViolation {
  8862  	s.AwsVPCSecurityGroupViolation = v
  8863  	return s
  8864  }
  8865  
  8866  // SetDnsDuplicateRuleGroupViolation sets the DnsDuplicateRuleGroupViolation field's value.
  8867  func (s *ResourceViolation) SetDnsDuplicateRuleGroupViolation(v *DnsDuplicateRuleGroupViolation) *ResourceViolation {
  8868  	s.DnsDuplicateRuleGroupViolation = v
  8869  	return s
  8870  }
  8871  
  8872  // SetDnsRuleGroupLimitExceededViolation sets the DnsRuleGroupLimitExceededViolation field's value.
  8873  func (s *ResourceViolation) SetDnsRuleGroupLimitExceededViolation(v *DnsRuleGroupLimitExceededViolation) *ResourceViolation {
  8874  	s.DnsRuleGroupLimitExceededViolation = v
  8875  	return s
  8876  }
  8877  
  8878  // SetDnsRuleGroupPriorityConflictViolation sets the DnsRuleGroupPriorityConflictViolation field's value.
  8879  func (s *ResourceViolation) SetDnsRuleGroupPriorityConflictViolation(v *DnsRuleGroupPriorityConflictViolation) *ResourceViolation {
  8880  	s.DnsRuleGroupPriorityConflictViolation = v
  8881  	return s
  8882  }
  8883  
  8884  // SetNetworkFirewallBlackHoleRouteDetectedViolation sets the NetworkFirewallBlackHoleRouteDetectedViolation field's value.
  8885  func (s *ResourceViolation) SetNetworkFirewallBlackHoleRouteDetectedViolation(v *NetworkFirewallBlackHoleRouteDetectedViolation) *ResourceViolation {
  8886  	s.NetworkFirewallBlackHoleRouteDetectedViolation = v
  8887  	return s
  8888  }
  8889  
  8890  // SetNetworkFirewallInternetTrafficNotInspectedViolation sets the NetworkFirewallInternetTrafficNotInspectedViolation field's value.
  8891  func (s *ResourceViolation) SetNetworkFirewallInternetTrafficNotInspectedViolation(v *NetworkFirewallInternetTrafficNotInspectedViolation) *ResourceViolation {
  8892  	s.NetworkFirewallInternetTrafficNotInspectedViolation = v
  8893  	return s
  8894  }
  8895  
  8896  // SetNetworkFirewallInvalidRouteConfigurationViolation sets the NetworkFirewallInvalidRouteConfigurationViolation field's value.
  8897  func (s *ResourceViolation) SetNetworkFirewallInvalidRouteConfigurationViolation(v *NetworkFirewallInvalidRouteConfigurationViolation) *ResourceViolation {
  8898  	s.NetworkFirewallInvalidRouteConfigurationViolation = v
  8899  	return s
  8900  }
  8901  
  8902  // SetNetworkFirewallMissingExpectedRTViolation sets the NetworkFirewallMissingExpectedRTViolation field's value.
  8903  func (s *ResourceViolation) SetNetworkFirewallMissingExpectedRTViolation(v *NetworkFirewallMissingExpectedRTViolation) *ResourceViolation {
  8904  	s.NetworkFirewallMissingExpectedRTViolation = v
  8905  	return s
  8906  }
  8907  
  8908  // SetNetworkFirewallMissingExpectedRoutesViolation sets the NetworkFirewallMissingExpectedRoutesViolation field's value.
  8909  func (s *ResourceViolation) SetNetworkFirewallMissingExpectedRoutesViolation(v *NetworkFirewallMissingExpectedRoutesViolation) *ResourceViolation {
  8910  	s.NetworkFirewallMissingExpectedRoutesViolation = v
  8911  	return s
  8912  }
  8913  
  8914  // SetNetworkFirewallMissingFirewallViolation sets the NetworkFirewallMissingFirewallViolation field's value.
  8915  func (s *ResourceViolation) SetNetworkFirewallMissingFirewallViolation(v *NetworkFirewallMissingFirewallViolation) *ResourceViolation {
  8916  	s.NetworkFirewallMissingFirewallViolation = v
  8917  	return s
  8918  }
  8919  
  8920  // SetNetworkFirewallMissingSubnetViolation sets the NetworkFirewallMissingSubnetViolation field's value.
  8921  func (s *ResourceViolation) SetNetworkFirewallMissingSubnetViolation(v *NetworkFirewallMissingSubnetViolation) *ResourceViolation {
  8922  	s.NetworkFirewallMissingSubnetViolation = v
  8923  	return s
  8924  }
  8925  
  8926  // SetNetworkFirewallPolicyModifiedViolation sets the NetworkFirewallPolicyModifiedViolation field's value.
  8927  func (s *ResourceViolation) SetNetworkFirewallPolicyModifiedViolation(v *NetworkFirewallPolicyModifiedViolation) *ResourceViolation {
  8928  	s.NetworkFirewallPolicyModifiedViolation = v
  8929  	return s
  8930  }
  8931  
  8932  // SetNetworkFirewallUnexpectedFirewallRoutesViolation sets the NetworkFirewallUnexpectedFirewallRoutesViolation field's value.
  8933  func (s *ResourceViolation) SetNetworkFirewallUnexpectedFirewallRoutesViolation(v *NetworkFirewallUnexpectedFirewallRoutesViolation) *ResourceViolation {
  8934  	s.NetworkFirewallUnexpectedFirewallRoutesViolation = v
  8935  	return s
  8936  }
  8937  
  8938  // SetNetworkFirewallUnexpectedGatewayRoutesViolation sets the NetworkFirewallUnexpectedGatewayRoutesViolation field's value.
  8939  func (s *ResourceViolation) SetNetworkFirewallUnexpectedGatewayRoutesViolation(v *NetworkFirewallUnexpectedGatewayRoutesViolation) *ResourceViolation {
  8940  	s.NetworkFirewallUnexpectedGatewayRoutesViolation = v
  8941  	return s
  8942  }
  8943  
  8944  // SetPossibleRemediationActions sets the PossibleRemediationActions field's value.
  8945  func (s *ResourceViolation) SetPossibleRemediationActions(v *PossibleRemediationActions) *ResourceViolation {
  8946  	s.PossibleRemediationActions = v
  8947  	return s
  8948  }
  8949  
  8950  // Describes a route in a route table.
  8951  type Route struct {
  8952  	_ struct{} `type:"structure"`
  8953  
  8954  	// The destination of the route.
  8955  	Destination *string `type:"string"`
  8956  
  8957  	// The type of destination for the route.
  8958  	DestinationType *string `type:"string" enum:"DestinationType"`
  8959  
  8960  	// The route's target.
  8961  	Target *string `type:"string"`
  8962  
  8963  	// The type of target for the route.
  8964  	TargetType *string `type:"string" enum:"TargetType"`
  8965  }
  8966  
  8967  // String returns the string representation.
  8968  //
  8969  // API parameter values that are decorated as "sensitive" in the API will not
  8970  // be included in the string output. The member name will be present, but the
  8971  // value will be replaced with "sensitive".
  8972  func (s Route) String() string {
  8973  	return awsutil.Prettify(s)
  8974  }
  8975  
  8976  // GoString returns the string representation.
  8977  //
  8978  // API parameter values that are decorated as "sensitive" in the API will not
  8979  // be included in the string output. The member name will be present, but the
  8980  // value will be replaced with "sensitive".
  8981  func (s Route) GoString() string {
  8982  	return s.String()
  8983  }
  8984  
  8985  // SetDestination sets the Destination field's value.
  8986  func (s *Route) SetDestination(v string) *Route {
  8987  	s.Destination = &v
  8988  	return s
  8989  }
  8990  
  8991  // SetDestinationType sets the DestinationType field's value.
  8992  func (s *Route) SetDestinationType(v string) *Route {
  8993  	s.DestinationType = &v
  8994  	return s
  8995  }
  8996  
  8997  // SetTarget sets the Target field's value.
  8998  func (s *Route) SetTarget(v string) *Route {
  8999  	s.Target = &v
  9000  	return s
  9001  }
  9002  
  9003  // SetTargetType sets the TargetType field's value.
  9004  func (s *Route) SetTargetType(v string) *Route {
  9005  	s.TargetType = &v
  9006  	return s
  9007  }
  9008  
  9009  // Remediation option for the rule specified in the ViolationTarget.
  9010  type SecurityGroupRemediationAction struct {
  9011  	_ struct{} `type:"structure"`
  9012  
  9013  	// Brief description of the action that will be performed.
  9014  	Description *string `type:"string"`
  9015  
  9016  	// Indicates if the current action is the default action.
  9017  	IsDefaultAction *bool `type:"boolean"`
  9018  
  9019  	// The remediation action that will be performed.
  9020  	RemediationActionType *string `type:"string" enum:"RemediationActionType"`
  9021  
  9022  	// The final state of the rule specified in the ViolationTarget after it is
  9023  	// remediated.
  9024  	RemediationResult *SecurityGroupRuleDescription `type:"structure"`
  9025  }
  9026  
  9027  // String returns the string representation.
  9028  //
  9029  // API parameter values that are decorated as "sensitive" in the API will not
  9030  // be included in the string output. The member name will be present, but the
  9031  // value will be replaced with "sensitive".
  9032  func (s SecurityGroupRemediationAction) String() string {
  9033  	return awsutil.Prettify(s)
  9034  }
  9035  
  9036  // GoString returns the string representation.
  9037  //
  9038  // API parameter values that are decorated as "sensitive" in the API will not
  9039  // be included in the string output. The member name will be present, but the
  9040  // value will be replaced with "sensitive".
  9041  func (s SecurityGroupRemediationAction) GoString() string {
  9042  	return s.String()
  9043  }
  9044  
  9045  // SetDescription sets the Description field's value.
  9046  func (s *SecurityGroupRemediationAction) SetDescription(v string) *SecurityGroupRemediationAction {
  9047  	s.Description = &v
  9048  	return s
  9049  }
  9050  
  9051  // SetIsDefaultAction sets the IsDefaultAction field's value.
  9052  func (s *SecurityGroupRemediationAction) SetIsDefaultAction(v bool) *SecurityGroupRemediationAction {
  9053  	s.IsDefaultAction = &v
  9054  	return s
  9055  }
  9056  
  9057  // SetRemediationActionType sets the RemediationActionType field's value.
  9058  func (s *SecurityGroupRemediationAction) SetRemediationActionType(v string) *SecurityGroupRemediationAction {
  9059  	s.RemediationActionType = &v
  9060  	return s
  9061  }
  9062  
  9063  // SetRemediationResult sets the RemediationResult field's value.
  9064  func (s *SecurityGroupRemediationAction) SetRemediationResult(v *SecurityGroupRuleDescription) *SecurityGroupRemediationAction {
  9065  	s.RemediationResult = v
  9066  	return s
  9067  }
  9068  
  9069  // Describes a set of permissions for a security group rule.
  9070  type SecurityGroupRuleDescription struct {
  9071  	_ struct{} `type:"structure"`
  9072  
  9073  	// The start of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6
  9074  	// type number. A value of -1 indicates all ICMP/ICMPv6 types.
  9075  	FromPort *int64 `type:"long"`
  9076  
  9077  	// The IPv4 ranges for the security group rule.
  9078  	IPV4Range *string `type:"string"`
  9079  
  9080  	// The IPv6 ranges for the security group rule.
  9081  	IPV6Range *string `type:"string"`
  9082  
  9083  	// The ID of the prefix list for the security group rule.
  9084  	PrefixListId *string `min:"1" type:"string"`
  9085  
  9086  	// The IP protocol name (tcp, udp, icmp, icmpv6) or number.
  9087  	Protocol *string `type:"string"`
  9088  
  9089  	// The end of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6
  9090  	// code. A value of -1 indicates all ICMP/ICMPv6 codes.
  9091  	ToPort *int64 `type:"long"`
  9092  }
  9093  
  9094  // String returns the string representation.
  9095  //
  9096  // API parameter values that are decorated as "sensitive" in the API will not
  9097  // be included in the string output. The member name will be present, but the
  9098  // value will be replaced with "sensitive".
  9099  func (s SecurityGroupRuleDescription) String() string {
  9100  	return awsutil.Prettify(s)
  9101  }
  9102  
  9103  // GoString returns the string representation.
  9104  //
  9105  // API parameter values that are decorated as "sensitive" in the API will not
  9106  // be included in the string output. The member name will be present, but the
  9107  // value will be replaced with "sensitive".
  9108  func (s SecurityGroupRuleDescription) GoString() string {
  9109  	return s.String()
  9110  }
  9111  
  9112  // SetFromPort sets the FromPort field's value.
  9113  func (s *SecurityGroupRuleDescription) SetFromPort(v int64) *SecurityGroupRuleDescription {
  9114  	s.FromPort = &v
  9115  	return s
  9116  }
  9117  
  9118  // SetIPV4Range sets the IPV4Range field's value.
  9119  func (s *SecurityGroupRuleDescription) SetIPV4Range(v string) *SecurityGroupRuleDescription {
  9120  	s.IPV4Range = &v
  9121  	return s
  9122  }
  9123  
  9124  // SetIPV6Range sets the IPV6Range field's value.
  9125  func (s *SecurityGroupRuleDescription) SetIPV6Range(v string) *SecurityGroupRuleDescription {
  9126  	s.IPV6Range = &v
  9127  	return s
  9128  }
  9129  
  9130  // SetPrefixListId sets the PrefixListId field's value.
  9131  func (s *SecurityGroupRuleDescription) SetPrefixListId(v string) *SecurityGroupRuleDescription {
  9132  	s.PrefixListId = &v
  9133  	return s
  9134  }
  9135  
  9136  // SetProtocol sets the Protocol field's value.
  9137  func (s *SecurityGroupRuleDescription) SetProtocol(v string) *SecurityGroupRuleDescription {
  9138  	s.Protocol = &v
  9139  	return s
  9140  }
  9141  
  9142  // SetToPort sets the ToPort field's value.
  9143  func (s *SecurityGroupRuleDescription) SetToPort(v int64) *SecurityGroupRuleDescription {
  9144  	s.ToPort = &v
  9145  	return s
  9146  }
  9147  
  9148  // Details about the security service that is being used to protect the resources.
  9149  type SecurityServicePolicyData struct {
  9150  	_ struct{} `type:"structure"`
  9151  
  9152  	// Details about the service that are specific to the service type, in JSON
  9153  	// format. For service type SHIELD_ADVANCED, this is an empty string.
  9154  	//
  9155  	//    * Example: DNS_FIREWALL "{\"type\":\"DNS_FIREWALL\",\"preProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-1\",\"priority\":10}],\"postProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-2\",\"priority\":9911}]}"
  9156  	//    Valid values for preProcessRuleGroups are between 1 and 99. Valid values
  9157  	//    for postProcessRuleGroups are between 9901 and 10000.
  9158  	//
  9159  	//    * 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\"]}
  9160  	//    }"
  9161  	//
  9162  	//    * Example: WAFV2 "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAmazonIpReputationList\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[{\"name\":\"NoUserAgent_HEADER\"}]}],\"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\"}]}}"
  9163  	//    In the loggingConfiguration, you can specify one logDestinationConfigs,
  9164  	//    you can optionally provide up to 20 redactedFields, and the RedactedFieldType
  9165  	//    must be one of URI, QUERY_STRING, HEADER, or METHOD.
  9166  	//
  9167  	//    * Example: WAF Classic "{\"type\": \"WAF\", \"ruleGroups\": [{\"id\":\"12345678-1bcd-9012-efga-0987654321ab\",
  9168  	//    \"overrideAction\" : {\"type\": \"COUNT\"}}], \"defaultAction\": {\"type\":
  9169  	//    \"BLOCK\"}}"
  9170  	//
  9171  	//    * Example: SECURITY_GROUPS_COMMON "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false,
  9172  	//    \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" sg-000e55995d61a06bd\"}]}"
  9173  	//
  9174  	//    * Example: Shared VPCs. Apply the preceding policy to resources in shared
  9175  	//    VPCs as well as to those in VPCs that the account owns "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false,
  9176  	//    \"applyToAllEC2InstanceENIs\":false,\"includeSharedVPC\":true,\"securityGroups\":[{\"id\":\"
  9177  	//    sg-000e55995d61a06bd\"}]}"
  9178  	//
  9179  	//    * Example: SECURITY_GROUPS_CONTENT_AUDIT "{\"type\":\"SECURITY_GROUPS_CONTENT_AUDIT\",\"securityGroups\":[{\"id\":\"sg-000e55995d61a06bd\"}],\"securityGroupAction\":{\"type\":\"ALLOW\"}}"
  9180  	//    The security group action for content audit can be ALLOW or DENY. For
  9181  	//    ALLOW, all in-scope security group rules must be within the allowed range
  9182  	//    of the policy's security group rules. For DENY, all in-scope security
  9183  	//    group rules must not contain a value or a range that matches a rule value
  9184  	//    or range in the policy security group.
  9185  	//
  9186  	//    * Example: SECURITY_GROUPS_USAGE_AUDIT "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":true,\"coalesceRedundantSecurityGroups\":true}"
  9187  	ManagedServiceData *string `min:"1" type:"string"`
  9188  
  9189  	// The service that the policy is using to protect the resources. This specifies
  9190  	// the type of policy that is created, either an WAF policy, a Shield Advanced
  9191  	// policy, or a security group policy. For security group policies, Firewall
  9192  	// Manager supports one security group for each common policy and for each content
  9193  	// audit policy. This is an adjustable limit that you can increase by contacting
  9194  	// Amazon Web Services Support.
  9195  	//
  9196  	// Type is a required field
  9197  	Type *string `type:"string" required:"true" enum:"SecurityServiceType"`
  9198  }
  9199  
  9200  // String returns the string representation.
  9201  //
  9202  // API parameter values that are decorated as "sensitive" in the API will not
  9203  // be included in the string output. The member name will be present, but the
  9204  // value will be replaced with "sensitive".
  9205  func (s SecurityServicePolicyData) String() string {
  9206  	return awsutil.Prettify(s)
  9207  }
  9208  
  9209  // GoString returns the string representation.
  9210  //
  9211  // API parameter values that are decorated as "sensitive" in the API will not
  9212  // be included in the string output. The member name will be present, but the
  9213  // value will be replaced with "sensitive".
  9214  func (s SecurityServicePolicyData) GoString() string {
  9215  	return s.String()
  9216  }
  9217  
  9218  // Validate inspects the fields of the type to determine if they are valid.
  9219  func (s *SecurityServicePolicyData) Validate() error {
  9220  	invalidParams := request.ErrInvalidParams{Context: "SecurityServicePolicyData"}
  9221  	if s.ManagedServiceData != nil && len(*s.ManagedServiceData) < 1 {
  9222  		invalidParams.Add(request.NewErrParamMinLen("ManagedServiceData", 1))
  9223  	}
  9224  	if s.Type == nil {
  9225  		invalidParams.Add(request.NewErrParamRequired("Type"))
  9226  	}
  9227  
  9228  	if invalidParams.Len() > 0 {
  9229  		return invalidParams
  9230  	}
  9231  	return nil
  9232  }
  9233  
  9234  // SetManagedServiceData sets the ManagedServiceData field's value.
  9235  func (s *SecurityServicePolicyData) SetManagedServiceData(v string) *SecurityServicePolicyData {
  9236  	s.ManagedServiceData = &v
  9237  	return s
  9238  }
  9239  
  9240  // SetType sets the Type field's value.
  9241  func (s *SecurityServicePolicyData) SetType(v string) *SecurityServicePolicyData {
  9242  	s.Type = &v
  9243  	return s
  9244  }
  9245  
  9246  // Network Firewall stateful rule group, used in a NetworkFirewallPolicyDescription.
  9247  type StatefulRuleGroup struct {
  9248  	_ struct{} `type:"structure"`
  9249  
  9250  	// The resource ID of the rule group.
  9251  	ResourceId *string `min:"1" type:"string"`
  9252  
  9253  	// The name of the rule group.
  9254  	RuleGroupName *string `min:"1" type:"string"`
  9255  }
  9256  
  9257  // String returns the string representation.
  9258  //
  9259  // API parameter values that are decorated as "sensitive" in the API will not
  9260  // be included in the string output. The member name will be present, but the
  9261  // value will be replaced with "sensitive".
  9262  func (s StatefulRuleGroup) String() string {
  9263  	return awsutil.Prettify(s)
  9264  }
  9265  
  9266  // GoString returns the string representation.
  9267  //
  9268  // API parameter values that are decorated as "sensitive" in the API will not
  9269  // be included in the string output. The member name will be present, but the
  9270  // value will be replaced with "sensitive".
  9271  func (s StatefulRuleGroup) GoString() string {
  9272  	return s.String()
  9273  }
  9274  
  9275  // SetResourceId sets the ResourceId field's value.
  9276  func (s *StatefulRuleGroup) SetResourceId(v string) *StatefulRuleGroup {
  9277  	s.ResourceId = &v
  9278  	return s
  9279  }
  9280  
  9281  // SetRuleGroupName sets the RuleGroupName field's value.
  9282  func (s *StatefulRuleGroup) SetRuleGroupName(v string) *StatefulRuleGroup {
  9283  	s.RuleGroupName = &v
  9284  	return s
  9285  }
  9286  
  9287  // Network Firewall stateless rule group, used in a NetworkFirewallPolicyDescription.
  9288  type StatelessRuleGroup struct {
  9289  	_ struct{} `type:"structure"`
  9290  
  9291  	// The priority of the rule group. Network Firewall evaluates the stateless
  9292  	// rule groups in a firewall policy starting from the lowest priority setting.
  9293  	Priority *int64 `min:"1" type:"integer"`
  9294  
  9295  	// The resource ID of the rule group.
  9296  	ResourceId *string `min:"1" type:"string"`
  9297  
  9298  	// The name of the rule group.
  9299  	RuleGroupName *string `min:"1" type:"string"`
  9300  }
  9301  
  9302  // String returns the string representation.
  9303  //
  9304  // API parameter values that are decorated as "sensitive" in the API will not
  9305  // be included in the string output. The member name will be present, but the
  9306  // value will be replaced with "sensitive".
  9307  func (s StatelessRuleGroup) String() string {
  9308  	return awsutil.Prettify(s)
  9309  }
  9310  
  9311  // GoString returns the string representation.
  9312  //
  9313  // API parameter values that are decorated as "sensitive" in the API will not
  9314  // be included in the string output. The member name will be present, but the
  9315  // value will be replaced with "sensitive".
  9316  func (s StatelessRuleGroup) GoString() string {
  9317  	return s.String()
  9318  }
  9319  
  9320  // SetPriority sets the Priority field's value.
  9321  func (s *StatelessRuleGroup) SetPriority(v int64) *StatelessRuleGroup {
  9322  	s.Priority = &v
  9323  	return s
  9324  }
  9325  
  9326  // SetResourceId sets the ResourceId field's value.
  9327  func (s *StatelessRuleGroup) SetResourceId(v string) *StatelessRuleGroup {
  9328  	s.ResourceId = &v
  9329  	return s
  9330  }
  9331  
  9332  // SetRuleGroupName sets the RuleGroupName field's value.
  9333  func (s *StatelessRuleGroup) SetRuleGroupName(v string) *StatelessRuleGroup {
  9334  	s.RuleGroupName = &v
  9335  	return s
  9336  }
  9337  
  9338  // A collection of key:value pairs associated with an Amazon Web Services resource.
  9339  // The key:value pair can be anything you define. Typically, the tag key represents
  9340  // a category (such as "environment") and the tag value represents a specific
  9341  // value within that category (such as "test," "development," or "production").
  9342  // You can add up to 50 tags to each Amazon Web Services resource.
  9343  type Tag struct {
  9344  	_ struct{} `type:"structure"`
  9345  
  9346  	// Part of the key:value pair that defines a tag. You can use a tag key to describe
  9347  	// a category of information, such as "customer." Tag keys are case-sensitive.
  9348  	//
  9349  	// Key is a required field
  9350  	Key *string `min:"1" type:"string" required:"true"`
  9351  
  9352  	// Part of the key:value pair that defines a tag. You can use a tag value to
  9353  	// describe a specific value within a category, such as "companyA" or "companyB."
  9354  	// Tag values are case-sensitive.
  9355  	//
  9356  	// Value is a required field
  9357  	Value *string `type:"string" required:"true"`
  9358  }
  9359  
  9360  // String returns the string representation.
  9361  //
  9362  // API parameter values that are decorated as "sensitive" in the API will not
  9363  // be included in the string output. The member name will be present, but the
  9364  // value will be replaced with "sensitive".
  9365  func (s Tag) String() string {
  9366  	return awsutil.Prettify(s)
  9367  }
  9368  
  9369  // GoString returns the string representation.
  9370  //
  9371  // API parameter values that are decorated as "sensitive" in the API will not
  9372  // be included in the string output. The member name will be present, but the
  9373  // value will be replaced with "sensitive".
  9374  func (s Tag) GoString() string {
  9375  	return s.String()
  9376  }
  9377  
  9378  // Validate inspects the fields of the type to determine if they are valid.
  9379  func (s *Tag) Validate() error {
  9380  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
  9381  	if s.Key == nil {
  9382  		invalidParams.Add(request.NewErrParamRequired("Key"))
  9383  	}
  9384  	if s.Key != nil && len(*s.Key) < 1 {
  9385  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
  9386  	}
  9387  	if s.Value == nil {
  9388  		invalidParams.Add(request.NewErrParamRequired("Value"))
  9389  	}
  9390  
  9391  	if invalidParams.Len() > 0 {
  9392  		return invalidParams
  9393  	}
  9394  	return nil
  9395  }
  9396  
  9397  // SetKey sets the Key field's value.
  9398  func (s *Tag) SetKey(v string) *Tag {
  9399  	s.Key = &v
  9400  	return s
  9401  }
  9402  
  9403  // SetValue sets the Value field's value.
  9404  func (s *Tag) SetValue(v string) *Tag {
  9405  	s.Value = &v
  9406  	return s
  9407  }
  9408  
  9409  type TagResourceInput struct {
  9410  	_ struct{} `type:"structure"`
  9411  
  9412  	// The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall
  9413  	// Manager resources that support tagging are policies, applications lists,
  9414  	// and protocols lists.
  9415  	//
  9416  	// ResourceArn is a required field
  9417  	ResourceArn *string `min:"1" type:"string" required:"true"`
  9418  
  9419  	// The tags to add to the resource.
  9420  	//
  9421  	// TagList is a required field
  9422  	TagList []*Tag `type:"list" required:"true"`
  9423  }
  9424  
  9425  // String returns the string representation.
  9426  //
  9427  // API parameter values that are decorated as "sensitive" in the API will not
  9428  // be included in the string output. The member name will be present, but the
  9429  // value will be replaced with "sensitive".
  9430  func (s TagResourceInput) String() string {
  9431  	return awsutil.Prettify(s)
  9432  }
  9433  
  9434  // GoString returns the string representation.
  9435  //
  9436  // API parameter values that are decorated as "sensitive" in the API will not
  9437  // be included in the string output. The member name will be present, but the
  9438  // value will be replaced with "sensitive".
  9439  func (s TagResourceInput) GoString() string {
  9440  	return s.String()
  9441  }
  9442  
  9443  // Validate inspects the fields of the type to determine if they are valid.
  9444  func (s *TagResourceInput) Validate() error {
  9445  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
  9446  	if s.ResourceArn == nil {
  9447  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  9448  	}
  9449  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
  9450  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
  9451  	}
  9452  	if s.TagList == nil {
  9453  		invalidParams.Add(request.NewErrParamRequired("TagList"))
  9454  	}
  9455  	if s.TagList != nil {
  9456  		for i, v := range s.TagList {
  9457  			if v == nil {
  9458  				continue
  9459  			}
  9460  			if err := v.Validate(); err != nil {
  9461  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagList", i), err.(request.ErrInvalidParams))
  9462  			}
  9463  		}
  9464  	}
  9465  
  9466  	if invalidParams.Len() > 0 {
  9467  		return invalidParams
  9468  	}
  9469  	return nil
  9470  }
  9471  
  9472  // SetResourceArn sets the ResourceArn field's value.
  9473  func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
  9474  	s.ResourceArn = &v
  9475  	return s
  9476  }
  9477  
  9478  // SetTagList sets the TagList field's value.
  9479  func (s *TagResourceInput) SetTagList(v []*Tag) *TagResourceInput {
  9480  	s.TagList = v
  9481  	return s
  9482  }
  9483  
  9484  type TagResourceOutput struct {
  9485  	_ struct{} `type:"structure"`
  9486  }
  9487  
  9488  // String returns the string representation.
  9489  //
  9490  // API parameter values that are decorated as "sensitive" in the API will not
  9491  // be included in the string output. The member name will be present, but the
  9492  // value will be replaced with "sensitive".
  9493  func (s TagResourceOutput) String() string {
  9494  	return awsutil.Prettify(s)
  9495  }
  9496  
  9497  // GoString returns the string representation.
  9498  //
  9499  // API parameter values that are decorated as "sensitive" in the API will not
  9500  // be included in the string output. The member name will be present, but the
  9501  // value will be replaced with "sensitive".
  9502  func (s TagResourceOutput) GoString() string {
  9503  	return s.String()
  9504  }
  9505  
  9506  type UntagResourceInput struct {
  9507  	_ struct{} `type:"structure"`
  9508  
  9509  	// The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall
  9510  	// Manager resources that support tagging are policies, applications lists,
  9511  	// and protocols lists.
  9512  	//
  9513  	// ResourceArn is a required field
  9514  	ResourceArn *string `min:"1" type:"string" required:"true"`
  9515  
  9516  	// The keys of the tags to remove from the resource.
  9517  	//
  9518  	// TagKeys is a required field
  9519  	TagKeys []*string `type:"list" required:"true"`
  9520  }
  9521  
  9522  // String returns the string representation.
  9523  //
  9524  // API parameter values that are decorated as "sensitive" in the API will not
  9525  // be included in the string output. The member name will be present, but the
  9526  // value will be replaced with "sensitive".
  9527  func (s UntagResourceInput) String() string {
  9528  	return awsutil.Prettify(s)
  9529  }
  9530  
  9531  // GoString returns the string representation.
  9532  //
  9533  // API parameter values that are decorated as "sensitive" in the API will not
  9534  // be included in the string output. The member name will be present, but the
  9535  // value will be replaced with "sensitive".
  9536  func (s UntagResourceInput) GoString() string {
  9537  	return s.String()
  9538  }
  9539  
  9540  // Validate inspects the fields of the type to determine if they are valid.
  9541  func (s *UntagResourceInput) Validate() error {
  9542  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
  9543  	if s.ResourceArn == nil {
  9544  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  9545  	}
  9546  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
  9547  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
  9548  	}
  9549  	if s.TagKeys == nil {
  9550  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
  9551  	}
  9552  
  9553  	if invalidParams.Len() > 0 {
  9554  		return invalidParams
  9555  	}
  9556  	return nil
  9557  }
  9558  
  9559  // SetResourceArn sets the ResourceArn field's value.
  9560  func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
  9561  	s.ResourceArn = &v
  9562  	return s
  9563  }
  9564  
  9565  // SetTagKeys sets the TagKeys field's value.
  9566  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
  9567  	s.TagKeys = v
  9568  	return s
  9569  }
  9570  
  9571  type UntagResourceOutput struct {
  9572  	_ struct{} `type:"structure"`
  9573  }
  9574  
  9575  // String returns the string representation.
  9576  //
  9577  // API parameter values that are decorated as "sensitive" in the API will not
  9578  // be included in the string output. The member name will be present, but the
  9579  // value will be replaced with "sensitive".
  9580  func (s UntagResourceOutput) String() string {
  9581  	return awsutil.Prettify(s)
  9582  }
  9583  
  9584  // GoString returns the string representation.
  9585  //
  9586  // API parameter values that are decorated as "sensitive" in the API will not
  9587  // be included in the string output. The member name will be present, but the
  9588  // value will be replaced with "sensitive".
  9589  func (s UntagResourceOutput) GoString() string {
  9590  	return s.String()
  9591  }
  9592  
  9593  // Violations for a resource based on the specified Firewall Manager policy
  9594  // and Amazon Web Services account.
  9595  type ViolationDetail struct {
  9596  	_ struct{} `type:"structure"`
  9597  
  9598  	// The Amazon Web Services account that the violation details were requested
  9599  	// for.
  9600  	//
  9601  	// MemberAccount is a required field
  9602  	MemberAccount *string `min:"1" type:"string" required:"true"`
  9603  
  9604  	// The ID of the Firewall Manager policy that the violation details were requested
  9605  	// for.
  9606  	//
  9607  	// PolicyId is a required field
  9608  	PolicyId *string `min:"36" type:"string" required:"true"`
  9609  
  9610  	// Brief description for the requested resource.
  9611  	ResourceDescription *string `type:"string"`
  9612  
  9613  	// The resource ID that the violation details were requested for.
  9614  	//
  9615  	// ResourceId is a required field
  9616  	ResourceId *string `min:"1" type:"string" required:"true"`
  9617  
  9618  	// The ResourceTag objects associated with the resource.
  9619  	ResourceTags []*Tag `type:"list"`
  9620  
  9621  	// The resource type that the violation details were requested for.
  9622  	//
  9623  	// ResourceType is a required field
  9624  	ResourceType *string `min:"1" type:"string" required:"true"`
  9625  
  9626  	// List of violations for the requested resource.
  9627  	//
  9628  	// ResourceViolations is a required field
  9629  	ResourceViolations []*ResourceViolation `type:"list" required:"true"`
  9630  }
  9631  
  9632  // String returns the string representation.
  9633  //
  9634  // API parameter values that are decorated as "sensitive" in the API will not
  9635  // be included in the string output. The member name will be present, but the
  9636  // value will be replaced with "sensitive".
  9637  func (s ViolationDetail) String() string {
  9638  	return awsutil.Prettify(s)
  9639  }
  9640  
  9641  // GoString returns the string representation.
  9642  //
  9643  // API parameter values that are decorated as "sensitive" in the API will not
  9644  // be included in the string output. The member name will be present, but the
  9645  // value will be replaced with "sensitive".
  9646  func (s ViolationDetail) GoString() string {
  9647  	return s.String()
  9648  }
  9649  
  9650  // SetMemberAccount sets the MemberAccount field's value.
  9651  func (s *ViolationDetail) SetMemberAccount(v string) *ViolationDetail {
  9652  	s.MemberAccount = &v
  9653  	return s
  9654  }
  9655  
  9656  // SetPolicyId sets the PolicyId field's value.
  9657  func (s *ViolationDetail) SetPolicyId(v string) *ViolationDetail {
  9658  	s.PolicyId = &v
  9659  	return s
  9660  }
  9661  
  9662  // SetResourceDescription sets the ResourceDescription field's value.
  9663  func (s *ViolationDetail) SetResourceDescription(v string) *ViolationDetail {
  9664  	s.ResourceDescription = &v
  9665  	return s
  9666  }
  9667  
  9668  // SetResourceId sets the ResourceId field's value.
  9669  func (s *ViolationDetail) SetResourceId(v string) *ViolationDetail {
  9670  	s.ResourceId = &v
  9671  	return s
  9672  }
  9673  
  9674  // SetResourceTags sets the ResourceTags field's value.
  9675  func (s *ViolationDetail) SetResourceTags(v []*Tag) *ViolationDetail {
  9676  	s.ResourceTags = v
  9677  	return s
  9678  }
  9679  
  9680  // SetResourceType sets the ResourceType field's value.
  9681  func (s *ViolationDetail) SetResourceType(v string) *ViolationDetail {
  9682  	s.ResourceType = &v
  9683  	return s
  9684  }
  9685  
  9686  // SetResourceViolations sets the ResourceViolations field's value.
  9687  func (s *ViolationDetail) SetResourceViolations(v []*ResourceViolation) *ViolationDetail {
  9688  	s.ResourceViolations = v
  9689  	return s
  9690  }
  9691  
  9692  const (
  9693  	// AccountRoleStatusReady is a AccountRoleStatus enum value
  9694  	AccountRoleStatusReady = "READY"
  9695  
  9696  	// AccountRoleStatusCreating is a AccountRoleStatus enum value
  9697  	AccountRoleStatusCreating = "CREATING"
  9698  
  9699  	// AccountRoleStatusPendingDeletion is a AccountRoleStatus enum value
  9700  	AccountRoleStatusPendingDeletion = "PENDING_DELETION"
  9701  
  9702  	// AccountRoleStatusDeleting is a AccountRoleStatus enum value
  9703  	AccountRoleStatusDeleting = "DELETING"
  9704  
  9705  	// AccountRoleStatusDeleted is a AccountRoleStatus enum value
  9706  	AccountRoleStatusDeleted = "DELETED"
  9707  )
  9708  
  9709  // AccountRoleStatus_Values returns all elements of the AccountRoleStatus enum
  9710  func AccountRoleStatus_Values() []string {
  9711  	return []string{
  9712  		AccountRoleStatusReady,
  9713  		AccountRoleStatusCreating,
  9714  		AccountRoleStatusPendingDeletion,
  9715  		AccountRoleStatusDeleting,
  9716  		AccountRoleStatusDeleted,
  9717  	}
  9718  }
  9719  
  9720  const (
  9721  	// CustomerPolicyScopeIdTypeAccount is a CustomerPolicyScopeIdType enum value
  9722  	CustomerPolicyScopeIdTypeAccount = "ACCOUNT"
  9723  
  9724  	// CustomerPolicyScopeIdTypeOrgUnit is a CustomerPolicyScopeIdType enum value
  9725  	CustomerPolicyScopeIdTypeOrgUnit = "ORG_UNIT"
  9726  )
  9727  
  9728  // CustomerPolicyScopeIdType_Values returns all elements of the CustomerPolicyScopeIdType enum
  9729  func CustomerPolicyScopeIdType_Values() []string {
  9730  	return []string{
  9731  		CustomerPolicyScopeIdTypeAccount,
  9732  		CustomerPolicyScopeIdTypeOrgUnit,
  9733  	}
  9734  }
  9735  
  9736  const (
  9737  	// DependentServiceNameAwsconfig is a DependentServiceName enum value
  9738  	DependentServiceNameAwsconfig = "AWSCONFIG"
  9739  
  9740  	// DependentServiceNameAwswaf is a DependentServiceName enum value
  9741  	DependentServiceNameAwswaf = "AWSWAF"
  9742  
  9743  	// DependentServiceNameAwsshieldAdvanced is a DependentServiceName enum value
  9744  	DependentServiceNameAwsshieldAdvanced = "AWSSHIELD_ADVANCED"
  9745  
  9746  	// DependentServiceNameAwsvpc is a DependentServiceName enum value
  9747  	DependentServiceNameAwsvpc = "AWSVPC"
  9748  )
  9749  
  9750  // DependentServiceName_Values returns all elements of the DependentServiceName enum
  9751  func DependentServiceName_Values() []string {
  9752  	return []string{
  9753  		DependentServiceNameAwsconfig,
  9754  		DependentServiceNameAwswaf,
  9755  		DependentServiceNameAwsshieldAdvanced,
  9756  		DependentServiceNameAwsvpc,
  9757  	}
  9758  }
  9759  
  9760  const (
  9761  	// DestinationTypeIpv4 is a DestinationType enum value
  9762  	DestinationTypeIpv4 = "IPV4"
  9763  
  9764  	// DestinationTypeIpv6 is a DestinationType enum value
  9765  	DestinationTypeIpv6 = "IPV6"
  9766  
  9767  	// DestinationTypePrefixList is a DestinationType enum value
  9768  	DestinationTypePrefixList = "PREFIX_LIST"
  9769  )
  9770  
  9771  // DestinationType_Values returns all elements of the DestinationType enum
  9772  func DestinationType_Values() []string {
  9773  	return []string{
  9774  		DestinationTypeIpv4,
  9775  		DestinationTypeIpv6,
  9776  		DestinationTypePrefixList,
  9777  	}
  9778  }
  9779  
  9780  const (
  9781  	// PolicyComplianceStatusTypeCompliant is a PolicyComplianceStatusType enum value
  9782  	PolicyComplianceStatusTypeCompliant = "COMPLIANT"
  9783  
  9784  	// PolicyComplianceStatusTypeNonCompliant is a PolicyComplianceStatusType enum value
  9785  	PolicyComplianceStatusTypeNonCompliant = "NON_COMPLIANT"
  9786  )
  9787  
  9788  // PolicyComplianceStatusType_Values returns all elements of the PolicyComplianceStatusType enum
  9789  func PolicyComplianceStatusType_Values() []string {
  9790  	return []string{
  9791  		PolicyComplianceStatusTypeCompliant,
  9792  		PolicyComplianceStatusTypeNonCompliant,
  9793  	}
  9794  }
  9795  
  9796  const (
  9797  	// RemediationActionTypeRemove is a RemediationActionType enum value
  9798  	RemediationActionTypeRemove = "REMOVE"
  9799  
  9800  	// RemediationActionTypeModify is a RemediationActionType enum value
  9801  	RemediationActionTypeModify = "MODIFY"
  9802  )
  9803  
  9804  // RemediationActionType_Values returns all elements of the RemediationActionType enum
  9805  func RemediationActionType_Values() []string {
  9806  	return []string{
  9807  		RemediationActionTypeRemove,
  9808  		RemediationActionTypeModify,
  9809  	}
  9810  }
  9811  
  9812  const (
  9813  	// SecurityServiceTypeWaf is a SecurityServiceType enum value
  9814  	SecurityServiceTypeWaf = "WAF"
  9815  
  9816  	// SecurityServiceTypeWafv2 is a SecurityServiceType enum value
  9817  	SecurityServiceTypeWafv2 = "WAFV2"
  9818  
  9819  	// SecurityServiceTypeShieldAdvanced is a SecurityServiceType enum value
  9820  	SecurityServiceTypeShieldAdvanced = "SHIELD_ADVANCED"
  9821  
  9822  	// SecurityServiceTypeSecurityGroupsCommon is a SecurityServiceType enum value
  9823  	SecurityServiceTypeSecurityGroupsCommon = "SECURITY_GROUPS_COMMON"
  9824  
  9825  	// SecurityServiceTypeSecurityGroupsContentAudit is a SecurityServiceType enum value
  9826  	SecurityServiceTypeSecurityGroupsContentAudit = "SECURITY_GROUPS_CONTENT_AUDIT"
  9827  
  9828  	// SecurityServiceTypeSecurityGroupsUsageAudit is a SecurityServiceType enum value
  9829  	SecurityServiceTypeSecurityGroupsUsageAudit = "SECURITY_GROUPS_USAGE_AUDIT"
  9830  
  9831  	// SecurityServiceTypeNetworkFirewall is a SecurityServiceType enum value
  9832  	SecurityServiceTypeNetworkFirewall = "NETWORK_FIREWALL"
  9833  
  9834  	// SecurityServiceTypeDnsFirewall is a SecurityServiceType enum value
  9835  	SecurityServiceTypeDnsFirewall = "DNS_FIREWALL"
  9836  )
  9837  
  9838  // SecurityServiceType_Values returns all elements of the SecurityServiceType enum
  9839  func SecurityServiceType_Values() []string {
  9840  	return []string{
  9841  		SecurityServiceTypeWaf,
  9842  		SecurityServiceTypeWafv2,
  9843  		SecurityServiceTypeShieldAdvanced,
  9844  		SecurityServiceTypeSecurityGroupsCommon,
  9845  		SecurityServiceTypeSecurityGroupsContentAudit,
  9846  		SecurityServiceTypeSecurityGroupsUsageAudit,
  9847  		SecurityServiceTypeNetworkFirewall,
  9848  		SecurityServiceTypeDnsFirewall,
  9849  	}
  9850  }
  9851  
  9852  const (
  9853  	// TargetTypeGateway is a TargetType enum value
  9854  	TargetTypeGateway = "GATEWAY"
  9855  
  9856  	// TargetTypeCarrierGateway is a TargetType enum value
  9857  	TargetTypeCarrierGateway = "CARRIER_GATEWAY"
  9858  
  9859  	// TargetTypeInstance is a TargetType enum value
  9860  	TargetTypeInstance = "INSTANCE"
  9861  
  9862  	// TargetTypeLocalGateway is a TargetType enum value
  9863  	TargetTypeLocalGateway = "LOCAL_GATEWAY"
  9864  
  9865  	// TargetTypeNatGateway is a TargetType enum value
  9866  	TargetTypeNatGateway = "NAT_GATEWAY"
  9867  
  9868  	// TargetTypeNetworkInterface is a TargetType enum value
  9869  	TargetTypeNetworkInterface = "NETWORK_INTERFACE"
  9870  
  9871  	// TargetTypeVpcEndpoint is a TargetType enum value
  9872  	TargetTypeVpcEndpoint = "VPC_ENDPOINT"
  9873  
  9874  	// TargetTypeVpcPeeringConnection is a TargetType enum value
  9875  	TargetTypeVpcPeeringConnection = "VPC_PEERING_CONNECTION"
  9876  
  9877  	// TargetTypeEgressOnlyInternetGateway is a TargetType enum value
  9878  	TargetTypeEgressOnlyInternetGateway = "EGRESS_ONLY_INTERNET_GATEWAY"
  9879  
  9880  	// TargetTypeTransitGateway is a TargetType enum value
  9881  	TargetTypeTransitGateway = "TRANSIT_GATEWAY"
  9882  )
  9883  
  9884  // TargetType_Values returns all elements of the TargetType enum
  9885  func TargetType_Values() []string {
  9886  	return []string{
  9887  		TargetTypeGateway,
  9888  		TargetTypeCarrierGateway,
  9889  		TargetTypeInstance,
  9890  		TargetTypeLocalGateway,
  9891  		TargetTypeNatGateway,
  9892  		TargetTypeNetworkInterface,
  9893  		TargetTypeVpcEndpoint,
  9894  		TargetTypeVpcPeeringConnection,
  9895  		TargetTypeEgressOnlyInternetGateway,
  9896  		TargetTypeTransitGateway,
  9897  	}
  9898  }
  9899  
  9900  const (
  9901  	// ViolationReasonWebAclMissingRuleGroup is a ViolationReason enum value
  9902  	ViolationReasonWebAclMissingRuleGroup = "WEB_ACL_MISSING_RULE_GROUP"
  9903  
  9904  	// ViolationReasonResourceMissingWebAcl is a ViolationReason enum value
  9905  	ViolationReasonResourceMissingWebAcl = "RESOURCE_MISSING_WEB_ACL"
  9906  
  9907  	// ViolationReasonResourceIncorrectWebAcl is a ViolationReason enum value
  9908  	ViolationReasonResourceIncorrectWebAcl = "RESOURCE_INCORRECT_WEB_ACL"
  9909  
  9910  	// ViolationReasonResourceMissingShieldProtection is a ViolationReason enum value
  9911  	ViolationReasonResourceMissingShieldProtection = "RESOURCE_MISSING_SHIELD_PROTECTION"
  9912  
  9913  	// ViolationReasonResourceMissingWebAclOrShieldProtection is a ViolationReason enum value
  9914  	ViolationReasonResourceMissingWebAclOrShieldProtection = "RESOURCE_MISSING_WEB_ACL_OR_SHIELD_PROTECTION"
  9915  
  9916  	// ViolationReasonResourceMissingSecurityGroup is a ViolationReason enum value
  9917  	ViolationReasonResourceMissingSecurityGroup = "RESOURCE_MISSING_SECURITY_GROUP"
  9918  
  9919  	// ViolationReasonResourceViolatesAuditSecurityGroup is a ViolationReason enum value
  9920  	ViolationReasonResourceViolatesAuditSecurityGroup = "RESOURCE_VIOLATES_AUDIT_SECURITY_GROUP"
  9921  
  9922  	// ViolationReasonSecurityGroupUnused is a ViolationReason enum value
  9923  	ViolationReasonSecurityGroupUnused = "SECURITY_GROUP_UNUSED"
  9924  
  9925  	// ViolationReasonSecurityGroupRedundant is a ViolationReason enum value
  9926  	ViolationReasonSecurityGroupRedundant = "SECURITY_GROUP_REDUNDANT"
  9927  
  9928  	// ViolationReasonFmsCreatedSecurityGroupEdited is a ViolationReason enum value
  9929  	ViolationReasonFmsCreatedSecurityGroupEdited = "FMS_CREATED_SECURITY_GROUP_EDITED"
  9930  
  9931  	// ViolationReasonMissingFirewall is a ViolationReason enum value
  9932  	ViolationReasonMissingFirewall = "MISSING_FIREWALL"
  9933  
  9934  	// ViolationReasonMissingFirewallSubnetInAz is a ViolationReason enum value
  9935  	ViolationReasonMissingFirewallSubnetInAz = "MISSING_FIREWALL_SUBNET_IN_AZ"
  9936  
  9937  	// ViolationReasonMissingExpectedRouteTable is a ViolationReason enum value
  9938  	ViolationReasonMissingExpectedRouteTable = "MISSING_EXPECTED_ROUTE_TABLE"
  9939  
  9940  	// ViolationReasonNetworkFirewallPolicyModified is a ViolationReason enum value
  9941  	ViolationReasonNetworkFirewallPolicyModified = "NETWORK_FIREWALL_POLICY_MODIFIED"
  9942  
  9943  	// ViolationReasonInternetGatewayMissingExpectedRoute is a ViolationReason enum value
  9944  	ViolationReasonInternetGatewayMissingExpectedRoute = "INTERNET_GATEWAY_MISSING_EXPECTED_ROUTE"
  9945  
  9946  	// ViolationReasonFirewallSubnetMissingExpectedRoute is a ViolationReason enum value
  9947  	ViolationReasonFirewallSubnetMissingExpectedRoute = "FIREWALL_SUBNET_MISSING_EXPECTED_ROUTE"
  9948  
  9949  	// ViolationReasonUnexpectedFirewallRoutes is a ViolationReason enum value
  9950  	ViolationReasonUnexpectedFirewallRoutes = "UNEXPECTED_FIREWALL_ROUTES"
  9951  
  9952  	// ViolationReasonUnexpectedTargetGatewayRoutes is a ViolationReason enum value
  9953  	ViolationReasonUnexpectedTargetGatewayRoutes = "UNEXPECTED_TARGET_GATEWAY_ROUTES"
  9954  
  9955  	// ViolationReasonTrafficInspectionCrossesAzBoundary is a ViolationReason enum value
  9956  	ViolationReasonTrafficInspectionCrossesAzBoundary = "TRAFFIC_INSPECTION_CROSSES_AZ_BOUNDARY"
  9957  
  9958  	// ViolationReasonInvalidRouteConfiguration is a ViolationReason enum value
  9959  	ViolationReasonInvalidRouteConfiguration = "INVALID_ROUTE_CONFIGURATION"
  9960  
  9961  	// ViolationReasonMissingTargetGateway is a ViolationReason enum value
  9962  	ViolationReasonMissingTargetGateway = "MISSING_TARGET_GATEWAY"
  9963  
  9964  	// ViolationReasonInternetTrafficNotInspected is a ViolationReason enum value
  9965  	ViolationReasonInternetTrafficNotInspected = "INTERNET_TRAFFIC_NOT_INSPECTED"
  9966  
  9967  	// ViolationReasonBlackHoleRouteDetected is a ViolationReason enum value
  9968  	ViolationReasonBlackHoleRouteDetected = "BLACK_HOLE_ROUTE_DETECTED"
  9969  
  9970  	// ViolationReasonBlackHoleRouteDetectedInFirewallSubnet is a ViolationReason enum value
  9971  	ViolationReasonBlackHoleRouteDetectedInFirewallSubnet = "BLACK_HOLE_ROUTE_DETECTED_IN_FIREWALL_SUBNET"
  9972  
  9973  	// ViolationReasonResourceMissingDnsFirewall is a ViolationReason enum value
  9974  	ViolationReasonResourceMissingDnsFirewall = "RESOURCE_MISSING_DNS_FIREWALL"
  9975  )
  9976  
  9977  // ViolationReason_Values returns all elements of the ViolationReason enum
  9978  func ViolationReason_Values() []string {
  9979  	return []string{
  9980  		ViolationReasonWebAclMissingRuleGroup,
  9981  		ViolationReasonResourceMissingWebAcl,
  9982  		ViolationReasonResourceIncorrectWebAcl,
  9983  		ViolationReasonResourceMissingShieldProtection,
  9984  		ViolationReasonResourceMissingWebAclOrShieldProtection,
  9985  		ViolationReasonResourceMissingSecurityGroup,
  9986  		ViolationReasonResourceViolatesAuditSecurityGroup,
  9987  		ViolationReasonSecurityGroupUnused,
  9988  		ViolationReasonSecurityGroupRedundant,
  9989  		ViolationReasonFmsCreatedSecurityGroupEdited,
  9990  		ViolationReasonMissingFirewall,
  9991  		ViolationReasonMissingFirewallSubnetInAz,
  9992  		ViolationReasonMissingExpectedRouteTable,
  9993  		ViolationReasonNetworkFirewallPolicyModified,
  9994  		ViolationReasonInternetGatewayMissingExpectedRoute,
  9995  		ViolationReasonFirewallSubnetMissingExpectedRoute,
  9996  		ViolationReasonUnexpectedFirewallRoutes,
  9997  		ViolationReasonUnexpectedTargetGatewayRoutes,
  9998  		ViolationReasonTrafficInspectionCrossesAzBoundary,
  9999  		ViolationReasonInvalidRouteConfiguration,
 10000  		ViolationReasonMissingTargetGateway,
 10001  		ViolationReasonInternetTrafficNotInspected,
 10002  		ViolationReasonBlackHoleRouteDetected,
 10003  		ViolationReasonBlackHoleRouteDetectedInFirewallSubnet,
 10004  		ViolationReasonResourceMissingDnsFirewall,
 10005  	}
 10006  }