...

Source file src/github.com/Azure/azure-sdk-for-go/services/cosmos-db/mgmt/2015-04-08/documentdb/collectionpartition.go

Documentation: github.com/Azure/azure-sdk-for-go/services/cosmos-db/mgmt/2015-04-08/documentdb

     1  package documentdb
     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  
     9  import (
    10  	"context"
    11  	"github.com/Azure/go-autorest/autorest"
    12  	"github.com/Azure/go-autorest/autorest/azure"
    13  	"github.com/Azure/go-autorest/autorest/validation"
    14  	"github.com/Azure/go-autorest/tracing"
    15  	"net/http"
    16  )
    17  
    18  // CollectionPartitionClient is the azure Cosmos DB Database Service Resource Provider REST API
    19  type CollectionPartitionClient struct {
    20  	BaseClient
    21  }
    22  
    23  // NewCollectionPartitionClient creates an instance of the CollectionPartitionClient client.
    24  func NewCollectionPartitionClient(subscriptionID string) CollectionPartitionClient {
    25  	return NewCollectionPartitionClientWithBaseURI(DefaultBaseURI, subscriptionID)
    26  }
    27  
    28  // NewCollectionPartitionClientWithBaseURI creates an instance of the CollectionPartitionClient client using a custom
    29  // endpoint.  Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure
    30  // stack).
    31  func NewCollectionPartitionClientWithBaseURI(baseURI string, subscriptionID string) CollectionPartitionClient {
    32  	return CollectionPartitionClient{NewWithBaseURI(baseURI, subscriptionID)}
    33  }
    34  
    35  // ListMetrics retrieves the metrics determined by the given filter for the given collection, split by partition.
    36  // Parameters:
    37  // resourceGroupName - name of an Azure resource group.
    38  // accountName - cosmos DB database account name.
    39  // databaseRid - cosmos DB database rid.
    40  // collectionRid - cosmos DB collection rid.
    41  // filter - an OData filter expression that describes a subset of metrics to return. The parameters that can be
    42  // filtered are name.value (name of the metric, can have an or of multiple names), startTime, endTime, and
    43  // timeGrain. The supported operator is eq.
    44  func (client CollectionPartitionClient) ListMetrics(ctx context.Context, resourceGroupName string, accountName string, databaseRid string, collectionRid string, filter string) (result PartitionMetricListResult, err error) {
    45  	if tracing.IsEnabled() {
    46  		ctx = tracing.StartSpan(ctx, fqdn+"/CollectionPartitionClient.ListMetrics")
    47  		defer func() {
    48  			sc := -1
    49  			if result.Response.Response != nil {
    50  				sc = result.Response.Response.StatusCode
    51  			}
    52  			tracing.EndSpan(ctx, sc, err)
    53  		}()
    54  	}
    55  	if err := validation.Validate([]validation.Validation{
    56  		{TargetValue: resourceGroupName,
    57  			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
    58  				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
    59  				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
    60  		{TargetValue: accountName,
    61  			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
    62  				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
    63  				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
    64  		return result, validation.NewError("documentdb.CollectionPartitionClient", "ListMetrics", err.Error())
    65  	}
    66  
    67  	req, err := client.ListMetricsPreparer(ctx, resourceGroupName, accountName, databaseRid, collectionRid, filter)
    68  	if err != nil {
    69  		err = autorest.NewErrorWithError(err, "documentdb.CollectionPartitionClient", "ListMetrics", nil, "Failure preparing request")
    70  		return
    71  	}
    72  
    73  	resp, err := client.ListMetricsSender(req)
    74  	if err != nil {
    75  		result.Response = autorest.Response{Response: resp}
    76  		err = autorest.NewErrorWithError(err, "documentdb.CollectionPartitionClient", "ListMetrics", resp, "Failure sending request")
    77  		return
    78  	}
    79  
    80  	result, err = client.ListMetricsResponder(resp)
    81  	if err != nil {
    82  		err = autorest.NewErrorWithError(err, "documentdb.CollectionPartitionClient", "ListMetrics", resp, "Failure responding to request")
    83  		return
    84  	}
    85  
    86  	return
    87  }
    88  
    89  // ListMetricsPreparer prepares the ListMetrics request.
    90  func (client CollectionPartitionClient) ListMetricsPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseRid string, collectionRid string, filter string) (*http.Request, error) {
    91  	pathParameters := map[string]interface{}{
    92  		"accountName":       autorest.Encode("path", accountName),
    93  		"collectionRid":     autorest.Encode("path", collectionRid),
    94  		"databaseRid":       autorest.Encode("path", databaseRid),
    95  		"resourceGroupName": autorest.Encode("path", resourceGroupName),
    96  		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
    97  	}
    98  
    99  	const APIVersion = "2015-04-08"
   100  	queryParameters := map[string]interface{}{
   101  		"$filter":     autorest.Encode("query", filter),
   102  		"api-version": APIVersion,
   103  	}
   104  
   105  	preparer := autorest.CreatePreparer(
   106  		autorest.AsGet(),
   107  		autorest.WithBaseURL(client.BaseURI),
   108  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/databases/{databaseRid}/collections/{collectionRid}/partitions/metrics", pathParameters),
   109  		autorest.WithQueryParameters(queryParameters))
   110  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   111  }
   112  
   113  // ListMetricsSender sends the ListMetrics request. The method will close the
   114  // http.Response Body if it receives an error.
   115  func (client CollectionPartitionClient) ListMetricsSender(req *http.Request) (*http.Response, error) {
   116  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   117  }
   118  
   119  // ListMetricsResponder handles the response to the ListMetrics request. The method always
   120  // closes the http.Response Body.
   121  func (client CollectionPartitionClient) ListMetricsResponder(resp *http.Response) (result PartitionMetricListResult, err error) {
   122  	err = autorest.Respond(
   123  		resp,
   124  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   125  		autorest.ByUnmarshallingJSON(&result),
   126  		autorest.ByClosing())
   127  	result.Response = autorest.Response{Response: resp}
   128  	return
   129  }
   130  
   131  // ListUsages retrieves the usages (most recent storage data) for the given collection, split by partition.
   132  // Parameters:
   133  // resourceGroupName - name of an Azure resource group.
   134  // accountName - cosmos DB database account name.
   135  // databaseRid - cosmos DB database rid.
   136  // collectionRid - cosmos DB collection rid.
   137  // filter - an OData filter expression that describes a subset of usages to return. The supported parameter is
   138  // name.value (name of the metric, can have an or of multiple names).
   139  func (client CollectionPartitionClient) ListUsages(ctx context.Context, resourceGroupName string, accountName string, databaseRid string, collectionRid string, filter string) (result PartitionUsagesResult, err error) {
   140  	if tracing.IsEnabled() {
   141  		ctx = tracing.StartSpan(ctx, fqdn+"/CollectionPartitionClient.ListUsages")
   142  		defer func() {
   143  			sc := -1
   144  			if result.Response.Response != nil {
   145  				sc = result.Response.Response.StatusCode
   146  			}
   147  			tracing.EndSpan(ctx, sc, err)
   148  		}()
   149  	}
   150  	if err := validation.Validate([]validation.Validation{
   151  		{TargetValue: resourceGroupName,
   152  			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
   153  				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
   154  				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
   155  		{TargetValue: accountName,
   156  			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
   157  				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
   158  				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
   159  		return result, validation.NewError("documentdb.CollectionPartitionClient", "ListUsages", err.Error())
   160  	}
   161  
   162  	req, err := client.ListUsagesPreparer(ctx, resourceGroupName, accountName, databaseRid, collectionRid, filter)
   163  	if err != nil {
   164  		err = autorest.NewErrorWithError(err, "documentdb.CollectionPartitionClient", "ListUsages", nil, "Failure preparing request")
   165  		return
   166  	}
   167  
   168  	resp, err := client.ListUsagesSender(req)
   169  	if err != nil {
   170  		result.Response = autorest.Response{Response: resp}
   171  		err = autorest.NewErrorWithError(err, "documentdb.CollectionPartitionClient", "ListUsages", resp, "Failure sending request")
   172  		return
   173  	}
   174  
   175  	result, err = client.ListUsagesResponder(resp)
   176  	if err != nil {
   177  		err = autorest.NewErrorWithError(err, "documentdb.CollectionPartitionClient", "ListUsages", resp, "Failure responding to request")
   178  		return
   179  	}
   180  
   181  	return
   182  }
   183  
   184  // ListUsagesPreparer prepares the ListUsages request.
   185  func (client CollectionPartitionClient) ListUsagesPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseRid string, collectionRid string, filter string) (*http.Request, error) {
   186  	pathParameters := map[string]interface{}{
   187  		"accountName":       autorest.Encode("path", accountName),
   188  		"collectionRid":     autorest.Encode("path", collectionRid),
   189  		"databaseRid":       autorest.Encode("path", databaseRid),
   190  		"resourceGroupName": autorest.Encode("path", resourceGroupName),
   191  		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
   192  	}
   193  
   194  	const APIVersion = "2015-04-08"
   195  	queryParameters := map[string]interface{}{
   196  		"api-version": APIVersion,
   197  	}
   198  	if len(filter) > 0 {
   199  		queryParameters["$filter"] = autorest.Encode("query", filter)
   200  	}
   201  
   202  	preparer := autorest.CreatePreparer(
   203  		autorest.AsGet(),
   204  		autorest.WithBaseURL(client.BaseURI),
   205  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/databases/{databaseRid}/collections/{collectionRid}/partitions/usages", pathParameters),
   206  		autorest.WithQueryParameters(queryParameters))
   207  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   208  }
   209  
   210  // ListUsagesSender sends the ListUsages request. The method will close the
   211  // http.Response Body if it receives an error.
   212  func (client CollectionPartitionClient) ListUsagesSender(req *http.Request) (*http.Response, error) {
   213  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   214  }
   215  
   216  // ListUsagesResponder handles the response to the ListUsages request. The method always
   217  // closes the http.Response Body.
   218  func (client CollectionPartitionClient) ListUsagesResponder(resp *http.Response) (result PartitionUsagesResult, err error) {
   219  	err = autorest.Respond(
   220  		resp,
   221  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   222  		autorest.ByUnmarshallingJSON(&result),
   223  		autorest.ByClosing())
   224  	result.Response = autorest.Response{Response: resp}
   225  	return
   226  }
   227  

View as plain text