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
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package billingconductor
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/billingconductor/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Updates an existing pricing rule.
func (c *Client) UpdatePricingRule(ctx context.Context, params *UpdatePricingRuleInput, optFns ...func(*Options)) (*UpdatePricingRuleOutput, error) {
if params == nil {
params = &UpdatePricingRuleInput{}
}
result, metadata, err := c.invokeOperation(ctx, "UpdatePricingRule", params, optFns, c.addOperationUpdatePricingRuleMiddlewares)
if err != nil {
return nil, err
}
out := result.(*UpdatePricingRuleOutput)
out.ResultMetadata = metadata
return out, nil
}
type UpdatePricingRuleInput struct {
// The Amazon Resource Name (ARN) of the pricing rule to update.
//
// This member is required.
Arn *string
// The new description for the pricing rule.
Description *string
// The new modifier to show pricing plan rates as a percentage.
ModifierPercentage *float64
// The new name of the pricing rule. The name must be unique to each pricing rule.
Name *string
// The set of tiering configurations for the pricing rule.
Tiering *types.UpdateTieringInput
// The new pricing rule type.
Type types.PricingRuleType
noSmithyDocumentSerde
}
type UpdatePricingRuleOutput struct {
// The Amazon Resource Name (ARN) of the successfully updated pricing rule.
Arn *string
// The pricing plans count that this pricing rule is associated with.
AssociatedPricingPlanCount int64
// The seller of services provided by Amazon Web Services, their affiliates, or
// third-party providers selling services via Amazon Web Services Marketplace.
BillingEntity *string
// The new description for the pricing rule.
Description *string
// The most recent time the pricing rule was modified.
LastModifiedTime int64
// The new modifier to show pricing plan rates as a percentage.
ModifierPercentage *float64
// The new name of the pricing rule. The name must be unique to each pricing rule.
Name *string
// Operation refers to the specific Amazon Web Services covered by this line item.
// This describes the specific usage of the line item. If the Scope attribute is
// set to SKU , this attribute indicates which operation the PricingRule is
// modifying. For example, a value of RunInstances:0202 indicates the operation of
// running an Amazon EC2 instance.
Operation *string
// The scope of pricing rule that indicates if it's globally applicable, or it's
// service-specific.
Scope types.PricingRuleScope
// If the Scope attribute is set to SERVICE , the attribute indicates which service
// the PricingRule is applicable for.
Service *string
// The set of tiering configurations for the pricing rule.
Tiering *types.UpdateTieringInput
// The new pricing rule type.
Type types.PricingRuleType
// Usage type is the unit that each service uses to measure the usage of a
// specific type of resource. If the Scope attribute is set to SKU , this attribute
// indicates which usage type the PricingRule is modifying. For example,
// USW2-BoxUsage:m2.2xlarge describes an M2 High Memory Double Extra Large
// instance in the US West (Oregon) Region.
UsageType *string
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationUpdatePricingRuleMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdatePricingRule{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdatePricingRule{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "UpdatePricingRule"); 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 = addOpUpdatePricingRuleValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdatePricingRule(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_opUpdatePricingRule(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "UpdatePricingRule",
}
}
|