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
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package grafana
import (
"context"
"fmt"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/service/grafana/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Creates a service account for the workspace. A service account can be used to
// call Grafana HTTP APIs, and run automated workloads. After creating the service
// account with the correct GrafanaRole for your use case, use
// CreateWorkspaceServiceAccountToken to create a token that can be used to
// authenticate and authorize Grafana HTTP API calls.
//
// You can only create service accounts for workspaces that are compatible with
// Grafana version 9 and above.
//
// For more information about service accounts, see [Service accounts] in the Amazon Managed Grafana
// User Guide.
//
// For more information about the Grafana HTTP APIs, see [Using Grafana HTTP APIs] in the Amazon Managed
// Grafana User Guide.
//
// [Service accounts]: https://docs.aws.amazon.com/grafana/latest/userguide/service-accounts.html
// [Using Grafana HTTP APIs]: https://docs.aws.amazon.com/grafana/latest/userguide/Using-Grafana-APIs.html
func (c *Client) CreateWorkspaceServiceAccount(ctx context.Context, params *CreateWorkspaceServiceAccountInput, optFns ...func(*Options)) (*CreateWorkspaceServiceAccountOutput, error) {
if params == nil {
params = &CreateWorkspaceServiceAccountInput{}
}
result, metadata, err := c.invokeOperation(ctx, "CreateWorkspaceServiceAccount", params, optFns, c.addOperationCreateWorkspaceServiceAccountMiddlewares)
if err != nil {
return nil, err
}
out := result.(*CreateWorkspaceServiceAccountOutput)
out.ResultMetadata = metadata
return out, nil
}
type CreateWorkspaceServiceAccountInput struct {
// The permission level to use for this service account.
//
// For more information about the roles and the permissions each has, see [User roles] in the
// Amazon Managed Grafana User Guide.
//
// [User roles]: https://docs.aws.amazon.com/grafana/latest/userguide/Grafana-user-roles.html
//
// This member is required.
GrafanaRole types.Role
// A name for the service account. The name must be unique within the workspace,
// as it determines the ID associated with the service account.
//
// This member is required.
Name *string
// The ID of the workspace within which to create the service account.
//
// This member is required.
WorkspaceId *string
noSmithyDocumentSerde
}
type CreateWorkspaceServiceAccountOutput struct {
// The permission level given to the service account.
//
// This member is required.
GrafanaRole types.Role
// The ID of the service account.
//
// This member is required.
Id *string
// The name of the service account.
//
// This member is required.
Name *string
// The workspace with which the service account is associated.
//
// This member is required.
WorkspaceId *string
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationCreateWorkspaceServiceAccountMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateWorkspaceServiceAccount{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateWorkspaceServiceAccount{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "CreateWorkspaceServiceAccount"); 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 = addClientRequestID(stack); err != nil {
return err
}
if err = addComputeContentLength(stack); err != nil {
return err
}
if err = addResolveEndpointMiddleware(stack, options); err != nil {
return err
}
if err = addComputePayloadSHA256(stack); err != nil {
return err
}
if err = addRetry(stack, options); err != nil {
return err
}
if err = addRawResponseToMetadata(stack); err != nil {
return err
}
if err = 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 = addTimeOffsetBuild(stack, c); err != nil {
return err
}
if err = addUserAgentRetryMode(stack, options); err != nil {
return err
}
if err = addOpCreateWorkspaceServiceAccountValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateWorkspaceServiceAccount(options.Region), middleware.Before); err != nil {
return err
}
if err = 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_opCreateWorkspaceServiceAccount(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "CreateWorkspaceServiceAccount",
}
}
|