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
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package ssm
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/ssm/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Initiates execution of an Automation runbook.
func (c *Client) StartAutomationExecution(ctx context.Context, params *StartAutomationExecutionInput, optFns ...func(*Options)) (*StartAutomationExecutionOutput, error) {
if params == nil {
params = &StartAutomationExecutionInput{}
}
result, metadata, err := c.invokeOperation(ctx, "StartAutomationExecution", params, optFns, c.addOperationStartAutomationExecutionMiddlewares)
if err != nil {
return nil, err
}
out := result.(*StartAutomationExecutionOutput)
out.ResultMetadata = metadata
return out, nil
}
type StartAutomationExecutionInput struct {
// The name of the SSM document to run. This can be a public document or a custom
// document. To run a shared document belonging to another account, specify the
// document ARN. For more information about how to use shared documents, see Using
// shared SSM documents (https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-using-shared.html)
// in the Amazon Web Services Systems Manager User Guide.
//
// This member is required.
DocumentName *string
// The CloudWatch alarm you want to apply to your automation.
AlarmConfiguration *types.AlarmConfiguration
// User-provided idempotency token. The token must be unique, is case insensitive,
// enforces the UUID format, and can't be reused.
ClientToken *string
// The version of the Automation runbook to use for this execution.
DocumentVersion *string
// The maximum number of targets allowed to run this task in parallel. You can
// specify a number, such as 10, or a percentage, such as 10%. The default value is
// 10 .
MaxConcurrency *string
// The number of errors that are allowed before the system stops running the
// automation on additional targets. You can specify either an absolute number of
// errors, for example 10, or a percentage of the target set, for example 10%. If
// you specify 3, for example, the system stops running the automation when the
// fourth error is received. If you specify 0, then the system stops running the
// automation on additional targets after the first error result is returned. If
// you run an automation on 50 resources and set max-errors to 10%, then the system
// stops running the automation on additional targets when the sixth error is
// received. Executions that are already running an automation when max-errors is
// reached are allowed to complete, but some of these executions may fail as well.
// If you need to ensure that there won't be more than max-errors failed
// executions, set max-concurrency to 1 so the executions proceed one at a time.
MaxErrors *string
// The execution mode of the automation. Valid modes include the following: Auto
// and Interactive. The default mode is Auto.
Mode types.ExecutionMode
// A key-value map of execution parameters, which match the declared parameters in
// the Automation runbook.
Parameters map[string][]string
// Optional metadata that you assign to a resource. You can specify a maximum of
// five tags for an automation. Tags enable you to categorize a resource in
// different ways, such as by purpose, owner, or environment. For example, you
// might want to tag an automation to identify an environment or operating system.
// In this case, you could specify the following key-value pairs:
// - Key=environment,Value=test
// - Key=OS,Value=Windows
// To add tags to an existing automation, use the AddTagsToResource operation.
Tags []types.Tag
// A location is a combination of Amazon Web Services Regions and/or Amazon Web
// Services accounts where you want to run the automation. Use this operation to
// start an automation in multiple Amazon Web Services Regions and multiple Amazon
// Web Services accounts. For more information, see Running Automation workflows
// in multiple Amazon Web Services Regions and Amazon Web Services accounts (https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation-multiple-accounts-and-regions.html)
// in the Amazon Web Services Systems Manager User Guide.
TargetLocations []types.TargetLocation
// A key-value mapping of document parameters to target resources. Both Targets
// and TargetMaps can't be specified together.
TargetMaps []map[string][]string
// The name of the parameter used as the target resource for the rate-controlled
// execution. Required if you specify targets.
TargetParameterName *string
// A key-value mapping to target resources. Required if you specify
// TargetParameterName.
Targets []types.Target
noSmithyDocumentSerde
}
type StartAutomationExecutionOutput struct {
// The unique ID of a newly scheduled automation execution.
AutomationExecutionId *string
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationStartAutomationExecutionMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsAwsjson11_serializeOpStartAutomationExecution{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpStartAutomationExecution{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "StartAutomationExecution"); 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 = addOpStartAutomationExecutionValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opStartAutomationExecution(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_opStartAutomationExecution(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "StartAutomationExecution",
}
}
|