1// +build go1.13 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// Code generated by Microsoft (R) AutoRest Code Generator. 6// Changes may cause incorrect behavior and will be lost if the code is regenerated. 7 8package azartifacts 9 10import ( 11 "context" 12 "errors" 13 "fmt" 14 "github.com/Azure/azure-sdk-for-go/sdk/azcore" 15 "net/http" 16 "net/url" 17 "strings" 18) 19 20// TriggerRunClient contains the methods for the TriggerRun group. 21// Don't use this type directly, use NewTriggerRunClient() instead. 22type TriggerRunClient struct { 23 con *Connection 24} 25 26// NewTriggerRunClient creates a new instance of TriggerRunClient with the specified values. 27func NewTriggerRunClient(con *Connection) *TriggerRunClient { 28 return &TriggerRunClient{con: con} 29} 30 31// CancelTriggerInstance - Cancel single trigger instance by runId. 32// If the operation fails it returns the *CloudError error type. 33func (client *TriggerRunClient) CancelTriggerInstance(ctx context.Context, triggerName string, runID string, options *TriggerRunCancelTriggerInstanceOptions) (*http.Response, error) { 34 req, err := client.cancelTriggerInstanceCreateRequest(ctx, triggerName, runID, options) 35 if err != nil { 36 return nil, err 37 } 38 resp, err := client.con.Pipeline().Do(req) 39 if err != nil { 40 return nil, err 41 } 42 if !resp.HasStatusCode(http.StatusOK) { 43 return nil, client.cancelTriggerInstanceHandleError(resp) 44 } 45 return resp.Response, nil 46} 47 48// cancelTriggerInstanceCreateRequest creates the CancelTriggerInstance request. 49func (client *TriggerRunClient) cancelTriggerInstanceCreateRequest(ctx context.Context, triggerName string, runID string, options *TriggerRunCancelTriggerInstanceOptions) (*azcore.Request, error) { 50 urlPath := "/triggers/{triggerName}/triggerRuns/{runId}/cancel" 51 if triggerName == "" { 52 return nil, errors.New("parameter triggerName cannot be empty") 53 } 54 urlPath = strings.ReplaceAll(urlPath, "{triggerName}", url.PathEscape(triggerName)) 55 if runID == "" { 56 return nil, errors.New("parameter runID cannot be empty") 57 } 58 urlPath = strings.ReplaceAll(urlPath, "{runId}", url.PathEscape(runID)) 59 req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 60 if err != nil { 61 return nil, err 62 } 63 req.Telemetry(telemetryInfo) 64 reqQP := req.URL.Query() 65 reqQP.Set("api-version", "2019-06-01-preview") 66 req.URL.RawQuery = reqQP.Encode() 67 req.Header.Set("Accept", "application/json") 68 return req, nil 69} 70 71// cancelTriggerInstanceHandleError handles the CancelTriggerInstance error response. 72func (client *TriggerRunClient) cancelTriggerInstanceHandleError(resp *azcore.Response) error { 73 body, err := resp.Payload() 74 if err != nil { 75 return azcore.NewResponseError(err, resp.Response) 76 } 77 errType := CloudError{raw: string(body)} 78 if err := resp.UnmarshalAsJSON(&errType.InnerError); err != nil { 79 return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) 80 } 81 return azcore.NewResponseError(&errType, resp.Response) 82} 83 84// QueryTriggerRunsByWorkspace - Query trigger runs. 85// If the operation fails it returns the *CloudError error type. 86func (client *TriggerRunClient) QueryTriggerRunsByWorkspace(ctx context.Context, filterParameters RunFilterParameters, options *TriggerRunQueryTriggerRunsByWorkspaceOptions) (TriggerRunsQueryResponseResponse, error) { 87 req, err := client.queryTriggerRunsByWorkspaceCreateRequest(ctx, filterParameters, options) 88 if err != nil { 89 return TriggerRunsQueryResponseResponse{}, err 90 } 91 resp, err := client.con.Pipeline().Do(req) 92 if err != nil { 93 return TriggerRunsQueryResponseResponse{}, err 94 } 95 if !resp.HasStatusCode(http.StatusOK) { 96 return TriggerRunsQueryResponseResponse{}, client.queryTriggerRunsByWorkspaceHandleError(resp) 97 } 98 return client.queryTriggerRunsByWorkspaceHandleResponse(resp) 99} 100 101// queryTriggerRunsByWorkspaceCreateRequest creates the QueryTriggerRunsByWorkspace request. 102func (client *TriggerRunClient) queryTriggerRunsByWorkspaceCreateRequest(ctx context.Context, filterParameters RunFilterParameters, options *TriggerRunQueryTriggerRunsByWorkspaceOptions) (*azcore.Request, error) { 103 urlPath := "/queryTriggerRuns" 104 req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 105 if err != nil { 106 return nil, err 107 } 108 req.Telemetry(telemetryInfo) 109 reqQP := req.URL.Query() 110 reqQP.Set("api-version", "2019-06-01-preview") 111 req.URL.RawQuery = reqQP.Encode() 112 req.Header.Set("Accept", "application/json") 113 return req, req.MarshalAsJSON(filterParameters) 114} 115 116// queryTriggerRunsByWorkspaceHandleResponse handles the QueryTriggerRunsByWorkspace response. 117func (client *TriggerRunClient) queryTriggerRunsByWorkspaceHandleResponse(resp *azcore.Response) (TriggerRunsQueryResponseResponse, error) { 118 var val *TriggerRunsQueryResponse 119 if err := resp.UnmarshalAsJSON(&val); err != nil { 120 return TriggerRunsQueryResponseResponse{}, err 121 } 122 return TriggerRunsQueryResponseResponse{RawResponse: resp.Response, TriggerRunsQueryResponse: val}, nil 123} 124 125// queryTriggerRunsByWorkspaceHandleError handles the QueryTriggerRunsByWorkspace error response. 126func (client *TriggerRunClient) queryTriggerRunsByWorkspaceHandleError(resp *azcore.Response) error { 127 body, err := resp.Payload() 128 if err != nil { 129 return azcore.NewResponseError(err, resp.Response) 130 } 131 errType := CloudError{raw: string(body)} 132 if err := resp.UnmarshalAsJSON(&errType.InnerError); err != nil { 133 return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) 134 } 135 return azcore.NewResponseError(&errType, resp.Response) 136} 137 138// RerunTriggerInstance - Rerun single trigger instance by runId. 139// If the operation fails it returns the *CloudError error type. 140func (client *TriggerRunClient) RerunTriggerInstance(ctx context.Context, triggerName string, runID string, options *TriggerRunRerunTriggerInstanceOptions) (*http.Response, error) { 141 req, err := client.rerunTriggerInstanceCreateRequest(ctx, triggerName, runID, options) 142 if err != nil { 143 return nil, err 144 } 145 resp, err := client.con.Pipeline().Do(req) 146 if err != nil { 147 return nil, err 148 } 149 if !resp.HasStatusCode(http.StatusOK) { 150 return nil, client.rerunTriggerInstanceHandleError(resp) 151 } 152 return resp.Response, nil 153} 154 155// rerunTriggerInstanceCreateRequest creates the RerunTriggerInstance request. 156func (client *TriggerRunClient) rerunTriggerInstanceCreateRequest(ctx context.Context, triggerName string, runID string, options *TriggerRunRerunTriggerInstanceOptions) (*azcore.Request, error) { 157 urlPath := "/triggers/{triggerName}/triggerRuns/{runId}/rerun" 158 if triggerName == "" { 159 return nil, errors.New("parameter triggerName cannot be empty") 160 } 161 urlPath = strings.ReplaceAll(urlPath, "{triggerName}", url.PathEscape(triggerName)) 162 if runID == "" { 163 return nil, errors.New("parameter runID cannot be empty") 164 } 165 urlPath = strings.ReplaceAll(urlPath, "{runId}", url.PathEscape(runID)) 166 req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 167 if err != nil { 168 return nil, err 169 } 170 req.Telemetry(telemetryInfo) 171 reqQP := req.URL.Query() 172 reqQP.Set("api-version", "2019-06-01-preview") 173 req.URL.RawQuery = reqQP.Encode() 174 req.Header.Set("Accept", "application/json") 175 return req, nil 176} 177 178// rerunTriggerInstanceHandleError handles the RerunTriggerInstance error response. 179func (client *TriggerRunClient) rerunTriggerInstanceHandleError(resp *azcore.Response) error { 180 body, err := resp.Payload() 181 if err != nil { 182 return azcore.NewResponseError(err, resp.Response) 183 } 184 errType := CloudError{raw: string(body)} 185 if err := resp.UnmarshalAsJSON(&errType.InnerError); err != nil { 186 return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response) 187 } 188 return azcore.NewResponseError(&errType, resp.Response) 189} 190