1package consumption 2 3// Copyright (c) Microsoft Corporation. All rights reserved. 4// Licensed under the MIT License. See License.txt in the project root for license information. 5// 6// Code generated by Microsoft (R) AutoRest Code Generator. 7// Changes may cause incorrect behavior and will be lost if the code is regenerated. 8 9import ( 10 "context" 11 "github.com/Azure/go-autorest/autorest" 12 "github.com/Azure/go-autorest/autorest/azure" 13 "github.com/Azure/go-autorest/tracing" 14 "net/http" 15) 16 17// ReservationsSummariesClient is the consumption management client provides access to consumption resources for Azure 18// Enterprise Subscriptions. 19type ReservationsSummariesClient struct { 20 BaseClient 21} 22 23// NewReservationsSummariesClient creates an instance of the ReservationsSummariesClient client. 24func NewReservationsSummariesClient(subscriptionID string) ReservationsSummariesClient { 25 return NewReservationsSummariesClientWithBaseURI(DefaultBaseURI, subscriptionID) 26} 27 28// NewReservationsSummariesClientWithBaseURI creates an instance of the ReservationsSummariesClient client using a 29// custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, 30// Azure stack). 31func NewReservationsSummariesClientWithBaseURI(baseURI string, subscriptionID string) ReservationsSummariesClient { 32 return ReservationsSummariesClient{NewWithBaseURI(baseURI, subscriptionID)} 33} 34 35// List lists the reservations summaries for daily or monthly grain. 36// Parameters: 37// scope - the scope of the reservation summaries. The scope can be 38// 'providers/Microsoft.Capacity/reservationorders/{ReservationOrderId}' or 39// 'providers/Microsoft.Capacity/reservationorders/{ReservationOrderId}/reservations/{ReservationId}' 40// grain - can be daily or monthly 41// filter - required only for daily grain. The properties/UsageDate for start date and end date. The filter 42// supports 'le' and 'ge' 43func (client ReservationsSummariesClient) List(ctx context.Context, scope string, grain Datagrain, filter string) (result ReservationSummariesListResult, err error) { 44 if tracing.IsEnabled() { 45 ctx = tracing.StartSpan(ctx, fqdn+"/ReservationsSummariesClient.List") 46 defer func() { 47 sc := -1 48 if result.Response.Response != nil { 49 sc = result.Response.Response.StatusCode 50 } 51 tracing.EndSpan(ctx, sc, err) 52 }() 53 } 54 req, err := client.ListPreparer(ctx, scope, grain, filter) 55 if err != nil { 56 err = autorest.NewErrorWithError(err, "consumption.ReservationsSummariesClient", "List", nil, "Failure preparing request") 57 return 58 } 59 60 resp, err := client.ListSender(req) 61 if err != nil { 62 result.Response = autorest.Response{Response: resp} 63 err = autorest.NewErrorWithError(err, "consumption.ReservationsSummariesClient", "List", resp, "Failure sending request") 64 return 65 } 66 67 result, err = client.ListResponder(resp) 68 if err != nil { 69 err = autorest.NewErrorWithError(err, "consumption.ReservationsSummariesClient", "List", resp, "Failure responding to request") 70 return 71 } 72 73 return 74} 75 76// ListPreparer prepares the List request. 77func (client ReservationsSummariesClient) ListPreparer(ctx context.Context, scope string, grain Datagrain, filter string) (*http.Request, error) { 78 pathParameters := map[string]interface{}{ 79 "scope": scope, 80 } 81 82 const APIVersion = "2017-11-30" 83 queryParameters := map[string]interface{}{ 84 "api-version": APIVersion, 85 "grain": autorest.Encode("query", grain), 86 } 87 if len(filter) > 0 { 88 queryParameters["$filter"] = autorest.Encode("query", filter) 89 } 90 91 preparer := autorest.CreatePreparer( 92 autorest.AsGet(), 93 autorest.WithBaseURL(client.BaseURI), 94 autorest.WithPathParameters("/{scope}/providers/Microsoft.Consumption/reservationSummaries", pathParameters), 95 autorest.WithQueryParameters(queryParameters)) 96 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 97} 98 99// ListSender sends the List request. The method will close the 100// http.Response Body if it receives an error. 101func (client ReservationsSummariesClient) ListSender(req *http.Request) (*http.Response, error) { 102 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 103} 104 105// ListResponder handles the response to the List request. The method always 106// closes the http.Response Body. 107func (client ReservationsSummariesClient) ListResponder(resp *http.Response) (result ReservationSummariesListResult, err error) { 108 err = autorest.Respond( 109 resp, 110 azure.WithErrorUnlessStatusCode(http.StatusOK), 111 autorest.ByUnmarshallingJSON(&result), 112 autorest.ByClosing()) 113 result.Response = autorest.Response{Response: resp} 114 return 115} 116