...
AWS SDK for Go API Reference
import "github.com/aws/aws-sdk-go/service/ec2instanceconnect"
Overview
Examples
Constants

Overview ▾

Package ec2instanceconnect provides the client and types for making API requests to AWS EC2 Instance Connect.

AWS EC2 Connect Service is a service that enables system administrators to publish temporary SSH keys to their EC2 instances in order to establish connections to their instances without leaving a permanent authentication option.

See https://docs.aws.amazon.com/goto/WebAPI/ec2-instance-connect-2018-04-02 for more information on this service.

See ec2instanceconnect package documentation for more information. https://docs.aws.amazon.com/sdk-for-go/api/service/ec2instanceconnect/

Using the Client

To contact AWS EC2 Instance Connect with the SDK use the New function to create a new service client. With that client you can make API requests to the service. These clients are safe to use concurrently.

See the SDK's documentation for more information on how to use the SDK. https://docs.aws.amazon.com/sdk-for-go/api/

See aws.Config documentation for more information on configuring SDK clients. https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config

See the AWS EC2 Instance Connect client EC2InstanceConnect for more information on creating client for this service. https://docs.aws.amazon.com/sdk-for-go/api/service/ec2instanceconnect/#New

The stub package, ec2instanceconnectiface, can be used to provide alternative implementations of service clients, such as mocking the client for testing.

Constants ▾

const (

    // ErrCodeAuthException for service response error code
    // "AuthException".
    //
    // Indicates that either your AWS credentials are invalid or you do not have
    // access to the EC2 instance.
    ErrCodeAuthException = "AuthException"

    // ErrCodeEC2InstanceNotFoundException for service response error code
    // "EC2InstanceNotFoundException".
    //
    // Indicates that the instance requested was not found in the given zone. Check
    // that you have provided a valid instance ID and the correct zone.
    ErrCodeEC2InstanceNotFoundException = "EC2InstanceNotFoundException"

    // ErrCodeInvalidArgsException for service response error code
    // "InvalidArgsException".
    //
    // Indicates that you provided bad input. Ensure you have a valid instance ID,
    // the correct zone, and a valid SSH public key.
    ErrCodeInvalidArgsException = "InvalidArgsException"

    // ErrCodeServiceException for service response error code
    // "ServiceException".
    //
    // Indicates that the service encountered an error. Follow the message's instructions
    // and try again.
    ErrCodeServiceException = "ServiceException"

    // ErrCodeThrottlingException for service response error code
    // "ThrottlingException".
    //
    // Indicates you have been making requests too frequently and have been throttled.
    // Wait for a while and try again. If higher call volume is warranted contact
    // AWS Support.
    ErrCodeThrottlingException = "ThrottlingException"
)
const (
    ServiceName = "EC2 Instance Connect" // Name of service.
    EndpointsID = "ec2-instance-connect" // ID to lookup a service endpoint with.
    ServiceID   = "EC2 Instance Connect" // ServiceID is a unique identifer of a specific service.
)

Service information constants

type EC2InstanceConnect

type EC2InstanceConnect struct {
    *client.Client
}

EC2InstanceConnect provides the API operation methods for making requests to AWS EC2 Instance Connect. See this package's package overview docs for details on the service.

EC2InstanceConnect methods are safe to use concurrently. It is not safe to modify mutate any of the struct's properties though.

func New

func New(p client.ConfigProvider, cfgs ...*aws.Config) *EC2InstanceConnect

New creates a new instance of the EC2InstanceConnect client with a session. If additional configuration is needed for the client instance use the optional aws.Config parameter to add your extra config.

Example:

mySession := session.Must(session.NewSession())

// Create a EC2InstanceConnect client from just a session.
svc := ec2instanceconnect.New(mySession)

// Create a EC2InstanceConnect client with additional configuration
svc := ec2instanceconnect.New(mySession, aws.NewConfig().WithRegion("us-west-2"))

func (*EC2InstanceConnect) SendSSHPublicKey

func (c *EC2InstanceConnect) SendSSHPublicKey(input *SendSSHPublicKeyInput) (*SendSSHPublicKeyOutput, error)

SendSSHPublicKey API operation for AWS EC2 Instance Connect.

Pushes an SSH public key to a particular OS user on a given EC2 instance for 60 seconds.

Returns awserr.Error for service API and SDK errors. Use runtime type assertions with awserr.Error's Code and Message methods to get detailed information about the error.

See the AWS API reference guide for AWS EC2 Instance Connect's API operation SendSSHPublicKey for usage and error information.

Returned Error Codes:

* ErrCodeAuthException "AuthException"
Indicates that either your AWS credentials are invalid or you do not have
access to the EC2 instance.

* ErrCodeInvalidArgsException "InvalidArgsException"
Indicates that you provided bad input. Ensure you have a valid instance ID,
the correct zone, and a valid SSH public key.

* ErrCodeServiceException "ServiceException"
Indicates that the service encountered an error. Follow the message's instructions
and try again.

* ErrCodeThrottlingException "ThrottlingException"
Indicates you have been making requests too frequently and have been throttled.
Wait for a while and try again. If higher call volume is warranted contact
AWS Support.

* ErrCodeEC2InstanceNotFoundException "EC2InstanceNotFoundException"
Indicates that the instance requested was not found in the given zone. Check
that you have provided a valid instance ID and the correct zone.

See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-instance-connect-2018-04-02/SendSSHPublicKey

Example (Shared00)

To push an SSH key to an EC2 instance The following example pushes a sample SSH public key to the EC2 instance i-abcd1234 in AZ us-west-2b for use by the instance OS user ec2-user.

Code:

package ec2instanceconnect_test

import (
    "fmt"
    "strings"
    "time"

    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/awserr"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/ec2instanceconnect"
)

var _ time.Duration
var _ strings.Reader
var _ aws.Config

func parseTime(layout, value string) *time.Time {
    t, err := time.Parse(layout, value)
    if err != nil {
        panic(err)
    }
    return &t
}

// To push an SSH key to an EC2 instance
//
// The following example pushes a sample SSH public key to the EC2 instance i-abcd1234
// in AZ us-west-2b for use by the instance OS user ec2-user.
func ExampleEC2InstanceConnect_SendSSHPublicKey_shared00() {
    svc := ec2instanceconnect.New(session.New())
    input := &ec2instanceconnect.SendSSHPublicKeyInput{
        AvailabilityZone: aws.String("us-west-2a"),
        InstanceId:       aws.String("i-abcd1234"),
        InstanceOSUser:   aws.String("ec2-user"),
        SSHPublicKey:     aws.String("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3FlHqj2eqCdrGHuA6dRjfZXQ4HX5lXEIRHaNbxEwE5Te7xNF7StwhrDtiV7IdT5fDqbRyGw/szPj3xGkNTVoElCZ2dDFb2qYZ1WLIpZwj/UhO9l2mgfjR56UojjQut5Jvn2KZ1OcyrNO0J83kCaJCV7JoVbXY79FBMUccYNY45zmv9+1FMCfY6i2jdIhwR6+yLk8oubL8lIPyq7X+6b9S0yKCkB7Peml1DvghlybpAIUrC9vofHt6XP4V1i0bImw1IlljQS+DUmULRFSccATDscCX9ajnj7Crhm0HAZC0tBPXpFdHkPwL3yzYo546SCS9LKEwz62ymxxbL9k7h09t"),
    }

    result, err := svc.SendSSHPublicKey(input)
    if err != nil {
        if aerr, ok := err.(awserr.Error); ok {
            switch aerr.Code() {
            case ec2instanceconnect.ErrCodeAuthException:
                fmt.Println(ec2instanceconnect.ErrCodeAuthException, aerr.Error())
            case ec2instanceconnect.ErrCodeInvalidArgsException:
                fmt.Println(ec2instanceconnect.ErrCodeInvalidArgsException, aerr.Error())
            case ec2instanceconnect.ErrCodeServiceException:
                fmt.Println(ec2instanceconnect.ErrCodeServiceException, aerr.Error())
            case ec2instanceconnect.ErrCodeThrottlingException:
                fmt.Println(ec2instanceconnect.ErrCodeThrottlingException, aerr.Error())
            case ec2instanceconnect.ErrCodeEC2InstanceNotFoundException:
                fmt.Println(ec2instanceconnect.ErrCodeEC2InstanceNotFoundException, aerr.Error())
            default:
                fmt.Println(aerr.Error())
            }
        } else {
            // Print the error, cast err to awserr.Error to get the Code and
            // Message from an error.
            fmt.Println(err.Error())
        }
        return
    }

    fmt.Println(result)
}

func (*EC2InstanceConnect) SendSSHPublicKeyRequest

func (c *EC2InstanceConnect) SendSSHPublicKeyRequest(input *SendSSHPublicKeyInput) (req *request.Request, output *SendSSHPublicKeyOutput)

SendSSHPublicKeyRequest generates a "aws/request.Request" representing the client's request for the SendSSHPublicKey operation. The "output" return value will be populated with the request's response once the request completes successfully.

