1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/ce/CostExplorer_EXPORTS.h> 8 #include <aws/ce/CostExplorerRequest.h> 9 #include <aws/core/utils/memory/stl/AWSString.h> 10 #include <aws/ce/model/Expression.h> 11 #include <aws/ce/model/AccountScope.h> 12 #include <aws/ce/model/LookbackPeriodInDays.h> 13 #include <aws/ce/model/TermInYears.h> 14 #include <aws/ce/model/PaymentOption.h> 15 #include <aws/ce/model/ServiceSpecification.h> 16 #include <utility> 17 18 namespace Aws 19 { 20 namespace CostExplorer 21 { 22 namespace Model 23 { 24 25 /** 26 */ 27 class AWS_COSTEXPLORER_API GetReservationPurchaseRecommendationRequest : public CostExplorerRequest 28 { 29 public: 30 GetReservationPurchaseRecommendationRequest(); 31 32 // Service request name is the Operation name which will send this request out, 33 // each operation should has unique request name, so that we can get operation's name from this request. 34 // Note: this is not true for response, multiple operations may have the same response name, 35 // so we can not get operation's name from response. GetServiceRequestName()36 inline virtual const char* GetServiceRequestName() const override { return "GetReservationPurchaseRecommendation"; } 37 38 Aws::String SerializePayload() const override; 39 40 Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; 41 42 43 /** 44 * <p>The account ID that is associated with the recommendation. </p> 45 */ GetAccountId()46 inline const Aws::String& GetAccountId() const{ return m_accountId; } 47 48 /** 49 * <p>The account ID that is associated with the recommendation. </p> 50 */ AccountIdHasBeenSet()51 inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; } 52 53 /** 54 * <p>The account ID that is associated with the recommendation. </p> 55 */ SetAccountId(const Aws::String & value)56 inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; } 57 58 /** 59 * <p>The account ID that is associated with the recommendation. </p> 60 */ SetAccountId(Aws::String && value)61 inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); } 62 63 /** 64 * <p>The account ID that is associated with the recommendation. </p> 65 */ SetAccountId(const char * value)66 inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); } 67 68 /** 69 * <p>The account ID that is associated with the recommendation. </p> 70 */ WithAccountId(const Aws::String & value)71 inline GetReservationPurchaseRecommendationRequest& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;} 72 73 /** 74 * <p>The account ID that is associated with the recommendation. </p> 75 */ WithAccountId(Aws::String && value)76 inline GetReservationPurchaseRecommendationRequest& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;} 77 78 /** 79 * <p>The account ID that is associated with the recommendation. </p> 80 */ WithAccountId(const char * value)81 inline GetReservationPurchaseRecommendationRequest& WithAccountId(const char* value) { SetAccountId(value); return *this;} 82 83 84 /** 85 * <p>The specific service that you want recommendations for.</p> 86 */ GetService()87 inline const Aws::String& GetService() const{ return m_service; } 88 89 /** 90 * <p>The specific service that you want recommendations for.</p> 91 */ ServiceHasBeenSet()92 inline bool ServiceHasBeenSet() const { return m_serviceHasBeenSet; } 93 94 /** 95 * <p>The specific service that you want recommendations for.</p> 96 */ SetService(const Aws::String & value)97 inline void SetService(const Aws::String& value) { m_serviceHasBeenSet = true; m_service = value; } 98 99 /** 100 * <p>The specific service that you want recommendations for.</p> 101 */ SetService(Aws::String && value)102 inline void SetService(Aws::String&& value) { m_serviceHasBeenSet = true; m_service = std::move(value); } 103 104 /** 105 * <p>The specific service that you want recommendations for.</p> 106 */ SetService(const char * value)107 inline void SetService(const char* value) { m_serviceHasBeenSet = true; m_service.assign(value); } 108 109 /** 110 * <p>The specific service that you want recommendations for.</p> 111 */ WithService(const Aws::String & value)112 inline GetReservationPurchaseRecommendationRequest& WithService(const Aws::String& value) { SetService(value); return *this;} 113 114 /** 115 * <p>The specific service that you want recommendations for.</p> 116 */ WithService(Aws::String && value)117 inline GetReservationPurchaseRecommendationRequest& WithService(Aws::String&& value) { SetService(std::move(value)); return *this;} 118 119 /** 120 * <p>The specific service that you want recommendations for.</p> 121 */ WithService(const char * value)122 inline GetReservationPurchaseRecommendationRequest& WithService(const char* value) { SetService(value); return *this;} 123 124 125 GetFilter()126 inline const Expression& GetFilter() const{ return m_filter; } 127 128 FilterHasBeenSet()129 inline bool FilterHasBeenSet() const { return m_filterHasBeenSet; } 130 131 SetFilter(const Expression & value)132 inline void SetFilter(const Expression& value) { m_filterHasBeenSet = true; m_filter = value; } 133 134 SetFilter(Expression && value)135 inline void SetFilter(Expression&& value) { m_filterHasBeenSet = true; m_filter = std::move(value); } 136 137 WithFilter(const Expression & value)138 inline GetReservationPurchaseRecommendationRequest& WithFilter(const Expression& value) { SetFilter(value); return *this;} 139 140 WithFilter(Expression && value)141 inline GetReservationPurchaseRecommendationRequest& WithFilter(Expression&& value) { SetFilter(std::move(value)); return *this;} 142 143 144 /** 145 * <p>The account scope that you want your recommendations for. Amazon Web Services 146 * calculates recommendations including the management account and member accounts 147 * if the value is set to <code>PAYER</code>. If the value is <code>LINKED</code>, 148 * recommendations are calculated for individual member accounts only.</p> 149 */ GetAccountScope()150 inline const AccountScope& GetAccountScope() const{ return m_accountScope; } 151 152 /** 153 * <p>The account scope that you want your recommendations for. Amazon Web Services 154 * calculates recommendations including the management account and member accounts 155 * if the value is set to <code>PAYER</code>. If the value is <code>LINKED</code>, 156 * recommendations are calculated for individual member accounts only.</p> 157 */ AccountScopeHasBeenSet()158 inline bool AccountScopeHasBeenSet() const { return m_accountScopeHasBeenSet; } 159 160 /** 161 * <p>The account scope that you want your recommendations for. Amazon Web Services 162 * calculates recommendations including the management account and member accounts 163 * if the value is set to <code>PAYER</code>. If the value is <code>LINKED</code>, 164 * recommendations are calculated for individual member accounts only.</p> 165 */ SetAccountScope(const AccountScope & value)166 inline void SetAccountScope(const AccountScope& value) { m_accountScopeHasBeenSet = true; m_accountScope = value; } 167 168 /** 169 * <p>The account scope that you want your recommendations for. Amazon Web Services 170 * calculates recommendations including the management account and member accounts 171 * if the value is set to <code>PAYER</code>. If the value is <code>LINKED</code>, 172 * recommendations are calculated for individual member accounts only.</p> 173 */ SetAccountScope(AccountScope && value)174 inline void SetAccountScope(AccountScope&& value) { m_accountScopeHasBeenSet = true; m_accountScope = std::move(value); } 175 176 /** 177 * <p>The account scope that you want your recommendations for. Amazon Web Services 178 * calculates recommendations including the management account and member accounts 179 * if the value is set to <code>PAYER</code>. If the value is <code>LINKED</code>, 180 * recommendations are calculated for individual member accounts only.</p> 181 */ WithAccountScope(const AccountScope & value)182 inline GetReservationPurchaseRecommendationRequest& WithAccountScope(const AccountScope& value) { SetAccountScope(value); return *this;} 183 184 /** 185 * <p>The account scope that you want your recommendations for. Amazon Web Services 186 * calculates recommendations including the management account and member accounts 187 * if the value is set to <code>PAYER</code>. If the value is <code>LINKED</code>, 188 * recommendations are calculated for individual member accounts only.</p> 189 */ WithAccountScope(AccountScope && value)190 inline GetReservationPurchaseRecommendationRequest& WithAccountScope(AccountScope&& value) { SetAccountScope(std::move(value)); return *this;} 191 192 193 /** 194 * <p>The number of previous days that you want Amazon Web Services to consider 195 * when it calculates your recommendations.</p> 196 */ GetLookbackPeriodInDays()197 inline const LookbackPeriodInDays& GetLookbackPeriodInDays() const{ return m_lookbackPeriodInDays; } 198 199 /** 200 * <p>The number of previous days that you want Amazon Web Services to consider 201 * when it calculates your recommendations.</p> 202 */ LookbackPeriodInDaysHasBeenSet()203 inline bool LookbackPeriodInDaysHasBeenSet() const { return m_lookbackPeriodInDaysHasBeenSet; } 204 205 /** 206 * <p>The number of previous days that you want Amazon Web Services to consider 207 * when it calculates your recommendations.</p> 208 */ SetLookbackPeriodInDays(const LookbackPeriodInDays & value)209 inline void SetLookbackPeriodInDays(const LookbackPeriodInDays& value) { m_lookbackPeriodInDaysHasBeenSet = true; m_lookbackPeriodInDays = value; } 210 211 /** 212 * <p>The number of previous days that you want Amazon Web Services to consider 213 * when it calculates your recommendations.</p> 214 */ SetLookbackPeriodInDays(LookbackPeriodInDays && value)215 inline void SetLookbackPeriodInDays(LookbackPeriodInDays&& value) { m_lookbackPeriodInDaysHasBeenSet = true; m_lookbackPeriodInDays = std::move(value); } 216 217 /** 218 * <p>The number of previous days that you want Amazon Web Services to consider 219 * when it calculates your recommendations.</p> 220 */ WithLookbackPeriodInDays(const LookbackPeriodInDays & value)221 inline GetReservationPurchaseRecommendationRequest& WithLookbackPeriodInDays(const LookbackPeriodInDays& value) { SetLookbackPeriodInDays(value); return *this;} 222 223 /** 224 * <p>The number of previous days that you want Amazon Web Services to consider 225 * when it calculates your recommendations.</p> 226 */ WithLookbackPeriodInDays(LookbackPeriodInDays && value)227 inline GetReservationPurchaseRecommendationRequest& WithLookbackPeriodInDays(LookbackPeriodInDays&& value) { SetLookbackPeriodInDays(std::move(value)); return *this;} 228 229 230 /** 231 * <p>The reservation term that you want recommendations for.</p> 232 */ GetTermInYears()233 inline const TermInYears& GetTermInYears() const{ return m_termInYears; } 234 235 /** 236 * <p>The reservation term that you want recommendations for.</p> 237 */ TermInYearsHasBeenSet()238 inline bool TermInYearsHasBeenSet() const { return m_termInYearsHasBeenSet; } 239 240 /** 241 * <p>The reservation term that you want recommendations for.</p> 242 */ SetTermInYears(const TermInYears & value)243 inline void SetTermInYears(const TermInYears& value) { m_termInYearsHasBeenSet = true; m_termInYears = value; } 244 245 /** 246 * <p>The reservation term that you want recommendations for.</p> 247 */ SetTermInYears(TermInYears && value)248 inline void SetTermInYears(TermInYears&& value) { m_termInYearsHasBeenSet = true; m_termInYears = std::move(value); } 249 250 /** 251 * <p>The reservation term that you want recommendations for.</p> 252 */ WithTermInYears(const TermInYears & value)253 inline GetReservationPurchaseRecommendationRequest& WithTermInYears(const TermInYears& value) { SetTermInYears(value); return *this;} 254 255 /** 256 * <p>The reservation term that you want recommendations for.</p> 257 */ WithTermInYears(TermInYears && value)258 inline GetReservationPurchaseRecommendationRequest& WithTermInYears(TermInYears&& value) { SetTermInYears(std::move(value)); return *this;} 259 260 261 /** 262 * <p>The reservation purchase option that you want recommendations for.</p> 263 */ GetPaymentOption()264 inline const PaymentOption& GetPaymentOption() const{ return m_paymentOption; } 265 266 /** 267 * <p>The reservation purchase option that you want recommendations for.</p> 268 */ PaymentOptionHasBeenSet()269 inline bool PaymentOptionHasBeenSet() const { return m_paymentOptionHasBeenSet; } 270 271 /** 272 * <p>The reservation purchase option that you want recommendations for.</p> 273 */ SetPaymentOption(const PaymentOption & value)274 inline void SetPaymentOption(const PaymentOption& value) { m_paymentOptionHasBeenSet = true; m_paymentOption = value; } 275 276 /** 277 * <p>The reservation purchase option that you want recommendations for.</p> 278 */ SetPaymentOption(PaymentOption && value)279 inline void SetPaymentOption(PaymentOption&& value) { m_paymentOptionHasBeenSet = true; m_paymentOption = std::move(value); } 280 281 /** 282 * <p>The reservation purchase option that you want recommendations for.</p> 283 */ WithPaymentOption(const PaymentOption & value)284 inline GetReservationPurchaseRecommendationRequest& WithPaymentOption(const PaymentOption& value) { SetPaymentOption(value); return *this;} 285 286 /** 287 * <p>The reservation purchase option that you want recommendations for.</p> 288 */ WithPaymentOption(PaymentOption && value)289 inline GetReservationPurchaseRecommendationRequest& WithPaymentOption(PaymentOption&& value) { SetPaymentOption(std::move(value)); return *this;} 290 291 292 /** 293 * <p>The hardware specifications for the service instances that you want 294 * recommendations for, such as standard or convertible Amazon EC2 instances.</p> 295 */ GetServiceSpecification()296 inline const ServiceSpecification& GetServiceSpecification() const{ return m_serviceSpecification; } 297 298 /** 299 * <p>The hardware specifications for the service instances that you want 300 * recommendations for, such as standard or convertible Amazon EC2 instances.</p> 301 */ ServiceSpecificationHasBeenSet()302 inline bool ServiceSpecificationHasBeenSet() const { return m_serviceSpecificationHasBeenSet; } 303 304 /** 305 * <p>The hardware specifications for the service instances that you want 306 * recommendations for, such as standard or convertible Amazon EC2 instances.</p> 307 */ SetServiceSpecification(const ServiceSpecification & value)308 inline void SetServiceSpecification(const ServiceSpecification& value) { m_serviceSpecificationHasBeenSet = true; m_serviceSpecification = value; } 309 310 /** 311 * <p>The hardware specifications for the service instances that you want 312 * recommendations for, such as standard or convertible Amazon EC2 instances.</p> 313 */ SetServiceSpecification(ServiceSpecification && value)314 inline void SetServiceSpecification(ServiceSpecification&& value) { m_serviceSpecificationHasBeenSet = true; m_serviceSpecification = std::move(value); } 315 316 /** 317 * <p>The hardware specifications for the service instances that you want 318 * recommendations for, such as standard or convertible Amazon EC2 instances.</p> 319 */ WithServiceSpecification(const ServiceSpecification & value)320 inline GetReservationPurchaseRecommendationRequest& WithServiceSpecification(const ServiceSpecification& value) { SetServiceSpecification(value); return *this;} 321 322 /** 323 * <p>The hardware specifications for the service instances that you want 324 * recommendations for, such as standard or convertible Amazon EC2 instances.</p> 325 */ WithServiceSpecification(ServiceSpecification && value)326 inline GetReservationPurchaseRecommendationRequest& WithServiceSpecification(ServiceSpecification&& value) { SetServiceSpecification(std::move(value)); return *this;} 327 328 329 /** 330 * <p>The number of recommendations that you want returned in a single response 331 * object.</p> 332 */ GetPageSize()333 inline int GetPageSize() const{ return m_pageSize; } 334 335 /** 336 * <p>The number of recommendations that you want returned in a single response 337 * object.</p> 338 */ PageSizeHasBeenSet()339 inline bool PageSizeHasBeenSet() const { return m_pageSizeHasBeenSet; } 340 341 /** 342 * <p>The number of recommendations that you want returned in a single response 343 * object.</p> 344 */ SetPageSize(int value)345 inline void SetPageSize(int value) { m_pageSizeHasBeenSet = true; m_pageSize = value; } 346 347 /** 348 * <p>The number of recommendations that you want returned in a single response 349 * object.</p> 350 */ WithPageSize(int value)351 inline GetReservationPurchaseRecommendationRequest& WithPageSize(int value) { SetPageSize(value); return *this;} 352 353 354 /** 355 * <p>The pagination token that indicates the next set of results that you want to 356 * retrieve.</p> 357 */ GetNextPageToken()358 inline const Aws::String& GetNextPageToken() const{ return m_nextPageToken; } 359 360 /** 361 * <p>The pagination token that indicates the next set of results that you want to 362 * retrieve.</p> 363 */ NextPageTokenHasBeenSet()364 inline bool NextPageTokenHasBeenSet() const { return m_nextPageTokenHasBeenSet; } 365 366 /** 367 * <p>The pagination token that indicates the next set of results that you want to 368 * retrieve.</p> 369 */ SetNextPageToken(const Aws::String & value)370 inline void SetNextPageToken(const Aws::String& value) { m_nextPageTokenHasBeenSet = true; m_nextPageToken = value; } 371 372 /** 373 * <p>The pagination token that indicates the next set of results that you want to 374 * retrieve.</p> 375 */ SetNextPageToken(Aws::String && value)376 inline void SetNextPageToken(Aws::String&& value) { m_nextPageTokenHasBeenSet = true; m_nextPageToken = std::move(value); } 377 378 /** 379 * <p>The pagination token that indicates the next set of results that you want to 380 * retrieve.</p> 381 */ SetNextPageToken(const char * value)382 inline void SetNextPageToken(const char* value) { m_nextPageTokenHasBeenSet = true; m_nextPageToken.assign(value); } 383 384 /** 385 * <p>The pagination token that indicates the next set of results that you want to 386 * retrieve.</p> 387 */ WithNextPageToken(const Aws::String & value)388 inline GetReservationPurchaseRecommendationRequest& WithNextPageToken(const Aws::String& value) { SetNextPageToken(value); return *this;} 389 390 /** 391 * <p>The pagination token that indicates the next set of results that you want to 392 * retrieve.</p> 393 */ WithNextPageToken(Aws::String && value)394 inline GetReservationPurchaseRecommendationRequest& WithNextPageToken(Aws::String&& value) { SetNextPageToken(std::move(value)); return *this;} 395 396 /** 397 * <p>The pagination token that indicates the next set of results that you want to 398 * retrieve.</p> 399 */ WithNextPageToken(const char * value)400 inline GetReservationPurchaseRecommendationRequest& WithNextPageToken(const char* value) { SetNextPageToken(value); return *this;} 401 402 private: 403 404 Aws::String m_accountId; 405 bool m_accountIdHasBeenSet; 406 407 Aws::String m_service; 408 bool m_serviceHasBeenSet; 409 410 Expression m_filter; 411 bool m_filterHasBeenSet; 412 413 AccountScope m_accountScope; 414 bool m_accountScopeHasBeenSet; 415 416 LookbackPeriodInDays m_lookbackPeriodInDays; 417 bool m_lookbackPeriodInDaysHasBeenSet; 418 419 TermInYears m_termInYears; 420 bool m_termInYearsHasBeenSet; 421 422 PaymentOption m_paymentOption; 423 bool m_paymentOptionHasBeenSet; 424 425 ServiceSpecification m_serviceSpecification; 426 bool m_serviceSpecificationHasBeenSet; 427 428 int m_pageSize; 429 bool m_pageSizeHasBeenSet; 430 431 Aws::String m_nextPageToken; 432 bool m_nextPageTokenHasBeenSet; 433 }; 434 435 } // namespace Model 436 } // namespace CostExplorer 437 } // namespace Aws 438