mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-19 05:19:35 +00:00
154 lines
6.4 KiB
Go
154 lines
6.4 KiB
Go
// THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
|
|
|
|
package ssm
|
|
|
|
import (
|
|
"github.com/aws/aws-sdk-go/aws"
|
|
"github.com/aws/aws-sdk-go/aws/client"
|
|
"github.com/aws/aws-sdk-go/aws/client/metadata"
|
|
"github.com/aws/aws-sdk-go/aws/request"
|
|
"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
|
|
"github.com/aws/aws-sdk-go/private/signer/v4"
|
|
)
|
|
|
|
// Simple Systems Manager (SSM) is a set of capabilities that can help you manage
|
|
// your Amazon EC2 instances running on Windows. SSM enables you to run scripts
|
|
// or other common administrative tasks on your instances using either SSM Run
|
|
// Command or SSM Config.
|
|
//
|
|
// Run Command extends the server administration capabilities of SSM by offering
|
|
// an on-demand experience for executing commands. You can use pre-defined Amazon
|
|
// SSM documents (formerly called configuration documents) to perform the actions
|
|
// listed later in this section, or you can create your own documents. With
|
|
// these document, you can then remotely configure your instances by sending
|
|
// commands using the AWS command line interface (CLI), AWS Tools for Windows
|
|
// PowerShell, or the Commands page in the Amazon EC2 console. Additionally,
|
|
// because Run Command enables you to execute PowerShell commands or scripts,
|
|
// you can administer your instances remotely using PowerShell as though you
|
|
// were logged on locally to the instance. Run Command reports the status of
|
|
// the command execution for each instance targeted by a command. You can also
|
|
// audit the command execution to understand who executed commands, when, and
|
|
// what changes were made. By switching between different SSM documents, you
|
|
// can quickly configure your instances with different types of commands.
|
|
//
|
|
// SSM Config is a lightweight instance configuration solution. With SSM Config,
|
|
// you can specify a setup configuration for your instances. SSM Config is similar
|
|
// to EC2 User Data, which is another way of running one-time scripts or applying
|
|
// settings during instance launch. SSM Config is an extension of this capability.
|
|
// Using SSM documents, you can specify which actions the system should perform
|
|
// on your instances, including which applications to install, which AWS Directory
|
|
// Service directory to join, which Microsoft PowerShell modules to install,
|
|
// etc. If an instance is missing one or more of these configurations, the system
|
|
// makes those changes. By default, the system checks every five minutes to
|
|
// see if there is a new configuration to apply as defined in a new SSM document.
|
|
// If so, the system updates the instances accordingly. In this way, you can
|
|
// remotely maintain a consistent configuration baseline on your instances.
|
|
// SSM Config is available using the AWS CLI or the AWS Tools for Windows PowerShell.
|
|
//
|
|
// SSM is currently not supported on Linux instances.
|
|
//
|
|
// You can use Run Command and SSM Config to do the following:
|
|
//
|
|
// Join an AWS Directory Service directory (SSM Config and Run Command)
|
|
//
|
|
// Install, repair, or uninstall software using an MSI package (SSM Config
|
|
// and Run Command)
|
|
//
|
|
// Install PowerShell modules (SSM Config and Run Command)
|
|
//
|
|
// Configure CloudWatch Logs to monitor applications and systems (SSM Config
|
|
// and Run Command)
|
|
//
|
|
// Run PowerShell commands or scripts (Run Command only)
|
|
//
|
|
// Update the EC2Config service (Run Command only)
|
|
//
|
|
// Configure Windows Update settings (Run Command only)
|
|
//
|
|
// SSM documents run with administrative privilege on Windows instances
|
|
// because the EC2Config service runs in the Local System account. If a user
|
|
// has permission to execute any of the pre-defined SSM documents (any document
|
|
// that begins with AWS-*) then that user also has administrator access to the
|
|
// instance. Delegate access to SSM Config and Run Command judiciously. This
|
|
// becomes extremely important if you create your own SSM documents. Amazon
|
|
// Web Services does not provide guidance about how to create secure SSM documents.
|
|
// You create SSM documents and delegate access to Run Command actions at your
|
|
// own risk. As a security best practice, we recommend that you assign access
|
|
// to "AWS-*" documents, especially the AWS-RunPowerShellScript document, to
|
|
// trusted administrators only. You can create low-level SSM documents for low
|
|
// security tasks and delegate access to non-administrators.
|
|
//The service client's operations are safe to be used concurrently.
|
|
// It is not safe to mutate any of the client's properties though.
|
|
type SSM struct {
|
|
*client.Client
|
|
}
|
|
|
|
// Used for custom client initialization logic
|
|
var initClient func(*client.Client)
|
|
|
|
// Used for custom request initialization logic
|
|
var initRequest func(*request.Request)
|
|
|
|
// A ServiceName is the name of the service the client will make API calls to.
|
|
const ServiceName = "ssm"
|
|
|
|
// New creates a new instance of the SSM 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:
|
|
// // Create a SSM client from just a session.
|
|
// svc := ssm.New(mySession)
|
|
//
|
|
// // Create a SSM client with additional configuration
|
|
// svc := ssm.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
|
|
func New(p client.ConfigProvider, cfgs ...*aws.Config) *SSM {
|
|
c := p.ClientConfig(ServiceName, cfgs...)
|
|
return newClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion)
|
|
}
|
|
|
|
// newClient creates, initializes and returns a new service client instance.
|
|
func newClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion string) *SSM {
|
|
svc := &SSM{
|
|
Client: client.New(
|
|
cfg,
|
|
metadata.ClientInfo{
|
|
ServiceName: ServiceName,
|
|
SigningRegion: signingRegion,
|
|
Endpoint: endpoint,
|
|
APIVersion: "2014-11-06",
|
|
JSONVersion: "1.1",
|
|
TargetPrefix: "AmazonSSM",
|
|
},
|
|
handlers,
|
|
),
|
|
}
|
|
|
|
// Handlers
|
|
svc.Handlers.Sign.PushBack(v4.Sign)
|
|
svc.Handlers.Build.PushBack(jsonrpc.Build)
|
|
svc.Handlers.Unmarshal.PushBack(jsonrpc.Unmarshal)
|
|
svc.Handlers.UnmarshalMeta.PushBack(jsonrpc.UnmarshalMeta)
|
|
svc.Handlers.UnmarshalError.PushBack(jsonrpc.UnmarshalError)
|
|
|
|
// Run custom client initialization if present
|
|
if initClient != nil {
|
|
initClient(svc.Client)
|
|
}
|
|
|
|
return svc
|
|
}
|
|
|
|
// newRequest creates a new request for a SSM operation and runs any
|
|
// custom request initialization.
|
|
func (c *SSM) newRequest(op *request.Operation, params, data interface{}) *request.Request {
|
|
req := c.NewRequest(op, params, data)
|
|
|
|
// Run custom request initialization if present
|
|
if initRequest != nil {
|
|
initRequest(req)
|
|
}
|
|
|
|
return req
|
|
}
|