Use "Send" method on the returned Request to send the API call to the service. the "output" return value is not valid until after Send returns without error.

See SendSSHPublicKey for more information on using the SendSSHPublicKey API call, and error handling.

This method is useful when you want to inject custom logic or configuration into the SDK's request lifecycle. Such as custom headers, or retry logic.

// Example sending a request using the SendSSHPublicKeyRequest method.
req, resp := client.SendSSHPublicKeyRequest(params)

err := req.Send()
if err == nil { // resp is now filled
    fmt.Println(resp)
}

See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-instance-connect-2018-04-02/SendSSHPublicKey

func (*EC2InstanceConnect) SendSSHPublicKeyWithContext

func (c *EC2InstanceConnect) SendSSHPublicKeyWithContext(ctx aws.Context, input *SendSSHPublicKeyInput, opts ...request.Option) (*SendSSHPublicKeyOutput, error)

SendSSHPublicKeyWithContext is the same as SendSSHPublicKey with the addition of the ability to pass a context and additional request options.

See SendSSHPublicKey for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If the context is nil a panic will occur. In the future the SDK may create sub-contexts for http.Requests. See https://golang.org/pkg/context/ for more information on using Contexts.

type SendSSHPublicKeyInput

type SendSSHPublicKeyInput struct {

    // The availability zone the EC2 instance was launched in.
    //
    // AvailabilityZone is a required field
    AvailabilityZone *string `min:"6" type:"string" required:"true"`

    // The EC2 instance you wish to publish the SSH key to.
    //
    // InstanceId is a required field
    InstanceId *string `min:"10" type:"string" required:"true"`

    // The OS user on the EC2 instance whom the key may be used to authenticate
    // as.
    //
    // InstanceOSUser is a required field
    InstanceOSUser *string `min:"1" type:"string" required:"true"`

    // The public key to be published to the instance. To use it after publication
    // you must have the matching private key.
    //
    // SSHPublicKey is a required field
    SSHPublicKey *string `min:"256" type:"string" required:"true"`
    // contains filtered or unexported fields
}

func (SendSSHPublicKeyInput) GoString

func (s SendSSHPublicKeyInput) GoString() string

GoString returns the string representation

func (*SendSSHPublicKeyInput) SetAvailabilityZone

func (s *SendSSHPublicKeyInput) SetAvailabilityZone(v string) *SendSSHPublicKeyInput

SetAvailabilityZone sets the AvailabilityZone field's value.

func (*SendSSHPublicKeyInput) SetInstanceId

func (s *SendSSHPublicKeyInput) SetInstanceId(v string) *SendSSHPublicKeyInput

SetInstanceId sets the InstanceId field's value.

func (*SendSSHPublicKeyInput) SetInstanceOSUser

func (s *SendSSHPublicKeyInput) SetInstanceOSUser(v string) *SendSSHPublicKeyInput

SetInstanceOSUser sets the InstanceOSUser field's value.

func (*SendSSHPublicKeyInput) SetSSHPublicKey

func (s *SendSSHPublicKeyInput) SetSSHPublicKey(v string) *SendSSHPublicKeyInput

SetSSHPublicKey sets the SSHPublicKey field's value.

func (SendSSHPublicKeyInput) String

func (s SendSSHPublicKeyInput) String() string

String returns the string representation

func (*SendSSHPublicKeyInput) Validate

func (s *SendSSHPublicKeyInput) Validate() error

Validate inspects the fields of the type to determine if they are valid.

type SendSSHPublicKeyOutput

type SendSSHPublicKeyOutput struct {

    // The request ID as logged by EC2 Connect. Please provide this when contacting
    // AWS Support.
    RequestId *string `type:"string"`

    // Indicates request success.
    Success *bool `type:"boolean"`
    // contains filtered or unexported fields
}

func (SendSSHPublicKeyOutput) GoString

func (s SendSSHPublicKeyOutput) GoString() string

GoString returns the string representation

func (*SendSSHPublicKeyOutput) SetRequestId

func (s *SendSSHPublicKeyOutput) SetRequestId(v string) *SendSSHPublicKeyOutput

SetRequestId sets the RequestId field's value.

func (*SendSSHPublicKeyOutput) SetSuccess

func (s *SendSSHPublicKeyOutput) SetSuccess(v bool) *SendSSHPublicKeyOutput

SetSuccess sets the Success field's value.

func (SendSSHPublicKeyOutput) String

func (s SendSSHPublicKeyOutput) String() string

String returns the string representation