1package dtl 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// PolicySetClient is the azure DevTest Labs REST API version 2015-05-21-preview. 18type PolicySetClient struct { 19 BaseClient 20} 21 22// NewPolicySetClient creates an instance of the PolicySetClient client. 23func NewPolicySetClient(subscriptionID string) PolicySetClient { 24 return NewPolicySetClientWithBaseURI(DefaultBaseURI, subscriptionID) 25} 26 27// NewPolicySetClientWithBaseURI creates an instance of the PolicySetClient client using a custom endpoint. Use this 28// when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). 29func NewPolicySetClientWithBaseURI(baseURI string, subscriptionID string) PolicySetClient { 30 return PolicySetClient{NewWithBaseURI(baseURI, subscriptionID)} 31} 32 33// EvaluatePolicies evaluates Lab Policy. 34// Parameters: 35// resourceGroupName - the name of the resource group. 36// labName - the name of the lab. 37// name - the name of the policy set. 38func (client PolicySetClient) EvaluatePolicies(ctx context.Context, resourceGroupName string, labName string, name string, evaluatePoliciesRequest EvaluatePoliciesRequest) (result EvaluatePoliciesResponse, err error) { 39 if tracing.IsEnabled() { 40 ctx = tracing.StartSpan(ctx, fqdn+"/PolicySetClient.EvaluatePolicies") 41 defer func() { 42 sc := -1 43 if result.Response.Response != nil { 44 sc = result.Response.Response.StatusCode 45 } 46 tracing.EndSpan(ctx, sc, err) 47 }() 48 } 49 req, err := client.EvaluatePoliciesPreparer(ctx, resourceGroupName, labName, name, evaluatePoliciesRequest) 50 if err != nil { 51 err = autorest.NewErrorWithError(err, "dtl.PolicySetClient", "EvaluatePolicies", nil, "Failure preparing request") 52 return 53 } 54 55 resp, err := client.EvaluatePoliciesSender(req) 56 if err != nil { 57 result.Response = autorest.Response{Response: resp} 58 err = autorest.NewErrorWithError(err, "dtl.PolicySetClient", "EvaluatePolicies", resp, "Failure sending request") 59 return 60 } 61 62 result, err = client.EvaluatePoliciesResponder(resp) 63 if err != nil { 64 err = autorest.NewErrorWithError(err, "dtl.PolicySetClient", "EvaluatePolicies", resp, "Failure responding to request") 65 return 66 } 67 68 return 69} 70 71// EvaluatePoliciesPreparer prepares the EvaluatePolicies request. 72func (client PolicySetClient) EvaluatePoliciesPreparer(ctx context.Context, resourceGroupName string, labName string, name string, evaluatePoliciesRequest EvaluatePoliciesRequest) (*http.Request, error) { 73 pathParameters := map[string]interface{}{ 74 "labName": autorest.Encode("path", labName), 75 "name": autorest.Encode("path", name), 76 "resourceGroupName": autorest.Encode("path", resourceGroupName), 77 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 78 } 79 80 const APIVersion = "2015-05-21-preview" 81 queryParameters := map[string]interface{}{ 82 "api-version": APIVersion, 83 } 84 85 preparer := autorest.CreatePreparer( 86 autorest.AsContentType("application/json; charset=utf-8"), 87 autorest.AsPost(), 88 autorest.WithBaseURL(client.BaseURI), 89 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/policysets/{name}/evaluatePolicies", pathParameters), 90 autorest.WithJSON(evaluatePoliciesRequest), 91 autorest.WithQueryParameters(queryParameters)) 92 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 93} 94 95// EvaluatePoliciesSender sends the EvaluatePolicies request. The method will close the 96// http.Response Body if it receives an error. 97func (client PolicySetClient) EvaluatePoliciesSender(req *http.Request) (*http.Response, error) { 98 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 99} 100 101// EvaluatePoliciesResponder handles the response to the EvaluatePolicies request. The method always 102// closes the http.Response Body. 103func (client PolicySetClient) EvaluatePoliciesResponder(resp *http.Response) (result EvaluatePoliciesResponse, err error) { 104 err = autorest.Respond( 105 resp, 106 azure.WithErrorUnlessStatusCode(http.StatusOK), 107 autorest.ByUnmarshallingJSON(&result), 108 autorest.ByClosing()) 109 result.Response = autorest.Response{Response: resp} 110 return 111} 112