1package automation 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// ModuleClient is the automation Client 19type ModuleClient struct { 20 BaseClient 21} 22 23// NewModuleClient creates an instance of the ModuleClient client. 24func NewModuleClient(subscriptionID string) ModuleClient { 25 return NewModuleClientWithBaseURI(DefaultBaseURI, subscriptionID) 26} 27 28// NewModuleClientWithBaseURI creates an instance of the ModuleClient client using a custom endpoint. Use this when 29// interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). 30func NewModuleClientWithBaseURI(baseURI string, subscriptionID string) ModuleClient { 31 return ModuleClient{NewWithBaseURI(baseURI, subscriptionID)} 32} 33 34// CreateOrUpdate create or Update the module identified by module name. 35// Parameters: 36// resourceGroupName - name of an Azure Resource group. 37// automationAccountName - the name of the automation account. 38// moduleName - the name of module. 39// parameters - the create or update parameters for module. 40func (client ModuleClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, automationAccountName string, moduleName string, parameters ModuleCreateOrUpdateParameters) (result Module, err error) { 41 if tracing.IsEnabled() { 42 ctx = tracing.StartSpan(ctx, fqdn+"/ModuleClient.CreateOrUpdate") 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: resourceGroupName, 53 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, 54 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, 55 {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._]+$`, Chain: nil}}}, 56 {TargetValue: parameters, 57 Constraints: []validation.Constraint{{Target: "parameters.ModuleCreateOrUpdateProperties", Name: validation.Null, Rule: true, 58 Chain: []validation.Constraint{{Target: "parameters.ModuleCreateOrUpdateProperties.ContentLink", Name: validation.Null, Rule: true, 59 Chain: []validation.Constraint{{Target: "parameters.ModuleCreateOrUpdateProperties.ContentLink.ContentHash", Name: validation.Null, Rule: false, 60 Chain: []validation.Constraint{{Target: "parameters.ModuleCreateOrUpdateProperties.ContentLink.ContentHash.Algorithm", Name: validation.Null, Rule: true, Chain: nil}, 61 {Target: "parameters.ModuleCreateOrUpdateProperties.ContentLink.ContentHash.Value", Name: validation.Null, Rule: true, Chain: nil}, 62 }}, 63 }}, 64 }}}}}); err != nil { 65 return result, validation.NewError("automation.ModuleClient", "CreateOrUpdate", err.Error()) 66 } 67 68 req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, automationAccountName, moduleName, parameters) 69 if err != nil { 70 err = autorest.NewErrorWithError(err, "automation.ModuleClient", "CreateOrUpdate", nil, "Failure preparing request") 71 return 72 } 73 74 resp, err := client.CreateOrUpdateSender(req) 75 if err != nil { 76 result.Response = autorest.Response{Response: resp} 77 err = autorest.NewErrorWithError(err, "automation.ModuleClient", "CreateOrUpdate", resp, "Failure sending request") 78 return 79 } 80 81 result, err = client.CreateOrUpdateResponder(resp) 82 if err != nil { 83 err = autorest.NewErrorWithError(err, "automation.ModuleClient", "CreateOrUpdate", resp, "Failure responding to request") 84 return 85 } 86 87 return 88} 89 90// CreateOrUpdatePreparer prepares the CreateOrUpdate request. 91func (client ModuleClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, automationAccountName string, moduleName string, parameters ModuleCreateOrUpdateParameters) (*http.Request, error) { 92 pathParameters := map[string]interface{}{ 93 "automationAccountName": autorest.Encode("path", automationAccountName), 94 "moduleName": autorest.Encode("path", moduleName), 95 "resourceGroupName": autorest.Encode("path", resourceGroupName), 96 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 97 } 98 99 const APIVersion = "2015-10-31" 100 queryParameters := map[string]interface{}{ 101 "api-version": APIVersion, 102 } 103 104 preparer := autorest.CreatePreparer( 105 autorest.AsContentType("application/json; charset=utf-8"), 106 autorest.AsPut(), 107 autorest.WithBaseURL(client.BaseURI), 108 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/modules/{moduleName}", pathParameters), 109 autorest.WithJSON(parameters), 110 autorest.WithQueryParameters(queryParameters)) 111 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 112} 113 114// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the 115// http.Response Body if it receives an error. 116func (client ModuleClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { 117 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 118} 119 120// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always 121// closes the http.Response Body. 122func (client ModuleClient) CreateOrUpdateResponder(resp *http.Response) (result Module, err error) { 123 err = autorest.Respond( 124 resp, 125 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), 126 autorest.ByUnmarshallingJSON(&result), 127 autorest.ByClosing()) 128 result.Response = autorest.Response{Response: resp} 129 return 130} 131 132// Delete delete the module by name. 133// Parameters: 134// resourceGroupName - name of an Azure Resource group. 135// automationAccountName - the name of the automation account. 136// moduleName - the module name. 137func (client ModuleClient) Delete(ctx context.Context, resourceGroupName string, automationAccountName string, moduleName string) (result autorest.Response, err error) { 138 if tracing.IsEnabled() { 139 ctx = tracing.StartSpan(ctx, fqdn+"/ModuleClient.Delete") 140 defer func() { 141 sc := -1 142 if result.Response != nil { 143 sc = result.Response.StatusCode 144 } 145 tracing.EndSpan(ctx, sc, err) 146 }() 147 } 148 if err := validation.Validate([]validation.Validation{ 149 {TargetValue: resourceGroupName, 150 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, 151 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, 152 {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._]+$`, Chain: nil}}}}); err != nil { 153 return result, validation.NewError("automation.ModuleClient", "Delete", err.Error()) 154 } 155 156 req, err := client.DeletePreparer(ctx, resourceGroupName, automationAccountName, moduleName) 157 if err != nil { 158 err = autorest.NewErrorWithError(err, "automation.ModuleClient", "Delete", nil, "Failure preparing request") 159 return 160 } 161 162 resp, err := client.DeleteSender(req) 163 if err != nil { 164 result.Response = resp 165 err = autorest.NewErrorWithError(err, "automation.ModuleClient", "Delete", resp, "Failure sending request") 166 return 167 } 168 169 result, err = client.DeleteResponder(resp) 170 if err != nil { 171 err = autorest.NewErrorWithError(err, "automation.ModuleClient", "Delete", resp, "Failure responding to request") 172 return 173 } 174 175 return 176} 177 178// DeletePreparer prepares the Delete request. 179func (client ModuleClient) DeletePreparer(ctx context.Context, resourceGroupName string, automationAccountName string, moduleName string) (*http.Request, error) { 180 pathParameters := map[string]interface{}{ 181 "automationAccountName": autorest.Encode("path", automationAccountName), 182 "moduleName": autorest.Encode("path", moduleName), 183 "resourceGroupName": autorest.Encode("path", resourceGroupName), 184 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 185 } 186 187 const APIVersion = "2015-10-31" 188 queryParameters := map[string]interface{}{ 189 "api-version": APIVersion, 190 } 191 192 preparer := autorest.CreatePreparer( 193 autorest.AsDelete(), 194 autorest.WithBaseURL(client.BaseURI), 195 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/modules/{moduleName}", pathParameters), 196 autorest.WithQueryParameters(queryParameters)) 197 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 198} 199 200// DeleteSender sends the Delete request. The method will close the 201// http.Response Body if it receives an error. 202func (client ModuleClient) DeleteSender(req *http.Request) (*http.Response, error) { 203 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 204} 205 206// DeleteResponder handles the response to the Delete request. The method always 207// closes the http.Response Body. 208func (client ModuleClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { 209 err = autorest.Respond( 210 resp, 211 azure.WithErrorUnlessStatusCode(http.StatusOK), 212 autorest.ByClosing()) 213 result.Response = resp 214 return 215} 216 217// Get retrieve the module identified by module name. 218// Parameters: 219// resourceGroupName - name of an Azure Resource group. 220// automationAccountName - the name of the automation account. 221// moduleName - the module name. 222func (client ModuleClient) Get(ctx context.Context, resourceGroupName string, automationAccountName string, moduleName string) (result Module, err error) { 223 if tracing.IsEnabled() { 224 ctx = tracing.StartSpan(ctx, fqdn+"/ModuleClient.Get") 225 defer func() { 226 sc := -1 227 if result.Response.Response != nil { 228 sc = result.Response.Response.StatusCode 229 } 230 tracing.EndSpan(ctx, sc, err) 231 }() 232 } 233 if err := validation.Validate([]validation.Validation{ 234 {TargetValue: resourceGroupName, 235 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, 236 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, 237 {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._]+$`, Chain: nil}}}}); err != nil { 238 return result, validation.NewError("automation.ModuleClient", "Get", err.Error()) 239 } 240 241 req, err := client.GetPreparer(ctx, resourceGroupName, automationAccountName, moduleName) 242 if err != nil { 243 err = autorest.NewErrorWithError(err, "automation.ModuleClient", "Get", nil, "Failure preparing request") 244 return 245 } 246 247 resp, err := client.GetSender(req) 248 if err != nil { 249 result.Response = autorest.Response{Response: resp} 250 err = autorest.NewErrorWithError(err, "automation.ModuleClient", "Get", resp, "Failure sending request") 251 return 252 } 253 254 result, err = client.GetResponder(resp) 255 if err != nil { 256 err = autorest.NewErrorWithError(err, "automation.ModuleClient", "Get", resp, "Failure responding to request") 257 return 258 } 259 260 return 261} 262 263// GetPreparer prepares the Get request. 264func (client ModuleClient) GetPreparer(ctx context.Context, resourceGroupName string, automationAccountName string, moduleName string) (*http.Request, error) { 265 pathParameters := map[string]interface{}{ 266 "automationAccountName": autorest.Encode("path", automationAccountName), 267 "moduleName": autorest.Encode("path", moduleName), 268 "resourceGroupName": autorest.Encode("path", resourceGroupName), 269 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 270 } 271 272 const APIVersion = "2015-10-31" 273 queryParameters := map[string]interface{}{ 274 "api-version": APIVersion, 275 } 276 277 preparer := autorest.CreatePreparer( 278 autorest.AsGet(), 279 autorest.WithBaseURL(client.BaseURI), 280 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/modules/{moduleName}", pathParameters), 281 autorest.WithQueryParameters(queryParameters)) 282 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 283} 284 285// GetSender sends the Get request. The method will close the 286// http.Response Body if it receives an error. 287func (client ModuleClient) GetSender(req *http.Request) (*http.Response, error) { 288 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 289} 290 291// GetResponder handles the response to the Get request. The method always 292// closes the http.Response Body. 293func (client ModuleClient) GetResponder(resp *http.Response) (result Module, err error) { 294 err = autorest.Respond( 295 resp, 296 azure.WithErrorUnlessStatusCode(http.StatusOK), 297 autorest.ByUnmarshallingJSON(&result), 298 autorest.ByClosing()) 299 result.Response = autorest.Response{Response: resp} 300 return 301} 302 303// ListByAutomationAccount retrieve a list of modules. 304// Parameters: 305// resourceGroupName - name of an Azure Resource group. 306// automationAccountName - the name of the automation account. 307func (client ModuleClient) ListByAutomationAccount(ctx context.Context, resourceGroupName string, automationAccountName string) (result ModuleListResultPage, err error) { 308 if tracing.IsEnabled() { 309 ctx = tracing.StartSpan(ctx, fqdn+"/ModuleClient.ListByAutomationAccount") 310 defer func() { 311 sc := -1 312 if result.mlr.Response.Response != nil { 313 sc = result.mlr.Response.Response.StatusCode 314 } 315 tracing.EndSpan(ctx, sc, err) 316 }() 317 } 318 if err := validation.Validate([]validation.Validation{ 319 {TargetValue: resourceGroupName, 320 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, 321 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, 322 {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._]+$`, Chain: nil}}}}); err != nil { 323 return result, validation.NewError("automation.ModuleClient", "ListByAutomationAccount", err.Error()) 324 } 325 326 result.fn = client.listByAutomationAccountNextResults 327 req, err := client.ListByAutomationAccountPreparer(ctx, resourceGroupName, automationAccountName) 328 if err != nil { 329 err = autorest.NewErrorWithError(err, "automation.ModuleClient", "ListByAutomationAccount", nil, "Failure preparing request") 330 return 331 } 332 333 resp, err := client.ListByAutomationAccountSender(req) 334 if err != nil { 335 result.mlr.Response = autorest.Response{Response: resp} 336 err = autorest.NewErrorWithError(err, "automation.ModuleClient", "ListByAutomationAccount", resp, "Failure sending request") 337 return 338 } 339 340 result.mlr, err = client.ListByAutomationAccountResponder(resp) 341 if err != nil { 342 err = autorest.NewErrorWithError(err, "automation.ModuleClient", "ListByAutomationAccount", resp, "Failure responding to request") 343 return 344 } 345 if result.mlr.hasNextLink() && result.mlr.IsEmpty() { 346 err = result.NextWithContext(ctx) 347 return 348 } 349 350 return 351} 352 353// ListByAutomationAccountPreparer prepares the ListByAutomationAccount request. 354func (client ModuleClient) ListByAutomationAccountPreparer(ctx context.Context, resourceGroupName string, automationAccountName string) (*http.Request, error) { 355 pathParameters := map[string]interface{}{ 356 "automationAccountName": autorest.Encode("path", automationAccountName), 357 "resourceGroupName": autorest.Encode("path", resourceGroupName), 358 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 359 } 360 361 const APIVersion = "2015-10-31" 362 queryParameters := map[string]interface{}{ 363 "api-version": APIVersion, 364 } 365 366 preparer := autorest.CreatePreparer( 367 autorest.AsGet(), 368 autorest.WithBaseURL(client.BaseURI), 369 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/modules", pathParameters), 370 autorest.WithQueryParameters(queryParameters)) 371 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 372} 373 374// ListByAutomationAccountSender sends the ListByAutomationAccount request. The method will close the 375// http.Response Body if it receives an error. 376func (client ModuleClient) ListByAutomationAccountSender(req *http.Request) (*http.Response, error) { 377 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 378} 379 380// ListByAutomationAccountResponder handles the response to the ListByAutomationAccount request. The method always 381// closes the http.Response Body. 382func (client ModuleClient) ListByAutomationAccountResponder(resp *http.Response) (result ModuleListResult, err error) { 383 err = autorest.Respond( 384 resp, 385 azure.WithErrorUnlessStatusCode(http.StatusOK), 386 autorest.ByUnmarshallingJSON(&result), 387 autorest.ByClosing()) 388 result.Response = autorest.Response{Response: resp} 389 return 390} 391 392// listByAutomationAccountNextResults retrieves the next set of results, if any. 393func (client ModuleClient) listByAutomationAccountNextResults(ctx context.Context, lastResults ModuleListResult) (result ModuleListResult, err error) { 394 req, err := lastResults.moduleListResultPreparer(ctx) 395 if err != nil { 396 return result, autorest.NewErrorWithError(err, "automation.ModuleClient", "listByAutomationAccountNextResults", nil, "Failure preparing next results request") 397 } 398 if req == nil { 399 return 400 } 401 resp, err := client.ListByAutomationAccountSender(req) 402 if err != nil { 403 result.Response = autorest.Response{Response: resp} 404 return result, autorest.NewErrorWithError(err, "automation.ModuleClient", "listByAutomationAccountNextResults", resp, "Failure sending next results request") 405 } 406 result, err = client.ListByAutomationAccountResponder(resp) 407 if err != nil { 408 err = autorest.NewErrorWithError(err, "automation.ModuleClient", "listByAutomationAccountNextResults", resp, "Failure responding to next results request") 409 } 410 return 411} 412 413// ListByAutomationAccountComplete enumerates all values, automatically crossing page boundaries as required. 414func (client ModuleClient) ListByAutomationAccountComplete(ctx context.Context, resourceGroupName string, automationAccountName string) (result ModuleListResultIterator, err error) { 415 if tracing.IsEnabled() { 416 ctx = tracing.StartSpan(ctx, fqdn+"/ModuleClient.ListByAutomationAccount") 417 defer func() { 418 sc := -1 419 if result.Response().Response.Response != nil { 420 sc = result.page.Response().Response.Response.StatusCode 421 } 422 tracing.EndSpan(ctx, sc, err) 423 }() 424 } 425 result.page, err = client.ListByAutomationAccount(ctx, resourceGroupName, automationAccountName) 426 return 427} 428 429// Update update the module identified by module name. 430// Parameters: 431// resourceGroupName - name of an Azure Resource group. 432// automationAccountName - the name of the automation account. 433// moduleName - the name of module. 434// parameters - the update parameters for module. 435func (client ModuleClient) Update(ctx context.Context, resourceGroupName string, automationAccountName string, moduleName string, parameters ModuleUpdateParameters) (result Module, err error) { 436 if tracing.IsEnabled() { 437 ctx = tracing.StartSpan(ctx, fqdn+"/ModuleClient.Update") 438 defer func() { 439 sc := -1 440 if result.Response.Response != nil { 441 sc = result.Response.Response.StatusCode 442 } 443 tracing.EndSpan(ctx, sc, err) 444 }() 445 } 446 if err := validation.Validate([]validation.Validation{ 447 {TargetValue: resourceGroupName, 448 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, 449 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, 450 {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._]+$`, Chain: nil}}}}); err != nil { 451 return result, validation.NewError("automation.ModuleClient", "Update", err.Error()) 452 } 453 454 req, err := client.UpdatePreparer(ctx, resourceGroupName, automationAccountName, moduleName, parameters) 455 if err != nil { 456 err = autorest.NewErrorWithError(err, "automation.ModuleClient", "Update", nil, "Failure preparing request") 457 return 458 } 459 460 resp, err := client.UpdateSender(req) 461 if err != nil { 462 result.Response = autorest.Response{Response: resp} 463 err = autorest.NewErrorWithError(err, "automation.ModuleClient", "Update", resp, "Failure sending request") 464 return 465 } 466 467 result, err = client.UpdateResponder(resp) 468 if err != nil { 469 err = autorest.NewErrorWithError(err, "automation.ModuleClient", "Update", resp, "Failure responding to request") 470 return 471 } 472 473 return 474} 475 476// UpdatePreparer prepares the Update request. 477func (client ModuleClient) UpdatePreparer(ctx context.Context, resourceGroupName string, automationAccountName string, moduleName string, parameters ModuleUpdateParameters) (*http.Request, error) { 478 pathParameters := map[string]interface{}{ 479 "automationAccountName": autorest.Encode("path", automationAccountName), 480 "moduleName": autorest.Encode("path", moduleName), 481 "resourceGroupName": autorest.Encode("path", resourceGroupName), 482 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 483 } 484 485 const APIVersion = "2015-10-31" 486 queryParameters := map[string]interface{}{ 487 "api-version": APIVersion, 488 } 489 490 preparer := autorest.CreatePreparer( 491 autorest.AsContentType("application/json; charset=utf-8"), 492 autorest.AsPatch(), 493 autorest.WithBaseURL(client.BaseURI), 494 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/modules/{moduleName}", pathParameters), 495 autorest.WithJSON(parameters), 496 autorest.WithQueryParameters(queryParameters)) 497 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 498} 499 500// UpdateSender sends the Update request. The method will close the 501// http.Response Body if it receives an error. 502func (client ModuleClient) UpdateSender(req *http.Request) (*http.Response, error) { 503 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 504} 505 506// UpdateResponder handles the response to the Update request. The method always 507// closes the http.Response Body. 508func (client ModuleClient) UpdateResponder(resp *http.Response) (result Module, err error) { 509 err = autorest.Respond( 510 resp, 511 azure.WithErrorUnlessStatusCode(http.StatusOK), 512 autorest.ByUnmarshallingJSON(&result), 513 autorest.ByClosing()) 514 result.Response = autorest.Response{Response: resp} 515 return 516} 517