1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package networkfirewall
import (
"context"
"fmt"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
"github.com/aws/aws-sdk-go-v2/service/networkfirewall/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Creates the firewall policy for the firewall according to the specifications.
// An Network Firewall firewall policy defines the behavior of a firewall, in a
// collection of stateless and stateful rule groups and other settings. You can use
// one firewall policy for multiple firewalls.
func (c *Client) CreateFirewallPolicy(ctx context.Context, params *CreateFirewallPolicyInput, optFns ...func(*Options)) (*CreateFirewallPolicyOutput, error) {
if params == nil {
params = &CreateFirewallPolicyInput{}
}
result, metadata, err := c.invokeOperation(ctx, "CreateFirewallPolicy", params, optFns, c.addOperationCreateFirewallPolicyMiddlewares)
if err != nil {
return nil, err
}
out := result.(*CreateFirewallPolicyOutput)
out.ResultMetadata = metadata
return out, nil
}
type CreateFirewallPolicyInput struct {
// The rule groups and policy actions to use in the firewall policy.
//
// This member is required.
FirewallPolicy *types.FirewallPolicy
// The descriptive name of the firewall policy. You can't change the name of a
// firewall policy after you create it.
//
// This member is required.
FirewallPolicyName *string
// A description of the firewall policy.
Description *string
// Indicates whether you want Network Firewall to just check the validity of the
// request, rather than run the request. If set to TRUE , Network Firewall checks
// whether the request can run successfully, but doesn't actually make the
// requested changes. The call returns the value that the request would return if
// you ran it with dry run set to FALSE , but doesn't make additions or changes to
// your resources. This option allows you to make sure that you have the required
// permissions to run the request and that your request parameters are valid. If
// set to FALSE , Network Firewall makes the requested changes to your resources.
DryRun bool
// A complex type that contains settings for encryption of your firewall policy
// resources.
EncryptionConfiguration *types.EncryptionConfiguration
// The key:value pairs to associate with the resource.
Tags []types.Tag
noSmithyDocumentSerde
}
type CreateFirewallPolicyOutput struct {
// The high-level properties of a firewall policy. This, along with the
// FirewallPolicy , define the policy. You can retrieve all objects for a firewall
// policy by calling DescribeFirewallPolicy .
//
// This member is required.
FirewallPolicyResponse *types.FirewallPolicyResponse
// A token used for optimistic locking. Network Firewall returns a token to your
// requests that access the firewall policy. The token marks the state of the
// policy resource at the time of the request. To make changes to the policy, you
// provide the token in your request. Network Firewall uses the token to ensure
// that the policy hasn't changed since you last retrieved it. If it has changed,
// the operation fails with an InvalidTokenException . If this happens, retrieve
// the firewall policy again to get a current copy of it with current token.
// Reapply your changes as needed, then try the operation again using the new
// token.
//
// This member is required.
UpdateToken *string
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationCreateFirewallPolicyMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsAwsjson10_serializeOpCreateFirewallPolicy{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpCreateFirewallPolicy{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "CreateFirewallPolicy"); err != nil {
return fmt.Errorf("add protocol finalizers: %v", err)
}
if err = addlegacyEndpointContextSetter(stack, options); err != nil {
return err
}
if err = addSetLoggerMiddleware(stack, options); err != nil {
return err
}
if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
return err
}
if err = addResolveEndpointMiddleware(stack, options); err != nil {
return err
}
if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
return err
}
if err = addRetryMiddlewares(stack, options); err != nil {
return err
}
if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
return err
}
if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
return err
}
if err = addClientUserAgent(stack, options); err != nil {
return err
}
if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil {
return err
}
if err = addOpCreateFirewallPolicyValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateFirewallPolicy(options.Region), middleware.Before); err != nil {
return err
}
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addRequestIDRetrieverMiddleware(stack); err != nil {
return err
}
if err = addResponseErrorMiddleware(stack); err != nil {
return err
}
if err = addRequestResponseLogging(stack, options); err != nil {
return err
}
if err = addDisableHTTPSMiddleware(stack, options); err != nil {
return err
}
return nil
}
func newServiceMetadataMiddleware_opCreateFirewallPolicy(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "CreateFirewallPolicy",
}
}
|