Skip to content

Commit acd2710

Browse files
mgmt, support AKS listOrchestrators (Azure#22972)
1 parent d469675 commit acd2710

File tree

4 files changed

+80
-0
lines changed

4 files changed

+80
-0
lines changed

sdk/resourcemanager/azure-resourcemanager-containerservice/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
### Features Added
66

77
- Supported `start` and `stop` for `KubernetesCluster`.
8+
- Supported `listOrchestrators` for `KubernetesCluster`.
89

910
## 2.6.0 (2021-06-18)
1011

sdk/resourcemanager/azure-resourcemanager-containerservice/src/main/java/com/azure/resourcemanager/containerservice/implementation/KubernetesClustersImpl.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@
44

55
import com.azure.core.http.rest.PagedFlux;
66
import com.azure.core.http.rest.PagedIterable;
7+
import com.azure.core.http.rest.PagedResponseBase;
78
import com.azure.core.util.CoreUtils;
89
import com.azure.resourcemanager.containerservice.ContainerServiceManager;
910
import com.azure.resourcemanager.containerservice.fluent.ManagedClustersClient;
1011
import com.azure.resourcemanager.containerservice.fluent.models.CredentialResultsInner;
1112
import com.azure.resourcemanager.containerservice.fluent.models.ManagedClusterInner;
1213
import com.azure.resourcemanager.containerservice.fluent.models.OrchestratorVersionProfileListResultInner;
14+
import com.azure.resourcemanager.containerservice.models.ContainerServiceResourceTypes;
1315
import com.azure.resourcemanager.containerservice.models.CredentialResult;
1416
import com.azure.resourcemanager.containerservice.models.KubernetesCluster;
1517
import com.azure.resourcemanager.containerservice.models.KubernetesClusters;
@@ -129,6 +131,29 @@ public Mono<Set<String>> listKubernetesVersionsAsync(Region region) {
129131
});
130132
}
131133

134+
@Override
135+
public PagedIterable<OrchestratorVersionProfile> listOrchestrators(Region region,
136+
ContainerServiceResourceTypes resourceTypes) {
137+
return new PagedIterable<>(this.listOrchestratorsAsync(region, resourceTypes));
138+
}
139+
140+
@Override
141+
public PagedFlux<OrchestratorVersionProfile> listOrchestratorsAsync(Region region,
142+
ContainerServiceResourceTypes resourceTypes) {
143+
return new PagedFlux<>(() -> this.manager().serviceClient().getContainerServices()
144+
.listOrchestratorsWithResponseAsync(region.name(), resourceTypes.toString())
145+
.map(response -> new PagedResponseBase<Void, OrchestratorVersionProfile>(
146+
response.getRequest(),
147+
response.getStatusCode(),
148+
response.getHeaders(),
149+
(response.getValue() == null || response.getValue().orchestrators() == null)
150+
? Collections.emptyList()
151+
: response.getValue().orchestrators(),
152+
null,
153+
null
154+
)));
155+
}
156+
132157
@Override
133158
public List<CredentialResult> listAdminKubeConfigContent(String resourceGroupName, String kubernetesClusterName) {
134159
return listAdminKubeConfigContentAsync(resourceGroupName, kubernetesClusterName).block();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
package com.azure.resourcemanager.containerservice.models;
5+
6+
import com.azure.core.util.ExpandableStringEnum;
7+
import com.fasterxml.jackson.annotation.JsonCreator;
8+
9+
import java.util.Collection;
10+
11+
/** Defines values for resource types from container service. */
12+
public class ContainerServiceResourceTypes extends ExpandableStringEnum<ContainerServiceResourceTypes> {
13+
14+
/** Static value managedClusters for ContainerServiceResourceTypes. */
15+
public static final ContainerServiceResourceTypes MANAGED_CLUSTERS = fromString("managedClusters");
16+
17+
/**
18+
* Creates or finds a ContainerServiceResourceTypes from its string representation.
19+
*
20+
* @param name a name to look for.
21+
* @return the corresponding ContainerServiceResourceTypes.
22+
*/
23+
@JsonCreator
24+
public static ContainerServiceResourceTypes fromString(String name) {
25+
return fromString(name, ContainerServiceResourceTypes.class);
26+
}
27+
28+
/** @return known ExtendedLocationTypes values. */
29+
public static Collection<ContainerServiceResourceTypes> values() {
30+
return values(ContainerServiceResourceTypes.class);
31+
}
32+
}

sdk/resourcemanager/azure-resourcemanager-containerservice/src/main/java/com/azure/resourcemanager/containerservice/models/KubernetesClusters.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
package com.azure.resourcemanager.containerservice.models;
44

55
import com.azure.core.annotation.Fluent;
6+
import com.azure.core.http.rest.PagedFlux;
7+
import com.azure.core.http.rest.PagedIterable;
68
import com.azure.resourcemanager.containerservice.ContainerServiceManager;
79
import com.azure.core.management.Region;
810
import com.azure.resourcemanager.resources.fluentcore.arm.collection.SupportsDeletingByResourceGroup;
@@ -49,6 +51,26 @@ public interface KubernetesClusters
4951
*/
5052
Mono<Set<String>> listKubernetesVersionsAsync(Region region);
5153

54+
/**
55+
* Returns the list of available orchestrators for the given Azure region.
56+
*
57+
* @param region the Azure region to query into
58+
* @param resourceTypes the resource type of container service
59+
* @return a list of orchestrators which can be used when creating a service in this region
60+
*/
61+
PagedIterable<OrchestratorVersionProfile> listOrchestrators(Region region,
62+
ContainerServiceResourceTypes resourceTypes);
63+
64+
/**
65+
* Returns the list of available orchestrators for the given Azure region.
66+
*
67+
* @param region the Azure region to query into
68+
* @param resourceTypes the resource type of container service
69+
* @return a list of orchestrators which can be used when creating a service in this region
70+
*/
71+
PagedFlux<OrchestratorVersionProfile> listOrchestratorsAsync(Region region,
72+
ContainerServiceResourceTypes resourceTypes);
73+
5274
/**
5375
* Returns the admin Kube.config content which can be used with a Kubernetes client.
5476
*

0 commit comments

Comments
 (0)