diff --git a/azure-mgmt-monitor/src/main/java/com/microsoft/azure/management/monitor/MetricNamespaceName.java b/azure-mgmt-monitor/src/main/java/com/microsoft/azure/management/monitor/MetricNamespaceName.java new file mode 100644 index 000000000000..de5a2d0f45c7 --- /dev/null +++ b/azure-mgmt-monitor/src/main/java/com/microsoft/azure/management/monitor/MetricNamespaceName.java @@ -0,0 +1,43 @@ +/** + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + */ + +package com.microsoft.azure.management.monitor; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * The fully qualified metric namespace name. + */ +public class MetricNamespaceName { + /** + * The metric namespace name. + */ + @JsonProperty(value = "metricNamespaceName") + private String metricNamespaceName; + + /** + * Get the metric namespace name. + * + * @return the metricNamespaceName value + */ + public String metricNamespaceName() { + return this.metricNamespaceName; + } + + /** + * Set the metric namespace name. + * + * @param metricNamespaceName the metricNamespaceName value to set + * @return the MetricNamespaceName object itself. + */ + public MetricNamespaceName withMetricNamespaceName(String metricNamespaceName) { + this.metricNamespaceName = metricNamespaceName; + return this; + } + +} diff --git a/azure-mgmt-monitor/src/main/java/com/microsoft/azure/management/monitor/implementation/MetricNamespaceInner.java b/azure-mgmt-monitor/src/main/java/com/microsoft/azure/management/monitor/implementation/MetricNamespaceInner.java new file mode 100644 index 000000000000..16befcbab181 --- /dev/null +++ b/azure-mgmt-monitor/src/main/java/com/microsoft/azure/management/monitor/implementation/MetricNamespaceInner.java @@ -0,0 +1,122 @@ +/** + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + */ + +package com.microsoft.azure.management.monitor.implementation; + +import com.microsoft.azure.management.monitor.MetricNamespaceName; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Metric namespace class specifies the metadata for a metric namespace. + */ +public class MetricNamespaceInner { + /** + * The ID of the metricNamespace. + */ + @JsonProperty(value = "id") + private String id; + + /** + * The type of the namespace. + */ + @JsonProperty(value = "type") + private String type; + + /** + * The name of the namespace. + */ + @JsonProperty(value = "name") + private String name; + + /** + * Properties which include the fully qualified namespace name. + */ + @JsonProperty(value = "properties") + private MetricNamespaceName properties; + + /** + * Get the ID of the metricNamespace. + * + * @return the id value + */ + public String id() { + return this.id; + } + + /** + * Set the ID of the metricNamespace. + * + * @param id the id value to set + * @return the MetricNamespaceInner object itself. + */ + public MetricNamespaceInner withId(String id) { + this.id = id; + return this; + } + + /** + * Get the type of the namespace. + * + * @return the type value + */ + public String type() { + return this.type; + } + + /** + * Set the type of the namespace. + * + * @param type the type value to set + * @return the MetricNamespaceInner object itself. + */ + public MetricNamespaceInner withType(String type) { + this.type = type; + return this; + } + + /** + * Get the name of the namespace. + * + * @return the name value + */ + public String name() { + return this.name; + } + + /** + * Set the name of the namespace. + * + * @param name the name value to set + * @return the MetricNamespaceInner object itself. + */ + public MetricNamespaceInner withName(String name) { + this.name = name; + return this; + } + + /** + * Get properties which include the fully qualified namespace name. + * + * @return the properties value + */ + public MetricNamespaceName properties() { + return this.properties; + } + + /** + * Set properties which include the fully qualified namespace name. + * + * @param properties the properties value to set + * @return the MetricNamespaceInner object itself. + */ + public MetricNamespaceInner withProperties(MetricNamespaceName properties) { + this.properties = properties; + return this; + } + +} diff --git a/azure-mgmt-monitor/src/main/java/com/microsoft/azure/management/monitor/implementation/MetricNamespacesInner.java b/azure-mgmt-monitor/src/main/java/com/microsoft/azure/management/monitor/implementation/MetricNamespacesInner.java new file mode 100644 index 000000000000..1dda443239f3 --- /dev/null +++ b/azure-mgmt-monitor/src/main/java/com/microsoft/azure/management/monitor/implementation/MetricNamespacesInner.java @@ -0,0 +1,217 @@ +/** + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + */ + +package com.microsoft.azure.management.monitor.implementation; + +import retrofit2.Retrofit; +import com.google.common.reflect.TypeToken; +import com.microsoft.azure.management.monitor.ErrorResponseException; +import com.microsoft.rest.ServiceCallback; +import com.microsoft.rest.ServiceFuture; +import com.microsoft.rest.ServiceResponse; +import java.io.IOException; +import java.util.List; +import okhttp3.ResponseBody; +import retrofit2.http.GET; +import retrofit2.http.Header; +import retrofit2.http.Headers; +import retrofit2.http.Path; +import retrofit2.http.Query; +import retrofit2.Response; +import rx.functions.Func1; +import rx.Observable; + +/** + * An instance of this class provides access to all the operations defined + * in MetricNamespaces. + */ +public class MetricNamespacesInner { + /** The Retrofit service to perform REST calls. */ + private MetricNamespacesService service; + /** The service client containing this operation class. */ + private MonitorManagementClientImpl client; + + /** + * Initializes an instance of MetricNamespacesInner. + * + * @param retrofit the Retrofit instance built from a Retrofit Builder. + * @param client the instance of the service client containing this operation class. + */ + public MetricNamespacesInner(Retrofit retrofit, MonitorManagementClientImpl client) { + this.service = retrofit.create(MetricNamespacesService.class); + this.client = client; + } + + /** + * The interface defining all the services for MetricNamespaces to be + * used by Retrofit to perform actually REST calls. + */ + interface MetricNamespacesService { + @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.monitor.MetricNamespaces list" }) + @GET("{resourceUri}/providers/microsoft.insights/metricNamespaces") + Observable> list(@Path(value = "resourceUri", encoded = true) String resourceUri, @Query("api-version") String apiVersion, @Query("startTime") String startTime, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent); + + } + + /** + * Lists the metric namespaces for the resource. + * + * @param resourceUri The identifier of the resource. + * @throws IllegalArgumentException thrown if parameters fail the validation + * @throws ErrorResponseException thrown if the request is rejected by server + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent + * @return the List<MetricNamespaceInner> object if successful. + */ + public List list(String resourceUri) { + return listWithServiceResponseAsync(resourceUri).toBlocking().single().body(); + } + + /** + * Lists the metric namespaces for the resource. + * + * @param resourceUri The identifier of the resource. + * @param serviceCallback the async ServiceCallback to handle successful and failed responses. + * @throws IllegalArgumentException thrown if parameters fail the validation + * @return the {@link ServiceFuture} object + */ + public ServiceFuture> listAsync(String resourceUri, final ServiceCallback> serviceCallback) { + return ServiceFuture.fromResponse(listWithServiceResponseAsync(resourceUri), serviceCallback); + } + + /** + * Lists the metric namespaces for the resource. + * + * @param resourceUri The identifier of the resource. + * @throws IllegalArgumentException thrown if parameters fail the validation + * @return the observable to the List<MetricNamespaceInner> object + */ + public Observable> listAsync(String resourceUri) { + return listWithServiceResponseAsync(resourceUri).map(new Func1>, List>() { + @Override + public List call(ServiceResponse> response) { + return response.body(); + } + }); + } + + /** + * Lists the metric namespaces for the resource. + * + * @param resourceUri The identifier of the resource. + * @throws IllegalArgumentException thrown if parameters fail the validation + * @return the observable to the List<MetricNamespaceInner> object + */ + public Observable>> listWithServiceResponseAsync(String resourceUri) { + if (resourceUri == null) { + throw new IllegalArgumentException("Parameter resourceUri is required and cannot be null."); + } + final String apiVersion = "2017-12-01-preview"; + final String startTime = null; + return service.list(resourceUri, apiVersion, startTime, this.client.acceptLanguage(), this.client.userAgent()) + .flatMap(new Func1, Observable>>>() { + @Override + public Observable>> call(Response response) { + try { + ServiceResponse> result = listDelegate(response); + List items = null; + if (result.body() != null) { + items = result.body().items(); + } + ServiceResponse> clientResponse = new ServiceResponse>(items, result.response()); + return Observable.just(clientResponse); + } catch (Throwable t) { + return Observable.error(t); + } + } + }); + } + + /** + * Lists the metric namespaces for the resource. + * + * @param resourceUri The identifier of the resource. + * @param startTime The ISO 8601 conform Date start time from which to query for metric namespaces. + * @throws IllegalArgumentException thrown if parameters fail the validation + * @throws ErrorResponseException thrown if the request is rejected by server + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent + * @return the List<MetricNamespaceInner> object if successful. + */ + public List list(String resourceUri, String startTime) { + return listWithServiceResponseAsync(resourceUri, startTime).toBlocking().single().body(); + } + + /** + * Lists the metric namespaces for the resource. + * + * @param resourceUri The identifier of the resource. + * @param startTime The ISO 8601 conform Date start time from which to query for metric namespaces. + * @param serviceCallback the async ServiceCallback to handle successful and failed responses. + * @throws IllegalArgumentException thrown if parameters fail the validation + * @return the {@link ServiceFuture} object + */ + public ServiceFuture> listAsync(String resourceUri, String startTime, final ServiceCallback> serviceCallback) { + return ServiceFuture.fromResponse(listWithServiceResponseAsync(resourceUri, startTime), serviceCallback); + } + + /** + * Lists the metric namespaces for the resource. + * + * @param resourceUri The identifier of the resource. + * @param startTime The ISO 8601 conform Date start time from which to query for metric namespaces. + * @throws IllegalArgumentException thrown if parameters fail the validation + * @return the observable to the List<MetricNamespaceInner> object + */ + public Observable> listAsync(String resourceUri, String startTime) { + return listWithServiceResponseAsync(resourceUri, startTime).map(new Func1>, List>() { + @Override + public List call(ServiceResponse> response) { + return response.body(); + } + }); + } + + /** + * Lists the metric namespaces for the resource. + * + * @param resourceUri The identifier of the resource. + * @param startTime The ISO 8601 conform Date start time from which to query for metric namespaces. + * @throws IllegalArgumentException thrown if parameters fail the validation + * @return the observable to the List<MetricNamespaceInner> object + */ + public Observable>> listWithServiceResponseAsync(String resourceUri, String startTime) { + if (resourceUri == null) { + throw new IllegalArgumentException("Parameter resourceUri is required and cannot be null."); + } + final String apiVersion = "2017-12-01-preview"; + return service.list(resourceUri, apiVersion, startTime, this.client.acceptLanguage(), this.client.userAgent()) + .flatMap(new Func1, Observable>>>() { + @Override + public Observable>> call(Response response) { + try { + ServiceResponse> result = listDelegate(response); + List items = null; + if (result.body() != null) { + items = result.body().items(); + } + ServiceResponse> clientResponse = new ServiceResponse>(items, result.response()); + return Observable.just(clientResponse); + } catch (Throwable t) { + return Observable.error(t); + } + } + }); + } + + private ServiceResponse> listDelegate(Response response) throws ErrorResponseException, IOException, IllegalArgumentException { + return this.client.restClient().responseBuilderFactory()., ErrorResponseException>newInstance(this.client.serializerAdapter()) + .register(200, new TypeToken>() { }.getType()) + .registerError(ErrorResponseException.class) + .build(response); + } + +} diff --git a/azure-mgmt-monitor/src/main/java/com/microsoft/azure/management/monitor/implementation/MonitorManagementClientImpl.java b/azure-mgmt-monitor/src/main/java/com/microsoft/azure/management/monitor/implementation/MonitorManagementClientImpl.java index 0dbb43f8d39e..f208c0ac84b0 100644 --- a/azure-mgmt-monitor/src/main/java/com/microsoft/azure/management/monitor/implementation/MonitorManagementClientImpl.java +++ b/azure-mgmt-monitor/src/main/java/com/microsoft/azure/management/monitor/implementation/MonitorManagementClientImpl.java @@ -354,6 +354,19 @@ public ScheduledQueryRulesInner scheduledQueryRules() { return this.scheduledQueryRules; } + /** + * The MetricNamespacesInner object to access its operations. + */ + private MetricNamespacesInner metricNamespaces; + + /** + * Gets the MetricNamespacesInner object to access its operations. + * @return the MetricNamespacesInner object. + */ + public MetricNamespacesInner metricNamespaces() { + return this.metricNamespaces; + } + /** * Initializes an instance of MonitorManagementClient client. * @@ -406,6 +419,7 @@ protected void initialize() { this.metricAlerts = new MetricAlertsInner(restClient().retrofit(), this); this.metricAlertsStatus = new MetricAlertsStatusInner(restClient().retrofit(), this); this.scheduledQueryRules = new ScheduledQueryRulesInner(restClient().retrofit(), this); + this.metricNamespaces = new MetricNamespacesInner(restClient().retrofit(), this); this.azureClient = new AzureClient(this); }