...

Source file src/github.com/Azure/azure-sdk-for-go/services/preview/cosmos-db/mgmt/2021-11-15-preview/documentdb/datatransferjobs.go

Documentation: github.com/Azure/azure-sdk-for-go/services/preview/cosmos-db/mgmt/2021-11-15-preview/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  // DataTransferJobsClient is the client for the DataTransferJobs methods of the Documentdb service.
    19  type DataTransferJobsClient struct {
    20  	BaseClient
    21  }
    22  
    23  // NewDataTransferJobsClient creates an instance of the DataTransferJobsClient client.
    24  func NewDataTransferJobsClient(subscriptionID string) DataTransferJobsClient {
    25  	return NewDataTransferJobsClientWithBaseURI(DefaultBaseURI, subscriptionID)
    26  }
    27  
    28  // NewDataTransferJobsClientWithBaseURI creates an instance of the DataTransferJobsClient 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 NewDataTransferJobsClientWithBaseURI(baseURI string, subscriptionID string) DataTransferJobsClient {
    32  	return DataTransferJobsClient{NewWithBaseURI(baseURI, subscriptionID)}
    33  }
    34  
    35  // Create creates a Data Transfer Job.
    36  // Parameters:
    37  // resourceGroupName - the name of the resource group. The name is case insensitive.
    38  // accountName - cosmos DB database account name.
    39  // jobName - name of the Data Transfer Job
    40  func (client DataTransferJobsClient) Create(ctx context.Context, resourceGroupName string, accountName string, jobName string, jobCreateParameters CreateJobRequest) (result DataTransferJobGetResults, err error) {
    41  	if tracing.IsEnabled() {
    42  		ctx = tracing.StartSpan(ctx, fqdn+"/DataTransferJobsClient.Create")
    43  		defer func() {
    44  			sc := -1
    45  			if result.Response.Response != nil {
    46  				sc = result.Response.Response.StatusCode
    47  			}
    48  			tracing.EndSpan(ctx, sc, err)
    49  		}()
    50  	}
    51  	if err := validation.Validate([]validation.Validation{
    52  		{TargetValue: client.SubscriptionID,
    53  			Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
    54  		{TargetValue: resourceGroupName,
    55  			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
    56  				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}},
    57  		{TargetValue: accountName,
    58  			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
    59  				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
    60  				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}},
    61  		{TargetValue: jobCreateParameters,
    62  			Constraints: []validation.Constraint{{Target: "jobCreateParameters.Properties", Name: validation.Null, Rule: true,
    63  				Chain: []validation.Constraint{{Target: "jobCreateParameters.Properties.WorkerCount", Name: validation.Null, Rule: false,
    64  					Chain: []validation.Constraint{{Target: "jobCreateParameters.Properties.WorkerCount", Name: validation.InclusiveMinimum, Rule: int64(0), Chain: nil}}},
    65  				}}}}}); err != nil {
    66  		return result, validation.NewError("documentdb.DataTransferJobsClient", "Create", err.Error())
    67  	}
    68  
    69  	req, err := client.CreatePreparer(ctx, resourceGroupName, accountName, jobName, jobCreateParameters)
    70  	if err != nil {
    71  		err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "Create", nil, "Failure preparing request")
    72  		return
    73  	}
    74  
    75  	resp, err := client.CreateSender(req)
    76  	if err != nil {
    77  		result.Response = autorest.Response{Response: resp}
    78  		err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "Create", resp, "Failure sending request")
    79  		return
    80  	}
    81  
    82  	result, err = client.CreateResponder(resp)
    83  	if err != nil {
    84  		err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "Create", resp, "Failure responding to request")
    85  		return
    86  	}
    87  
    88  	return
    89  }
    90  
    91  // CreatePreparer prepares the Create request.
    92  func (client DataTransferJobsClient) CreatePreparer(ctx context.Context, resourceGroupName string, accountName string, jobName string, jobCreateParameters CreateJobRequest) (*http.Request, error) {
    93  	pathParameters := map[string]interface{}{
    94  		"accountName":       autorest.Encode("path", accountName),
    95  		"jobName":           autorest.Encode("path", jobName),
    96  		"resourceGroupName": autorest.Encode("path", resourceGroupName),
    97  		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
    98  	}
    99  
   100  	const APIVersion = "2021-11-15-preview"
   101  	queryParameters := map[string]interface{}{
   102  		"api-version": APIVersion,
   103  	}
   104  
   105  	preparer := autorest.CreatePreparer(
   106  		autorest.AsContentType("application/json; charset=utf-8"),
   107  		autorest.AsPut(),
   108  		autorest.WithBaseURL(client.BaseURI),
   109  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/dataTransferJobs/{jobName}", pathParameters),
   110  		autorest.WithJSON(jobCreateParameters),
   111  		autorest.WithQueryParameters(queryParameters))
   112  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   113  }
   114  
   115  // CreateSender sends the Create request. The method will close the
   116  // http.Response Body if it receives an error.
   117  func (client DataTransferJobsClient) CreateSender(req *http.Request) (*http.Response, error) {
   118  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   119  }
   120  
   121  // CreateResponder handles the response to the Create request. The method always
   122  // closes the http.Response Body.
   123  func (client DataTransferJobsClient) CreateResponder(resp *http.Response) (result DataTransferJobGetResults, err error) {
   124  	err = autorest.Respond(
   125  		resp,
   126  		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
   127  		autorest.ByUnmarshallingJSON(&result),
   128  		autorest.ByClosing())
   129  	result.Response = autorest.Response{Response: resp}
   130  	return
   131  }
   132  
   133  // Get get a Data Transfer Job.
   134  // Parameters:
   135  // resourceGroupName - the name of the resource group. The name is case insensitive.
   136  // accountName - cosmos DB database account name.
   137  // jobName - name of the Data Transfer Job
   138  func (client DataTransferJobsClient) Get(ctx context.Context, resourceGroupName string, accountName string, jobName string) (result DataTransferJobGetResults, err error) {
   139  	if tracing.IsEnabled() {
   140  		ctx = tracing.StartSpan(ctx, fqdn+"/DataTransferJobsClient.Get")
   141  		defer func() {
   142  			sc := -1
   143  			if result.Response.Response != nil {
   144  				sc = result.Response.Response.StatusCode
   145  			}
   146  			tracing.EndSpan(ctx, sc, err)
   147  		}()
   148  	}
   149  	if err := validation.Validate([]validation.Validation{
   150  		{TargetValue: client.SubscriptionID,
   151  			Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
   152  		{TargetValue: resourceGroupName,
   153  			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
   154  				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, 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.DataTransferJobsClient", "Get", err.Error())
   160  	}
   161  
   162  	req, err := client.GetPreparer(ctx, resourceGroupName, accountName, jobName)
   163  	if err != nil {
   164  		err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "Get", nil, "Failure preparing request")
   165  		return
   166  	}
   167  
   168  	resp, err := client.GetSender(req)
   169  	if err != nil {
   170  		result.Response = autorest.Response{Response: resp}
   171  		err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "Get", resp, "Failure sending request")
   172  		return
   173  	}
   174  
   175  	result, err = client.GetResponder(resp)
   176  	if err != nil {
   177  		err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "Get", resp, "Failure responding to request")
   178  		return
   179  	}
   180  
   181  	return
   182  }
   183  
   184  // GetPreparer prepares the Get request.
   185  func (client DataTransferJobsClient) GetPreparer(ctx context.Context, resourceGroupName string, accountName string, jobName string) (*http.Request, error) {
   186  	pathParameters := map[string]interface{}{
   187  		"accountName":       autorest.Encode("path", accountName),
   188  		"jobName":           autorest.Encode("path", jobName),
   189  		"resourceGroupName": autorest.Encode("path", resourceGroupName),
   190  		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
   191  	}
   192  
   193  	const APIVersion = "2021-11-15-preview"
   194  	queryParameters := map[string]interface{}{
   195  		"api-version": APIVersion,
   196  	}
   197  
   198  	preparer := autorest.CreatePreparer(
   199  		autorest.AsGet(),
   200  		autorest.WithBaseURL(client.BaseURI),
   201  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/dataTransferJobs/{jobName}", pathParameters),
   202  		autorest.WithQueryParameters(queryParameters))
   203  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   204  }
   205  
   206  // GetSender sends the Get request. The method will close the
   207  // http.Response Body if it receives an error.
   208  func (client DataTransferJobsClient) GetSender(req *http.Request) (*http.Response, error) {
   209  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   210  }
   211  
   212  // GetResponder handles the response to the Get request. The method always
   213  // closes the http.Response Body.
   214  func (client DataTransferJobsClient) GetResponder(resp *http.Response) (result DataTransferJobGetResults, err error) {
   215  	err = autorest.Respond(
   216  		resp,
   217  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   218  		autorest.ByUnmarshallingJSON(&result),
   219  		autorest.ByClosing())
   220  	result.Response = autorest.Response{Response: resp}
   221  	return
   222  }
   223  
   224  // ListByDatabaseAccount get a list of Data Transfer jobs.
   225  // Parameters:
   226  // resourceGroupName - the name of the resource group. The name is case insensitive.
   227  // accountName - cosmos DB database account name.
   228  func (client DataTransferJobsClient) ListByDatabaseAccount(ctx context.Context, resourceGroupName string, accountName string) (result DataTransferJobFeedResultsPage, err error) {
   229  	if tracing.IsEnabled() {
   230  		ctx = tracing.StartSpan(ctx, fqdn+"/DataTransferJobsClient.ListByDatabaseAccount")
   231  		defer func() {
   232  			sc := -1
   233  			if result.dtjfr.Response.Response != nil {
   234  				sc = result.dtjfr.Response.Response.StatusCode
   235  			}
   236  			tracing.EndSpan(ctx, sc, err)
   237  		}()
   238  	}
   239  	if err := validation.Validate([]validation.Validation{
   240  		{TargetValue: client.SubscriptionID,
   241  			Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
   242  		{TargetValue: resourceGroupName,
   243  			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
   244  				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}},
   245  		{TargetValue: accountName,
   246  			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
   247  				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
   248  				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
   249  		return result, validation.NewError("documentdb.DataTransferJobsClient", "ListByDatabaseAccount", err.Error())
   250  	}
   251  
   252  	result.fn = client.listByDatabaseAccountNextResults
   253  	req, err := client.ListByDatabaseAccountPreparer(ctx, resourceGroupName, accountName)
   254  	if err != nil {
   255  		err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "ListByDatabaseAccount", nil, "Failure preparing request")
   256  		return
   257  	}
   258  
   259  	resp, err := client.ListByDatabaseAccountSender(req)
   260  	if err != nil {
   261  		result.dtjfr.Response = autorest.Response{Response: resp}
   262  		err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "ListByDatabaseAccount", resp, "Failure sending request")
   263  		return
   264  	}
   265  
   266  	result.dtjfr, err = client.ListByDatabaseAccountResponder(resp)
   267  	if err != nil {
   268  		err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "ListByDatabaseAccount", resp, "Failure responding to request")
   269  		return
   270  	}
   271  	if result.dtjfr.hasNextLink() && result.dtjfr.IsEmpty() {
   272  		err = result.NextWithContext(ctx)
   273  		return
   274  	}
   275  
   276  	return
   277  }
   278  
   279  // ListByDatabaseAccountPreparer prepares the ListByDatabaseAccount request.
   280  func (client DataTransferJobsClient) ListByDatabaseAccountPreparer(ctx context.Context, resourceGroupName string, accountName string) (*http.Request, error) {
   281  	pathParameters := map[string]interface{}{
   282  		"accountName":       autorest.Encode("path", accountName),
   283  		"resourceGroupName": autorest.Encode("path", resourceGroupName),
   284  		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
   285  	}
   286  
   287  	const APIVersion = "2021-11-15-preview"
   288  	queryParameters := map[string]interface{}{
   289  		"api-version": APIVersion,
   290  	}
   291  
   292  	preparer := autorest.CreatePreparer(
   293  		autorest.AsGet(),
   294  		autorest.WithBaseURL(client.BaseURI),
   295  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/dataTransferJobs", pathParameters),
   296  		autorest.WithQueryParameters(queryParameters))
   297  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   298  }
   299  
   300  // ListByDatabaseAccountSender sends the ListByDatabaseAccount request. The method will close the
   301  // http.Response Body if it receives an error.
   302  func (client DataTransferJobsClient) ListByDatabaseAccountSender(req *http.Request) (*http.Response, error) {
   303  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   304  }
   305  
   306  // ListByDatabaseAccountResponder handles the response to the ListByDatabaseAccount request. The method always
   307  // closes the http.Response Body.
   308  func (client DataTransferJobsClient) ListByDatabaseAccountResponder(resp *http.Response) (result DataTransferJobFeedResults, err error) {
   309  	err = autorest.Respond(
   310  		resp,
   311  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   312  		autorest.ByUnmarshallingJSON(&result),
   313  		autorest.ByClosing())
   314  	result.Response = autorest.Response{Response: resp}
   315  	return
   316  }
   317  
   318  // listByDatabaseAccountNextResults retrieves the next set of results, if any.
   319  func (client DataTransferJobsClient) listByDatabaseAccountNextResults(ctx context.Context, lastResults DataTransferJobFeedResults) (result DataTransferJobFeedResults, err error) {
   320  	req, err := lastResults.dataTransferJobFeedResultsPreparer(ctx)
   321  	if err != nil {
   322  		return result, autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "listByDatabaseAccountNextResults", nil, "Failure preparing next results request")
   323  	}
   324  	if req == nil {
   325  		return
   326  	}
   327  	resp, err := client.ListByDatabaseAccountSender(req)
   328  	if err != nil {
   329  		result.Response = autorest.Response{Response: resp}
   330  		return result, autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "listByDatabaseAccountNextResults", resp, "Failure sending next results request")
   331  	}
   332  	result, err = client.ListByDatabaseAccountResponder(resp)
   333  	if err != nil {
   334  		err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "listByDatabaseAccountNextResults", resp, "Failure responding to next results request")
   335  	}
   336  	return
   337  }
   338  
   339  // ListByDatabaseAccountComplete enumerates all values, automatically crossing page boundaries as required.
   340  func (client DataTransferJobsClient) ListByDatabaseAccountComplete(ctx context.Context, resourceGroupName string, accountName string) (result DataTransferJobFeedResultsIterator, err error) {
   341  	if tracing.IsEnabled() {
   342  		ctx = tracing.StartSpan(ctx, fqdn+"/DataTransferJobsClient.ListByDatabaseAccount")
   343  		defer func() {
   344  			sc := -1
   345  			if result.Response().Response.Response != nil {
   346  				sc = result.page.Response().Response.Response.StatusCode
   347  			}
   348  			tracing.EndSpan(ctx, sc, err)
   349  		}()
   350  	}
   351  	result.page, err = client.ListByDatabaseAccount(ctx, resourceGroupName, accountName)
   352  	return
   353  }
   354  

View as plain text