1package artifacts 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/autorest/validation" 14 "github.com/Azure/go-autorest/tracing" 15 "net/http" 16) 17 18// WorkspaceGitRepoManagementClient is the client for the WorkspaceGitRepoManagement methods of the Artifacts service. 19type WorkspaceGitRepoManagementClient struct { 20 BaseClient 21} 22 23// NewWorkspaceGitRepoManagementClient creates an instance of the WorkspaceGitRepoManagementClient client. 24func NewWorkspaceGitRepoManagementClient(endpoint string) WorkspaceGitRepoManagementClient { 25 return WorkspaceGitRepoManagementClient{New(endpoint)} 26} 27 28// GetGitHubAccessToken get the GitHub access token. 29// Parameters: 30// clientRequestID - can provide a guid, which is helpful for debugging and to provide better customer support 31func (client WorkspaceGitRepoManagementClient) GetGitHubAccessToken(ctx context.Context, APIVersion string, gitHubAccessTokenRequest GitHubAccessTokenRequest, clientRequestID string) (result GitHubAccessTokenResponse, err error) { 32 if tracing.IsEnabled() { 33 ctx = tracing.StartSpan(ctx, fqdn+"/WorkspaceGitRepoManagementClient.GetGitHubAccessToken") 34 defer func() { 35 sc := -1 36 if result.Response.Response != nil { 37 sc = result.Response.Response.StatusCode 38 } 39 tracing.EndSpan(ctx, sc, err) 40 }() 41 } 42 if err := validation.Validate([]validation.Validation{ 43 {TargetValue: gitHubAccessTokenRequest, 44 Constraints: []validation.Constraint{{Target: "gitHubAccessTokenRequest.GitHubClientID", Name: validation.Null, Rule: true, Chain: nil}, 45 {Target: "gitHubAccessTokenRequest.GitHubAccessCode", Name: validation.Null, Rule: true, Chain: nil}, 46 {Target: "gitHubAccessTokenRequest.GitHubAccessTokenBaseURL", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { 47 return result, validation.NewError("artifacts.WorkspaceGitRepoManagementClient", "GetGitHubAccessToken", err.Error()) 48 } 49 50 req, err := client.GetGitHubAccessTokenPreparer(ctx, APIVersion, gitHubAccessTokenRequest, clientRequestID) 51 if err != nil { 52 err = autorest.NewErrorWithError(err, "artifacts.WorkspaceGitRepoManagementClient", "GetGitHubAccessToken", nil, "Failure preparing request") 53 return 54 } 55 56 resp, err := client.GetGitHubAccessTokenSender(req) 57 if err != nil { 58 result.Response = autorest.Response{Response: resp} 59 err = autorest.NewErrorWithError(err, "artifacts.WorkspaceGitRepoManagementClient", "GetGitHubAccessToken", resp, "Failure sending request") 60 return 61 } 62 63 result, err = client.GetGitHubAccessTokenResponder(resp) 64 if err != nil { 65 err = autorest.NewErrorWithError(err, "artifacts.WorkspaceGitRepoManagementClient", "GetGitHubAccessToken", resp, "Failure responding to request") 66 return 67 } 68 69 return 70} 71 72// GetGitHubAccessTokenPreparer prepares the GetGitHubAccessToken request. 73func (client WorkspaceGitRepoManagementClient) GetGitHubAccessTokenPreparer(ctx context.Context, APIVersion string, gitHubAccessTokenRequest GitHubAccessTokenRequest, clientRequestID string) (*http.Request, error) { 74 urlParameters := map[string]interface{}{ 75 "endpoint": client.Endpoint, 76 } 77 78 queryParameters := map[string]interface{}{ 79 "api-version": APIVersion, 80 } 81 82 preparer := autorest.CreatePreparer( 83 autorest.AsContentType("application/json; charset=utf-8"), 84 autorest.AsPost(), 85 autorest.WithCustomBaseURL("{endpoint}", urlParameters), 86 autorest.WithPath("/getGitHubAccessToken"), 87 autorest.WithJSON(gitHubAccessTokenRequest), 88 autorest.WithQueryParameters(queryParameters)) 89 if len(clientRequestID) > 0 { 90 preparer = autorest.DecoratePreparer(preparer, 91 autorest.WithHeader("x-ms-client-request-id", autorest.String(clientRequestID))) 92 } 93 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 94} 95 96// GetGitHubAccessTokenSender sends the GetGitHubAccessToken request. The method will close the 97// http.Response Body if it receives an error. 98func (client WorkspaceGitRepoManagementClient) GetGitHubAccessTokenSender(req *http.Request) (*http.Response, error) { 99 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 100} 101 102// GetGitHubAccessTokenResponder handles the response to the GetGitHubAccessToken request. The method always 103// closes the http.Response Body. 104func (client WorkspaceGitRepoManagementClient) GetGitHubAccessTokenResponder(resp *http.Response) (result GitHubAccessTokenResponse, err error) { 105 err = autorest.Respond( 106 resp, 107 azure.WithErrorUnlessStatusCode(http.StatusOK), 108 autorest.ByUnmarshallingJSON(&result), 109 autorest.ByClosing()) 110 result.Response = autorest.Response{Response: resp} 111 return 112} 113