-
Notifications
You must be signed in to change notification settings - Fork 623
/
api_op_CreateReservedInstancesListing.go
175 lines (146 loc) · 6.64 KB
/
api_op_CreateReservedInstancesListing.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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package ec2
import (
"context"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/internal/awsutil"
)
// Contains the parameters for CreateReservedInstancesListing.
type CreateReservedInstancesListingInput struct {
_ struct{} `type:"structure"`
// Unique, case-sensitive identifier you provide to ensure idempotency of your
// listings. This helps avoid duplicate listings. For more information, see
// Ensuring Idempotency (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html).
//
// ClientToken is a required field
ClientToken *string `locationName:"clientToken" type:"string" required:"true"`
// The number of instances that are a part of a Reserved Instance account to
// be listed in the Reserved Instance Marketplace. This number should be less
// than or equal to the instance count associated with the Reserved Instance
// ID specified in this call.
//
// InstanceCount is a required field
InstanceCount *int64 `locationName:"instanceCount" type:"integer" required:"true"`
// A list specifying the price of the Standard Reserved Instance for each month
// remaining in the Reserved Instance term.
//
// PriceSchedules is a required field
PriceSchedules []PriceScheduleSpecification `locationName:"priceSchedules" locationNameList:"item" type:"list" required:"true"`
// The ID of the active Standard Reserved Instance.
//
// ReservedInstancesId is a required field
ReservedInstancesId *string `locationName:"reservedInstancesId" type:"string" required:"true"`
}
// String returns the string representation
func (s CreateReservedInstancesListingInput) String() string {
return awsutil.Prettify(s)
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateReservedInstancesListingInput) Validate() error {
invalidParams := aws.ErrInvalidParams{Context: "CreateReservedInstancesListingInput"}
if s.ClientToken == nil {
invalidParams.Add(aws.NewErrParamRequired("ClientToken"))
}
if s.InstanceCount == nil {
invalidParams.Add(aws.NewErrParamRequired("InstanceCount"))
}
if s.PriceSchedules == nil {
invalidParams.Add(aws.NewErrParamRequired("PriceSchedules"))
}
if s.ReservedInstancesId == nil {
invalidParams.Add(aws.NewErrParamRequired("ReservedInstancesId"))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// Contains the output of CreateReservedInstancesListing.
type CreateReservedInstancesListingOutput struct {
_ struct{} `type:"structure"`
// Information about the Standard Reserved Instance listing.
ReservedInstancesListings []ReservedInstancesListing `locationName:"reservedInstancesListingsSet" locationNameList:"item" type:"list"`
}
// String returns the string representation
func (s CreateReservedInstancesListingOutput) String() string {
return awsutil.Prettify(s)
}
const opCreateReservedInstancesListing = "CreateReservedInstancesListing"
// CreateReservedInstancesListingRequest returns a request value for making API operation for
// Amazon Elastic Compute Cloud.
//
// Creates a listing for Amazon EC2 Standard Reserved Instances to be sold in
// the Reserved Instance Marketplace. You can submit one Standard Reserved Instance
// listing at a time. To get a list of your Standard Reserved Instances, you
// can use the DescribeReservedInstances operation.
//
// Only Standard Reserved Instances can be sold in the Reserved Instance Marketplace.
// Convertible Reserved Instances cannot be sold.
//
// The Reserved Instance Marketplace matches sellers who want to resell Standard
// Reserved Instance capacity that they no longer need with buyers who want
// to purchase additional capacity. Reserved Instances bought and sold through
// the Reserved Instance Marketplace work like any other Reserved Instances.
//
// To sell your Standard Reserved Instances, you must first register as a seller
// in the Reserved Instance Marketplace. After completing the registration process,
// you can create a Reserved Instance Marketplace listing of some or all of
// your Standard Reserved Instances, and specify the upfront price to receive
// for them. Your Standard Reserved Instance listings then become available
// for purchase. To view the details of your Standard Reserved Instance listing,
// you can use the DescribeReservedInstancesListings operation.
//
// For more information, see Reserved Instance Marketplace (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html)
// in the Amazon Elastic Compute Cloud User Guide.
//
// // Example sending a request using CreateReservedInstancesListingRequest.
// req := client.CreateReservedInstancesListingRequest(params)
// resp, err := req.Send(context.TODO())
// if err == nil {
// fmt.Println(resp)
// }
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateReservedInstancesListing
func (c *Client) CreateReservedInstancesListingRequest(input *CreateReservedInstancesListingInput) CreateReservedInstancesListingRequest {
op := &aws.Operation{
Name: opCreateReservedInstancesListing,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &CreateReservedInstancesListingInput{}
}
req := c.newRequest(op, input, &CreateReservedInstancesListingOutput{})
return CreateReservedInstancesListingRequest{Request: req, Input: input, Copy: c.CreateReservedInstancesListingRequest}
}
// CreateReservedInstancesListingRequest is the request type for the
// CreateReservedInstancesListing API operation.
type CreateReservedInstancesListingRequest struct {
*aws.Request
Input *CreateReservedInstancesListingInput
Copy func(*CreateReservedInstancesListingInput) CreateReservedInstancesListingRequest
}
// Send marshals and sends the CreateReservedInstancesListing API request.
func (r CreateReservedInstancesListingRequest) Send(ctx context.Context) (*CreateReservedInstancesListingResponse, error) {
r.Request.SetContext(ctx)
err := r.Request.Send()
if err != nil {
return nil, err
}
resp := &CreateReservedInstancesListingResponse{
CreateReservedInstancesListingOutput: r.Request.Data.(*CreateReservedInstancesListingOutput),
response: &aws.Response{Request: r.Request},
}
return resp, nil
}
// CreateReservedInstancesListingResponse is the response type for the
// CreateReservedInstancesListing API operation.
type CreateReservedInstancesListingResponse struct {
*CreateReservedInstancesListingOutput
response *aws.Response
}
// SDKResponseMetdata returns the response metadata for the
// CreateReservedInstancesListing request.
func (r *CreateReservedInstancesListingResponse) SDKResponseMetdata() *aws.Response {
return r.response
}