1package containerservice 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 "encoding/json" 12 "github.com/Azure/go-autorest/autorest" 13 "github.com/Azure/go-autorest/autorest/azure" 14 "github.com/Azure/go-autorest/autorest/date" 15 "github.com/Azure/go-autorest/autorest/to" 16 "github.com/Azure/go-autorest/tracing" 17 "net/http" 18) 19 20// The package's fully qualified name. 21const fqdn = "github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2021-02-01/containerservice" 22 23// AccessProfile profile for enabling a user to access a managed cluster. 24type AccessProfile struct { 25 // KubeConfig - Base64-encoded Kubernetes configuration file. 26 KubeConfig *[]byte `json:"kubeConfig,omitempty"` 27} 28 29// AgentPool agent Pool. 30type AgentPool struct { 31 autorest.Response `json:"-"` 32 // ManagedClusterAgentPoolProfileProperties - Properties of an agent pool. 33 *ManagedClusterAgentPoolProfileProperties `json:"properties,omitempty"` 34 // ID - READ-ONLY; Resource ID. 35 ID *string `json:"id,omitempty"` 36 // Name - READ-ONLY; The name of the resource that is unique within a resource group. This name can be used to access the resource. 37 Name *string `json:"name,omitempty"` 38 // Type - READ-ONLY; Resource type 39 Type *string `json:"type,omitempty"` 40} 41 42// MarshalJSON is the custom marshaler for AgentPool. 43func (ap AgentPool) MarshalJSON() ([]byte, error) { 44 objectMap := make(map[string]interface{}) 45 if ap.ManagedClusterAgentPoolProfileProperties != nil { 46 objectMap["properties"] = ap.ManagedClusterAgentPoolProfileProperties 47 } 48 return json.Marshal(objectMap) 49} 50 51// UnmarshalJSON is the custom unmarshaler for AgentPool struct. 52func (ap *AgentPool) UnmarshalJSON(body []byte) error { 53 var m map[string]*json.RawMessage 54 err := json.Unmarshal(body, &m) 55 if err != nil { 56 return err 57 } 58 for k, v := range m { 59 switch k { 60 case "properties": 61 if v != nil { 62 var managedClusterAgentPoolProfileProperties ManagedClusterAgentPoolProfileProperties 63 err = json.Unmarshal(*v, &managedClusterAgentPoolProfileProperties) 64 if err != nil { 65 return err 66 } 67 ap.ManagedClusterAgentPoolProfileProperties = &managedClusterAgentPoolProfileProperties 68 } 69 case "id": 70 if v != nil { 71 var ID string 72 err = json.Unmarshal(*v, &ID) 73 if err != nil { 74 return err 75 } 76 ap.ID = &ID 77 } 78 case "name": 79 if v != nil { 80 var name string 81 err = json.Unmarshal(*v, &name) 82 if err != nil { 83 return err 84 } 85 ap.Name = &name 86 } 87 case "type": 88 if v != nil { 89 var typeVar string 90 err = json.Unmarshal(*v, &typeVar) 91 if err != nil { 92 return err 93 } 94 ap.Type = &typeVar 95 } 96 } 97 } 98 99 return nil 100} 101 102// AgentPoolAvailableVersions the list of available versions for an agent pool. 103type AgentPoolAvailableVersions struct { 104 autorest.Response `json:"-"` 105 // ID - READ-ONLY; Id of the agent pool available versions. 106 ID *string `json:"id,omitempty"` 107 // Name - READ-ONLY; Name of the agent pool available versions. 108 Name *string `json:"name,omitempty"` 109 // Type - READ-ONLY; Type of the agent pool available versions. 110 Type *string `json:"type,omitempty"` 111 // AgentPoolAvailableVersionsProperties - Properties of agent pool available versions. 112 *AgentPoolAvailableVersionsProperties `json:"properties,omitempty"` 113} 114 115// MarshalJSON is the custom marshaler for AgentPoolAvailableVersions. 116func (apav AgentPoolAvailableVersions) MarshalJSON() ([]byte, error) { 117 objectMap := make(map[string]interface{}) 118 if apav.AgentPoolAvailableVersionsProperties != nil { 119 objectMap["properties"] = apav.AgentPoolAvailableVersionsProperties 120 } 121 return json.Marshal(objectMap) 122} 123 124// UnmarshalJSON is the custom unmarshaler for AgentPoolAvailableVersions struct. 125func (apav *AgentPoolAvailableVersions) UnmarshalJSON(body []byte) error { 126 var m map[string]*json.RawMessage 127 err := json.Unmarshal(body, &m) 128 if err != nil { 129 return err 130 } 131 for k, v := range m { 132 switch k { 133 case "id": 134 if v != nil { 135 var ID string 136 err = json.Unmarshal(*v, &ID) 137 if err != nil { 138 return err 139 } 140 apav.ID = &ID 141 } 142 case "name": 143 if v != nil { 144 var name string 145 err = json.Unmarshal(*v, &name) 146 if err != nil { 147 return err 148 } 149 apav.Name = &name 150 } 151 case "type": 152 if v != nil { 153 var typeVar string 154 err = json.Unmarshal(*v, &typeVar) 155 if err != nil { 156 return err 157 } 158 apav.Type = &typeVar 159 } 160 case "properties": 161 if v != nil { 162 var agentPoolAvailableVersionsProperties AgentPoolAvailableVersionsProperties 163 err = json.Unmarshal(*v, &agentPoolAvailableVersionsProperties) 164 if err != nil { 165 return err 166 } 167 apav.AgentPoolAvailableVersionsProperties = &agentPoolAvailableVersionsProperties 168 } 169 } 170 } 171 172 return nil 173} 174 175// AgentPoolAvailableVersionsProperties the list of available agent pool versions. 176type AgentPoolAvailableVersionsProperties struct { 177 // AgentPoolVersions - List of versions available for agent pool. 178 AgentPoolVersions *[]AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem `json:"agentPoolVersions,omitempty"` 179} 180 181// AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem ... 182type AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem struct { 183 // Default - Whether this version is the default agent pool version. 184 Default *bool `json:"default,omitempty"` 185 // KubernetesVersion - Kubernetes version (major, minor, patch). 186 KubernetesVersion *string `json:"kubernetesVersion,omitempty"` 187 // IsPreview - Whether Kubernetes version is currently in preview. 188 IsPreview *bool `json:"isPreview,omitempty"` 189} 190 191// AgentPoolListResult the response from the List Agent Pools operation. 192type AgentPoolListResult struct { 193 autorest.Response `json:"-"` 194 // Value - The list of agent pools. 195 Value *[]AgentPool `json:"value,omitempty"` 196 // NextLink - READ-ONLY; The URL to get the next set of agent pool results. 197 NextLink *string `json:"nextLink,omitempty"` 198} 199 200// MarshalJSON is the custom marshaler for AgentPoolListResult. 201func (aplr AgentPoolListResult) MarshalJSON() ([]byte, error) { 202 objectMap := make(map[string]interface{}) 203 if aplr.Value != nil { 204 objectMap["value"] = aplr.Value 205 } 206 return json.Marshal(objectMap) 207} 208 209// AgentPoolListResultIterator provides access to a complete listing of AgentPool values. 210type AgentPoolListResultIterator struct { 211 i int 212 page AgentPoolListResultPage 213} 214 215// NextWithContext advances to the next value. If there was an error making 216// the request the iterator does not advance and the error is returned. 217func (iter *AgentPoolListResultIterator) NextWithContext(ctx context.Context) (err error) { 218 if tracing.IsEnabled() { 219 ctx = tracing.StartSpan(ctx, fqdn+"/AgentPoolListResultIterator.NextWithContext") 220 defer func() { 221 sc := -1 222 if iter.Response().Response.Response != nil { 223 sc = iter.Response().Response.Response.StatusCode 224 } 225 tracing.EndSpan(ctx, sc, err) 226 }() 227 } 228 iter.i++ 229 if iter.i < len(iter.page.Values()) { 230 return nil 231 } 232 err = iter.page.NextWithContext(ctx) 233 if err != nil { 234 iter.i-- 235 return err 236 } 237 iter.i = 0 238 return nil 239} 240 241// Next advances to the next value. If there was an error making 242// the request the iterator does not advance and the error is returned. 243// Deprecated: Use NextWithContext() instead. 244func (iter *AgentPoolListResultIterator) Next() error { 245 return iter.NextWithContext(context.Background()) 246} 247 248// NotDone returns true if the enumeration should be started or is not yet complete. 249func (iter AgentPoolListResultIterator) NotDone() bool { 250 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 251} 252 253// Response returns the raw server response from the last page request. 254func (iter AgentPoolListResultIterator) Response() AgentPoolListResult { 255 return iter.page.Response() 256} 257 258// Value returns the current value or a zero-initialized value if the 259// iterator has advanced beyond the end of the collection. 260func (iter AgentPoolListResultIterator) Value() AgentPool { 261 if !iter.page.NotDone() { 262 return AgentPool{} 263 } 264 return iter.page.Values()[iter.i] 265} 266 267// Creates a new instance of the AgentPoolListResultIterator type. 268func NewAgentPoolListResultIterator(page AgentPoolListResultPage) AgentPoolListResultIterator { 269 return AgentPoolListResultIterator{page: page} 270} 271 272// IsEmpty returns true if the ListResult contains no values. 273func (aplr AgentPoolListResult) IsEmpty() bool { 274 return aplr.Value == nil || len(*aplr.Value) == 0 275} 276 277// hasNextLink returns true if the NextLink is not empty. 278func (aplr AgentPoolListResult) hasNextLink() bool { 279 return aplr.NextLink != nil && len(*aplr.NextLink) != 0 280} 281 282// agentPoolListResultPreparer prepares a request to retrieve the next set of results. 283// It returns nil if no more results exist. 284func (aplr AgentPoolListResult) agentPoolListResultPreparer(ctx context.Context) (*http.Request, error) { 285 if !aplr.hasNextLink() { 286 return nil, nil 287 } 288 return autorest.Prepare((&http.Request{}).WithContext(ctx), 289 autorest.AsJSON(), 290 autorest.AsGet(), 291 autorest.WithBaseURL(to.String(aplr.NextLink))) 292} 293 294// AgentPoolListResultPage contains a page of AgentPool values. 295type AgentPoolListResultPage struct { 296 fn func(context.Context, AgentPoolListResult) (AgentPoolListResult, error) 297 aplr AgentPoolListResult 298} 299 300// NextWithContext advances to the next page of values. If there was an error making 301// the request the page does not advance and the error is returned. 302func (page *AgentPoolListResultPage) NextWithContext(ctx context.Context) (err error) { 303 if tracing.IsEnabled() { 304 ctx = tracing.StartSpan(ctx, fqdn+"/AgentPoolListResultPage.NextWithContext") 305 defer func() { 306 sc := -1 307 if page.Response().Response.Response != nil { 308 sc = page.Response().Response.Response.StatusCode 309 } 310 tracing.EndSpan(ctx, sc, err) 311 }() 312 } 313 for { 314 next, err := page.fn(ctx, page.aplr) 315 if err != nil { 316 return err 317 } 318 page.aplr = next 319 if !next.hasNextLink() || !next.IsEmpty() { 320 break 321 } 322 } 323 return nil 324} 325 326// Next advances to the next page of values. If there was an error making 327// the request the page does not advance and the error is returned. 328// Deprecated: Use NextWithContext() instead. 329func (page *AgentPoolListResultPage) Next() error { 330 return page.NextWithContext(context.Background()) 331} 332 333// NotDone returns true if the page enumeration should be started or is not yet complete. 334func (page AgentPoolListResultPage) NotDone() bool { 335 return !page.aplr.IsEmpty() 336} 337 338// Response returns the raw server response from the last page request. 339func (page AgentPoolListResultPage) Response() AgentPoolListResult { 340 return page.aplr 341} 342 343// Values returns the slice of values for the current page or nil if there are no values. 344func (page AgentPoolListResultPage) Values() []AgentPool { 345 if page.aplr.IsEmpty() { 346 return nil 347 } 348 return *page.aplr.Value 349} 350 351// Creates a new instance of the AgentPoolListResultPage type. 352func NewAgentPoolListResultPage(cur AgentPoolListResult, getNextPage func(context.Context, AgentPoolListResult) (AgentPoolListResult, error)) AgentPoolListResultPage { 353 return AgentPoolListResultPage{ 354 fn: getNextPage, 355 aplr: cur, 356 } 357} 358 359// AgentPoolsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 360// long-running operation. 361type AgentPoolsCreateOrUpdateFuture struct { 362 azure.FutureAPI 363 // Result returns the result of the asynchronous operation. 364 // If the operation has not completed it will return an error. 365 Result func(AgentPoolsClient) (AgentPool, error) 366} 367 368// UnmarshalJSON is the custom unmarshaller for CreateFuture. 369func (future *AgentPoolsCreateOrUpdateFuture) UnmarshalJSON(body []byte) error { 370 var azFuture azure.Future 371 if err := json.Unmarshal(body, &azFuture); err != nil { 372 return err 373 } 374 future.FutureAPI = &azFuture 375 future.Result = future.result 376 return nil 377} 378 379// result is the default implementation for AgentPoolsCreateOrUpdateFuture.Result. 380func (future *AgentPoolsCreateOrUpdateFuture) result(client AgentPoolsClient) (ap AgentPool, err error) { 381 var done bool 382 done, err = future.DoneWithContext(context.Background(), client) 383 if err != nil { 384 err = autorest.NewErrorWithError(err, "containerservice.AgentPoolsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 385 return 386 } 387 if !done { 388 ap.Response.Response = future.Response() 389 err = azure.NewAsyncOpIncompleteError("containerservice.AgentPoolsCreateOrUpdateFuture") 390 return 391 } 392 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 393 if ap.Response.Response, err = future.GetResult(sender); err == nil && ap.Response.Response.StatusCode != http.StatusNoContent { 394 ap, err = client.CreateOrUpdateResponder(ap.Response.Response) 395 if err != nil { 396 err = autorest.NewErrorWithError(err, "containerservice.AgentPoolsCreateOrUpdateFuture", "Result", ap.Response.Response, "Failure responding to request") 397 } 398 } 399 return 400} 401 402// AgentPoolsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 403// operation. 404type AgentPoolsDeleteFuture struct { 405 azure.FutureAPI 406 // Result returns the result of the asynchronous operation. 407 // If the operation has not completed it will return an error. 408 Result func(AgentPoolsClient) (autorest.Response, error) 409} 410 411// UnmarshalJSON is the custom unmarshaller for CreateFuture. 412func (future *AgentPoolsDeleteFuture) UnmarshalJSON(body []byte) error { 413 var azFuture azure.Future 414 if err := json.Unmarshal(body, &azFuture); err != nil { 415 return err 416 } 417 future.FutureAPI = &azFuture 418 future.Result = future.result 419 return nil 420} 421 422// result is the default implementation for AgentPoolsDeleteFuture.Result. 423func (future *AgentPoolsDeleteFuture) result(client AgentPoolsClient) (ar autorest.Response, err error) { 424 var done bool 425 done, err = future.DoneWithContext(context.Background(), client) 426 if err != nil { 427 err = autorest.NewErrorWithError(err, "containerservice.AgentPoolsDeleteFuture", "Result", future.Response(), "Polling failure") 428 return 429 } 430 if !done { 431 ar.Response = future.Response() 432 err = azure.NewAsyncOpIncompleteError("containerservice.AgentPoolsDeleteFuture") 433 return 434 } 435 ar.Response = future.Response() 436 return 437} 438 439// AgentPoolsUpgradeNodeImageVersionFuture an abstraction for monitoring and retrieving the results of a 440// long-running operation. 441type AgentPoolsUpgradeNodeImageVersionFuture struct { 442 azure.FutureAPI 443 // Result returns the result of the asynchronous operation. 444 // If the operation has not completed it will return an error. 445 Result func(AgentPoolsClient) (AgentPool, error) 446} 447 448// UnmarshalJSON is the custom unmarshaller for CreateFuture. 449func (future *AgentPoolsUpgradeNodeImageVersionFuture) UnmarshalJSON(body []byte) error { 450 var azFuture azure.Future 451 if err := json.Unmarshal(body, &azFuture); err != nil { 452 return err 453 } 454 future.FutureAPI = &azFuture 455 future.Result = future.result 456 return nil 457} 458 459// result is the default implementation for AgentPoolsUpgradeNodeImageVersionFuture.Result. 460func (future *AgentPoolsUpgradeNodeImageVersionFuture) result(client AgentPoolsClient) (ap AgentPool, err error) { 461 var done bool 462 done, err = future.DoneWithContext(context.Background(), client) 463 if err != nil { 464 err = autorest.NewErrorWithError(err, "containerservice.AgentPoolsUpgradeNodeImageVersionFuture", "Result", future.Response(), "Polling failure") 465 return 466 } 467 if !done { 468 ap.Response.Response = future.Response() 469 err = azure.NewAsyncOpIncompleteError("containerservice.AgentPoolsUpgradeNodeImageVersionFuture") 470 return 471 } 472 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 473 if ap.Response.Response, err = future.GetResult(sender); err == nil && ap.Response.Response.StatusCode != http.StatusNoContent { 474 ap, err = client.UpgradeNodeImageVersionResponder(ap.Response.Response) 475 if err != nil { 476 err = autorest.NewErrorWithError(err, "containerservice.AgentPoolsUpgradeNodeImageVersionFuture", "Result", ap.Response.Response, "Failure responding to request") 477 } 478 } 479 return 480} 481 482// AgentPoolUpgradeProfile the list of available upgrades for an agent pool. 483type AgentPoolUpgradeProfile struct { 484 autorest.Response `json:"-"` 485 // ID - READ-ONLY; Id of the agent pool upgrade profile. 486 ID *string `json:"id,omitempty"` 487 // Name - READ-ONLY; Name of the agent pool upgrade profile. 488 Name *string `json:"name,omitempty"` 489 // Type - READ-ONLY; Type of the agent pool upgrade profile. 490 Type *string `json:"type,omitempty"` 491 // AgentPoolUpgradeProfileProperties - Properties of agent pool upgrade profile. 492 *AgentPoolUpgradeProfileProperties `json:"properties,omitempty"` 493} 494 495// MarshalJSON is the custom marshaler for AgentPoolUpgradeProfile. 496func (apup AgentPoolUpgradeProfile) MarshalJSON() ([]byte, error) { 497 objectMap := make(map[string]interface{}) 498 if apup.AgentPoolUpgradeProfileProperties != nil { 499 objectMap["properties"] = apup.AgentPoolUpgradeProfileProperties 500 } 501 return json.Marshal(objectMap) 502} 503 504// UnmarshalJSON is the custom unmarshaler for AgentPoolUpgradeProfile struct. 505func (apup *AgentPoolUpgradeProfile) UnmarshalJSON(body []byte) error { 506 var m map[string]*json.RawMessage 507 err := json.Unmarshal(body, &m) 508 if err != nil { 509 return err 510 } 511 for k, v := range m { 512 switch k { 513 case "id": 514 if v != nil { 515 var ID string 516 err = json.Unmarshal(*v, &ID) 517 if err != nil { 518 return err 519 } 520 apup.ID = &ID 521 } 522 case "name": 523 if v != nil { 524 var name string 525 err = json.Unmarshal(*v, &name) 526 if err != nil { 527 return err 528 } 529 apup.Name = &name 530 } 531 case "type": 532 if v != nil { 533 var typeVar string 534 err = json.Unmarshal(*v, &typeVar) 535 if err != nil { 536 return err 537 } 538 apup.Type = &typeVar 539 } 540 case "properties": 541 if v != nil { 542 var agentPoolUpgradeProfileProperties AgentPoolUpgradeProfileProperties 543 err = json.Unmarshal(*v, &agentPoolUpgradeProfileProperties) 544 if err != nil { 545 return err 546 } 547 apup.AgentPoolUpgradeProfileProperties = &agentPoolUpgradeProfileProperties 548 } 549 } 550 } 551 552 return nil 553} 554 555// AgentPoolUpgradeProfileProperties the list of available upgrade versions. 556type AgentPoolUpgradeProfileProperties struct { 557 // KubernetesVersion - Kubernetes version (major, minor, patch). 558 KubernetesVersion *string `json:"kubernetesVersion,omitempty"` 559 // OsType - OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows' 560 OsType OSType `json:"osType,omitempty"` 561 // Upgrades - List of orchestrator types and versions available for upgrade. 562 Upgrades *[]AgentPoolUpgradeProfilePropertiesUpgradesItem `json:"upgrades,omitempty"` 563 // LatestNodeImageVersion - LatestNodeImageVersion is the latest AKS supported node image version. 564 LatestNodeImageVersion *string `json:"latestNodeImageVersion,omitempty"` 565} 566 567// AgentPoolUpgradeProfilePropertiesUpgradesItem ... 568type AgentPoolUpgradeProfilePropertiesUpgradesItem struct { 569 // KubernetesVersion - Kubernetes version (major, minor, patch). 570 KubernetesVersion *string `json:"kubernetesVersion,omitempty"` 571 // IsPreview - Whether Kubernetes version is currently in preview. 572 IsPreview *bool `json:"isPreview,omitempty"` 573} 574 575// AgentPoolUpgradeSettings settings for upgrading an agentpool 576type AgentPoolUpgradeSettings struct { 577 // MaxSurge - Count or percentage of additional nodes to be added during upgrade. If empty uses AKS default 578 MaxSurge *string `json:"maxSurge,omitempty"` 579} 580 581// CloudError an error response from the Container service. 582type CloudError struct { 583 // Error - Details about the error. 584 Error *CloudErrorBody `json:"error,omitempty"` 585} 586 587// CloudErrorBody an error response from the Container service. 588type CloudErrorBody struct { 589 // Code - An identifier for the error. Codes are invariant and are intended to be consumed programmatically. 590 Code *string `json:"code,omitempty"` 591 // Message - A message describing the error, intended to be suitable for display in a user interface. 592 Message *string `json:"message,omitempty"` 593 // Target - The target of the particular error. For example, the name of the property in error. 594 Target *string `json:"target,omitempty"` 595 // Details - A list of additional details about the error. 596 Details *[]CloudErrorBody `json:"details,omitempty"` 597} 598 599// CredentialResult the credential result response. 600type CredentialResult struct { 601 // Name - READ-ONLY; The name of the credential. 602 Name *string `json:"name,omitempty"` 603 // Value - READ-ONLY; Base64-encoded Kubernetes configuration file. 604 Value *[]byte `json:"value,omitempty"` 605} 606 607// MarshalJSON is the custom marshaler for CredentialResult. 608func (cr CredentialResult) MarshalJSON() ([]byte, error) { 609 objectMap := make(map[string]interface{}) 610 return json.Marshal(objectMap) 611} 612 613// CredentialResults the list of credential result response. 614type CredentialResults struct { 615 autorest.Response `json:"-"` 616 // Kubeconfigs - READ-ONLY; Base64-encoded Kubernetes configuration file. 617 Kubeconfigs *[]CredentialResult `json:"kubeconfigs,omitempty"` 618} 619 620// MarshalJSON is the custom marshaler for CredentialResults. 621func (cr CredentialResults) MarshalJSON() ([]byte, error) { 622 objectMap := make(map[string]interface{}) 623 return json.Marshal(objectMap) 624} 625 626// DiagnosticsProfile profile for diagnostics on the container service cluster. 627type DiagnosticsProfile struct { 628 // VMDiagnostics - Profile for diagnostics on the container service VMs. 629 VMDiagnostics *VMDiagnostics `json:"vmDiagnostics,omitempty"` 630} 631 632// KubeletConfig kubelet configurations of agent nodes. 633type KubeletConfig struct { 634 // CPUManagerPolicy - CPU Manager policy to use. 635 CPUManagerPolicy *string `json:"cpuManagerPolicy,omitempty"` 636 // CPUCfsQuota - Enable CPU CFS quota enforcement for containers that specify CPU limits. 637 CPUCfsQuota *bool `json:"cpuCfsQuota,omitempty"` 638 // CPUCfsQuotaPeriod - Sets CPU CFS quota period value. 639 CPUCfsQuotaPeriod *string `json:"cpuCfsQuotaPeriod,omitempty"` 640 // ImageGcHighThreshold - The percent of disk usage after which image garbage collection is always run. 641 ImageGcHighThreshold *int32 `json:"imageGcHighThreshold,omitempty"` 642 // ImageGcLowThreshold - The percent of disk usage before which image garbage collection is never run. 643 ImageGcLowThreshold *int32 `json:"imageGcLowThreshold,omitempty"` 644 // TopologyManagerPolicy - Topology Manager policy to use. 645 TopologyManagerPolicy *string `json:"topologyManagerPolicy,omitempty"` 646 // AllowedUnsafeSysctls - Allowlist of unsafe sysctls or unsafe sysctl patterns (ending in `*`). 647 AllowedUnsafeSysctls *[]string `json:"allowedUnsafeSysctls,omitempty"` 648 // FailSwapOn - If set to true it will make the Kubelet fail to start if swap is enabled on the node. 649 FailSwapOn *bool `json:"failSwapOn,omitempty"` 650 // ContainerLogMaxSizeMB - The maximum size (e.g. 10Mi) of container log file before it is rotated. 651 ContainerLogMaxSizeMB *int32 `json:"containerLogMaxSizeMB,omitempty"` 652 // ContainerLogMaxFiles - The maximum number of container log files that can be present for a container. The number must be ≥ 2. 653 ContainerLogMaxFiles *int32 `json:"containerLogMaxFiles,omitempty"` 654 // PodMaxPids - The maximum number of processes per pod. 655 PodMaxPids *int32 `json:"podMaxPids,omitempty"` 656} 657 658// LinuxOSConfig OS configurations of Linux agent nodes. 659type LinuxOSConfig struct { 660 // Sysctls - Sysctl settings for Linux agent nodes. 661 Sysctls *SysctlConfig `json:"sysctls,omitempty"` 662 // TransparentHugePageEnabled - Transparent Huge Page enabled configuration. 663 TransparentHugePageEnabled *string `json:"transparentHugePageEnabled,omitempty"` 664 // TransparentHugePageDefrag - Transparent Huge Page defrag configuration. 665 TransparentHugePageDefrag *string `json:"transparentHugePageDefrag,omitempty"` 666 // SwapFileSizeMB - SwapFileSizeMB specifies size in MB of a swap file will be created on each node. 667 SwapFileSizeMB *int32 `json:"swapFileSizeMB,omitempty"` 668} 669 670// LinuxProfile profile for Linux VMs in the container service cluster. 671type LinuxProfile struct { 672 // AdminUsername - The administrator username to use for Linux VMs. 673 AdminUsername *string `json:"adminUsername,omitempty"` 674 // SSH - SSH configuration for Linux-based VMs running on Azure. 675 SSH *SSHConfiguration `json:"ssh,omitempty"` 676} 677 678// MaintenanceConfiguration maintenance configuration. 679type MaintenanceConfiguration struct { 680 autorest.Response `json:"-"` 681 // SystemData - READ-ONLY; The system meta data relating to this resource. 682 SystemData *SystemData `json:"systemData,omitempty"` 683 // MaintenanceConfigurationProperties - Properties of a default maintenance configuration. 684 *MaintenanceConfigurationProperties `json:"properties,omitempty"` 685 // ID - READ-ONLY; Resource ID. 686 ID *string `json:"id,omitempty"` 687 // Name - READ-ONLY; The name of the resource that is unique within a resource group. This name can be used to access the resource. 688 Name *string `json:"name,omitempty"` 689 // Type - READ-ONLY; Resource type 690 Type *string `json:"type,omitempty"` 691} 692 693// MarshalJSON is the custom marshaler for MaintenanceConfiguration. 694func (mc MaintenanceConfiguration) MarshalJSON() ([]byte, error) { 695 objectMap := make(map[string]interface{}) 696 if mc.MaintenanceConfigurationProperties != nil { 697 objectMap["properties"] = mc.MaintenanceConfigurationProperties 698 } 699 return json.Marshal(objectMap) 700} 701 702// UnmarshalJSON is the custom unmarshaler for MaintenanceConfiguration struct. 703func (mc *MaintenanceConfiguration) UnmarshalJSON(body []byte) error { 704 var m map[string]*json.RawMessage 705 err := json.Unmarshal(body, &m) 706 if err != nil { 707 return err 708 } 709 for k, v := range m { 710 switch k { 711 case "systemData": 712 if v != nil { 713 var systemData SystemData 714 err = json.Unmarshal(*v, &systemData) 715 if err != nil { 716 return err 717 } 718 mc.SystemData = &systemData 719 } 720 case "properties": 721 if v != nil { 722 var maintenanceConfigurationProperties MaintenanceConfigurationProperties 723 err = json.Unmarshal(*v, &maintenanceConfigurationProperties) 724 if err != nil { 725 return err 726 } 727 mc.MaintenanceConfigurationProperties = &maintenanceConfigurationProperties 728 } 729 case "id": 730 if v != nil { 731 var ID string 732 err = json.Unmarshal(*v, &ID) 733 if err != nil { 734 return err 735 } 736 mc.ID = &ID 737 } 738 case "name": 739 if v != nil { 740 var name string 741 err = json.Unmarshal(*v, &name) 742 if err != nil { 743 return err 744 } 745 mc.Name = &name 746 } 747 case "type": 748 if v != nil { 749 var typeVar string 750 err = json.Unmarshal(*v, &typeVar) 751 if err != nil { 752 return err 753 } 754 mc.Type = &typeVar 755 } 756 } 757 } 758 759 return nil 760} 761 762// MaintenanceConfigurationListResult the response from the List maintenance configurations operation. 763type MaintenanceConfigurationListResult struct { 764 autorest.Response `json:"-"` 765 // Value - The list of maintenance configurations. 766 Value *[]MaintenanceConfiguration `json:"value,omitempty"` 767 // NextLink - READ-ONLY; The URL to get the next set of maintenance configuration results. 768 NextLink *string `json:"nextLink,omitempty"` 769} 770 771// MarshalJSON is the custom marshaler for MaintenanceConfigurationListResult. 772func (mclr MaintenanceConfigurationListResult) MarshalJSON() ([]byte, error) { 773 objectMap := make(map[string]interface{}) 774 if mclr.Value != nil { 775 objectMap["value"] = mclr.Value 776 } 777 return json.Marshal(objectMap) 778} 779 780// MaintenanceConfigurationListResultIterator provides access to a complete listing of 781// MaintenanceConfiguration values. 782type MaintenanceConfigurationListResultIterator struct { 783 i int 784 page MaintenanceConfigurationListResultPage 785} 786 787// NextWithContext advances to the next value. If there was an error making 788// the request the iterator does not advance and the error is returned. 789func (iter *MaintenanceConfigurationListResultIterator) NextWithContext(ctx context.Context) (err error) { 790 if tracing.IsEnabled() { 791 ctx = tracing.StartSpan(ctx, fqdn+"/MaintenanceConfigurationListResultIterator.NextWithContext") 792 defer func() { 793 sc := -1 794 if iter.Response().Response.Response != nil { 795 sc = iter.Response().Response.Response.StatusCode 796 } 797 tracing.EndSpan(ctx, sc, err) 798 }() 799 } 800 iter.i++ 801 if iter.i < len(iter.page.Values()) { 802 return nil 803 } 804 err = iter.page.NextWithContext(ctx) 805 if err != nil { 806 iter.i-- 807 return err 808 } 809 iter.i = 0 810 return nil 811} 812 813// Next advances to the next value. If there was an error making 814// the request the iterator does not advance and the error is returned. 815// Deprecated: Use NextWithContext() instead. 816func (iter *MaintenanceConfigurationListResultIterator) Next() error { 817 return iter.NextWithContext(context.Background()) 818} 819 820// NotDone returns true if the enumeration should be started or is not yet complete. 821func (iter MaintenanceConfigurationListResultIterator) NotDone() bool { 822 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 823} 824 825// Response returns the raw server response from the last page request. 826func (iter MaintenanceConfigurationListResultIterator) Response() MaintenanceConfigurationListResult { 827 return iter.page.Response() 828} 829 830// Value returns the current value or a zero-initialized value if the 831// iterator has advanced beyond the end of the collection. 832func (iter MaintenanceConfigurationListResultIterator) Value() MaintenanceConfiguration { 833 if !iter.page.NotDone() { 834 return MaintenanceConfiguration{} 835 } 836 return iter.page.Values()[iter.i] 837} 838 839// Creates a new instance of the MaintenanceConfigurationListResultIterator type. 840func NewMaintenanceConfigurationListResultIterator(page MaintenanceConfigurationListResultPage) MaintenanceConfigurationListResultIterator { 841 return MaintenanceConfigurationListResultIterator{page: page} 842} 843 844// IsEmpty returns true if the ListResult contains no values. 845func (mclr MaintenanceConfigurationListResult) IsEmpty() bool { 846 return mclr.Value == nil || len(*mclr.Value) == 0 847} 848 849// hasNextLink returns true if the NextLink is not empty. 850func (mclr MaintenanceConfigurationListResult) hasNextLink() bool { 851 return mclr.NextLink != nil && len(*mclr.NextLink) != 0 852} 853 854// maintenanceConfigurationListResultPreparer prepares a request to retrieve the next set of results. 855// It returns nil if no more results exist. 856func (mclr MaintenanceConfigurationListResult) maintenanceConfigurationListResultPreparer(ctx context.Context) (*http.Request, error) { 857 if !mclr.hasNextLink() { 858 return nil, nil 859 } 860 return autorest.Prepare((&http.Request{}).WithContext(ctx), 861 autorest.AsJSON(), 862 autorest.AsGet(), 863 autorest.WithBaseURL(to.String(mclr.NextLink))) 864} 865 866// MaintenanceConfigurationListResultPage contains a page of MaintenanceConfiguration values. 867type MaintenanceConfigurationListResultPage struct { 868 fn func(context.Context, MaintenanceConfigurationListResult) (MaintenanceConfigurationListResult, error) 869 mclr MaintenanceConfigurationListResult 870} 871 872// NextWithContext advances to the next page of values. If there was an error making 873// the request the page does not advance and the error is returned. 874func (page *MaintenanceConfigurationListResultPage) NextWithContext(ctx context.Context) (err error) { 875 if tracing.IsEnabled() { 876 ctx = tracing.StartSpan(ctx, fqdn+"/MaintenanceConfigurationListResultPage.NextWithContext") 877 defer func() { 878 sc := -1 879 if page.Response().Response.Response != nil { 880 sc = page.Response().Response.Response.StatusCode 881 } 882 tracing.EndSpan(ctx, sc, err) 883 }() 884 } 885 for { 886 next, err := page.fn(ctx, page.mclr) 887 if err != nil { 888 return err 889 } 890 page.mclr = next 891 if !next.hasNextLink() || !next.IsEmpty() { 892 break 893 } 894 } 895 return nil 896} 897 898// Next advances to the next page of values. If there was an error making 899// the request the page does not advance and the error is returned. 900// Deprecated: Use NextWithContext() instead. 901func (page *MaintenanceConfigurationListResultPage) Next() error { 902 return page.NextWithContext(context.Background()) 903} 904 905// NotDone returns true if the page enumeration should be started or is not yet complete. 906func (page MaintenanceConfigurationListResultPage) NotDone() bool { 907 return !page.mclr.IsEmpty() 908} 909 910// Response returns the raw server response from the last page request. 911func (page MaintenanceConfigurationListResultPage) Response() MaintenanceConfigurationListResult { 912 return page.mclr 913} 914 915// Values returns the slice of values for the current page or nil if there are no values. 916func (page MaintenanceConfigurationListResultPage) Values() []MaintenanceConfiguration { 917 if page.mclr.IsEmpty() { 918 return nil 919 } 920 return *page.mclr.Value 921} 922 923// Creates a new instance of the MaintenanceConfigurationListResultPage type. 924func NewMaintenanceConfigurationListResultPage(cur MaintenanceConfigurationListResult, getNextPage func(context.Context, MaintenanceConfigurationListResult) (MaintenanceConfigurationListResult, error)) MaintenanceConfigurationListResultPage { 925 return MaintenanceConfigurationListResultPage{ 926 fn: getNextPage, 927 mclr: cur, 928 } 929} 930 931// MaintenanceConfigurationProperties default maintenance configuration properties. 932type MaintenanceConfigurationProperties struct { 933 // TimeInWeek - Weekday time slots allowed to upgrade. 934 TimeInWeek *[]TimeInWeek `json:"timeInWeek,omitempty"` 935 // NotAllowedTime - Time slots on which upgrade is not allowed. 936 NotAllowedTime *[]TimeSpan `json:"notAllowedTime,omitempty"` 937} 938 939// ManagedCluster managed cluster. 940type ManagedCluster struct { 941 autorest.Response `json:"-"` 942 // ManagedClusterProperties - Properties of a managed cluster. 943 *ManagedClusterProperties `json:"properties,omitempty"` 944 // Identity - The identity of the managed cluster, if configured. 945 Identity *ManagedClusterIdentity `json:"identity,omitempty"` 946 // Sku - The managed cluster SKU. 947 Sku *ManagedClusterSKU `json:"sku,omitempty"` 948 // ID - READ-ONLY; Resource Id 949 ID *string `json:"id,omitempty"` 950 // Name - READ-ONLY; Resource name 951 Name *string `json:"name,omitempty"` 952 // Type - READ-ONLY; Resource type 953 Type *string `json:"type,omitempty"` 954 // Location - Resource location 955 Location *string `json:"location,omitempty"` 956 // Tags - Resource tags 957 Tags map[string]*string `json:"tags"` 958} 959 960// MarshalJSON is the custom marshaler for ManagedCluster. 961func (mc ManagedCluster) MarshalJSON() ([]byte, error) { 962 objectMap := make(map[string]interface{}) 963 if mc.ManagedClusterProperties != nil { 964 objectMap["properties"] = mc.ManagedClusterProperties 965 } 966 if mc.Identity != nil { 967 objectMap["identity"] = mc.Identity 968 } 969 if mc.Sku != nil { 970 objectMap["sku"] = mc.Sku 971 } 972 if mc.Location != nil { 973 objectMap["location"] = mc.Location 974 } 975 if mc.Tags != nil { 976 objectMap["tags"] = mc.Tags 977 } 978 return json.Marshal(objectMap) 979} 980 981// UnmarshalJSON is the custom unmarshaler for ManagedCluster struct. 982func (mc *ManagedCluster) UnmarshalJSON(body []byte) error { 983 var m map[string]*json.RawMessage 984 err := json.Unmarshal(body, &m) 985 if err != nil { 986 return err 987 } 988 for k, v := range m { 989 switch k { 990 case "properties": 991 if v != nil { 992 var managedClusterProperties ManagedClusterProperties 993 err = json.Unmarshal(*v, &managedClusterProperties) 994 if err != nil { 995 return err 996 } 997 mc.ManagedClusterProperties = &managedClusterProperties 998 } 999 case "identity": 1000 if v != nil { 1001 var identity ManagedClusterIdentity 1002 err = json.Unmarshal(*v, &identity) 1003 if err != nil { 1004 return err 1005 } 1006 mc.Identity = &identity 1007 } 1008 case "sku": 1009 if v != nil { 1010 var sku ManagedClusterSKU 1011 err = json.Unmarshal(*v, &sku) 1012 if err != nil { 1013 return err 1014 } 1015 mc.Sku = &sku 1016 } 1017 case "id": 1018 if v != nil { 1019 var ID string 1020 err = json.Unmarshal(*v, &ID) 1021 if err != nil { 1022 return err 1023 } 1024 mc.ID = &ID 1025 } 1026 case "name": 1027 if v != nil { 1028 var name string 1029 err = json.Unmarshal(*v, &name) 1030 if err != nil { 1031 return err 1032 } 1033 mc.Name = &name 1034 } 1035 case "type": 1036 if v != nil { 1037 var typeVar string 1038 err = json.Unmarshal(*v, &typeVar) 1039 if err != nil { 1040 return err 1041 } 1042 mc.Type = &typeVar 1043 } 1044 case "location": 1045 if v != nil { 1046 var location string 1047 err = json.Unmarshal(*v, &location) 1048 if err != nil { 1049 return err 1050 } 1051 mc.Location = &location 1052 } 1053 case "tags": 1054 if v != nil { 1055 var tags map[string]*string 1056 err = json.Unmarshal(*v, &tags) 1057 if err != nil { 1058 return err 1059 } 1060 mc.Tags = tags 1061 } 1062 } 1063 } 1064 1065 return nil 1066} 1067 1068// ManagedClusterAADProfile aADProfile specifies attributes for Azure Active Directory integration. 1069type ManagedClusterAADProfile struct { 1070 // Managed - Whether to enable managed AAD. 1071 Managed *bool `json:"managed,omitempty"` 1072 // EnableAzureRBAC - Whether to enable Azure RBAC for Kubernetes authorization. 1073 EnableAzureRBAC *bool `json:"enableAzureRBAC,omitempty"` 1074 // AdminGroupObjectIDs - AAD group object IDs that will have admin role of the cluster. 1075 AdminGroupObjectIDs *[]string `json:"adminGroupObjectIDs,omitempty"` 1076 // ClientAppID - The client AAD application ID. 1077 ClientAppID *string `json:"clientAppID,omitempty"` 1078 // ServerAppID - The server AAD application ID. 1079 ServerAppID *string `json:"serverAppID,omitempty"` 1080 // ServerAppSecret - The server AAD application secret. 1081 ServerAppSecret *string `json:"serverAppSecret,omitempty"` 1082 // TenantID - The AAD tenant ID to use for authentication. If not specified, will use the tenant of the deployment subscription. 1083 TenantID *string `json:"tenantID,omitempty"` 1084} 1085 1086// ManagedClusterAccessProfile managed cluster Access Profile. 1087type ManagedClusterAccessProfile struct { 1088 autorest.Response `json:"-"` 1089 // AccessProfile - AccessProfile of a managed cluster. 1090 *AccessProfile `json:"properties,omitempty"` 1091 // ID - READ-ONLY; Resource Id 1092 ID *string `json:"id,omitempty"` 1093 // Name - READ-ONLY; Resource name 1094 Name *string `json:"name,omitempty"` 1095 // Type - READ-ONLY; Resource type 1096 Type *string `json:"type,omitempty"` 1097 // Location - Resource location 1098 Location *string `json:"location,omitempty"` 1099 // Tags - Resource tags 1100 Tags map[string]*string `json:"tags"` 1101} 1102 1103// MarshalJSON is the custom marshaler for ManagedClusterAccessProfile. 1104func (mcap ManagedClusterAccessProfile) MarshalJSON() ([]byte, error) { 1105 objectMap := make(map[string]interface{}) 1106 if mcap.AccessProfile != nil { 1107 objectMap["properties"] = mcap.AccessProfile 1108 } 1109 if mcap.Location != nil { 1110 objectMap["location"] = mcap.Location 1111 } 1112 if mcap.Tags != nil { 1113 objectMap["tags"] = mcap.Tags 1114 } 1115 return json.Marshal(objectMap) 1116} 1117 1118// UnmarshalJSON is the custom unmarshaler for ManagedClusterAccessProfile struct. 1119func (mcap *ManagedClusterAccessProfile) UnmarshalJSON(body []byte) error { 1120 var m map[string]*json.RawMessage 1121 err := json.Unmarshal(body, &m) 1122 if err != nil { 1123 return err 1124 } 1125 for k, v := range m { 1126 switch k { 1127 case "properties": 1128 if v != nil { 1129 var accessProfile AccessProfile 1130 err = json.Unmarshal(*v, &accessProfile) 1131 if err != nil { 1132 return err 1133 } 1134 mcap.AccessProfile = &accessProfile 1135 } 1136 case "id": 1137 if v != nil { 1138 var ID string 1139 err = json.Unmarshal(*v, &ID) 1140 if err != nil { 1141 return err 1142 } 1143 mcap.ID = &ID 1144 } 1145 case "name": 1146 if v != nil { 1147 var name string 1148 err = json.Unmarshal(*v, &name) 1149 if err != nil { 1150 return err 1151 } 1152 mcap.Name = &name 1153 } 1154 case "type": 1155 if v != nil { 1156 var typeVar string 1157 err = json.Unmarshal(*v, &typeVar) 1158 if err != nil { 1159 return err 1160 } 1161 mcap.Type = &typeVar 1162 } 1163 case "location": 1164 if v != nil { 1165 var location string 1166 err = json.Unmarshal(*v, &location) 1167 if err != nil { 1168 return err 1169 } 1170 mcap.Location = &location 1171 } 1172 case "tags": 1173 if v != nil { 1174 var tags map[string]*string 1175 err = json.Unmarshal(*v, &tags) 1176 if err != nil { 1177 return err 1178 } 1179 mcap.Tags = tags 1180 } 1181 } 1182 } 1183 1184 return nil 1185} 1186 1187// ManagedClusterAddonProfile a Kubernetes add-on profile for a managed cluster. 1188type ManagedClusterAddonProfile struct { 1189 // Enabled - Whether the add-on is enabled or not. 1190 Enabled *bool `json:"enabled,omitempty"` 1191 // Config - Key-value pairs for configuring an add-on. 1192 Config map[string]*string `json:"config"` 1193 // Identity - READ-ONLY; Information of user assigned identity used by this add-on. 1194 Identity *ManagedClusterAddonProfileIdentity `json:"identity,omitempty"` 1195} 1196 1197// MarshalJSON is the custom marshaler for ManagedClusterAddonProfile. 1198func (mcap ManagedClusterAddonProfile) MarshalJSON() ([]byte, error) { 1199 objectMap := make(map[string]interface{}) 1200 if mcap.Enabled != nil { 1201 objectMap["enabled"] = mcap.Enabled 1202 } 1203 if mcap.Config != nil { 1204 objectMap["config"] = mcap.Config 1205 } 1206 return json.Marshal(objectMap) 1207} 1208 1209// ManagedClusterAddonProfileIdentity information of user assigned identity used by this add-on. 1210type ManagedClusterAddonProfileIdentity struct { 1211 // ResourceID - The resource id of the user assigned identity. 1212 ResourceID *string `json:"resourceId,omitempty"` 1213 // ClientID - The client id of the user assigned identity. 1214 ClientID *string `json:"clientId,omitempty"` 1215 // ObjectID - The object id of the user assigned identity. 1216 ObjectID *string `json:"objectId,omitempty"` 1217} 1218 1219// ManagedClusterAgentPoolProfile profile for the container service agent pool. 1220type ManagedClusterAgentPoolProfile struct { 1221 // Name - Unique name of the agent pool profile in the context of the subscription and resource group. 1222 Name *string `json:"name,omitempty"` 1223 // Count - Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 100 (inclusive) for user pools and in the range of 1 to 100 (inclusive) for system pools. The default value is 1. 1224 Count *int32 `json:"count,omitempty"` 1225 // VMSize - Size of agent VMs. Possible values include: 'StandardA1', 'StandardA10', 'StandardA11', 'StandardA1V2', 'StandardA2', 'StandardA2V2', 'StandardA2mV2', 'StandardA3', 'StandardA4', 'StandardA4V2', 'StandardA4mV2', 'StandardA5', 'StandardA6', 'StandardA7', 'StandardA8', 'StandardA8V2', 'StandardA8mV2', 'StandardA9', 'StandardB2ms', 'StandardB2s', 'StandardB4ms', 'StandardB8ms', 'StandardD1', 'StandardD11', 'StandardD11V2', 'StandardD11V2Promo', 'StandardD12', 'StandardD12V2', 'StandardD12V2Promo', 'StandardD13', 'StandardD13V2', 'StandardD13V2Promo', 'StandardD14', 'StandardD14V2', 'StandardD14V2Promo', 'StandardD15V2', 'StandardD16V3', 'StandardD16sV3', 'StandardD1V2', 'StandardD2', 'StandardD2V2', 'StandardD2V2Promo', 'StandardD2V3', 'StandardD2sV3', 'StandardD3', 'StandardD32V3', 'StandardD32sV3', 'StandardD3V2', 'StandardD3V2Promo', 'StandardD4', 'StandardD4V2', 'StandardD4V2Promo', 'StandardD4V3', 'StandardD4sV3', 'StandardD5V2', 'StandardD5V2Promo', 'StandardD64V3', 'StandardD64sV3', 'StandardD8V3', 'StandardD8sV3', 'StandardDS1', 'StandardDS11', 'StandardDS11V2', 'StandardDS11V2Promo', 'StandardDS12', 'StandardDS12V2', 'StandardDS12V2Promo', 'StandardDS13', 'StandardDS132V2', 'StandardDS134V2', 'StandardDS13V2', 'StandardDS13V2Promo', 'StandardDS14', 'StandardDS144V2', 'StandardDS148V2', 'StandardDS14V2', 'StandardDS14V2Promo', 'StandardDS15V2', 'StandardDS1V2', 'StandardDS2', 'StandardDS2V2', 'StandardDS2V2Promo', 'StandardDS3', 'StandardDS3V2', 'StandardDS3V2Promo', 'StandardDS4', 'StandardDS4V2', 'StandardDS4V2Promo', 'StandardDS5V2', 'StandardDS5V2Promo', 'StandardE16V3', 'StandardE16sV3', 'StandardE2V3', 'StandardE2sV3', 'StandardE3216sV3', 'StandardE328sV3', 'StandardE32V3', 'StandardE32sV3', 'StandardE4V3', 'StandardE4sV3', 'StandardE6416sV3', 'StandardE6432sV3', 'StandardE64V3', 'StandardE64sV3', 'StandardE8V3', 'StandardE8sV3', 'StandardF1', 'StandardF16', 'StandardF16s', 'StandardF16sV2', 'StandardF1s', 'StandardF2', 'StandardF2s', 'StandardF2sV2', 'StandardF32sV2', 'StandardF4', 'StandardF4s', 'StandardF4sV2', 'StandardF64sV2', 'StandardF72sV2', 'StandardF8', 'StandardF8s', 'StandardF8sV2', 'StandardG1', 'StandardG2', 'StandardG3', 'StandardG4', 'StandardG5', 'StandardGS1', 'StandardGS2', 'StandardGS3', 'StandardGS4', 'StandardGS44', 'StandardGS48', 'StandardGS5', 'StandardGS516', 'StandardGS58', 'StandardH16', 'StandardH16m', 'StandardH16mr', 'StandardH16r', 'StandardH8', 'StandardH8m', 'StandardL16s', 'StandardL32s', 'StandardL4s', 'StandardL8s', 'StandardM12832ms', 'StandardM12864ms', 'StandardM128ms', 'StandardM128s', 'StandardM6416ms', 'StandardM6432ms', 'StandardM64ms', 'StandardM64s', 'StandardNC12', 'StandardNC12sV2', 'StandardNC12sV3', 'StandardNC24', 'StandardNC24r', 'StandardNC24rsV2', 'StandardNC24rsV3', 'StandardNC24sV2', 'StandardNC24sV3', 'StandardNC6', 'StandardNC6sV2', 'StandardNC6sV3', 'StandardND12s', 'StandardND24rs', 'StandardND24s', 'StandardND6s', 'StandardNV12', 'StandardNV24', 'StandardNV6' 1226 VMSize VMSizeTypes `json:"vmSize,omitempty"` 1227 // OsDiskSizeGB - OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified. 1228 OsDiskSizeGB *int32 `json:"osDiskSizeGB,omitempty"` 1229 // OsDiskType - OS disk type to be used for machines in a given agent pool. Allowed values are 'Ephemeral' and 'Managed'. Defaults to 'Managed'. May not be changed after creation. Possible values include: 'Managed', 'Ephemeral' 1230 OsDiskType OSDiskType `json:"osDiskType,omitempty"` 1231 // KubeletDiskType - KubeletDiskType determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral storage. Currently allows one value, OS, resulting in Kubelet using the OS disk for data. Possible values include: 'OS', 'Temporary' 1232 KubeletDiskType KubeletDiskType `json:"kubeletDiskType,omitempty"` 1233 // VnetSubnetID - VNet SubnetID specifies the VNet's subnet identifier for nodes and maybe pods 1234 VnetSubnetID *string `json:"vnetSubnetID,omitempty"` 1235 // PodSubnetID - Pod SubnetID specifies the VNet's subnet identifier for pods. 1236 PodSubnetID *string `json:"podSubnetID,omitempty"` 1237 // MaxPods - Maximum number of pods that can run on a node. 1238 MaxPods *int32 `json:"maxPods,omitempty"` 1239 // OsType - OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows' 1240 OsType OSType `json:"osType,omitempty"` 1241 // MaxCount - Maximum number of nodes for auto-scaling 1242 MaxCount *int32 `json:"maxCount,omitempty"` 1243 // MinCount - Minimum number of nodes for auto-scaling 1244 MinCount *int32 `json:"minCount,omitempty"` 1245 // EnableAutoScaling - Whether to enable auto-scaler 1246 EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` 1247 // Type - AgentPoolType represents types of an agent pool. Possible values include: 'VirtualMachineScaleSets', 'AvailabilitySet' 1248 Type AgentPoolType `json:"type,omitempty"` 1249 // Mode - AgentPoolMode represents mode of an agent pool. Possible values include: 'System', 'User' 1250 Mode AgentPoolMode `json:"mode,omitempty"` 1251 // OrchestratorVersion - Version of orchestrator specified when creating the managed cluster. 1252 OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` 1253 // NodeImageVersion - READ-ONLY; Version of node image 1254 NodeImageVersion *string `json:"nodeImageVersion,omitempty"` 1255 // UpgradeSettings - Settings for upgrading the agentpool 1256 UpgradeSettings *AgentPoolUpgradeSettings `json:"upgradeSettings,omitempty"` 1257 // ProvisioningState - READ-ONLY; The current deployment or provisioning state, which only appears in the response. 1258 ProvisioningState *string `json:"provisioningState,omitempty"` 1259 // PowerState - READ-ONLY; Describes whether the Agent Pool is Running or Stopped 1260 PowerState *PowerState `json:"powerState,omitempty"` 1261 // AvailabilityZones - Availability zones for nodes. Must use VirtualMachineScaleSets AgentPoolType. 1262 AvailabilityZones *[]string `json:"availabilityZones,omitempty"` 1263 // EnableNodePublicIP - Enable public IP for nodes 1264 EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` 1265 // NodePublicIPPrefixID - Public IP Prefix ID. VM nodes use IPs assigned from this Public IP Prefix. 1266 NodePublicIPPrefixID *string `json:"nodePublicIPPrefixID,omitempty"` 1267 // ScaleSetPriority - ScaleSetPriority to be used to specify virtual machine scale set priority. Default to regular. Possible values include: 'Spot', 'Regular' 1268 ScaleSetPriority ScaleSetPriority `json:"scaleSetPriority,omitempty"` 1269 // ScaleSetEvictionPolicy - ScaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete. Possible values include: 'Delete', 'Deallocate' 1270 ScaleSetEvictionPolicy ScaleSetEvictionPolicy `json:"scaleSetEvictionPolicy,omitempty"` 1271 // SpotMaxPrice - SpotMaxPrice to be used to specify the maximum price you are willing to pay in US Dollars. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand. 1272 SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` 1273 // Tags - Agent pool tags to be persisted on the agent pool virtual machine scale set. 1274 Tags map[string]*string `json:"tags"` 1275 // NodeLabels - Agent pool node labels to be persisted across all nodes in agent pool. 1276 NodeLabels map[string]*string `json:"nodeLabels"` 1277 // NodeTaints - Taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule. 1278 NodeTaints *[]string `json:"nodeTaints,omitempty"` 1279 // ProximityPlacementGroupID - The ID for Proximity Placement Group. 1280 ProximityPlacementGroupID *string `json:"proximityPlacementGroupID,omitempty"` 1281 // KubeletConfig - KubeletConfig specifies the configuration of kubelet on agent nodes. 1282 KubeletConfig *KubeletConfig `json:"kubeletConfig,omitempty"` 1283 // LinuxOSConfig - LinuxOSConfig specifies the OS configuration of linux agent nodes. 1284 LinuxOSConfig *LinuxOSConfig `json:"linuxOSConfig,omitempty"` 1285 // EnableEncryptionAtHost - Whether to enable EncryptionAtHost 1286 EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` 1287} 1288 1289// MarshalJSON is the custom marshaler for ManagedClusterAgentPoolProfile. 1290func (mcapp ManagedClusterAgentPoolProfile) MarshalJSON() ([]byte, error) { 1291 objectMap := make(map[string]interface{}) 1292 if mcapp.Name != nil { 1293 objectMap["name"] = mcapp.Name 1294 } 1295 if mcapp.Count != nil { 1296 objectMap["count"] = mcapp.Count 1297 } 1298 if mcapp.VMSize != "" { 1299 objectMap["vmSize"] = mcapp.VMSize 1300 } 1301 if mcapp.OsDiskSizeGB != nil { 1302 objectMap["osDiskSizeGB"] = mcapp.OsDiskSizeGB 1303 } 1304 if mcapp.OsDiskType != "" { 1305 objectMap["osDiskType"] = mcapp.OsDiskType 1306 } 1307 if mcapp.KubeletDiskType != "" { 1308 objectMap["kubeletDiskType"] = mcapp.KubeletDiskType 1309 } 1310 if mcapp.VnetSubnetID != nil { 1311 objectMap["vnetSubnetID"] = mcapp.VnetSubnetID 1312 } 1313 if mcapp.PodSubnetID != nil { 1314 objectMap["podSubnetID"] = mcapp.PodSubnetID 1315 } 1316 if mcapp.MaxPods != nil { 1317 objectMap["maxPods"] = mcapp.MaxPods 1318 } 1319 if mcapp.OsType != "" { 1320 objectMap["osType"] = mcapp.OsType 1321 } 1322 if mcapp.MaxCount != nil { 1323 objectMap["maxCount"] = mcapp.MaxCount 1324 } 1325 if mcapp.MinCount != nil { 1326 objectMap["minCount"] = mcapp.MinCount 1327 } 1328 if mcapp.EnableAutoScaling != nil { 1329 objectMap["enableAutoScaling"] = mcapp.EnableAutoScaling 1330 } 1331 if mcapp.Type != "" { 1332 objectMap["type"] = mcapp.Type 1333 } 1334 if mcapp.Mode != "" { 1335 objectMap["mode"] = mcapp.Mode 1336 } 1337 if mcapp.OrchestratorVersion != nil { 1338 objectMap["orchestratorVersion"] = mcapp.OrchestratorVersion 1339 } 1340 if mcapp.UpgradeSettings != nil { 1341 objectMap["upgradeSettings"] = mcapp.UpgradeSettings 1342 } 1343 if mcapp.AvailabilityZones != nil { 1344 objectMap["availabilityZones"] = mcapp.AvailabilityZones 1345 } 1346 if mcapp.EnableNodePublicIP != nil { 1347 objectMap["enableNodePublicIP"] = mcapp.EnableNodePublicIP 1348 } 1349 if mcapp.NodePublicIPPrefixID != nil { 1350 objectMap["nodePublicIPPrefixID"] = mcapp.NodePublicIPPrefixID 1351 } 1352 if mcapp.ScaleSetPriority != "" { 1353 objectMap["scaleSetPriority"] = mcapp.ScaleSetPriority 1354 } 1355 if mcapp.ScaleSetEvictionPolicy != "" { 1356 objectMap["scaleSetEvictionPolicy"] = mcapp.ScaleSetEvictionPolicy 1357 } 1358 if mcapp.SpotMaxPrice != nil { 1359 objectMap["spotMaxPrice"] = mcapp.SpotMaxPrice 1360 } 1361 if mcapp.Tags != nil { 1362 objectMap["tags"] = mcapp.Tags 1363 } 1364 if mcapp.NodeLabels != nil { 1365 objectMap["nodeLabels"] = mcapp.NodeLabels 1366 } 1367 if mcapp.NodeTaints != nil { 1368 objectMap["nodeTaints"] = mcapp.NodeTaints 1369 } 1370 if mcapp.ProximityPlacementGroupID != nil { 1371 objectMap["proximityPlacementGroupID"] = mcapp.ProximityPlacementGroupID 1372 } 1373 if mcapp.KubeletConfig != nil { 1374 objectMap["kubeletConfig"] = mcapp.KubeletConfig 1375 } 1376 if mcapp.LinuxOSConfig != nil { 1377 objectMap["linuxOSConfig"] = mcapp.LinuxOSConfig 1378 } 1379 if mcapp.EnableEncryptionAtHost != nil { 1380 objectMap["enableEncryptionAtHost"] = mcapp.EnableEncryptionAtHost 1381 } 1382 return json.Marshal(objectMap) 1383} 1384 1385// ManagedClusterAgentPoolProfileProperties properties for the container service agent pool profile. 1386type ManagedClusterAgentPoolProfileProperties struct { 1387 // Count - Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 100 (inclusive) for user pools and in the range of 1 to 100 (inclusive) for system pools. The default value is 1. 1388 Count *int32 `json:"count,omitempty"` 1389 // VMSize - Size of agent VMs. Possible values include: 'StandardA1', 'StandardA10', 'StandardA11', 'StandardA1V2', 'StandardA2', 'StandardA2V2', 'StandardA2mV2', 'StandardA3', 'StandardA4', 'StandardA4V2', 'StandardA4mV2', 'StandardA5', 'StandardA6', 'StandardA7', 'StandardA8', 'StandardA8V2', 'StandardA8mV2', 'StandardA9', 'StandardB2ms', 'StandardB2s', 'StandardB4ms', 'StandardB8ms', 'StandardD1', 'StandardD11', 'StandardD11V2', 'StandardD11V2Promo', 'StandardD12', 'StandardD12V2', 'StandardD12V2Promo', 'StandardD13', 'StandardD13V2', 'StandardD13V2Promo', 'StandardD14', 'StandardD14V2', 'StandardD14V2Promo', 'StandardD15V2', 'StandardD16V3', 'StandardD16sV3', 'StandardD1V2', 'StandardD2', 'StandardD2V2', 'StandardD2V2Promo', 'StandardD2V3', 'StandardD2sV3', 'StandardD3', 'StandardD32V3', 'StandardD32sV3', 'StandardD3V2', 'StandardD3V2Promo', 'StandardD4', 'StandardD4V2', 'StandardD4V2Promo', 'StandardD4V3', 'StandardD4sV3', 'StandardD5V2', 'StandardD5V2Promo', 'StandardD64V3', 'StandardD64sV3', 'StandardD8V3', 'StandardD8sV3', 'StandardDS1', 'StandardDS11', 'StandardDS11V2', 'StandardDS11V2Promo', 'StandardDS12', 'StandardDS12V2', 'StandardDS12V2Promo', 'StandardDS13', 'StandardDS132V2', 'StandardDS134V2', 'StandardDS13V2', 'StandardDS13V2Promo', 'StandardDS14', 'StandardDS144V2', 'StandardDS148V2', 'StandardDS14V2', 'StandardDS14V2Promo', 'StandardDS15V2', 'StandardDS1V2', 'StandardDS2', 'StandardDS2V2', 'StandardDS2V2Promo', 'StandardDS3', 'StandardDS3V2', 'StandardDS3V2Promo', 'StandardDS4', 'StandardDS4V2', 'StandardDS4V2Promo', 'StandardDS5V2', 'StandardDS5V2Promo', 'StandardE16V3', 'StandardE16sV3', 'StandardE2V3', 'StandardE2sV3', 'StandardE3216sV3', 'StandardE328sV3', 'StandardE32V3', 'StandardE32sV3', 'StandardE4V3', 'StandardE4sV3', 'StandardE6416sV3', 'StandardE6432sV3', 'StandardE64V3', 'StandardE64sV3', 'StandardE8V3', 'StandardE8sV3', 'StandardF1', 'StandardF16', 'StandardF16s', 'StandardF16sV2', 'StandardF1s', 'StandardF2', 'StandardF2s', 'StandardF2sV2', 'StandardF32sV2', 'StandardF4', 'StandardF4s', 'StandardF4sV2', 'StandardF64sV2', 'StandardF72sV2', 'StandardF8', 'StandardF8s', 'StandardF8sV2', 'StandardG1', 'StandardG2', 'StandardG3', 'StandardG4', 'StandardG5', 'StandardGS1', 'StandardGS2', 'StandardGS3', 'StandardGS4', 'StandardGS44', 'StandardGS48', 'StandardGS5', 'StandardGS516', 'StandardGS58', 'StandardH16', 'StandardH16m', 'StandardH16mr', 'StandardH16r', 'StandardH8', 'StandardH8m', 'StandardL16s', 'StandardL32s', 'StandardL4s', 'StandardL8s', 'StandardM12832ms', 'StandardM12864ms', 'StandardM128ms', 'StandardM128s', 'StandardM6416ms', 'StandardM6432ms', 'StandardM64ms', 'StandardM64s', 'StandardNC12', 'StandardNC12sV2', 'StandardNC12sV3', 'StandardNC24', 'StandardNC24r', 'StandardNC24rsV2', 'StandardNC24rsV3', 'StandardNC24sV2', 'StandardNC24sV3', 'StandardNC6', 'StandardNC6sV2', 'StandardNC6sV3', 'StandardND12s', 'StandardND24rs', 'StandardND24s', 'StandardND6s', 'StandardNV12', 'StandardNV24', 'StandardNV6' 1390 VMSize VMSizeTypes `json:"vmSize,omitempty"` 1391 // OsDiskSizeGB - OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified. 1392 OsDiskSizeGB *int32 `json:"osDiskSizeGB,omitempty"` 1393 // OsDiskType - OS disk type to be used for machines in a given agent pool. Allowed values are 'Ephemeral' and 'Managed'. Defaults to 'Managed'. May not be changed after creation. Possible values include: 'Managed', 'Ephemeral' 1394 OsDiskType OSDiskType `json:"osDiskType,omitempty"` 1395 // KubeletDiskType - KubeletDiskType determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral storage. Currently allows one value, OS, resulting in Kubelet using the OS disk for data. Possible values include: 'OS', 'Temporary' 1396 KubeletDiskType KubeletDiskType `json:"kubeletDiskType,omitempty"` 1397 // VnetSubnetID - VNet SubnetID specifies the VNet's subnet identifier for nodes and maybe pods 1398 VnetSubnetID *string `json:"vnetSubnetID,omitempty"` 1399 // PodSubnetID - Pod SubnetID specifies the VNet's subnet identifier for pods. 1400 PodSubnetID *string `json:"podSubnetID,omitempty"` 1401 // MaxPods - Maximum number of pods that can run on a node. 1402 MaxPods *int32 `json:"maxPods,omitempty"` 1403 // OsType - OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows' 1404 OsType OSType `json:"osType,omitempty"` 1405 // MaxCount - Maximum number of nodes for auto-scaling 1406 MaxCount *int32 `json:"maxCount,omitempty"` 1407 // MinCount - Minimum number of nodes for auto-scaling 1408 MinCount *int32 `json:"minCount,omitempty"` 1409 // EnableAutoScaling - Whether to enable auto-scaler 1410 EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` 1411 // Type - AgentPoolType represents types of an agent pool. Possible values include: 'VirtualMachineScaleSets', 'AvailabilitySet' 1412 Type AgentPoolType `json:"type,omitempty"` 1413 // Mode - AgentPoolMode represents mode of an agent pool. Possible values include: 'System', 'User' 1414 Mode AgentPoolMode `json:"mode,omitempty"` 1415 // OrchestratorVersion - Version of orchestrator specified when creating the managed cluster. 1416 OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` 1417 // NodeImageVersion - READ-ONLY; Version of node image 1418 NodeImageVersion *string `json:"nodeImageVersion,omitempty"` 1419 // UpgradeSettings - Settings for upgrading the agentpool 1420 UpgradeSettings *AgentPoolUpgradeSettings `json:"upgradeSettings,omitempty"` 1421 // ProvisioningState - READ-ONLY; The current deployment or provisioning state, which only appears in the response. 1422 ProvisioningState *string `json:"provisioningState,omitempty"` 1423 // PowerState - READ-ONLY; Describes whether the Agent Pool is Running or Stopped 1424 PowerState *PowerState `json:"powerState,omitempty"` 1425 // AvailabilityZones - Availability zones for nodes. Must use VirtualMachineScaleSets AgentPoolType. 1426 AvailabilityZones *[]string `json:"availabilityZones,omitempty"` 1427 // EnableNodePublicIP - Enable public IP for nodes 1428 EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` 1429 // NodePublicIPPrefixID - Public IP Prefix ID. VM nodes use IPs assigned from this Public IP Prefix. 1430 NodePublicIPPrefixID *string `json:"nodePublicIPPrefixID,omitempty"` 1431 // ScaleSetPriority - ScaleSetPriority to be used to specify virtual machine scale set priority. Default to regular. Possible values include: 'Spot', 'Regular' 1432 ScaleSetPriority ScaleSetPriority `json:"scaleSetPriority,omitempty"` 1433 // ScaleSetEvictionPolicy - ScaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete. Possible values include: 'Delete', 'Deallocate' 1434 ScaleSetEvictionPolicy ScaleSetEvictionPolicy `json:"scaleSetEvictionPolicy,omitempty"` 1435 // SpotMaxPrice - SpotMaxPrice to be used to specify the maximum price you are willing to pay in US Dollars. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand. 1436 SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` 1437 // Tags - Agent pool tags to be persisted on the agent pool virtual machine scale set. 1438 Tags map[string]*string `json:"tags"` 1439 // NodeLabels - Agent pool node labels to be persisted across all nodes in agent pool. 1440 NodeLabels map[string]*string `json:"nodeLabels"` 1441 // NodeTaints - Taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule. 1442 NodeTaints *[]string `json:"nodeTaints,omitempty"` 1443 // ProximityPlacementGroupID - The ID for Proximity Placement Group. 1444 ProximityPlacementGroupID *string `json:"proximityPlacementGroupID,omitempty"` 1445 // KubeletConfig - KubeletConfig specifies the configuration of kubelet on agent nodes. 1446 KubeletConfig *KubeletConfig `json:"kubeletConfig,omitempty"` 1447 // LinuxOSConfig - LinuxOSConfig specifies the OS configuration of linux agent nodes. 1448 LinuxOSConfig *LinuxOSConfig `json:"linuxOSConfig,omitempty"` 1449 // EnableEncryptionAtHost - Whether to enable EncryptionAtHost 1450 EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` 1451} 1452 1453// MarshalJSON is the custom marshaler for ManagedClusterAgentPoolProfileProperties. 1454func (mcappp ManagedClusterAgentPoolProfileProperties) MarshalJSON() ([]byte, error) { 1455 objectMap := make(map[string]interface{}) 1456 if mcappp.Count != nil { 1457 objectMap["count"] = mcappp.Count 1458 } 1459 if mcappp.VMSize != "" { 1460 objectMap["vmSize"] = mcappp.VMSize 1461 } 1462 if mcappp.OsDiskSizeGB != nil { 1463 objectMap["osDiskSizeGB"] = mcappp.OsDiskSizeGB 1464 } 1465 if mcappp.OsDiskType != "" { 1466 objectMap["osDiskType"] = mcappp.OsDiskType 1467 } 1468 if mcappp.KubeletDiskType != "" { 1469 objectMap["kubeletDiskType"] = mcappp.KubeletDiskType 1470 } 1471 if mcappp.VnetSubnetID != nil { 1472 objectMap["vnetSubnetID"] = mcappp.VnetSubnetID 1473 } 1474 if mcappp.PodSubnetID != nil { 1475 objectMap["podSubnetID"] = mcappp.PodSubnetID 1476 } 1477 if mcappp.MaxPods != nil { 1478 objectMap["maxPods"] = mcappp.MaxPods 1479 } 1480 if mcappp.OsType != "" { 1481 objectMap["osType"] = mcappp.OsType 1482 } 1483 if mcappp.MaxCount != nil { 1484 objectMap["maxCount"] = mcappp.MaxCount 1485 } 1486 if mcappp.MinCount != nil { 1487 objectMap["minCount"] = mcappp.MinCount 1488 } 1489 if mcappp.EnableAutoScaling != nil { 1490 objectMap["enableAutoScaling"] = mcappp.EnableAutoScaling 1491 } 1492 if mcappp.Type != "" { 1493 objectMap["type"] = mcappp.Type 1494 } 1495 if mcappp.Mode != "" { 1496 objectMap["mode"] = mcappp.Mode 1497 } 1498 if mcappp.OrchestratorVersion != nil { 1499 objectMap["orchestratorVersion"] = mcappp.OrchestratorVersion 1500 } 1501 if mcappp.UpgradeSettings != nil { 1502 objectMap["upgradeSettings"] = mcappp.UpgradeSettings 1503 } 1504 if mcappp.AvailabilityZones != nil { 1505 objectMap["availabilityZones"] = mcappp.AvailabilityZones 1506 } 1507 if mcappp.EnableNodePublicIP != nil { 1508 objectMap["enableNodePublicIP"] = mcappp.EnableNodePublicIP 1509 } 1510 if mcappp.NodePublicIPPrefixID != nil { 1511 objectMap["nodePublicIPPrefixID"] = mcappp.NodePublicIPPrefixID 1512 } 1513 if mcappp.ScaleSetPriority != "" { 1514 objectMap["scaleSetPriority"] = mcappp.ScaleSetPriority 1515 } 1516 if mcappp.ScaleSetEvictionPolicy != "" { 1517 objectMap["scaleSetEvictionPolicy"] = mcappp.ScaleSetEvictionPolicy 1518 } 1519 if mcappp.SpotMaxPrice != nil { 1520 objectMap["spotMaxPrice"] = mcappp.SpotMaxPrice 1521 } 1522 if mcappp.Tags != nil { 1523 objectMap["tags"] = mcappp.Tags 1524 } 1525 if mcappp.NodeLabels != nil { 1526 objectMap["nodeLabels"] = mcappp.NodeLabels 1527 } 1528 if mcappp.NodeTaints != nil { 1529 objectMap["nodeTaints"] = mcappp.NodeTaints 1530 } 1531 if mcappp.ProximityPlacementGroupID != nil { 1532 objectMap["proximityPlacementGroupID"] = mcappp.ProximityPlacementGroupID 1533 } 1534 if mcappp.KubeletConfig != nil { 1535 objectMap["kubeletConfig"] = mcappp.KubeletConfig 1536 } 1537 if mcappp.LinuxOSConfig != nil { 1538 objectMap["linuxOSConfig"] = mcappp.LinuxOSConfig 1539 } 1540 if mcappp.EnableEncryptionAtHost != nil { 1541 objectMap["enableEncryptionAtHost"] = mcappp.EnableEncryptionAtHost 1542 } 1543 return json.Marshal(objectMap) 1544} 1545 1546// ManagedClusterAPIServerAccessProfile access profile for managed cluster API server. 1547type ManagedClusterAPIServerAccessProfile struct { 1548 // AuthorizedIPRanges - Authorized IP Ranges to kubernetes API server. 1549 AuthorizedIPRanges *[]string `json:"authorizedIPRanges,omitempty"` 1550 // EnablePrivateCluster - Whether to create the cluster as a private cluster or not. 1551 EnablePrivateCluster *bool `json:"enablePrivateCluster,omitempty"` 1552 // PrivateDNSZone - Private dns zone mode for private cluster. 1553 PrivateDNSZone *string `json:"privateDNSZone,omitempty"` 1554} 1555 1556// ManagedClusterAutoUpgradeProfile auto upgrade profile for a managed cluster. 1557type ManagedClusterAutoUpgradeProfile struct { 1558 // UpgradeChannel - upgrade channel for auto upgrade. Possible values include: 'UpgradeChannelRapid', 'UpgradeChannelStable', 'UpgradeChannelPatch', 'UpgradeChannelNone' 1559 UpgradeChannel UpgradeChannel `json:"upgradeChannel,omitempty"` 1560} 1561 1562// ManagedClusterIdentity identity for the managed cluster. 1563type ManagedClusterIdentity struct { 1564 // PrincipalID - READ-ONLY; The principal id of the system assigned identity which is used by master components. 1565 PrincipalID *string `json:"principalId,omitempty"` 1566 // TenantID - READ-ONLY; The tenant id of the system assigned identity which is used by master components. 1567 TenantID *string `json:"tenantId,omitempty"` 1568 // Type - The type of identity used for the managed cluster. Type 'SystemAssigned' will use an implicitly created identity in master components and an auto-created user assigned identity in MC_ resource group in agent nodes. Type 'None' will not use MSI for the managed cluster, service principal will be used instead. Possible values include: 'ResourceIdentityTypeSystemAssigned', 'ResourceIdentityTypeUserAssigned', 'ResourceIdentityTypeNone' 1569 Type ResourceIdentityType `json:"type,omitempty"` 1570 // UserAssignedIdentities - The user identity associated with the managed cluster. This identity will be used in control plane and only one user assigned identity is allowed. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. 1571 UserAssignedIdentities map[string]*ManagedClusterIdentityUserAssignedIdentitiesValue `json:"userAssignedIdentities"` 1572} 1573 1574// MarshalJSON is the custom marshaler for ManagedClusterIdentity. 1575func (mci ManagedClusterIdentity) MarshalJSON() ([]byte, error) { 1576 objectMap := make(map[string]interface{}) 1577 if mci.Type != "" { 1578 objectMap["type"] = mci.Type 1579 } 1580 if mci.UserAssignedIdentities != nil { 1581 objectMap["userAssignedIdentities"] = mci.UserAssignedIdentities 1582 } 1583 return json.Marshal(objectMap) 1584} 1585 1586// ManagedClusterIdentityUserAssignedIdentitiesValue ... 1587type ManagedClusterIdentityUserAssignedIdentitiesValue struct { 1588 // PrincipalID - READ-ONLY; The principal id of user assigned identity. 1589 PrincipalID *string `json:"principalId,omitempty"` 1590 // ClientID - READ-ONLY; The client id of user assigned identity. 1591 ClientID *string `json:"clientId,omitempty"` 1592} 1593 1594// MarshalJSON is the custom marshaler for ManagedClusterIdentityUserAssignedIdentitiesValue. 1595func (mciAiv ManagedClusterIdentityUserAssignedIdentitiesValue) MarshalJSON() ([]byte, error) { 1596 objectMap := make(map[string]interface{}) 1597 return json.Marshal(objectMap) 1598} 1599 1600// ManagedClusterListResult the response from the List Managed Clusters operation. 1601type ManagedClusterListResult struct { 1602 autorest.Response `json:"-"` 1603 // Value - The list of managed clusters. 1604 Value *[]ManagedCluster `json:"value,omitempty"` 1605 // NextLink - READ-ONLY; The URL to get the next set of managed cluster results. 1606 NextLink *string `json:"nextLink,omitempty"` 1607} 1608 1609// MarshalJSON is the custom marshaler for ManagedClusterListResult. 1610func (mclr ManagedClusterListResult) MarshalJSON() ([]byte, error) { 1611 objectMap := make(map[string]interface{}) 1612 if mclr.Value != nil { 1613 objectMap["value"] = mclr.Value 1614 } 1615 return json.Marshal(objectMap) 1616} 1617 1618// ManagedClusterListResultIterator provides access to a complete listing of ManagedCluster values. 1619type ManagedClusterListResultIterator struct { 1620 i int 1621 page ManagedClusterListResultPage 1622} 1623 1624// NextWithContext advances to the next value. If there was an error making 1625// the request the iterator does not advance and the error is returned. 1626func (iter *ManagedClusterListResultIterator) NextWithContext(ctx context.Context) (err error) { 1627 if tracing.IsEnabled() { 1628 ctx = tracing.StartSpan(ctx, fqdn+"/ManagedClusterListResultIterator.NextWithContext") 1629 defer func() { 1630 sc := -1 1631 if iter.Response().Response.Response != nil { 1632 sc = iter.Response().Response.Response.StatusCode 1633 } 1634 tracing.EndSpan(ctx, sc, err) 1635 }() 1636 } 1637 iter.i++ 1638 if iter.i < len(iter.page.Values()) { 1639 return nil 1640 } 1641 err = iter.page.NextWithContext(ctx) 1642 if err != nil { 1643 iter.i-- 1644 return err 1645 } 1646 iter.i = 0 1647 return nil 1648} 1649 1650// Next advances to the next value. If there was an error making 1651// the request the iterator does not advance and the error is returned. 1652// Deprecated: Use NextWithContext() instead. 1653func (iter *ManagedClusterListResultIterator) Next() error { 1654 return iter.NextWithContext(context.Background()) 1655} 1656 1657// NotDone returns true if the enumeration should be started or is not yet complete. 1658func (iter ManagedClusterListResultIterator) NotDone() bool { 1659 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 1660} 1661 1662// Response returns the raw server response from the last page request. 1663func (iter ManagedClusterListResultIterator) Response() ManagedClusterListResult { 1664 return iter.page.Response() 1665} 1666 1667// Value returns the current value or a zero-initialized value if the 1668// iterator has advanced beyond the end of the collection. 1669func (iter ManagedClusterListResultIterator) Value() ManagedCluster { 1670 if !iter.page.NotDone() { 1671 return ManagedCluster{} 1672 } 1673 return iter.page.Values()[iter.i] 1674} 1675 1676// Creates a new instance of the ManagedClusterListResultIterator type. 1677func NewManagedClusterListResultIterator(page ManagedClusterListResultPage) ManagedClusterListResultIterator { 1678 return ManagedClusterListResultIterator{page: page} 1679} 1680 1681// IsEmpty returns true if the ListResult contains no values. 1682func (mclr ManagedClusterListResult) IsEmpty() bool { 1683 return mclr.Value == nil || len(*mclr.Value) == 0 1684} 1685 1686// hasNextLink returns true if the NextLink is not empty. 1687func (mclr ManagedClusterListResult) hasNextLink() bool { 1688 return mclr.NextLink != nil && len(*mclr.NextLink) != 0 1689} 1690 1691// managedClusterListResultPreparer prepares a request to retrieve the next set of results. 1692// It returns nil if no more results exist. 1693func (mclr ManagedClusterListResult) managedClusterListResultPreparer(ctx context.Context) (*http.Request, error) { 1694 if !mclr.hasNextLink() { 1695 return nil, nil 1696 } 1697 return autorest.Prepare((&http.Request{}).WithContext(ctx), 1698 autorest.AsJSON(), 1699 autorest.AsGet(), 1700 autorest.WithBaseURL(to.String(mclr.NextLink))) 1701} 1702 1703// ManagedClusterListResultPage contains a page of ManagedCluster values. 1704type ManagedClusterListResultPage struct { 1705 fn func(context.Context, ManagedClusterListResult) (ManagedClusterListResult, error) 1706 mclr ManagedClusterListResult 1707} 1708 1709// NextWithContext advances to the next page of values. If there was an error making 1710// the request the page does not advance and the error is returned. 1711func (page *ManagedClusterListResultPage) NextWithContext(ctx context.Context) (err error) { 1712 if tracing.IsEnabled() { 1713 ctx = tracing.StartSpan(ctx, fqdn+"/ManagedClusterListResultPage.NextWithContext") 1714 defer func() { 1715 sc := -1 1716 if page.Response().Response.Response != nil { 1717 sc = page.Response().Response.Response.StatusCode 1718 } 1719 tracing.EndSpan(ctx, sc, err) 1720 }() 1721 } 1722 for { 1723 next, err := page.fn(ctx, page.mclr) 1724 if err != nil { 1725 return err 1726 } 1727 page.mclr = next 1728 if !next.hasNextLink() || !next.IsEmpty() { 1729 break 1730 } 1731 } 1732 return nil 1733} 1734 1735// Next advances to the next page of values. If there was an error making 1736// the request the page does not advance and the error is returned. 1737// Deprecated: Use NextWithContext() instead. 1738func (page *ManagedClusterListResultPage) Next() error { 1739 return page.NextWithContext(context.Background()) 1740} 1741 1742// NotDone returns true if the page enumeration should be started or is not yet complete. 1743func (page ManagedClusterListResultPage) NotDone() bool { 1744 return !page.mclr.IsEmpty() 1745} 1746 1747// Response returns the raw server response from the last page request. 1748func (page ManagedClusterListResultPage) Response() ManagedClusterListResult { 1749 return page.mclr 1750} 1751 1752// Values returns the slice of values for the current page or nil if there are no values. 1753func (page ManagedClusterListResultPage) Values() []ManagedCluster { 1754 if page.mclr.IsEmpty() { 1755 return nil 1756 } 1757 return *page.mclr.Value 1758} 1759 1760// Creates a new instance of the ManagedClusterListResultPage type. 1761func NewManagedClusterListResultPage(cur ManagedClusterListResult, getNextPage func(context.Context, ManagedClusterListResult) (ManagedClusterListResult, error)) ManagedClusterListResultPage { 1762 return ManagedClusterListResultPage{ 1763 fn: getNextPage, 1764 mclr: cur, 1765 } 1766} 1767 1768// ManagedClusterLoadBalancerProfile profile of the managed cluster load balancer. 1769type ManagedClusterLoadBalancerProfile struct { 1770 // ManagedOutboundIPs - Desired managed outbound IPs for the cluster load balancer. 1771 ManagedOutboundIPs *ManagedClusterLoadBalancerProfileManagedOutboundIPs `json:"managedOutboundIPs,omitempty"` 1772 // OutboundIPPrefixes - Desired outbound IP Prefix resources for the cluster load balancer. 1773 OutboundIPPrefixes *ManagedClusterLoadBalancerProfileOutboundIPPrefixes `json:"outboundIPPrefixes,omitempty"` 1774 // OutboundIPs - Desired outbound IP resources for the cluster load balancer. 1775 OutboundIPs *ManagedClusterLoadBalancerProfileOutboundIPs `json:"outboundIPs,omitempty"` 1776 // EffectiveOutboundIPs - The effective outbound IP resources of the cluster load balancer. 1777 EffectiveOutboundIPs *[]ResourceReference `json:"effectiveOutboundIPs,omitempty"` 1778 // AllocatedOutboundPorts - Desired number of allocated SNAT ports per VM. Allowed values must be in the range of 0 to 64000 (inclusive). The default value is 0 which results in Azure dynamically allocating ports. 1779 AllocatedOutboundPorts *int32 `json:"allocatedOutboundPorts,omitempty"` 1780 // IdleTimeoutInMinutes - Desired outbound flow idle timeout in minutes. Allowed values must be in the range of 4 to 120 (inclusive). The default value is 30 minutes. 1781 IdleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"` 1782} 1783 1784// ManagedClusterLoadBalancerProfileManagedOutboundIPs desired managed outbound IPs for the cluster load 1785// balancer. 1786type ManagedClusterLoadBalancerProfileManagedOutboundIPs struct { 1787 // Count - Desired number of outbound IP created/managed by Azure for the cluster load balancer. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1. 1788 Count *int32 `json:"count,omitempty"` 1789} 1790 1791// ManagedClusterLoadBalancerProfileOutboundIPPrefixes desired outbound IP Prefix resources for the cluster 1792// load balancer. 1793type ManagedClusterLoadBalancerProfileOutboundIPPrefixes struct { 1794 // PublicIPPrefixes - A list of public IP prefix resources. 1795 PublicIPPrefixes *[]ResourceReference `json:"publicIPPrefixes,omitempty"` 1796} 1797 1798// ManagedClusterLoadBalancerProfileOutboundIPs desired outbound IP resources for the cluster load 1799// balancer. 1800type ManagedClusterLoadBalancerProfileOutboundIPs struct { 1801 // PublicIPs - A list of public IP resources. 1802 PublicIPs *[]ResourceReference `json:"publicIPs,omitempty"` 1803} 1804 1805// ManagedClusterPodIdentity ... 1806type ManagedClusterPodIdentity struct { 1807 // Name - Name of the pod identity. 1808 Name *string `json:"name,omitempty"` 1809 // Namespace - Namespace of the pod identity. 1810 Namespace *string `json:"namespace,omitempty"` 1811 // Identity - Information of the user assigned identity. 1812 Identity *UserAssignedIdentity `json:"identity,omitempty"` 1813 // ProvisioningState - READ-ONLY; The current provisioning state of the pod identity. Possible values include: 'Assigned', 'Updating', 'Deleting', 'Failed' 1814 ProvisioningState ManagedClusterPodIdentityProvisioningState `json:"provisioningState,omitempty"` 1815 // ProvisioningInfo - READ-ONLY 1816 ProvisioningInfo *ManagedClusterPodIdentityProvisioningInfo `json:"provisioningInfo,omitempty"` 1817} 1818 1819// MarshalJSON is the custom marshaler for ManagedClusterPodIdentity. 1820func (mcpi ManagedClusterPodIdentity) MarshalJSON() ([]byte, error) { 1821 objectMap := make(map[string]interface{}) 1822 if mcpi.Name != nil { 1823 objectMap["name"] = mcpi.Name 1824 } 1825 if mcpi.Namespace != nil { 1826 objectMap["namespace"] = mcpi.Namespace 1827 } 1828 if mcpi.Identity != nil { 1829 objectMap["identity"] = mcpi.Identity 1830 } 1831 return json.Marshal(objectMap) 1832} 1833 1834// ManagedClusterPodIdentityException ... 1835type ManagedClusterPodIdentityException struct { 1836 // Name - Name of the pod identity exception. 1837 Name *string `json:"name,omitempty"` 1838 // Namespace - Namespace of the pod identity exception. 1839 Namespace *string `json:"namespace,omitempty"` 1840 // PodLabels - Pod labels to match. 1841 PodLabels map[string]*string `json:"podLabels"` 1842} 1843 1844// MarshalJSON is the custom marshaler for ManagedClusterPodIdentityException. 1845func (mcpie ManagedClusterPodIdentityException) MarshalJSON() ([]byte, error) { 1846 objectMap := make(map[string]interface{}) 1847 if mcpie.Name != nil { 1848 objectMap["name"] = mcpie.Name 1849 } 1850 if mcpie.Namespace != nil { 1851 objectMap["namespace"] = mcpie.Namespace 1852 } 1853 if mcpie.PodLabels != nil { 1854 objectMap["podLabels"] = mcpie.PodLabels 1855 } 1856 return json.Marshal(objectMap) 1857} 1858 1859// ManagedClusterPodIdentityProfile ... 1860type ManagedClusterPodIdentityProfile struct { 1861 // Enabled - Whether the pod identity addon is enabled. 1862 Enabled *bool `json:"enabled,omitempty"` 1863 // AllowNetworkPluginKubenet - Customer consent for enabling AAD pod identity addon in cluster using Kubenet network plugin. 1864 AllowNetworkPluginKubenet *bool `json:"allowNetworkPluginKubenet,omitempty"` 1865 // UserAssignedIdentities - User assigned pod identity settings. 1866 UserAssignedIdentities *[]ManagedClusterPodIdentity `json:"userAssignedIdentities,omitempty"` 1867 // UserAssignedIdentityExceptions - User assigned pod identity exception settings. 1868 UserAssignedIdentityExceptions *[]ManagedClusterPodIdentityException `json:"userAssignedIdentityExceptions,omitempty"` 1869} 1870 1871// ManagedClusterPodIdentityProvisioningInfo ... 1872type ManagedClusterPodIdentityProvisioningInfo struct { 1873 // Error - Pod identity assignment error (if any). 1874 Error *CloudError `json:"error,omitempty"` 1875} 1876 1877// ManagedClusterPoolUpgradeProfile the list of available upgrade versions. 1878type ManagedClusterPoolUpgradeProfile struct { 1879 // KubernetesVersion - Kubernetes version (major, minor, patch). 1880 KubernetesVersion *string `json:"kubernetesVersion,omitempty"` 1881 // Name - Pool name. 1882 Name *string `json:"name,omitempty"` 1883 // OsType - OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux. Possible values include: 'Linux', 'Windows' 1884 OsType OSType `json:"osType,omitempty"` 1885 // Upgrades - List of orchestrator types and versions available for upgrade. 1886 Upgrades *[]ManagedClusterPoolUpgradeProfileUpgradesItem `json:"upgrades,omitempty"` 1887} 1888 1889// ManagedClusterPoolUpgradeProfileUpgradesItem ... 1890type ManagedClusterPoolUpgradeProfileUpgradesItem struct { 1891 // KubernetesVersion - Kubernetes version (major, minor, patch). 1892 KubernetesVersion *string `json:"kubernetesVersion,omitempty"` 1893 // IsPreview - Whether Kubernetes version is currently in preview. 1894 IsPreview *bool `json:"isPreview,omitempty"` 1895} 1896 1897// ManagedClusterProperties properties of the managed cluster. 1898type ManagedClusterProperties struct { 1899 // ProvisioningState - READ-ONLY; The current deployment or provisioning state, which only appears in the response. 1900 ProvisioningState *string `json:"provisioningState,omitempty"` 1901 // PowerState - READ-ONLY; Represents the Power State of the cluster 1902 PowerState *PowerState `json:"powerState,omitempty"` 1903 // MaxAgentPools - READ-ONLY; The max number of agent pools for the managed cluster. 1904 MaxAgentPools *int32 `json:"maxAgentPools,omitempty"` 1905 // KubernetesVersion - Version of Kubernetes specified when creating the managed cluster. 1906 KubernetesVersion *string `json:"kubernetesVersion,omitempty"` 1907 // DNSPrefix - DNS prefix specified when creating the managed cluster. 1908 DNSPrefix *string `json:"dnsPrefix,omitempty"` 1909 // FqdnSubdomain - FQDN subdomain specified when creating private cluster with custom private dns zone. 1910 FqdnSubdomain *string `json:"fqdnSubdomain,omitempty"` 1911 // Fqdn - READ-ONLY; FQDN for the master pool. 1912 Fqdn *string `json:"fqdn,omitempty"` 1913 // PrivateFQDN - READ-ONLY; FQDN of private cluster. 1914 PrivateFQDN *string `json:"privateFQDN,omitempty"` 1915 // AzurePortalFQDN - READ-ONLY; FQDN for the master pool which used by proxy config. 1916 AzurePortalFQDN *string `json:"azurePortalFQDN,omitempty"` 1917 // AgentPoolProfiles - Properties of the agent pool. 1918 AgentPoolProfiles *[]ManagedClusterAgentPoolProfile `json:"agentPoolProfiles,omitempty"` 1919 // LinuxProfile - Profile for Linux VMs in the container service cluster. 1920 LinuxProfile *LinuxProfile `json:"linuxProfile,omitempty"` 1921 // WindowsProfile - Profile for Windows VMs in the container service cluster. 1922 WindowsProfile *ManagedClusterWindowsProfile `json:"windowsProfile,omitempty"` 1923 // ServicePrincipalProfile - Information about a service principal identity for the cluster to use for manipulating Azure APIs. 1924 ServicePrincipalProfile *ManagedClusterServicePrincipalProfile `json:"servicePrincipalProfile,omitempty"` 1925 // AddonProfiles - Profile of managed cluster add-on. 1926 AddonProfiles map[string]*ManagedClusterAddonProfile `json:"addonProfiles"` 1927 // PodIdentityProfile - Profile of managed cluster pod identity. 1928 PodIdentityProfile *ManagedClusterPodIdentityProfile `json:"podIdentityProfile,omitempty"` 1929 // NodeResourceGroup - Name of the resource group containing agent pool nodes. 1930 NodeResourceGroup *string `json:"nodeResourceGroup,omitempty"` 1931 // EnableRBAC - Whether to enable Kubernetes Role-Based Access Control. 1932 EnableRBAC *bool `json:"enableRBAC,omitempty"` 1933 // EnablePodSecurityPolicy - (DEPRECATING) Whether to enable Kubernetes pod security policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy. 1934 EnablePodSecurityPolicy *bool `json:"enablePodSecurityPolicy,omitempty"` 1935 // NetworkProfile - Profile of network configuration. 1936 NetworkProfile *NetworkProfile `json:"networkProfile,omitempty"` 1937 // AadProfile - Profile of Azure Active Directory configuration. 1938 AadProfile *ManagedClusterAADProfile `json:"aadProfile,omitempty"` 1939 // AutoUpgradeProfile - Profile of auto upgrade configuration. 1940 AutoUpgradeProfile *ManagedClusterAutoUpgradeProfile `json:"autoUpgradeProfile,omitempty"` 1941 // AutoScalerProfile - Parameters to be applied to the cluster-autoscaler when enabled 1942 AutoScalerProfile *ManagedClusterPropertiesAutoScalerProfile `json:"autoScalerProfile,omitempty"` 1943 // APIServerAccessProfile - Access profile for managed cluster API server. 1944 APIServerAccessProfile *ManagedClusterAPIServerAccessProfile `json:"apiServerAccessProfile,omitempty"` 1945 // DiskEncryptionSetID - ResourceId of the disk encryption set to use for enabling encryption at rest. 1946 DiskEncryptionSetID *string `json:"diskEncryptionSetID,omitempty"` 1947 // IdentityProfile - Identities associated with the cluster. 1948 IdentityProfile map[string]*ManagedClusterPropertiesIdentityProfileValue `json:"identityProfile"` 1949} 1950 1951// MarshalJSON is the custom marshaler for ManagedClusterProperties. 1952func (mcp ManagedClusterProperties) MarshalJSON() ([]byte, error) { 1953 objectMap := make(map[string]interface{}) 1954 if mcp.KubernetesVersion != nil { 1955 objectMap["kubernetesVersion"] = mcp.KubernetesVersion 1956 } 1957 if mcp.DNSPrefix != nil { 1958 objectMap["dnsPrefix"] = mcp.DNSPrefix 1959 } 1960 if mcp.FqdnSubdomain != nil { 1961 objectMap["fqdnSubdomain"] = mcp.FqdnSubdomain 1962 } 1963 if mcp.AgentPoolProfiles != nil { 1964 objectMap["agentPoolProfiles"] = mcp.AgentPoolProfiles 1965 } 1966 if mcp.LinuxProfile != nil { 1967 objectMap["linuxProfile"] = mcp.LinuxProfile 1968 } 1969 if mcp.WindowsProfile != nil { 1970 objectMap["windowsProfile"] = mcp.WindowsProfile 1971 } 1972 if mcp.ServicePrincipalProfile != nil { 1973 objectMap["servicePrincipalProfile"] = mcp.ServicePrincipalProfile 1974 } 1975 if mcp.AddonProfiles != nil { 1976 objectMap["addonProfiles"] = mcp.AddonProfiles 1977 } 1978 if mcp.PodIdentityProfile != nil { 1979 objectMap["podIdentityProfile"] = mcp.PodIdentityProfile 1980 } 1981 if mcp.NodeResourceGroup != nil { 1982 objectMap["nodeResourceGroup"] = mcp.NodeResourceGroup 1983 } 1984 if mcp.EnableRBAC != nil { 1985 objectMap["enableRBAC"] = mcp.EnableRBAC 1986 } 1987 if mcp.EnablePodSecurityPolicy != nil { 1988 objectMap["enablePodSecurityPolicy"] = mcp.EnablePodSecurityPolicy 1989 } 1990 if mcp.NetworkProfile != nil { 1991 objectMap["networkProfile"] = mcp.NetworkProfile 1992 } 1993 if mcp.AadProfile != nil { 1994 objectMap["aadProfile"] = mcp.AadProfile 1995 } 1996 if mcp.AutoUpgradeProfile != nil { 1997 objectMap["autoUpgradeProfile"] = mcp.AutoUpgradeProfile 1998 } 1999 if mcp.AutoScalerProfile != nil { 2000 objectMap["autoScalerProfile"] = mcp.AutoScalerProfile 2001 } 2002 if mcp.APIServerAccessProfile != nil { 2003 objectMap["apiServerAccessProfile"] = mcp.APIServerAccessProfile 2004 } 2005 if mcp.DiskEncryptionSetID != nil { 2006 objectMap["diskEncryptionSetID"] = mcp.DiskEncryptionSetID 2007 } 2008 if mcp.IdentityProfile != nil { 2009 objectMap["identityProfile"] = mcp.IdentityProfile 2010 } 2011 return json.Marshal(objectMap) 2012} 2013 2014// ManagedClusterPropertiesAutoScalerProfile parameters to be applied to the cluster-autoscaler when 2015// enabled 2016type ManagedClusterPropertiesAutoScalerProfile struct { 2017 BalanceSimilarNodeGroups *string `json:"balance-similar-node-groups,omitempty"` 2018 // Expander - Possible values include: 'LeastWaste', 'MostPods', 'Priority', 'Random' 2019 Expander Expander `json:"expander,omitempty"` 2020 MaxEmptyBulkDelete *string `json:"max-empty-bulk-delete,omitempty"` 2021 MaxGracefulTerminationSec *string `json:"max-graceful-termination-sec,omitempty"` 2022 MaxNodeProvisionTime *string `json:"max-node-provision-time,omitempty"` 2023 MaxTotalUnreadyPercentage *string `json:"max-total-unready-percentage,omitempty"` 2024 NewPodScaleUpDelay *string `json:"new-pod-scale-up-delay,omitempty"` 2025 OkTotalUnreadyCount *string `json:"ok-total-unready-count,omitempty"` 2026 ScanInterval *string `json:"scan-interval,omitempty"` 2027 ScaleDownDelayAfterAdd *string `json:"scale-down-delay-after-add,omitempty"` 2028 ScaleDownDelayAfterDelete *string `json:"scale-down-delay-after-delete,omitempty"` 2029 ScaleDownDelayAfterFailure *string `json:"scale-down-delay-after-failure,omitempty"` 2030 ScaleDownUnneededTime *string `json:"scale-down-unneeded-time,omitempty"` 2031 ScaleDownUnreadyTime *string `json:"scale-down-unready-time,omitempty"` 2032 ScaleDownUtilizationThreshold *string `json:"scale-down-utilization-threshold,omitempty"` 2033 SkipNodesWithLocalStorage *string `json:"skip-nodes-with-local-storage,omitempty"` 2034 SkipNodesWithSystemPods *string `json:"skip-nodes-with-system-pods,omitempty"` 2035} 2036 2037// ManagedClusterPropertiesIdentityProfileValue ... 2038type ManagedClusterPropertiesIdentityProfileValue struct { 2039 // ResourceID - The resource id of the user assigned identity. 2040 ResourceID *string `json:"resourceId,omitempty"` 2041 // ClientID - The client id of the user assigned identity. 2042 ClientID *string `json:"clientId,omitempty"` 2043 // ObjectID - The object id of the user assigned identity. 2044 ObjectID *string `json:"objectId,omitempty"` 2045} 2046 2047// ManagedClustersCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 2048// long-running operation. 2049type ManagedClustersCreateOrUpdateFuture struct { 2050 azure.FutureAPI 2051 // Result returns the result of the asynchronous operation. 2052 // If the operation has not completed it will return an error. 2053 Result func(ManagedClustersClient) (ManagedCluster, error) 2054} 2055 2056// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2057func (future *ManagedClustersCreateOrUpdateFuture) UnmarshalJSON(body []byte) error { 2058 var azFuture azure.Future 2059 if err := json.Unmarshal(body, &azFuture); err != nil { 2060 return err 2061 } 2062 future.FutureAPI = &azFuture 2063 future.Result = future.result 2064 return nil 2065} 2066 2067// result is the default implementation for ManagedClustersCreateOrUpdateFuture.Result. 2068func (future *ManagedClustersCreateOrUpdateFuture) result(client ManagedClustersClient) (mc ManagedCluster, err error) { 2069 var done bool 2070 done, err = future.DoneWithContext(context.Background(), client) 2071 if err != nil { 2072 err = autorest.NewErrorWithError(err, "containerservice.ManagedClustersCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 2073 return 2074 } 2075 if !done { 2076 mc.Response.Response = future.Response() 2077 err = azure.NewAsyncOpIncompleteError("containerservice.ManagedClustersCreateOrUpdateFuture") 2078 return 2079 } 2080 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 2081 if mc.Response.Response, err = future.GetResult(sender); err == nil && mc.Response.Response.StatusCode != http.StatusNoContent { 2082 mc, err = client.CreateOrUpdateResponder(mc.Response.Response) 2083 if err != nil { 2084 err = autorest.NewErrorWithError(err, "containerservice.ManagedClustersCreateOrUpdateFuture", "Result", mc.Response.Response, "Failure responding to request") 2085 } 2086 } 2087 return 2088} 2089 2090// ManagedClustersDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 2091// operation. 2092type ManagedClustersDeleteFuture struct { 2093 azure.FutureAPI 2094 // Result returns the result of the asynchronous operation. 2095 // If the operation has not completed it will return an error. 2096 Result func(ManagedClustersClient) (autorest.Response, error) 2097} 2098 2099// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2100func (future *ManagedClustersDeleteFuture) UnmarshalJSON(body []byte) error { 2101 var azFuture azure.Future 2102 if err := json.Unmarshal(body, &azFuture); err != nil { 2103 return err 2104 } 2105 future.FutureAPI = &azFuture 2106 future.Result = future.result 2107 return nil 2108} 2109 2110// result is the default implementation for ManagedClustersDeleteFuture.Result. 2111func (future *ManagedClustersDeleteFuture) result(client ManagedClustersClient) (ar autorest.Response, err error) { 2112 var done bool 2113 done, err = future.DoneWithContext(context.Background(), client) 2114 if err != nil { 2115 err = autorest.NewErrorWithError(err, "containerservice.ManagedClustersDeleteFuture", "Result", future.Response(), "Polling failure") 2116 return 2117 } 2118 if !done { 2119 ar.Response = future.Response() 2120 err = azure.NewAsyncOpIncompleteError("containerservice.ManagedClustersDeleteFuture") 2121 return 2122 } 2123 ar.Response = future.Response() 2124 return 2125} 2126 2127// ManagedClusterServicePrincipalProfile information about a service principal identity for the cluster to 2128// use for manipulating Azure APIs. 2129type ManagedClusterServicePrincipalProfile struct { 2130 // ClientID - The ID for the service principal. 2131 ClientID *string `json:"clientId,omitempty"` 2132 // Secret - The secret password associated with the service principal in plain text. 2133 Secret *string `json:"secret,omitempty"` 2134} 2135 2136// ManagedClusterSKU ... 2137type ManagedClusterSKU struct { 2138 // Name - Name of a managed cluster SKU. Possible values include: 'ManagedClusterSKUNameBasic' 2139 Name ManagedClusterSKUName `json:"name,omitempty"` 2140 // Tier - Tier of a managed cluster SKU. Possible values include: 'Paid', 'Free' 2141 Tier ManagedClusterSKUTier `json:"tier,omitempty"` 2142} 2143 2144// ManagedClustersResetAADProfileFuture an abstraction for monitoring and retrieving the results of a 2145// long-running operation. 2146type ManagedClustersResetAADProfileFuture struct { 2147 azure.FutureAPI 2148 // Result returns the result of the asynchronous operation. 2149 // If the operation has not completed it will return an error. 2150 Result func(ManagedClustersClient) (autorest.Response, error) 2151} 2152 2153// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2154func (future *ManagedClustersResetAADProfileFuture) UnmarshalJSON(body []byte) error { 2155 var azFuture azure.Future 2156 if err := json.Unmarshal(body, &azFuture); err != nil { 2157 return err 2158 } 2159 future.FutureAPI = &azFuture 2160 future.Result = future.result 2161 return nil 2162} 2163 2164// result is the default implementation for ManagedClustersResetAADProfileFuture.Result. 2165func (future *ManagedClustersResetAADProfileFuture) result(client ManagedClustersClient) (ar autorest.Response, err error) { 2166 var done bool 2167 done, err = future.DoneWithContext(context.Background(), client) 2168 if err != nil { 2169 err = autorest.NewErrorWithError(err, "containerservice.ManagedClustersResetAADProfileFuture", "Result", future.Response(), "Polling failure") 2170 return 2171 } 2172 if !done { 2173 ar.Response = future.Response() 2174 err = azure.NewAsyncOpIncompleteError("containerservice.ManagedClustersResetAADProfileFuture") 2175 return 2176 } 2177 ar.Response = future.Response() 2178 return 2179} 2180 2181// ManagedClustersResetServicePrincipalProfileFuture an abstraction for monitoring and retrieving the 2182// results of a long-running operation. 2183type ManagedClustersResetServicePrincipalProfileFuture struct { 2184 azure.FutureAPI 2185 // Result returns the result of the asynchronous operation. 2186 // If the operation has not completed it will return an error. 2187 Result func(ManagedClustersClient) (autorest.Response, error) 2188} 2189 2190// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2191func (future *ManagedClustersResetServicePrincipalProfileFuture) UnmarshalJSON(body []byte) error { 2192 var azFuture azure.Future 2193 if err := json.Unmarshal(body, &azFuture); err != nil { 2194 return err 2195 } 2196 future.FutureAPI = &azFuture 2197 future.Result = future.result 2198 return nil 2199} 2200 2201// result is the default implementation for ManagedClustersResetServicePrincipalProfileFuture.Result. 2202func (future *ManagedClustersResetServicePrincipalProfileFuture) result(client ManagedClustersClient) (ar autorest.Response, err error) { 2203 var done bool 2204 done, err = future.DoneWithContext(context.Background(), client) 2205 if err != nil { 2206 err = autorest.NewErrorWithError(err, "containerservice.ManagedClustersResetServicePrincipalProfileFuture", "Result", future.Response(), "Polling failure") 2207 return 2208 } 2209 if !done { 2210 ar.Response = future.Response() 2211 err = azure.NewAsyncOpIncompleteError("containerservice.ManagedClustersResetServicePrincipalProfileFuture") 2212 return 2213 } 2214 ar.Response = future.Response() 2215 return 2216} 2217 2218// ManagedClustersRotateClusterCertificatesFuture an abstraction for monitoring and retrieving the results 2219// of a long-running operation. 2220type ManagedClustersRotateClusterCertificatesFuture struct { 2221 azure.FutureAPI 2222 // Result returns the result of the asynchronous operation. 2223 // If the operation has not completed it will return an error. 2224 Result func(ManagedClustersClient) (autorest.Response, error) 2225} 2226 2227// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2228func (future *ManagedClustersRotateClusterCertificatesFuture) UnmarshalJSON(body []byte) error { 2229 var azFuture azure.Future 2230 if err := json.Unmarshal(body, &azFuture); err != nil { 2231 return err 2232 } 2233 future.FutureAPI = &azFuture 2234 future.Result = future.result 2235 return nil 2236} 2237 2238// result is the default implementation for ManagedClustersRotateClusterCertificatesFuture.Result. 2239func (future *ManagedClustersRotateClusterCertificatesFuture) result(client ManagedClustersClient) (ar autorest.Response, err error) { 2240 var done bool 2241 done, err = future.DoneWithContext(context.Background(), client) 2242 if err != nil { 2243 err = autorest.NewErrorWithError(err, "containerservice.ManagedClustersRotateClusterCertificatesFuture", "Result", future.Response(), "Polling failure") 2244 return 2245 } 2246 if !done { 2247 ar.Response = future.Response() 2248 err = azure.NewAsyncOpIncompleteError("containerservice.ManagedClustersRotateClusterCertificatesFuture") 2249 return 2250 } 2251 ar.Response = future.Response() 2252 return 2253} 2254 2255// ManagedClustersStartFuture an abstraction for monitoring and retrieving the results of a long-running 2256// operation. 2257type ManagedClustersStartFuture struct { 2258 azure.FutureAPI 2259 // Result returns the result of the asynchronous operation. 2260 // If the operation has not completed it will return an error. 2261 Result func(ManagedClustersClient) (autorest.Response, error) 2262} 2263 2264// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2265func (future *ManagedClustersStartFuture) UnmarshalJSON(body []byte) error { 2266 var azFuture azure.Future 2267 if err := json.Unmarshal(body, &azFuture); err != nil { 2268 return err 2269 } 2270 future.FutureAPI = &azFuture 2271 future.Result = future.result 2272 return nil 2273} 2274 2275// result is the default implementation for ManagedClustersStartFuture.Result. 2276func (future *ManagedClustersStartFuture) result(client ManagedClustersClient) (ar autorest.Response, err error) { 2277 var done bool 2278 done, err = future.DoneWithContext(context.Background(), client) 2279 if err != nil { 2280 err = autorest.NewErrorWithError(err, "containerservice.ManagedClustersStartFuture", "Result", future.Response(), "Polling failure") 2281 return 2282 } 2283 if !done { 2284 ar.Response = future.Response() 2285 err = azure.NewAsyncOpIncompleteError("containerservice.ManagedClustersStartFuture") 2286 return 2287 } 2288 ar.Response = future.Response() 2289 return 2290} 2291 2292// ManagedClustersStopFuture an abstraction for monitoring and retrieving the results of a long-running 2293// operation. 2294type ManagedClustersStopFuture struct { 2295 azure.FutureAPI 2296 // Result returns the result of the asynchronous operation. 2297 // If the operation has not completed it will return an error. 2298 Result func(ManagedClustersClient) (autorest.Response, error) 2299} 2300 2301// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2302func (future *ManagedClustersStopFuture) UnmarshalJSON(body []byte) error { 2303 var azFuture azure.Future 2304 if err := json.Unmarshal(body, &azFuture); err != nil { 2305 return err 2306 } 2307 future.FutureAPI = &azFuture 2308 future.Result = future.result 2309 return nil 2310} 2311 2312// result is the default implementation for ManagedClustersStopFuture.Result. 2313func (future *ManagedClustersStopFuture) result(client ManagedClustersClient) (ar autorest.Response, err error) { 2314 var done bool 2315 done, err = future.DoneWithContext(context.Background(), client) 2316 if err != nil { 2317 err = autorest.NewErrorWithError(err, "containerservice.ManagedClustersStopFuture", "Result", future.Response(), "Polling failure") 2318 return 2319 } 2320 if !done { 2321 ar.Response = future.Response() 2322 err = azure.NewAsyncOpIncompleteError("containerservice.ManagedClustersStopFuture") 2323 return 2324 } 2325 ar.Response = future.Response() 2326 return 2327} 2328 2329// ManagedClustersUpdateTagsFuture an abstraction for monitoring and retrieving the results of a 2330// long-running operation. 2331type ManagedClustersUpdateTagsFuture struct { 2332 azure.FutureAPI 2333 // Result returns the result of the asynchronous operation. 2334 // If the operation has not completed it will return an error. 2335 Result func(ManagedClustersClient) (ManagedCluster, error) 2336} 2337 2338// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2339func (future *ManagedClustersUpdateTagsFuture) UnmarshalJSON(body []byte) error { 2340 var azFuture azure.Future 2341 if err := json.Unmarshal(body, &azFuture); err != nil { 2342 return err 2343 } 2344 future.FutureAPI = &azFuture 2345 future.Result = future.result 2346 return nil 2347} 2348 2349// result is the default implementation for ManagedClustersUpdateTagsFuture.Result. 2350func (future *ManagedClustersUpdateTagsFuture) result(client ManagedClustersClient) (mc ManagedCluster, err error) { 2351 var done bool 2352 done, err = future.DoneWithContext(context.Background(), client) 2353 if err != nil { 2354 err = autorest.NewErrorWithError(err, "containerservice.ManagedClustersUpdateTagsFuture", "Result", future.Response(), "Polling failure") 2355 return 2356 } 2357 if !done { 2358 mc.Response.Response = future.Response() 2359 err = azure.NewAsyncOpIncompleteError("containerservice.ManagedClustersUpdateTagsFuture") 2360 return 2361 } 2362 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 2363 if mc.Response.Response, err = future.GetResult(sender); err == nil && mc.Response.Response.StatusCode != http.StatusNoContent { 2364 mc, err = client.UpdateTagsResponder(mc.Response.Response) 2365 if err != nil { 2366 err = autorest.NewErrorWithError(err, "containerservice.ManagedClustersUpdateTagsFuture", "Result", mc.Response.Response, "Failure responding to request") 2367 } 2368 } 2369 return 2370} 2371 2372// ManagedClusterUpgradeProfile the list of available upgrades for compute pools. 2373type ManagedClusterUpgradeProfile struct { 2374 autorest.Response `json:"-"` 2375 // ID - READ-ONLY; Id of upgrade profile. 2376 ID *string `json:"id,omitempty"` 2377 // Name - READ-ONLY; Name of upgrade profile. 2378 Name *string `json:"name,omitempty"` 2379 // Type - READ-ONLY; Type of upgrade profile. 2380 Type *string `json:"type,omitempty"` 2381 // ManagedClusterUpgradeProfileProperties - Properties of upgrade profile. 2382 *ManagedClusterUpgradeProfileProperties `json:"properties,omitempty"` 2383} 2384 2385// MarshalJSON is the custom marshaler for ManagedClusterUpgradeProfile. 2386func (mcup ManagedClusterUpgradeProfile) MarshalJSON() ([]byte, error) { 2387 objectMap := make(map[string]interface{}) 2388 if mcup.ManagedClusterUpgradeProfileProperties != nil { 2389 objectMap["properties"] = mcup.ManagedClusterUpgradeProfileProperties 2390 } 2391 return json.Marshal(objectMap) 2392} 2393 2394// UnmarshalJSON is the custom unmarshaler for ManagedClusterUpgradeProfile struct. 2395func (mcup *ManagedClusterUpgradeProfile) UnmarshalJSON(body []byte) error { 2396 var m map[string]*json.RawMessage 2397 err := json.Unmarshal(body, &m) 2398 if err != nil { 2399 return err 2400 } 2401 for k, v := range m { 2402 switch k { 2403 case "id": 2404 if v != nil { 2405 var ID string 2406 err = json.Unmarshal(*v, &ID) 2407 if err != nil { 2408 return err 2409 } 2410 mcup.ID = &ID 2411 } 2412 case "name": 2413 if v != nil { 2414 var name string 2415 err = json.Unmarshal(*v, &name) 2416 if err != nil { 2417 return err 2418 } 2419 mcup.Name = &name 2420 } 2421 case "type": 2422 if v != nil { 2423 var typeVar string 2424 err = json.Unmarshal(*v, &typeVar) 2425 if err != nil { 2426 return err 2427 } 2428 mcup.Type = &typeVar 2429 } 2430 case "properties": 2431 if v != nil { 2432 var managedClusterUpgradeProfileProperties ManagedClusterUpgradeProfileProperties 2433 err = json.Unmarshal(*v, &managedClusterUpgradeProfileProperties) 2434 if err != nil { 2435 return err 2436 } 2437 mcup.ManagedClusterUpgradeProfileProperties = &managedClusterUpgradeProfileProperties 2438 } 2439 } 2440 } 2441 2442 return nil 2443} 2444 2445// ManagedClusterUpgradeProfileProperties control plane and agent pool upgrade profiles. 2446type ManagedClusterUpgradeProfileProperties struct { 2447 // ControlPlaneProfile - The list of available upgrade versions for the control plane. 2448 ControlPlaneProfile *ManagedClusterPoolUpgradeProfile `json:"controlPlaneProfile,omitempty"` 2449 // AgentPoolProfiles - The list of available upgrade versions for agent pools. 2450 AgentPoolProfiles *[]ManagedClusterPoolUpgradeProfile `json:"agentPoolProfiles,omitempty"` 2451} 2452 2453// ManagedClusterWindowsProfile profile for Windows VMs in the container service cluster. 2454type ManagedClusterWindowsProfile struct { 2455 // AdminUsername - Specifies the name of the administrator account. <br><br> **restriction:** Cannot end in "." <br><br> **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". <br><br> **Minimum-length:** 1 character <br><br> **Max-length:** 20 characters 2456 AdminUsername *string `json:"adminUsername,omitempty"` 2457 // AdminPassword - Specifies the password of the administrator account. <br><br> **Minimum-length:** 8 characters <br><br> **Max-length:** 123 characters <br><br> **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled <br> Has lower characters <br>Has upper characters <br> Has a digit <br> Has a special character (Regex match [\W_]) <br><br> **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" 2458 AdminPassword *string `json:"adminPassword,omitempty"` 2459 // LicenseType - The licenseType to use for Windows VMs. Windows_Server is used to enable Azure Hybrid User Benefits for Windows VMs. Possible values include: 'None', 'WindowsServer' 2460 LicenseType LicenseType `json:"licenseType,omitempty"` 2461} 2462 2463// MasterProfile profile for the container service master. 2464type MasterProfile struct { 2465 // Count - Number of masters (VMs) in the container service cluster. Allowed values are 1, 3, and 5. The default value is 1. 2466 Count *int32 `json:"count,omitempty"` 2467 // DNSPrefix - DNS prefix to be used to create the FQDN for the master pool. 2468 DNSPrefix *string `json:"dnsPrefix,omitempty"` 2469 // VMSize - Size of agent VMs. Possible values include: 'StandardA1', 'StandardA10', 'StandardA11', 'StandardA1V2', 'StandardA2', 'StandardA2V2', 'StandardA2mV2', 'StandardA3', 'StandardA4', 'StandardA4V2', 'StandardA4mV2', 'StandardA5', 'StandardA6', 'StandardA7', 'StandardA8', 'StandardA8V2', 'StandardA8mV2', 'StandardA9', 'StandardB2ms', 'StandardB2s', 'StandardB4ms', 'StandardB8ms', 'StandardD1', 'StandardD11', 'StandardD11V2', 'StandardD11V2Promo', 'StandardD12', 'StandardD12V2', 'StandardD12V2Promo', 'StandardD13', 'StandardD13V2', 'StandardD13V2Promo', 'StandardD14', 'StandardD14V2', 'StandardD14V2Promo', 'StandardD15V2', 'StandardD16V3', 'StandardD16sV3', 'StandardD1V2', 'StandardD2', 'StandardD2V2', 'StandardD2V2Promo', 'StandardD2V3', 'StandardD2sV3', 'StandardD3', 'StandardD32V3', 'StandardD32sV3', 'StandardD3V2', 'StandardD3V2Promo', 'StandardD4', 'StandardD4V2', 'StandardD4V2Promo', 'StandardD4V3', 'StandardD4sV3', 'StandardD5V2', 'StandardD5V2Promo', 'StandardD64V3', 'StandardD64sV3', 'StandardD8V3', 'StandardD8sV3', 'StandardDS1', 'StandardDS11', 'StandardDS11V2', 'StandardDS11V2Promo', 'StandardDS12', 'StandardDS12V2', 'StandardDS12V2Promo', 'StandardDS13', 'StandardDS132V2', 'StandardDS134V2', 'StandardDS13V2', 'StandardDS13V2Promo', 'StandardDS14', 'StandardDS144V2', 'StandardDS148V2', 'StandardDS14V2', 'StandardDS14V2Promo', 'StandardDS15V2', 'StandardDS1V2', 'StandardDS2', 'StandardDS2V2', 'StandardDS2V2Promo', 'StandardDS3', 'StandardDS3V2', 'StandardDS3V2Promo', 'StandardDS4', 'StandardDS4V2', 'StandardDS4V2Promo', 'StandardDS5V2', 'StandardDS5V2Promo', 'StandardE16V3', 'StandardE16sV3', 'StandardE2V3', 'StandardE2sV3', 'StandardE3216sV3', 'StandardE328sV3', 'StandardE32V3', 'StandardE32sV3', 'StandardE4V3', 'StandardE4sV3', 'StandardE6416sV3', 'StandardE6432sV3', 'StandardE64V3', 'StandardE64sV3', 'StandardE8V3', 'StandardE8sV3', 'StandardF1', 'StandardF16', 'StandardF16s', 'StandardF16sV2', 'StandardF1s', 'StandardF2', 'StandardF2s', 'StandardF2sV2', 'StandardF32sV2', 'StandardF4', 'StandardF4s', 'StandardF4sV2', 'StandardF64sV2', 'StandardF72sV2', 'StandardF8', 'StandardF8s', 'StandardF8sV2', 'StandardG1', 'StandardG2', 'StandardG3', 'StandardG4', 'StandardG5', 'StandardGS1', 'StandardGS2', 'StandardGS3', 'StandardGS4', 'StandardGS44', 'StandardGS48', 'StandardGS5', 'StandardGS516', 'StandardGS58', 'StandardH16', 'StandardH16m', 'StandardH16mr', 'StandardH16r', 'StandardH8', 'StandardH8m', 'StandardL16s', 'StandardL32s', 'StandardL4s', 'StandardL8s', 'StandardM12832ms', 'StandardM12864ms', 'StandardM128ms', 'StandardM128s', 'StandardM6416ms', 'StandardM6432ms', 'StandardM64ms', 'StandardM64s', 'StandardNC12', 'StandardNC12sV2', 'StandardNC12sV3', 'StandardNC24', 'StandardNC24r', 'StandardNC24rsV2', 'StandardNC24rsV3', 'StandardNC24sV2', 'StandardNC24sV3', 'StandardNC6', 'StandardNC6sV2', 'StandardNC6sV3', 'StandardND12s', 'StandardND24rs', 'StandardND24s', 'StandardND6s', 'StandardNV12', 'StandardNV24', 'StandardNV6' 2470 VMSize VMSizeTypes `json:"vmSize,omitempty"` 2471 // OsDiskSizeGB - OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified. 2472 OsDiskSizeGB *int32 `json:"osDiskSizeGB,omitempty"` 2473 // VnetSubnetID - VNet SubnetID specifies the VNet's subnet identifier. 2474 VnetSubnetID *string `json:"vnetSubnetID,omitempty"` 2475 // FirstConsecutiveStaticIP - FirstConsecutiveStaticIP used to specify the first static ip of masters. 2476 FirstConsecutiveStaticIP *string `json:"firstConsecutiveStaticIP,omitempty"` 2477 // StorageProfile - Storage profile specifies what kind of storage used. Choose from StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the orchestrator choice. Possible values include: 'StorageAccount', 'ManagedDisks' 2478 StorageProfile StorageProfileTypes `json:"storageProfile,omitempty"` 2479 // Fqdn - READ-ONLY; FQDN for the master pool. 2480 Fqdn *string `json:"fqdn,omitempty"` 2481} 2482 2483// MarshalJSON is the custom marshaler for MasterProfile. 2484func (mp MasterProfile) MarshalJSON() ([]byte, error) { 2485 objectMap := make(map[string]interface{}) 2486 if mp.Count != nil { 2487 objectMap["count"] = mp.Count 2488 } 2489 if mp.DNSPrefix != nil { 2490 objectMap["dnsPrefix"] = mp.DNSPrefix 2491 } 2492 if mp.VMSize != "" { 2493 objectMap["vmSize"] = mp.VMSize 2494 } 2495 if mp.OsDiskSizeGB != nil { 2496 objectMap["osDiskSizeGB"] = mp.OsDiskSizeGB 2497 } 2498 if mp.VnetSubnetID != nil { 2499 objectMap["vnetSubnetID"] = mp.VnetSubnetID 2500 } 2501 if mp.FirstConsecutiveStaticIP != nil { 2502 objectMap["firstConsecutiveStaticIP"] = mp.FirstConsecutiveStaticIP 2503 } 2504 if mp.StorageProfile != "" { 2505 objectMap["storageProfile"] = mp.StorageProfile 2506 } 2507 return json.Marshal(objectMap) 2508} 2509 2510// NetworkProfile profile of network configuration. 2511type NetworkProfile struct { 2512 // NetworkPlugin - Network plugin used for building Kubernetes network. Possible values include: 'Azure', 'Kubenet' 2513 NetworkPlugin NetworkPlugin `json:"networkPlugin,omitempty"` 2514 // NetworkPolicy - Network policy used for building Kubernetes network. Possible values include: 'NetworkPolicyCalico', 'NetworkPolicyAzure' 2515 NetworkPolicy NetworkPolicy `json:"networkPolicy,omitempty"` 2516 // NetworkMode - Network mode used for building Kubernetes network. Possible values include: 'Transparent', 'Bridge' 2517 NetworkMode NetworkMode `json:"networkMode,omitempty"` 2518 // PodCidr - A CIDR notation IP range from which to assign pod IPs when kubenet is used. 2519 PodCidr *string `json:"podCidr,omitempty"` 2520 // ServiceCidr - A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP ranges. 2521 ServiceCidr *string `json:"serviceCidr,omitempty"` 2522 // DNSServiceIP - An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address range specified in serviceCidr. 2523 DNSServiceIP *string `json:"dnsServiceIP,omitempty"` 2524 // DockerBridgeCidr - A CIDR notation IP range assigned to the Docker bridge network. It must not overlap with any Subnet IP ranges or the Kubernetes service address range. 2525 DockerBridgeCidr *string `json:"dockerBridgeCidr,omitempty"` 2526 // OutboundType - The outbound (egress) routing method. Possible values include: 'LoadBalancer', 'UserDefinedRouting' 2527 OutboundType OutboundType `json:"outboundType,omitempty"` 2528 // LoadBalancerSku - The load balancer sku for the managed cluster. Possible values include: 'Standard', 'Basic' 2529 LoadBalancerSku LoadBalancerSku `json:"loadBalancerSku,omitempty"` 2530 // LoadBalancerProfile - Profile of the cluster load balancer. 2531 LoadBalancerProfile *ManagedClusterLoadBalancerProfile `json:"loadBalancerProfile,omitempty"` 2532} 2533 2534// OperationListResult the List Compute Operation operation response. 2535type OperationListResult struct { 2536 autorest.Response `json:"-"` 2537 // Value - READ-ONLY; The list of compute operations 2538 Value *[]OperationValue `json:"value,omitempty"` 2539} 2540 2541// MarshalJSON is the custom marshaler for OperationListResult. 2542func (olr OperationListResult) MarshalJSON() ([]byte, error) { 2543 objectMap := make(map[string]interface{}) 2544 return json.Marshal(objectMap) 2545} 2546 2547// OperationValue describes the properties of a Compute Operation value. 2548type OperationValue struct { 2549 // Origin - READ-ONLY; The origin of the compute operation. 2550 Origin *string `json:"origin,omitempty"` 2551 // Name - READ-ONLY; The name of the compute operation. 2552 Name *string `json:"name,omitempty"` 2553 // OperationValueDisplay - Describes the properties of a Compute Operation Value Display. 2554 *OperationValueDisplay `json:"display,omitempty"` 2555} 2556 2557// MarshalJSON is the custom marshaler for OperationValue. 2558func (ov OperationValue) MarshalJSON() ([]byte, error) { 2559 objectMap := make(map[string]interface{}) 2560 if ov.OperationValueDisplay != nil { 2561 objectMap["display"] = ov.OperationValueDisplay 2562 } 2563 return json.Marshal(objectMap) 2564} 2565 2566// UnmarshalJSON is the custom unmarshaler for OperationValue struct. 2567func (ov *OperationValue) UnmarshalJSON(body []byte) error { 2568 var m map[string]*json.RawMessage 2569 err := json.Unmarshal(body, &m) 2570 if err != nil { 2571 return err 2572 } 2573 for k, v := range m { 2574 switch k { 2575 case "origin": 2576 if v != nil { 2577 var origin string 2578 err = json.Unmarshal(*v, &origin) 2579 if err != nil { 2580 return err 2581 } 2582 ov.Origin = &origin 2583 } 2584 case "name": 2585 if v != nil { 2586 var name string 2587 err = json.Unmarshal(*v, &name) 2588 if err != nil { 2589 return err 2590 } 2591 ov.Name = &name 2592 } 2593 case "display": 2594 if v != nil { 2595 var operationValueDisplay OperationValueDisplay 2596 err = json.Unmarshal(*v, &operationValueDisplay) 2597 if err != nil { 2598 return err 2599 } 2600 ov.OperationValueDisplay = &operationValueDisplay 2601 } 2602 } 2603 } 2604 2605 return nil 2606} 2607 2608// OperationValueDisplay describes the properties of a Compute Operation Value Display. 2609type OperationValueDisplay struct { 2610 // Operation - READ-ONLY; The display name of the compute operation. 2611 Operation *string `json:"operation,omitempty"` 2612 // Resource - READ-ONLY; The display name of the resource the operation applies to. 2613 Resource *string `json:"resource,omitempty"` 2614 // Description - READ-ONLY; The description of the operation. 2615 Description *string `json:"description,omitempty"` 2616 // Provider - READ-ONLY; The resource provider for the operation. 2617 Provider *string `json:"provider,omitempty"` 2618} 2619 2620// MarshalJSON is the custom marshaler for OperationValueDisplay. 2621func (ovd OperationValueDisplay) MarshalJSON() ([]byte, error) { 2622 objectMap := make(map[string]interface{}) 2623 return json.Marshal(objectMap) 2624} 2625 2626// PowerState describes the Power State of the cluster 2627type PowerState struct { 2628 // Code - Tells whether the cluster is Running or Stopped. Possible values include: 'Running', 'Stopped' 2629 Code Code `json:"code,omitempty"` 2630} 2631 2632// PrivateEndpoint private endpoint which a connection belongs to. 2633type PrivateEndpoint struct { 2634 // ID - The resource Id for private endpoint 2635 ID *string `json:"id,omitempty"` 2636} 2637 2638// PrivateEndpointConnection a private endpoint connection 2639type PrivateEndpointConnection struct { 2640 autorest.Response `json:"-"` 2641 // ID - READ-ONLY; The ID of the private endpoint connection. 2642 ID *string `json:"id,omitempty"` 2643 // Name - READ-ONLY; The name of the private endpoint connection. 2644 Name *string `json:"name,omitempty"` 2645 // Type - READ-ONLY; The resource type. 2646 Type *string `json:"type,omitempty"` 2647 // PrivateEndpointConnectionProperties - The properties of a private endpoint connection. 2648 *PrivateEndpointConnectionProperties `json:"properties,omitempty"` 2649} 2650 2651// MarshalJSON is the custom marshaler for PrivateEndpointConnection. 2652func (pec PrivateEndpointConnection) MarshalJSON() ([]byte, error) { 2653 objectMap := make(map[string]interface{}) 2654 if pec.PrivateEndpointConnectionProperties != nil { 2655 objectMap["properties"] = pec.PrivateEndpointConnectionProperties 2656 } 2657 return json.Marshal(objectMap) 2658} 2659 2660// UnmarshalJSON is the custom unmarshaler for PrivateEndpointConnection struct. 2661func (pec *PrivateEndpointConnection) UnmarshalJSON(body []byte) error { 2662 var m map[string]*json.RawMessage 2663 err := json.Unmarshal(body, &m) 2664 if err != nil { 2665 return err 2666 } 2667 for k, v := range m { 2668 switch k { 2669 case "id": 2670 if v != nil { 2671 var ID string 2672 err = json.Unmarshal(*v, &ID) 2673 if err != nil { 2674 return err 2675 } 2676 pec.ID = &ID 2677 } 2678 case "name": 2679 if v != nil { 2680 var name string 2681 err = json.Unmarshal(*v, &name) 2682 if err != nil { 2683 return err 2684 } 2685 pec.Name = &name 2686 } 2687 case "type": 2688 if v != nil { 2689 var typeVar string 2690 err = json.Unmarshal(*v, &typeVar) 2691 if err != nil { 2692 return err 2693 } 2694 pec.Type = &typeVar 2695 } 2696 case "properties": 2697 if v != nil { 2698 var privateEndpointConnectionProperties PrivateEndpointConnectionProperties 2699 err = json.Unmarshal(*v, &privateEndpointConnectionProperties) 2700 if err != nil { 2701 return err 2702 } 2703 pec.PrivateEndpointConnectionProperties = &privateEndpointConnectionProperties 2704 } 2705 } 2706 } 2707 2708 return nil 2709} 2710 2711// PrivateEndpointConnectionListResult a list of private endpoint connections 2712type PrivateEndpointConnectionListResult struct { 2713 autorest.Response `json:"-"` 2714 // Value - The collection value. 2715 Value *[]PrivateEndpointConnection `json:"value,omitempty"` 2716} 2717 2718// PrivateEndpointConnectionProperties properties of a private endpoint connection. 2719type PrivateEndpointConnectionProperties struct { 2720 // ProvisioningState - READ-ONLY; The current provisioning state. Possible values include: 'PrivateEndpointConnectionProvisioningStateSucceeded', 'PrivateEndpointConnectionProvisioningStateCreating', 'PrivateEndpointConnectionProvisioningStateDeleting', 'PrivateEndpointConnectionProvisioningStateFailed' 2721 ProvisioningState PrivateEndpointConnectionProvisioningState `json:"provisioningState,omitempty"` 2722 // PrivateEndpoint - The resource of private endpoint. 2723 PrivateEndpoint *PrivateEndpoint `json:"privateEndpoint,omitempty"` 2724 // PrivateLinkServiceConnectionState - A collection of information about the state of the connection between service consumer and provider. 2725 PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionState `json:"privateLinkServiceConnectionState,omitempty"` 2726} 2727 2728// MarshalJSON is the custom marshaler for PrivateEndpointConnectionProperties. 2729func (pecp PrivateEndpointConnectionProperties) MarshalJSON() ([]byte, error) { 2730 objectMap := make(map[string]interface{}) 2731 if pecp.PrivateEndpoint != nil { 2732 objectMap["privateEndpoint"] = pecp.PrivateEndpoint 2733 } 2734 if pecp.PrivateLinkServiceConnectionState != nil { 2735 objectMap["privateLinkServiceConnectionState"] = pecp.PrivateLinkServiceConnectionState 2736 } 2737 return json.Marshal(objectMap) 2738} 2739 2740// PrivateEndpointConnectionsDeleteFuture an abstraction for monitoring and retrieving the results of a 2741// long-running operation. 2742type PrivateEndpointConnectionsDeleteFuture struct { 2743 azure.FutureAPI 2744 // Result returns the result of the asynchronous operation. 2745 // If the operation has not completed it will return an error. 2746 Result func(PrivateEndpointConnectionsClient) (autorest.Response, error) 2747} 2748 2749// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2750func (future *PrivateEndpointConnectionsDeleteFuture) UnmarshalJSON(body []byte) error { 2751 var azFuture azure.Future 2752 if err := json.Unmarshal(body, &azFuture); err != nil { 2753 return err 2754 } 2755 future.FutureAPI = &azFuture 2756 future.Result = future.result 2757 return nil 2758} 2759 2760// result is the default implementation for PrivateEndpointConnectionsDeleteFuture.Result. 2761func (future *PrivateEndpointConnectionsDeleteFuture) result(client PrivateEndpointConnectionsClient) (ar autorest.Response, err error) { 2762 var done bool 2763 done, err = future.DoneWithContext(context.Background(), client) 2764 if err != nil { 2765 err = autorest.NewErrorWithError(err, "containerservice.PrivateEndpointConnectionsDeleteFuture", "Result", future.Response(), "Polling failure") 2766 return 2767 } 2768 if !done { 2769 ar.Response = future.Response() 2770 err = azure.NewAsyncOpIncompleteError("containerservice.PrivateEndpointConnectionsDeleteFuture") 2771 return 2772 } 2773 ar.Response = future.Response() 2774 return 2775} 2776 2777// PrivateLinkResource a private link resource 2778type PrivateLinkResource struct { 2779 autorest.Response `json:"-"` 2780 // ID - The ID of the private link resource. 2781 ID *string `json:"id,omitempty"` 2782 // Name - The name of the private link resource. 2783 Name *string `json:"name,omitempty"` 2784 // Type - The resource type. 2785 Type *string `json:"type,omitempty"` 2786 // GroupID - The group ID of the resource. 2787 GroupID *string `json:"groupId,omitempty"` 2788 // RequiredMembers - RequiredMembers of the resource 2789 RequiredMembers *[]string `json:"requiredMembers,omitempty"` 2790 // PrivateLinkServiceID - READ-ONLY; The private link service ID of the resource, this field is exposed only to NRP internally. 2791 PrivateLinkServiceID *string `json:"privateLinkServiceID,omitempty"` 2792} 2793 2794// MarshalJSON is the custom marshaler for PrivateLinkResource. 2795func (plr PrivateLinkResource) MarshalJSON() ([]byte, error) { 2796 objectMap := make(map[string]interface{}) 2797 if plr.ID != nil { 2798 objectMap["id"] = plr.ID 2799 } 2800 if plr.Name != nil { 2801 objectMap["name"] = plr.Name 2802 } 2803 if plr.Type != nil { 2804 objectMap["type"] = plr.Type 2805 } 2806 if plr.GroupID != nil { 2807 objectMap["groupId"] = plr.GroupID 2808 } 2809 if plr.RequiredMembers != nil { 2810 objectMap["requiredMembers"] = plr.RequiredMembers 2811 } 2812 return json.Marshal(objectMap) 2813} 2814 2815// PrivateLinkResourcesListResult a list of private link resources 2816type PrivateLinkResourcesListResult struct { 2817 autorest.Response `json:"-"` 2818 // Value - The collection value. 2819 Value *[]PrivateLinkResource `json:"value,omitempty"` 2820} 2821 2822// PrivateLinkServiceConnectionState the state of a private link service connection. 2823type PrivateLinkServiceConnectionState struct { 2824 // Status - The private link service connection status. Possible values include: 'Pending', 'Approved', 'Rejected', 'Disconnected' 2825 Status ConnectionStatus `json:"status,omitempty"` 2826 // Description - The private link service connection description. 2827 Description *string `json:"description,omitempty"` 2828} 2829 2830// Resource the Resource model definition. 2831type Resource struct { 2832 // ID - READ-ONLY; Resource Id 2833 ID *string `json:"id,omitempty"` 2834 // Name - READ-ONLY; Resource name 2835 Name *string `json:"name,omitempty"` 2836 // Type - READ-ONLY; Resource type 2837 Type *string `json:"type,omitempty"` 2838 // Location - Resource location 2839 Location *string `json:"location,omitempty"` 2840 // Tags - Resource tags 2841 Tags map[string]*string `json:"tags"` 2842} 2843 2844// MarshalJSON is the custom marshaler for Resource. 2845func (r Resource) MarshalJSON() ([]byte, error) { 2846 objectMap := make(map[string]interface{}) 2847 if r.Location != nil { 2848 objectMap["location"] = r.Location 2849 } 2850 if r.Tags != nil { 2851 objectMap["tags"] = r.Tags 2852 } 2853 return json.Marshal(objectMap) 2854} 2855 2856// ResourceReference a reference to an Azure resource. 2857type ResourceReference struct { 2858 // ID - The fully qualified Azure resource id. 2859 ID *string `json:"id,omitempty"` 2860} 2861 2862// SSHConfiguration SSH configuration for Linux-based VMs running on Azure. 2863type SSHConfiguration struct { 2864 // PublicKeys - The list of SSH public keys used to authenticate with Linux-based VMs. Only expect one key specified. 2865 PublicKeys *[]SSHPublicKey `json:"publicKeys,omitempty"` 2866} 2867 2868// SSHPublicKey contains information about SSH certificate public key data. 2869type SSHPublicKey struct { 2870 // KeyData - Certificate public key used to authenticate with VMs through SSH. The certificate must be in PEM format with or without headers. 2871 KeyData *string `json:"keyData,omitempty"` 2872} 2873 2874// SubResource reference to another subresource. 2875type SubResource struct { 2876 // ID - READ-ONLY; Resource ID. 2877 ID *string `json:"id,omitempty"` 2878 // Name - READ-ONLY; The name of the resource that is unique within a resource group. This name can be used to access the resource. 2879 Name *string `json:"name,omitempty"` 2880 // Type - READ-ONLY; Resource type 2881 Type *string `json:"type,omitempty"` 2882} 2883 2884// MarshalJSON is the custom marshaler for SubResource. 2885func (sr SubResource) MarshalJSON() ([]byte, error) { 2886 objectMap := make(map[string]interface{}) 2887 return json.Marshal(objectMap) 2888} 2889 2890// SysctlConfig sysctl settings for Linux agent nodes. 2891type SysctlConfig struct { 2892 // NetCoreSomaxconn - Sysctl setting net.core.somaxconn. 2893 NetCoreSomaxconn *int32 `json:"netCoreSomaxconn,omitempty"` 2894 // NetCoreNetdevMaxBacklog - Sysctl setting net.core.netdev_max_backlog. 2895 NetCoreNetdevMaxBacklog *int32 `json:"netCoreNetdevMaxBacklog,omitempty"` 2896 // NetCoreRmemDefault - Sysctl setting net.core.rmem_default. 2897 NetCoreRmemDefault *int32 `json:"netCoreRmemDefault,omitempty"` 2898 // NetCoreRmemMax - Sysctl setting net.core.rmem_max. 2899 NetCoreRmemMax *int32 `json:"netCoreRmemMax,omitempty"` 2900 // NetCoreWmemDefault - Sysctl setting net.core.wmem_default. 2901 NetCoreWmemDefault *int32 `json:"netCoreWmemDefault,omitempty"` 2902 // NetCoreWmemMax - Sysctl setting net.core.wmem_max. 2903 NetCoreWmemMax *int32 `json:"netCoreWmemMax,omitempty"` 2904 // NetCoreOptmemMax - Sysctl setting net.core.optmem_max. 2905 NetCoreOptmemMax *int32 `json:"netCoreOptmemMax,omitempty"` 2906 // NetIpv4TCPMaxSynBacklog - Sysctl setting net.ipv4.tcp_max_syn_backlog. 2907 NetIpv4TCPMaxSynBacklog *int32 `json:"netIpv4TcpMaxSynBacklog,omitempty"` 2908 // NetIpv4TCPMaxTwBuckets - Sysctl setting net.ipv4.tcp_max_tw_buckets. 2909 NetIpv4TCPMaxTwBuckets *int32 `json:"netIpv4TcpMaxTwBuckets,omitempty"` 2910 // NetIpv4TCPFinTimeout - Sysctl setting net.ipv4.tcp_fin_timeout. 2911 NetIpv4TCPFinTimeout *int32 `json:"netIpv4TcpFinTimeout,omitempty"` 2912 // NetIpv4TCPKeepaliveTime - Sysctl setting net.ipv4.tcp_keepalive_time. 2913 NetIpv4TCPKeepaliveTime *int32 `json:"netIpv4TcpKeepaliveTime,omitempty"` 2914 // NetIpv4TCPKeepaliveProbes - Sysctl setting net.ipv4.tcp_keepalive_probes. 2915 NetIpv4TCPKeepaliveProbes *int32 `json:"netIpv4TcpKeepaliveProbes,omitempty"` 2916 // NetIpv4TcpkeepaliveIntvl - Sysctl setting net.ipv4.tcp_keepalive_intvl. 2917 NetIpv4TcpkeepaliveIntvl *int32 `json:"netIpv4TcpkeepaliveIntvl,omitempty"` 2918 // NetIpv4TCPTwReuse - Sysctl setting net.ipv4.tcp_tw_reuse. 2919 NetIpv4TCPTwReuse *bool `json:"netIpv4TcpTwReuse,omitempty"` 2920 // NetIpv4IPLocalPortRange - Sysctl setting net.ipv4.ip_local_port_range. 2921 NetIpv4IPLocalPortRange *string `json:"netIpv4IpLocalPortRange,omitempty"` 2922 // NetIpv4NeighDefaultGcThresh1 - Sysctl setting net.ipv4.neigh.default.gc_thresh1. 2923 NetIpv4NeighDefaultGcThresh1 *int32 `json:"netIpv4NeighDefaultGcThresh1,omitempty"` 2924 // NetIpv4NeighDefaultGcThresh2 - Sysctl setting net.ipv4.neigh.default.gc_thresh2. 2925 NetIpv4NeighDefaultGcThresh2 *int32 `json:"netIpv4NeighDefaultGcThresh2,omitempty"` 2926 // NetIpv4NeighDefaultGcThresh3 - Sysctl setting net.ipv4.neigh.default.gc_thresh3. 2927 NetIpv4NeighDefaultGcThresh3 *int32 `json:"netIpv4NeighDefaultGcThresh3,omitempty"` 2928 // NetNetfilterNfConntrackMax - Sysctl setting net.netfilter.nf_conntrack_max. 2929 NetNetfilterNfConntrackMax *int32 `json:"netNetfilterNfConntrackMax,omitempty"` 2930 // NetNetfilterNfConntrackBuckets - Sysctl setting net.netfilter.nf_conntrack_buckets. 2931 NetNetfilterNfConntrackBuckets *int32 `json:"netNetfilterNfConntrackBuckets,omitempty"` 2932 // FsInotifyMaxUserWatches - Sysctl setting fs.inotify.max_user_watches. 2933 FsInotifyMaxUserWatches *int32 `json:"fsInotifyMaxUserWatches,omitempty"` 2934 // FsFileMax - Sysctl setting fs.file-max. 2935 FsFileMax *int32 `json:"fsFileMax,omitempty"` 2936 // FsAioMaxNr - Sysctl setting fs.aio-max-nr. 2937 FsAioMaxNr *int32 `json:"fsAioMaxNr,omitempty"` 2938 // FsNrOpen - Sysctl setting fs.nr_open. 2939 FsNrOpen *int32 `json:"fsNrOpen,omitempty"` 2940 // KernelThreadsMax - Sysctl setting kernel.threads-max. 2941 KernelThreadsMax *int32 `json:"kernelThreadsMax,omitempty"` 2942 // VMMaxMapCount - Sysctl setting vm.max_map_count. 2943 VMMaxMapCount *int32 `json:"vmMaxMapCount,omitempty"` 2944 // VMSwappiness - Sysctl setting vm.swappiness. 2945 VMSwappiness *int32 `json:"vmSwappiness,omitempty"` 2946 // VMVfsCachePressure - Sysctl setting vm.vfs_cache_pressure. 2947 VMVfsCachePressure *int32 `json:"vmVfsCachePressure,omitempty"` 2948} 2949 2950// SystemData metadata pertaining to creation and last modification of the resource. 2951type SystemData struct { 2952 // CreatedBy - The identity that created the resource. 2953 CreatedBy *string `json:"createdBy,omitempty"` 2954 // CreatedByType - The type of identity that created the resource. Possible values include: 'CreatedByTypeUser', 'CreatedByTypeApplication', 'CreatedByTypeManagedIdentity', 'CreatedByTypeKey' 2955 CreatedByType CreatedByType `json:"createdByType,omitempty"` 2956 // CreatedAt - The timestamp of resource creation (UTC). 2957 CreatedAt *date.Time `json:"createdAt,omitempty"` 2958 // LastModifiedBy - The identity that last modified the resource. 2959 LastModifiedBy *string `json:"lastModifiedBy,omitempty"` 2960 // LastModifiedByType - The type of identity that last modified the resource. Possible values include: 'CreatedByTypeUser', 'CreatedByTypeApplication', 'CreatedByTypeManagedIdentity', 'CreatedByTypeKey' 2961 LastModifiedByType CreatedByType `json:"lastModifiedByType,omitempty"` 2962 // LastModifiedAt - The type of identity that last modified the resource. 2963 LastModifiedAt *date.Time `json:"lastModifiedAt,omitempty"` 2964} 2965 2966// TagsObject tags object for patch operations. 2967type TagsObject struct { 2968 // Tags - Resource tags. 2969 Tags map[string]*string `json:"tags"` 2970} 2971 2972// MarshalJSON is the custom marshaler for TagsObject. 2973func (toVar TagsObject) MarshalJSON() ([]byte, error) { 2974 objectMap := make(map[string]interface{}) 2975 if toVar.Tags != nil { 2976 objectMap["tags"] = toVar.Tags 2977 } 2978 return json.Marshal(objectMap) 2979} 2980 2981// TimeInWeek time in a week. 2982type TimeInWeek struct { 2983 // Day - A day in a week. Possible values include: 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' 2984 Day WeekDay `json:"day,omitempty"` 2985 // HourSlots - hour slots in a day. 2986 HourSlots *[]int32 `json:"hourSlots,omitempty"` 2987} 2988 2989// TimeSpan the time span with start and end properties. 2990type TimeSpan struct { 2991 // Start - The start of a time span 2992 Start *date.Time `json:"start,omitempty"` 2993 // End - The end of a time span 2994 End *date.Time `json:"end,omitempty"` 2995} 2996 2997// UserAssignedIdentity ... 2998type UserAssignedIdentity struct { 2999 // ResourceID - The resource id of the user assigned identity. 3000 ResourceID *string `json:"resourceId,omitempty"` 3001 // ClientID - The client id of the user assigned identity. 3002 ClientID *string `json:"clientId,omitempty"` 3003 // ObjectID - The object id of the user assigned identity. 3004 ObjectID *string `json:"objectId,omitempty"` 3005} 3006 3007// VMDiagnostics profile for diagnostics on the container service VMs. 3008type VMDiagnostics struct { 3009 // Enabled - Whether the VM diagnostic agent is provisioned on the VM. 3010 Enabled *bool `json:"enabled,omitempty"` 3011 // StorageURI - READ-ONLY; The URI of the storage account where diagnostics are stored. 3012 StorageURI *string `json:"storageUri,omitempty"` 3013} 3014 3015// MarshalJSON is the custom marshaler for VMDiagnostics. 3016func (vd VMDiagnostics) MarshalJSON() ([]byte, error) { 3017 objectMap := make(map[string]interface{}) 3018 if vd.Enabled != nil { 3019 objectMap["enabled"] = vd.Enabled 3020 } 3021 return json.Marshal(objectMap) 3022} 3023