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
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package licensemanager
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/licensemanager/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Creates a license configuration. A license configuration is an abstraction of a
// customer license agreement that can be consumed and enforced by License Manager.
// Components include specifications for the license type (licensing by instance,
// socket, CPU, or vCPU), allowed tenancy (shared tenancy, Dedicated Instance,
// Dedicated Host, or all of these), license affinity to host (how long a license
// must be associated with a host), and the number of licenses purchased and used.
func (c *Client) CreateLicenseConfiguration(ctx context.Context, params *CreateLicenseConfigurationInput, optFns ...func(*Options)) (*CreateLicenseConfigurationOutput, error) {
if params == nil {
params = &CreateLicenseConfigurationInput{}
}
result, metadata, err := c.invokeOperation(ctx, "CreateLicenseConfiguration", params, optFns, c.addOperationCreateLicenseConfigurationMiddlewares)
if err != nil {
return nil, err
}
out := result.(*CreateLicenseConfigurationOutput)
out.ResultMetadata = metadata
return out, nil
}
type CreateLicenseConfigurationInput struct {
// Dimension used to track the license inventory.
//
// This member is required.
LicenseCountingType types.LicenseCountingType
// Name of the license configuration.
//
// This member is required.
Name *string
// Description of the license configuration.
Description *string
// When true, disassociates a resource when software is uninstalled.
DisassociateWhenNotFound *bool
// Number of licenses managed by the license configuration.
LicenseCount *int64
// Indicates whether hard or soft license enforcement is used. Exceeding a hard
// limit blocks the launch of new instances.
LicenseCountHardLimit *bool
// License rules. The syntax is #name=value (for example,
// #allowedTenancy=EC2-DedicatedHost). The available rules vary by dimension, as
// follows.
// - Cores dimension: allowedTenancy | licenseAffinityToHost | maximumCores |
// minimumCores
// - Instances dimension: allowedTenancy | maximumCores | minimumCores |
// maximumSockets | minimumSockets | maximumVcpus | minimumVcpus
// - Sockets dimension: allowedTenancy | licenseAffinityToHost | maximumSockets |
// minimumSockets
// - vCPUs dimension: allowedTenancy | honorVcpuOptimization | maximumVcpus |
// minimumVcpus
// The unit for licenseAffinityToHost is days and the range is 1 to 180. The
// possible values for allowedTenancy are EC2-Default , EC2-DedicatedHost , and
// EC2-DedicatedInstance . The possible values for honorVcpuOptimization are True
// and False .
LicenseRules []string
// Product information.
ProductInformationList []types.ProductInformation
// Tags to add to the license configuration.
Tags []types.Tag
noSmithyDocumentSerde
}
type CreateLicenseConfigurationOutput struct {
// Amazon Resource Name (ARN) of the license configuration.
LicenseConfigurationArn *string
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationCreateLicenseConfigurationMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateLicenseConfiguration{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateLicenseConfiguration{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "CreateLicenseConfiguration"); 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 = addOpCreateLicenseConfigurationValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateLicenseConfiguration(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_opCreateLicenseConfiguration(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "CreateLicenseConfiguration",
}
}
|