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
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package iotthingsgraph
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/iotthingsgraph/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Creates a system instance. This action validates the system instance, prepares
// the deployment-related resources. For Greengrass deployments, it updates the
// Greengrass group that is specified by the greengrassGroupName parameter. It
// also adds a file to the S3 bucket specified by the s3BucketName parameter. You
// need to call DeploySystemInstance after running this action. For Greengrass
// deployments, since this action modifies and adds resources to a Greengrass group
// and an S3 bucket on the caller's behalf, the calling identity must have write
// permissions to both the specified Greengrass group and S3 bucket. Otherwise, the
// call will fail with an authorization error. For cloud deployments, this action
// requires a flowActionsRoleArn value. This is an IAM role that has permissions
// to access AWS services, such as AWS Lambda and AWS IoT, that the flow uses when
// it executes. If the definition document doesn't specify a version of the user's
// namespace, the latest version will be used by default.
//
// Deprecated: since: 2022-08-30
func (c *Client) CreateSystemInstance(ctx context.Context, params *CreateSystemInstanceInput, optFns ...func(*Options)) (*CreateSystemInstanceOutput, error) {
if params == nil {
params = &CreateSystemInstanceInput{}
}
result, metadata, err := c.invokeOperation(ctx, "CreateSystemInstance", params, optFns, c.addOperationCreateSystemInstanceMiddlewares)
if err != nil {
return nil, err
}
out := result.(*CreateSystemInstanceOutput)
out.ResultMetadata = metadata
return out, nil
}
type CreateSystemInstanceInput struct {
// A document that defines an entity.
//
// This member is required.
Definition *types.DefinitionDocument
// The target type of the deployment. Valid values are GREENGRASS and CLOUD .
//
// This member is required.
Target types.DeploymentTarget
// The ARN of the IAM role that AWS IoT Things Graph will assume when it executes
// the flow. This role must have read and write access to AWS Lambda and AWS IoT
// and any other AWS services that the flow uses when it executes. This value is
// required if the value of the target parameter is CLOUD .
FlowActionsRoleArn *string
// The name of the Greengrass group where the system instance will be deployed.
// This value is required if the value of the target parameter is GREENGRASS .
GreengrassGroupName *string
// An object that specifies whether cloud metrics are collected in a deployment
// and, if so, what role is used to collect metrics.
MetricsConfiguration *types.MetricsConfiguration
// The name of the Amazon Simple Storage Service bucket that will be used to store
// and deploy the system instance's resource file. This value is required if the
// value of the target parameter is GREENGRASS .
S3BucketName *string
// Metadata, consisting of key-value pairs, that can be used to categorize your
// system instances.
Tags []types.Tag
noSmithyDocumentSerde
}
type CreateSystemInstanceOutput struct {
// The summary object that describes the new system instance.
Summary *types.SystemInstanceSummary
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationCreateSystemInstanceMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateSystemInstance{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateSystemInstance{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "CreateSystemInstance"); 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 = addOpCreateSystemInstanceValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateSystemInstance(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_opCreateSystemInstance(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "CreateSystemInstance",
}
}
|