ec2instanceconnect

package
v0.14.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 8, 2019 License: Apache-2.0 Imports: 5 Imported by: 27

Documentation

Overview

Package ec2instanceconnect provides the client and types for making API requests to 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 use 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 EC2 Instance Connect client for more information on creating client for this service. https://docs.aws.amazon.com/sdk-for-go/api/service/ec2instanceconnect/#New

Index

Examples

Constants

View Source
const (
	ServiceName = "EC2 Instance Connect" // Service's name
	ServiceID   = "EC2InstanceConnect"   // Service's identifier
	EndpointsID = "ec2-instance-connect" // Service's Endpoint identifier
)
View Source
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"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	*aws.Client
}

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

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

func New

func New(config aws.Config) *Client

New creates a new instance of the client from the provided Config.

Example:

// Create a client from just a config.
svc := ec2instanceconnect.New(myConfig)

func (*Client) SendSSHPublicKeyRequest

func (c *Client) SendSSHPublicKeyRequest(input *SendSSHPublicKeyInput) SendSSHPublicKeyRequest

SendSSHPublicKeyRequest returns a request value for making 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.

// Example sending a request using SendSSHPublicKeyRequest.
req := client.SendSSHPublicKeyRequest(params)
resp, err := req.Send(context.TODO())
if err == nil {
    fmt.Println(resp)
}

Please also see 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 generated by private/model/cli/gen-api/main.go. DO NOT EDIT.

package main

import (
	"context"
	"fmt"
	"strings"
	"time"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/aws/awserr"
	"github.com/aws/aws-sdk-go-v2/aws/external"
	"github.com/aws/aws-sdk-go-v2/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 main() {
	cfg, err := external.LoadDefaultAWSConfig()
	if err != nil {
		panic("failed to load config, " + err.Error())
	}

	svc := ec2instanceconnect.New(cfg)
	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"),
	}

	req := svc.SendSSHPublicKeyRequest(input)
	result, err := req.Send(context.Background())
	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)
}
Output:

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) 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) String

func (s SendSSHPublicKeyOutput) String() string

String returns the string representation

type SendSSHPublicKeyRequest

type SendSSHPublicKeyRequest struct {
	*aws.Request
	Input *SendSSHPublicKeyInput
	Copy  func(*SendSSHPublicKeyInput) SendSSHPublicKeyRequest
}

SendSSHPublicKeyRequest is the request type for the SendSSHPublicKey API operation.

func (SendSSHPublicKeyRequest) Send

Send marshals and sends the SendSSHPublicKey API request.

type SendSSHPublicKeyResponse

type SendSSHPublicKeyResponse struct {
	*SendSSHPublicKeyOutput
	// contains filtered or unexported fields
}

SendSSHPublicKeyResponse is the response type for the SendSSHPublicKey API operation.

func (*SendSSHPublicKeyResponse) SDKResponseMetdata

func (r *SendSSHPublicKeyResponse) SDKResponseMetdata() *aws.Response

SDKResponseMetdata returns the response metadata for the SendSSHPublicKey request.

Directories

Path Synopsis
Package ec2instanceconnectiface provides an interface to enable mocking the AWS EC2 Instance Connect service client for testing your code.
Package ec2instanceconnectiface provides an interface to enable mocking the AWS EC2 Instance Connect service client for testing your code.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL