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 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package directconnect
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/directconnect/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Creates a public virtual interface. A virtual interface is the VLAN that
// transports Direct Connect traffic. A public virtual interface supports sending
// traffic to public services of Amazon Web Services such as Amazon S3. When
// creating an IPv6 public virtual interface ( addressFamily is ipv6 ), leave the
// customer and amazon address fields blank to use auto-assigned IPv6 space.
// Custom IPv6 addresses are not supported.
func (c *Client) CreatePublicVirtualInterface(ctx context.Context, params *CreatePublicVirtualInterfaceInput, optFns ...func(*Options)) (*CreatePublicVirtualInterfaceOutput, error) {
if params == nil {
params = &CreatePublicVirtualInterfaceInput{}
}
result, metadata, err := c.invokeOperation(ctx, "CreatePublicVirtualInterface", params, optFns, c.addOperationCreatePublicVirtualInterfaceMiddlewares)
if err != nil {
return nil, err
}
out := result.(*CreatePublicVirtualInterfaceOutput)
out.ResultMetadata = metadata
return out, nil
}
type CreatePublicVirtualInterfaceInput struct {
// The ID of the connection.
//
// This member is required.
ConnectionId *string
// Information about the public virtual interface.
//
// This member is required.
NewPublicVirtualInterface *types.NewPublicVirtualInterface
noSmithyDocumentSerde
}
// Information about a virtual interface.
type CreatePublicVirtualInterfaceOutput struct {
// The address family for the BGP peer.
AddressFamily types.AddressFamily
// The IP address assigned to the Amazon interface.
AmazonAddress *string
// The autonomous system number (ASN) for the Amazon side of the connection.
AmazonSideAsn *int64
// The autonomous system (AS) number for Border Gateway Protocol (BGP)
// configuration. The valid values are 1-2147483647.
Asn int32
// The authentication key for BGP configuration. This string has a minimum length
// of 6 characters and and a maximun lenth of 80 characters.
AuthKey *string
// The Direct Connect endpoint that terminates the physical connection.
AwsDeviceV2 *string
// The Direct Connect endpoint that terminates the logical connection. This device
// might be different than the device that terminates the physical connection.
AwsLogicalDeviceId *string
// The BGP peers configured on this virtual interface.
BgpPeers []types.BGPPeer
// The ID of the connection.
ConnectionId *string
// The IP address assigned to the customer interface.
CustomerAddress *string
// The customer router configuration.
CustomerRouterConfig *string
// The ID of the Direct Connect gateway.
DirectConnectGatewayId *string
// Indicates whether jumbo frames are supported.
JumboFrameCapable *bool
// The location of the connection.
Location *string
// The maximum transmission unit (MTU), in bytes. The supported values are 1500
// and 8500. The default value is 1500
Mtu *int32
// The ID of the Amazon Web Services account that owns the virtual interface.
OwnerAccount *string
// The Amazon Web Services Region where the virtual interface is located.
Region *string
// The routes to be advertised to the Amazon Web Services network in this Region.
// Applies to public virtual interfaces.
RouteFilterPrefixes []types.RouteFilterPrefix
// Indicates whether SiteLink is enabled.
SiteLinkEnabled *bool
// The tags associated with the virtual interface.
Tags []types.Tag
// The ID of the virtual private gateway. Applies only to private virtual
// interfaces.
VirtualGatewayId *string
// The ID of the virtual interface.
VirtualInterfaceId *string
// The name of the virtual interface assigned by the customer network. The name
// has a maximum of 100 characters. The following are valid characters: a-z, 0-9
// and a hyphen (-).
VirtualInterfaceName *string
// The state of the virtual interface. The following are the possible values:
// - confirming : The creation of the virtual interface is pending confirmation
// from the virtual interface owner. If the owner of the virtual interface is
// different from the owner of the connection on which it is provisioned, then the
// virtual interface will remain in this state until it is confirmed by the virtual
// interface owner.
// - verifying : This state only applies to public virtual interfaces. Each
// public virtual interface needs validation before the virtual interface can be
// created.
// - pending : A virtual interface is in this state from the time that it is
// created until the virtual interface is ready to forward traffic.
// - available : A virtual interface that is able to forward traffic.
// - down : A virtual interface that is BGP down.
// - deleting : A virtual interface is in this state immediately after calling
// DeleteVirtualInterface until it can no longer forward traffic.
// - deleted : A virtual interface that cannot forward traffic.
// - rejected : The virtual interface owner has declined creation of the virtual
// interface. If a virtual interface in the Confirming state is deleted by the
// virtual interface owner, the virtual interface enters the Rejected state.
// - unknown : The state of the virtual interface is not available.
VirtualInterfaceState types.VirtualInterfaceState
// The type of virtual interface. The possible values are private and public .
VirtualInterfaceType *string
// The ID of the VLAN.
Vlan int32
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationCreatePublicVirtualInterfaceMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreatePublicVirtualInterface{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreatePublicVirtualInterface{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "CreatePublicVirtualInterface"); 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 = addOpCreatePublicVirtualInterfaceValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreatePublicVirtualInterface(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_opCreatePublicVirtualInterface(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "CreatePublicVirtualInterface",
}
}
|