/
api_op_CreateSystemInstance.go
157 lines (139 loc) · 5.52 KB
/
api_op_CreateSystemInstance.go
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
// Code generated by smithy-go-codegen DO NOT EDIT.
package iotthingsgraph
import (
"context"
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.
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, 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
}
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
}
func addOperationCreateSystemInstanceMiddlewares(stack *middleware.Stack, options Options) (err error) {
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 = 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 = addHTTPSignerV4Middleware(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); err != nil {
return err
}
if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddCloseResponseBodyMiddleware(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 = addRequestIDRetrieverMiddleware(stack); err != nil {
return err
}
if err = addResponseErrorMiddleware(stack); err != nil {
return err
}
if err = addRequestResponseLogging(stack, options); err != nil {
return err
}
return nil
}
func newServiceMetadataMiddleware_opCreateSystemInstance(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
SigningName: "iotthingsgraph",
OperationName: "CreateSystemInstance",
}
}