1package qnamaker 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// EndpointKeysClient is the an API for QnAMaker Service 18type EndpointKeysClient struct { 19 BaseClient 20} 21 22// NewEndpointKeysClient creates an instance of the EndpointKeysClient client. 23func NewEndpointKeysClient(endpoint string) EndpointKeysClient { 24 return EndpointKeysClient{New(endpoint)} 25} 26 27// GetKeys sends the get keys request. 28func (client EndpointKeysClient) GetKeys(ctx context.Context) (result EndpointKeysDTO, err error) { 29 if tracing.IsEnabled() { 30 ctx = tracing.StartSpan(ctx, fqdn+"/EndpointKeysClient.GetKeys") 31 defer func() { 32 sc := -1 33 if result.Response.Response != nil { 34 sc = result.Response.Response.StatusCode 35 } 36 tracing.EndSpan(ctx, sc, err) 37 }() 38 } 39 req, err := client.GetKeysPreparer(ctx) 40 if err != nil { 41 err = autorest.NewErrorWithError(err, "qnamaker.EndpointKeysClient", "GetKeys", nil, "Failure preparing request") 42 return 43 } 44 45 resp, err := client.GetKeysSender(req) 46 if err != nil { 47 result.Response = autorest.Response{Response: resp} 48 err = autorest.NewErrorWithError(err, "qnamaker.EndpointKeysClient", "GetKeys", resp, "Failure sending request") 49 return 50 } 51 52 result, err = client.GetKeysResponder(resp) 53 if err != nil { 54 err = autorest.NewErrorWithError(err, "qnamaker.EndpointKeysClient", "GetKeys", resp, "Failure responding to request") 55 return 56 } 57 58 return 59} 60 61// GetKeysPreparer prepares the GetKeys request. 62func (client EndpointKeysClient) GetKeysPreparer(ctx context.Context) (*http.Request, error) { 63 urlParameters := map[string]interface{}{ 64 "Endpoint": client.Endpoint, 65 } 66 67 preparer := autorest.CreatePreparer( 68 autorest.AsGet(), 69 autorest.WithCustomBaseURL("{Endpoint}/qnamaker/v5.0-preview.1", urlParameters), 70 autorest.WithPath("/endpointkeys")) 71 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 72} 73 74// GetKeysSender sends the GetKeys request. The method will close the 75// http.Response Body if it receives an error. 76func (client EndpointKeysClient) GetKeysSender(req *http.Request) (*http.Response, error) { 77 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 78} 79 80// GetKeysResponder handles the response to the GetKeys request. The method always 81// closes the http.Response Body. 82func (client EndpointKeysClient) GetKeysResponder(resp *http.Response) (result EndpointKeysDTO, err error) { 83 err = autorest.Respond( 84 resp, 85 azure.WithErrorUnlessStatusCode(http.StatusOK), 86 autorest.ByUnmarshallingJSON(&result), 87 autorest.ByClosing()) 88 result.Response = autorest.Response{Response: resp} 89 return 90} 91 92// RefreshKeys sends the refresh keys request. 93// Parameters: 94// keyType - type of Key 95func (client EndpointKeysClient) RefreshKeys(ctx context.Context, keyType string) (result EndpointKeysDTO, err error) { 96 if tracing.IsEnabled() { 97 ctx = tracing.StartSpan(ctx, fqdn+"/EndpointKeysClient.RefreshKeys") 98 defer func() { 99 sc := -1 100 if result.Response.Response != nil { 101 sc = result.Response.Response.StatusCode 102 } 103 tracing.EndSpan(ctx, sc, err) 104 }() 105 } 106 req, err := client.RefreshKeysPreparer(ctx, keyType) 107 if err != nil { 108 err = autorest.NewErrorWithError(err, "qnamaker.EndpointKeysClient", "RefreshKeys", nil, "Failure preparing request") 109 return 110 } 111 112 resp, err := client.RefreshKeysSender(req) 113 if err != nil { 114 result.Response = autorest.Response{Response: resp} 115 err = autorest.NewErrorWithError(err, "qnamaker.EndpointKeysClient", "RefreshKeys", resp, "Failure sending request") 116 return 117 } 118 119 result, err = client.RefreshKeysResponder(resp) 120 if err != nil { 121 err = autorest.NewErrorWithError(err, "qnamaker.EndpointKeysClient", "RefreshKeys", resp, "Failure responding to request") 122 return 123 } 124 125 return 126} 127 128// RefreshKeysPreparer prepares the RefreshKeys request. 129func (client EndpointKeysClient) RefreshKeysPreparer(ctx context.Context, keyType string) (*http.Request, error) { 130 urlParameters := map[string]interface{}{ 131 "Endpoint": client.Endpoint, 132 } 133 134 pathParameters := map[string]interface{}{ 135 "keyType": autorest.Encode("path", keyType), 136 } 137 138 preparer := autorest.CreatePreparer( 139 autorest.AsPatch(), 140 autorest.WithCustomBaseURL("{Endpoint}/qnamaker/v5.0-preview.1", urlParameters), 141 autorest.WithPathParameters("/endpointkeys/{keyType}", pathParameters)) 142 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 143} 144 145// RefreshKeysSender sends the RefreshKeys request. The method will close the 146// http.Response Body if it receives an error. 147func (client EndpointKeysClient) RefreshKeysSender(req *http.Request) (*http.Response, error) { 148 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 149} 150 151// RefreshKeysResponder handles the response to the RefreshKeys request. The method always 152// closes the http.Response Body. 153func (client EndpointKeysClient) RefreshKeysResponder(resp *http.Response) (result EndpointKeysDTO, err error) { 154 err = autorest.Respond( 155 resp, 156 azure.WithErrorUnlessStatusCode(http.StatusOK), 157 autorest.ByUnmarshallingJSON(&result), 158 autorest.ByClosing()) 159 result.Response = autorest.Response{Response: resp} 160 return 161} 162