diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 9a521662024d..3352c4744a3b 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -13,13 +13,12 @@
/sdk/core/ @alzimmermsft @jianghaolu @srnagar @hemanttanwar
/sdk/cosmos/ @moderakh @christopheranderson @kushagraThapar
/sdk/eventhubs/ @conniey @srnagar @mssfang
-/sdk/identity/ @jianghaolu @g2vinay
+/sdk/identity/ @jianghaolu @g2vinay @hemanttanwar
/sdk/keyvault/ @g2vinay @samvaity
/sdk/servicebus/ @yvgopal @nemakam
/sdk/tracing/ @samvaity @alzimmermsft
-# TODO: Once storage libraries are migrated to /sdk folder, fix this line
-/storage/ @rickle-msft @jaschrep-msft @alzimmermsft @sima-zhu
+/sdk/storage/ @rickle-msft @jaschrep-msft @alzimmermsft @sima-zhu
# Management Plane
/**/resource-manager/ @yaohaizh
@@ -28,5 +27,6 @@
# Eng Sys
###########
/eng/ @weshaggard @mitchdenny @danieljurek
+/eng/code-quality-reports/ @mssfang @JonathanGiles
/**/tests.yml @danieljurek
/**/ci.yml @mitchdenny
diff --git a/.github/pull.yml b/.github/pull.yml
new file mode 100644
index 000000000000..cba38338ca1b
--- /dev/null
+++ b/.github/pull.yml
@@ -0,0 +1,7 @@
+# https://github.com/wei/pull#advanced-setup-with-config
+version: "1"
+rules:
+ - base: master
+ upstream: Azure:master
+ mergeMethod: rebase
+label: "AutoPull"
diff --git a/README.md b/README.md
index 729c5d70bc3c..3a89fec4d97e 100644
--- a/README.md
+++ b/README.md
@@ -24,17 +24,17 @@ Each service might have a number of libraries available from each of the followi
* [Management](#Management)
### Client: July 2019 Preview
-New wave of packages that we are currently releasing in **preview**. These libraries follow the [Azure SDK Design Guidelines for Java](https://azuresdkspecs.z5.web.core.windows.net/JavaSpec.html) and share a number of core features such as HTTP retries, logging, transport protocols, authentication protocols, etc., so that once you learn how to use these features in one client library, you will know how to use them in other client libraries. You can learn about these shared features [here](core).
+New wave of packages that we are currently releasing in **preview**. These libraries follow the [Azure SDK Design Guidelines for Java](https://azuresdkspecs.z5.web.core.windows.net/JavaSpec.html) and share a number of core features such as HTTP retries, logging, transport protocols, authentication protocols, etc., so that once you learn how to use these features in one client library, you will know how to use them in other client libraries. You can learn about these shared features [here](core).
These preview libraries can be easily identified by their folder, package, and namespaces names starting with `azure-`, e.g. `azure-keyvault`.
The libraries released in the July 2019 preview:
- [App Configuration](sdk/appconfiguration/azure-data-appconfiguration/README.md)
-- [Event Hubs](sdk/eventhubs/azure-eventhubs/README.md)
+- [Event Hubs](sdk/eventhubs/azure-messaging-eventhubs/README.md)
- [Identity](sdk/identity/azure-identity/README.md)
- [Key Vault Keys](sdk/keyvault/azure-keyvault-keys/README.md)
- [Key Vault Secrets](sdk/keyvault/client/azure-keyvault-secrets/README.md)
-- [Storage Blobs](storage/client/README.md)
+- [Storage Blobs](sdk/storage/azure-storage-blob/README.md)
>NOTE: If you need to ensure your code is ready for production, use one of the stable libraries.
diff --git a/apimanagement/resource-manager/v2019_01_01/pom.xml b/apimanagement/resource-manager/v2019_01_01/pom.xml
index 1ec4457f1668..374a27beae10 100644
--- a/apimanagement/resource-manager/v2019_01_01/pom.xml
+++ b/apimanagement/resource-manager/v2019_01_01/pom.xml
@@ -15,7 +15,7 @@
../../../pom.management.xmlazure-mgmt-apimanagement
- 1.0.0-beta
+ 1.0.0-beta-1jarMicrosoft Azure SDK for ApiManagement ManagementThis package contains Microsoft ApiManagement Management SDK.
@@ -71,6 +71,8 @@
azure-arm-client-runtimetest-jartest
+
+ 1.6.5
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceBaseProperties.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceBaseProperties.java
index 16e591023008..68c85c8b28e9 100644
--- a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceBaseProperties.java
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceBaseProperties.java
@@ -110,14 +110,38 @@ public class ApiManagementServiceBaseProperties {
private List additionalLocations;
/**
- * Custom properties of the API Management service. Setting
+ * Custom properties of the API Management service.</br>Setting
* `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168`
* will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0,
- * 1.1 and 1.2). Setting
+ * 1.1 and 1.2).</br>Setting
* `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11`
- * can be used to disable just TLS 1.1 and setting
+ * can be used to disable just TLS 1.1.</br>Setting
* `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10`
- * can be used to disable TLS 1.0 on an API Management service.
+ * can be used to disable TLS 1.0 on an API Management
+ * service.</br>Setting
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11`
+ * can be used to disable just TLS 1.1 for communications with
+ * backends.</br>Setting
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10`
+ * can be used to disable TLS 1.0 for communications with
+ * backends.</br>Setting
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2`
+ * can be used to enable HTTP2 protocol on an API Management
+ * service.</br>Not specifying any of these properties on PATCH
+ * operation will reset omitted properties' values to their defaults. For
+ * all the settings except Http2 the default value is `True` if the service
+ * was created on or before April 1st 2018 and `False` otherwise. Http2
+ * setting's default value is `False`.</br></br>You can disable
+ * any of next ciphers by using settings
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]`:
+ * TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
+ * TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
+ * TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
+ * TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256,
+ * TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA,
+ * TLS_RSA_WITH_AES_128_CBC_SHA. For example,
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256`:`false`.
+ * The default value is `true` for them.
*/
@JsonProperty(value = "customProperties")
private Map customProperties;
@@ -321,7 +345,7 @@ public ApiManagementServiceBaseProperties withAdditionalLocations(List customProperties() {
}
/**
- * Set custom properties of the API Management service. Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2). Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1 and setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API Management service.
+ * Set custom properties of the API Management service.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2).</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API Management service.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11` can be used to disable just TLS 1.1 for communications with backends.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10` can be used to disable TLS 1.0 for communications with backends.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2` can be used to enable HTTP2 protocol on an API Management service.</br>Not specifying any of these properties on PATCH operation will reset omitted properties' values to their defaults. For all the settings except Http2 the default value is `True` if the service was created on or before April 1st 2018 and `False` otherwise. Http2 setting's default value is `False`.</br></br>You can disable any of next ciphers by using settings `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]`: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA. For example, `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256`:`false`. The default value is `true` for them.
*
* @param customProperties the customProperties value to set
* @return the ApiManagementServiceBaseProperties object itself.
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceUpdateParameters.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceUpdateParameters.java
index e7e342d2943f..cd19935cfa23 100644
--- a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceUpdateParameters.java
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceUpdateParameters.java
@@ -112,14 +112,38 @@ public class ApiManagementServiceUpdateParameters extends ApimResource {
private List additionalLocations;
/**
- * Custom properties of the API Management service. Setting
+ * Custom properties of the API Management service.</br>Setting
* `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168`
* will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0,
- * 1.1 and 1.2). Setting
+ * 1.1 and 1.2).</br>Setting
* `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11`
- * can be used to disable just TLS 1.1 and setting
+ * can be used to disable just TLS 1.1.</br>Setting
* `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10`
- * can be used to disable TLS 1.0 on an API Management service.
+ * can be used to disable TLS 1.0 on an API Management
+ * service.</br>Setting
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11`
+ * can be used to disable just TLS 1.1 for communications with
+ * backends.</br>Setting
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10`
+ * can be used to disable TLS 1.0 for communications with
+ * backends.</br>Setting
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2`
+ * can be used to enable HTTP2 protocol on an API Management
+ * service.</br>Not specifying any of these properties on PATCH
+ * operation will reset omitted properties' values to their defaults. For
+ * all the settings except Http2 the default value is `True` if the service
+ * was created on or before April 1st 2018 and `False` otherwise. Http2
+ * setting's default value is `False`.</br></br>You can disable
+ * any of next ciphers by using settings
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]`:
+ * TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
+ * TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
+ * TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
+ * TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256,
+ * TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA,
+ * TLS_RSA_WITH_AES_128_CBC_SHA. For example,
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256`:`false`.
+ * The default value is `true` for them.
*/
@JsonProperty(value = "properties.customProperties")
private Map customProperties;
@@ -353,7 +377,7 @@ public ApiManagementServiceUpdateParameters withAdditionalLocations(List customProperties() {
}
/**
- * Set custom properties of the API Management service. Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2). Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1 and setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API Management service.
+ * Set custom properties of the API Management service.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2).</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API Management service.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11` can be used to disable just TLS 1.1 for communications with backends.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10` can be used to disable TLS 1.0 for communications with backends.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2` can be used to enable HTTP2 protocol on an API Management service.</br>Not specifying any of these properties on PATCH operation will reset omitted properties' values to their defaults. For all the settings except Http2 the default value is `True` if the service was created on or before April 1st 2018 and `False` otherwise. Http2 setting's default value is `False`.</br></br>You can disable any of next ciphers by using settings `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]`: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA. For example, `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256`:`false`. The default value is `true` for them.
*
* @param customProperties the customProperties value to set
* @return the ApiManagementServiceUpdateParameters object itself.
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiDiagnosticsImpl.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiDiagnosticsImpl.java
index ae6104dd7584..1d13650559b2 100644
--- a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiDiagnosticsImpl.java
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiDiagnosticsImpl.java
@@ -70,10 +70,14 @@ public ApiDiagnosticContract call(DiagnosticContractInner inner) {
public Observable getAsync(String resourceGroupName, String serviceName, String apiId, String diagnosticId) {
ApiDiagnosticsInner client = this.inner();
return client.getAsync(resourceGroupName, serviceName, apiId, diagnosticId)
- .map(new Func1() {
+ .flatMap(new Func1>() {
@Override
- public ApiDiagnosticContract call(DiagnosticContractInner inner) {
- return wrapModel(inner);
+ public Observable call(DiagnosticContractInner inner) {
+ if (inner == null) {
+ return Observable.empty();
+ } else {
+ return Observable.just((ApiDiagnosticContract)wrapModel(inner));
+ }
}
});
}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiIssueAttachmentsImpl.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiIssueAttachmentsImpl.java
index 18da8471469c..fb156814c5e3 100644
--- a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiIssueAttachmentsImpl.java
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiIssueAttachmentsImpl.java
@@ -70,10 +70,14 @@ public IssueAttachmentContract call(IssueAttachmentContractInner inner) {
public Observable getAsync(String resourceGroupName, String serviceName, String apiId, String issueId, String attachmentId) {
ApiIssueAttachmentsInner client = this.inner();
return client.getAsync(resourceGroupName, serviceName, apiId, issueId, attachmentId)
- .map(new Func1() {
+ .flatMap(new Func1>() {
@Override
- public IssueAttachmentContract call(IssueAttachmentContractInner inner) {
- return wrapModel(inner);
+ public Observable call(IssueAttachmentContractInner inner) {
+ if (inner == null) {
+ return Observable.empty();
+ } else {
+ return Observable.just((IssueAttachmentContract)wrapModel(inner));
+ }
}
});
}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiIssueCommentsImpl.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiIssueCommentsImpl.java
index cdb74dd31973..fb62d496482d 100644
--- a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiIssueCommentsImpl.java
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiIssueCommentsImpl.java
@@ -70,10 +70,14 @@ public IssueCommentContract call(IssueCommentContractInner inner) {
public Observable getAsync(String resourceGroupName, String serviceName, String apiId, String issueId, String commentId) {
ApiIssueCommentsInner client = this.inner();
return client.getAsync(resourceGroupName, serviceName, apiId, issueId, commentId)
- .map(new Func1() {
+ .flatMap(new Func1>() {
@Override
- public IssueCommentContract call(IssueCommentContractInner inner) {
- return wrapModel(inner);
+ public Observable call(IssueCommentContractInner inner) {
+ if (inner == null) {
+ return Observable.empty();
+ } else {
+ return Observable.just((IssueCommentContract)wrapModel(inner));
+ }
}
});
}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiIssuesImpl.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiIssuesImpl.java
index 4fe12eb800da..6871aedace1c 100644
--- a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiIssuesImpl.java
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiIssuesImpl.java
@@ -70,10 +70,14 @@ public IssueContract call(IssueContractInner inner) {
public Observable getAsync(String resourceGroupName, String serviceName, String apiId, String issueId) {
ApiIssuesInner client = this.inner();
return client.getAsync(resourceGroupName, serviceName, apiId, issueId)
- .map(new Func1() {
+ .flatMap(new Func1>() {
@Override
- public IssueContract call(IssueContractInner inner) {
- return wrapModel(inner);
+ public Observable call(IssueContractInner inner) {
+ if (inner == null) {
+ return Observable.empty();
+ } else {
+ return Observable.just((IssueContract)wrapModel(inner));
+ }
}
});
}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiManagementServiceResourceInner.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiManagementServiceResourceInner.java
index 2b3c40fa2860..c67a8b86db4f 100644
--- a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiManagementServiceResourceInner.java
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiManagementServiceResourceInner.java
@@ -120,14 +120,38 @@ public class ApiManagementServiceResourceInner extends ApimResource {
private List additionalLocations;
/**
- * Custom properties of the API Management service. Setting
+ * Custom properties of the API Management service.</br>Setting
* `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168`
* will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0,
- * 1.1 and 1.2). Setting
+ * 1.1 and 1.2).</br>Setting
* `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11`
- * can be used to disable just TLS 1.1 and setting
+ * can be used to disable just TLS 1.1.</br>Setting
* `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10`
- * can be used to disable TLS 1.0 on an API Management service.
+ * can be used to disable TLS 1.0 on an API Management
+ * service.</br>Setting
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11`
+ * can be used to disable just TLS 1.1 for communications with
+ * backends.</br>Setting
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10`
+ * can be used to disable TLS 1.0 for communications with
+ * backends.</br>Setting
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2`
+ * can be used to enable HTTP2 protocol on an API Management
+ * service.</br>Not specifying any of these properties on PATCH
+ * operation will reset omitted properties' values to their defaults. For
+ * all the settings except Http2 the default value is `True` if the service
+ * was created on or before April 1st 2018 and `False` otherwise. Http2
+ * setting's default value is `False`.</br></br>You can disable
+ * any of next ciphers by using settings
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]`:
+ * TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
+ * TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
+ * TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
+ * TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256,
+ * TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA,
+ * TLS_RSA_WITH_AES_128_CBC_SHA. For example,
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256`:`false`.
+ * The default value is `true` for them.
*/
@JsonProperty(value = "properties.customProperties")
private Map customProperties;
@@ -367,7 +391,7 @@ public ApiManagementServiceResourceInner withAdditionalLocations(List customProperties() {
}
/**
- * Set custom properties of the API Management service. Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2). Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1 and setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API Management service.
+ * Set custom properties of the API Management service.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2).</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API Management service.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11` can be used to disable just TLS 1.1 for communications with backends.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10` can be used to disable TLS 1.0 for communications with backends.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2` can be used to enable HTTP2 protocol on an API Management service.</br>Not specifying any of these properties on PATCH operation will reset omitted properties' values to their defaults. For all the settings except Http2 the default value is `True` if the service was created on or before April 1st 2018 and `False` otherwise. Http2 setting's default value is `False`.</br></br>You can disable any of next ciphers by using settings `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]`: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA. For example, `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256`:`false`. The default value is `true` for them.
*
* @param customProperties the customProperties value to set
* @return the ApiManagementServiceResourceInner object itself.
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiOperationPolicysImpl.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiOperationPolicysImpl.java
index 9e15e93875a1..8867a6e8000d 100644
--- a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiOperationPolicysImpl.java
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiOperationPolicysImpl.java
@@ -64,10 +64,14 @@ public Completable getEntityTagAsync(String resourceGroupName, String serviceNam
public Observable getAsync(String resourceGroupName, String serviceName, String apiId, String operationId) {
ApiOperationPolicysInner client = this.inner();
return client.getAsync(resourceGroupName, serviceName, apiId, operationId)
- .map(new Func1() {
+ .flatMap(new Func1>() {
@Override
- public OperationApiPolicyContract call(PolicyContractInner inner) {
- return wrapModel(inner);
+ public Observable call(PolicyContractInner inner) {
+ if (inner == null) {
+ return Observable.empty();
+ } else {
+ return Observable.just((OperationApiPolicyContract)wrapModel(inner));
+ }
}
});
}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiOperationsImpl.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiOperationsImpl.java
index e80c055cf70f..aec7ed426f8d 100644
--- a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiOperationsImpl.java
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiOperationsImpl.java
@@ -70,10 +70,14 @@ public OperationContract call(OperationContractInner inner) {
public Observable getAsync(String resourceGroupName, String serviceName, String apiId, String operationId) {
ApiOperationsInner client = this.inner();
return client.getAsync(resourceGroupName, serviceName, apiId, operationId)
- .map(new Func1() {
+ .flatMap(new Func1>() {
@Override
- public OperationContract call(OperationContractInner inner) {
- return wrapModel(inner);
+ public Observable call(OperationContractInner inner) {
+ if (inner == null) {
+ return Observable.empty();
+ } else {
+ return Observable.just((OperationContract)wrapModel(inner));
+ }
}
});
}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiPolicysImpl.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiPolicysImpl.java
index 5721e28cb350..fdcfc0c490f0 100644
--- a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiPolicysImpl.java
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiPolicysImpl.java
@@ -64,10 +64,14 @@ public Completable getEntityTagAsync(String resourceGroupName, String serviceNam
public Observable getAsync(String resourceGroupName, String serviceName, String apiId) {
ApiPolicysInner client = this.inner();
return client.getAsync(resourceGroupName, serviceName, apiId)
- .map(new Func1() {
+ .flatMap(new Func1>() {
@Override
- public ApiPolicyContract call(PolicyContractInner inner) {
- return wrapModel(inner);
+ public Observable call(PolicyContractInner inner) {
+ if (inner == null) {
+ return Observable.empty();
+ } else {
+ return Observable.just((ApiPolicyContract)wrapModel(inner));
+ }
}
});
}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiReleasesImpl.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiReleasesImpl.java
index 882ee3a267a4..4cc8df13df09 100644
--- a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiReleasesImpl.java
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiReleasesImpl.java
@@ -70,10 +70,14 @@ public ApiReleaseContract call(ApiReleaseContractInner inner) {
public Observable getAsync(String resourceGroupName, String serviceName, String apiId, String releaseId) {
ApiReleasesInner client = this.inner();
return client.getAsync(resourceGroupName, serviceName, apiId, releaseId)
- .map(new Func1() {
+ .flatMap(new Func1>() {
@Override
- public ApiReleaseContract call(ApiReleaseContractInner inner) {
- return wrapModel(inner);
+ public Observable call(ApiReleaseContractInner inner) {
+ if (inner == null) {
+ return Observable.empty();
+ } else {
+ return Observable.just((ApiReleaseContract)wrapModel(inner));
+ }
}
});
}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiSchemasImpl.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiSchemasImpl.java
index 07edc6885040..25c5317c2858 100644
--- a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiSchemasImpl.java
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiSchemasImpl.java
@@ -70,10 +70,14 @@ public SchemaContract call(SchemaContractInner inner) {
public Observable getAsync(String resourceGroupName, String serviceName, String apiId, String schemaId) {
ApiSchemasInner client = this.inner();
return client.getAsync(resourceGroupName, serviceName, apiId, schemaId)
- .map(new Func1() {
+ .flatMap(new Func1>() {
@Override
- public SchemaContract call(SchemaContractInner inner) {
- return wrapModel(inner);
+ public Observable call(SchemaContractInner inner) {
+ if (inner == null) {
+ return Observable.empty();
+ } else {
+ return Observable.just((SchemaContract)wrapModel(inner));
+ }
}
});
}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiTagDescriptionsImpl.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiTagDescriptionsImpl.java
index 54cd58293abb..8868ef08ad14 100644
--- a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiTagDescriptionsImpl.java
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ApiTagDescriptionsImpl.java
@@ -70,10 +70,14 @@ public TagDescriptionContract call(TagDescriptionContractInner inner) {
public Observable getAsync(String resourceGroupName, String serviceName, String apiId, String tagId) {
ApiTagDescriptionsInner client = this.inner();
return client.getAsync(resourceGroupName, serviceName, apiId, tagId)
- .map(new Func1() {
+ .flatMap(new Func1>() {
@Override
- public TagDescriptionContract call(TagDescriptionContractInner inner) {
- return wrapModel(inner);
+ public Observable call(TagDescriptionContractInner inner) {
+ if (inner == null) {
+ return Observable.empty();
+ } else {
+ return Observable.just((TagDescriptionContract)wrapModel(inner));
+ }
}
});
}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ProductPolicysImpl.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ProductPolicysImpl.java
index 771a4164c5ec..c40310da8b6a 100644
--- a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ProductPolicysImpl.java
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/ProductPolicysImpl.java
@@ -64,10 +64,14 @@ public Completable getEntityTagAsync(String resourceGroupName, String serviceNam
public Observable getAsync(String resourceGroupName, String serviceName, String productId) {
ProductPolicysInner client = this.inner();
return client.getAsync(resourceGroupName, serviceName, productId)
- .map(new Func1() {
+ .flatMap(new Func1>() {
@Override
- public ProductPolicyContract call(PolicyContractInner inner) {
- return wrapModel(inner);
+ public Observable call(PolicyContractInner inner) {
+ if (inner == null) {
+ return Observable.empty();
+ } else {
+ return Observable.just((ProductPolicyContract)wrapModel(inner));
+ }
}
});
}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/QuotaByPeriodKeysImpl.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/QuotaByPeriodKeysImpl.java
index d0fcfa141921..c76603173c8d 100644
--- a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/QuotaByPeriodKeysImpl.java
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/QuotaByPeriodKeysImpl.java
@@ -43,10 +43,14 @@ public Completable updateAsync(String resourceGroupName, String serviceName, Str
public Observable getAsync(String resourceGroupName, String serviceName, String quotaCounterKey, String quotaPeriodKey) {
QuotaByPeriodKeysInner client = this.inner();
return client.getAsync(resourceGroupName, serviceName, quotaCounterKey, quotaPeriodKey)
- .map(new Func1() {
+ .flatMap(new Func1>() {
@Override
- public QuotaCounterContract call(QuotaCounterContractInner inner) {
- return wrapModel(inner);
+ public Observable call(QuotaCounterContractInner inner) {
+ if (inner == null) {
+ return Observable.empty();
+ } else {
+ return Observable.just((QuotaCounterContract)wrapModel(inner));
+ }
}
});
}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/TagsImpl.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/TagsImpl.java
index 5ea6d43932a4..ca0ec2c4647e 100644
--- a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/TagsImpl.java
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/implementation/TagsImpl.java
@@ -238,10 +238,14 @@ public TagContract call(TagContractInner inner) {
public Observable getByOperationAsync(String resourceGroupName, String serviceName, String apiId, String operationId, String tagId) {
TagsInner client = this.inner();
return client.getByOperationAsync(resourceGroupName, serviceName, apiId, operationId, tagId)
- .map(new Func1() {
+ .flatMap(new Func1>() {
@Override
- public TagContract call(TagContractInner inner) {
- return wrapModel(inner);
+ public Observable call(TagContractInner inner) {
+ if (inner == null) {
+ return Observable.empty();
+ } else {
+ return Observable.just((TagContract)wrapModel(inner));
+ }
}
});
}
diff --git a/billing/resource-manager/v2017_02_27_preview/pom.xml b/billing/resource-manager/v2017_02_27_preview/pom.xml
new file mode 100644
index 000000000000..9db22d20663f
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/pom.xml
@@ -0,0 +1,133 @@
+
+
+ 4.0.0
+ com.microsoft.azure.billing.v2017_02_27_preview
+
+ com.microsoft.azure
+ azure-arm-parent
+ 0.0.3-beta
+ ../../../pom.xml
+
+ azure-mgmt-billing
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for Billing Management
+ This package contains Microsoft Billing Management SDK.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+ UTF-8
+
+
+
+
+ microsoft
+ Microsoft
+
+
+
+
+ com.microsoft.azure
+ azure-client-runtime
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+
+
+ junit
+ junit
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ test
+
+
+ com.microsoft.azure
+ azure-mgmt-resources
+ test
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+ test-jar
+ test
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.7
+ 1.7
+
+
+ com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
+
+
+ /**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ */
+ ]]>
+
+
+
+
+
+
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/DownloadUrl.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/DownloadUrl.java
new file mode 100644
index 000000000000..25dd79e95319
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/DownloadUrl.java
@@ -0,0 +1,49 @@
+/**
+ * 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.billing.v2017_02_27_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A secure URL that can be used to download a PDF invoice until the URL
+ * expires.
+ */
+public class DownloadUrl {
+ /**
+ * The time in UTC at which this download URL will expire.
+ */
+ @JsonProperty(value = "expiryTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime expiryTime;
+
+ /**
+ * The URL to the PDF file.
+ */
+ @JsonProperty(value = "url", access = JsonProperty.Access.WRITE_ONLY)
+ private String url;
+
+ /**
+ * Get the time in UTC at which this download URL will expire.
+ *
+ * @return the expiryTime value
+ */
+ public DateTime expiryTime() {
+ return this.expiryTime;
+ }
+
+ /**
+ * Get the URL to the PDF file.
+ *
+ * @return the url value
+ */
+ public String url() {
+ return this.url;
+ }
+
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/ErrorDetails.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/ErrorDetails.java
new file mode 100644
index 000000000000..f29943ab0e83
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/ErrorDetails.java
@@ -0,0 +1,62 @@
+/**
+ * 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.billing.v2017_02_27_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The details of the error.
+ */
+public class ErrorDetails {
+ /**
+ * Error code.
+ */
+ @JsonProperty(value = "code", access = JsonProperty.Access.WRITE_ONLY)
+ private String code;
+
+ /**
+ * Error message indicating why the operation failed.
+ */
+ @JsonProperty(value = "message", access = JsonProperty.Access.WRITE_ONLY)
+ private String message;
+
+ /**
+ * The target of the particular error.
+ */
+ @JsonProperty(value = "target", access = JsonProperty.Access.WRITE_ONLY)
+ private String target;
+
+ /**
+ * Get error code.
+ *
+ * @return the code value
+ */
+ public String code() {
+ return this.code;
+ }
+
+ /**
+ * Get error message indicating why the operation failed.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Get the target of the particular error.
+ *
+ * @return the target value
+ */
+ public String target() {
+ return this.target;
+ }
+
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/ErrorResponse.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/ErrorResponse.java
new file mode 100644
index 000000000000..2f58153b1991
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/ErrorResponse.java
@@ -0,0 +1,44 @@
+/**
+ * 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.billing.v2017_02_27_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Error response indicates that the service is not able to process the
+ * incoming request. The reason is provided in the error message.
+ */
+public class ErrorResponse {
+ /**
+ * The error property.
+ */
+ @JsonProperty(value = "error")
+ private ErrorDetails error;
+
+ /**
+ * Get the error value.
+ *
+ * @return the error value
+ */
+ public ErrorDetails error() {
+ return this.error;
+ }
+
+ /**
+ * Set the error value.
+ *
+ * @param error the error value to set
+ * @return the ErrorResponse object itself.
+ */
+ public ErrorResponse withError(ErrorDetails error) {
+ this.error = error;
+ return this;
+ }
+
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/ErrorResponseException.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/ErrorResponseException.java
new file mode 100644
index 000000000000..749c77d54031
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/ErrorResponseException.java
@@ -0,0 +1,44 @@
+/**
+ * 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.billing.v2017_02_27_preview;
+
+import com.microsoft.rest.RestException;
+import okhttp3.ResponseBody;
+import retrofit2.Response;
+
+/**
+ * Exception thrown for an invalid response with ErrorResponse information.
+ */
+public class ErrorResponseException extends RestException {
+ /**
+ * Initializes a new instance of the ErrorResponseException class.
+ *
+ * @param message the exception message or the response content if a message is not available
+ * @param response the HTTP response
+ */
+ public ErrorResponseException(final String message, final Response response) {
+ super(message, response);
+ }
+
+ /**
+ * Initializes a new instance of the ErrorResponseException class.
+ *
+ * @param message the exception message or the response content if a message is not available
+ * @param response the HTTP response
+ * @param body the deserialized response body
+ */
+ public ErrorResponseException(final String message, final Response response, final ErrorResponse body) {
+ super(message, response, body);
+ }
+
+ @Override
+ public ErrorResponse body() {
+ return (ErrorResponse) super.body();
+ }
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/Invoice.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/Invoice.java
new file mode 100644
index 000000000000..5612f9952e53
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/Invoice.java
@@ -0,0 +1,53 @@
+/**
+ * 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.billing.v2017_02_27_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.billing.v2017_02_27_preview.implementation.InvoiceInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2017_02_27_preview.implementation.BillingManager;
+import org.joda.time.LocalDate;
+
+/**
+ * Type representing Invoice.
+ */
+public interface Invoice extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the downloadUrl value.
+ */
+ DownloadUrl downloadUrl();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the invoicePeriodEndDate value.
+ */
+ LocalDate invoicePeriodEndDate();
+
+ /**
+ * @return the invoicePeriodStartDate value.
+ */
+ LocalDate invoicePeriodStartDate();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/Invoices.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/Invoices.java
new file mode 100644
index 000000000000..87ebab77f800
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/Invoices.java
@@ -0,0 +1,37 @@
+/**
+ * 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.billing.v2017_02_27_preview;
+
+import com.microsoft.azure.arm.collection.SupportsListing;
+import rx.Observable;
+import com.microsoft.azure.management.billing.v2017_02_27_preview.implementation.InvoicesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Invoices.
+ */
+public interface Invoices extends SupportsListing, HasInner {
+ /**
+ * Gets a named invoice resource. When getting a single invoice, the downloadUrl property is expanded automatically.
+ *
+ * @param invoiceName The name of an invoice resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String invoiceName);
+
+ /**
+ * Gets the most recent invoice. When getting a single invoice, the downloadUrl property is expanded automatically.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getLatestAsync();
+
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/Operation.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/Operation.java
new file mode 100644
index 000000000000..d50c81d585c9
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/Operation.java
@@ -0,0 +1,30 @@
+/**
+ * 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.billing.v2017_02_27_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2017_02_27_preview.implementation.BillingManager;
+import com.microsoft.azure.management.billing.v2017_02_27_preview.implementation.OperationInner;
+
+/**
+ * Type representing Operation.
+ */
+public interface Operation extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ OperationDisplay display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/OperationDisplay.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/OperationDisplay.java
new file mode 100644
index 000000000000..8c583bb7c593
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/OperationDisplay.java
@@ -0,0 +1,62 @@
+/**
+ * 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.billing.v2017_02_27_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The object that represents the operation.
+ */
+public class OperationDisplay {
+ /**
+ * Service provider: Microsoft.Billing.
+ */
+ @JsonProperty(value = "provider", access = JsonProperty.Access.WRITE_ONLY)
+ private String provider;
+
+ /**
+ * Resource on which the operation is performed: Invoice, etc.
+ */
+ @JsonProperty(value = "resource", access = JsonProperty.Access.WRITE_ONLY)
+ private String resource;
+
+ /**
+ * Operation type: Read, write, delete, etc.
+ */
+ @JsonProperty(value = "operation", access = JsonProperty.Access.WRITE_ONLY)
+ private String operation;
+
+ /**
+ * Get service provider: Microsoft.Billing.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Get resource on which the operation is performed: Invoice, etc.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Get operation type: Read, write, delete, etc.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/Operations.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/Operations.java
new file mode 100644
index 000000000000..4f38907de0e0
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/Operations.java
@@ -0,0 +1,27 @@
+/**
+ * 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.billing.v2017_02_27_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.billing.v2017_02_27_preview.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Lists all of the available billing REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/BillingClientImpl.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/BillingClientImpl.java
new file mode 100644
index 000000000000..7a87c5582584
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/BillingClientImpl.java
@@ -0,0 +1,210 @@
+/**
+ * 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.billing.v2017_02_27_preview.implementation;
+
+import com.microsoft.azure.AzureClient;
+import com.microsoft.azure.AzureServiceClient;
+import com.microsoft.rest.credentials.ServiceClientCredentials;
+import com.microsoft.rest.RestClient;
+
+/**
+ * Initializes a new instance of the BillingClientImpl class.
+ */
+public class BillingClientImpl extends AzureServiceClient {
+ /** the {@link AzureClient} used for long running operations. */
+ private AzureClient azureClient;
+
+ /**
+ * Gets the {@link AzureClient} used for long running operations.
+ * @return the azure client;
+ */
+ public AzureClient getAzureClient() {
+ return this.azureClient;
+ }
+
+ /** Version of the API to be used with the client request. The current version is 2017-02-27-preview. */
+ private String apiVersion;
+
+ /**
+ * Gets Version of the API to be used with the client request. The current version is 2017-02-27-preview.
+ *
+ * @return the apiVersion value.
+ */
+ public String apiVersion() {
+ return this.apiVersion;
+ }
+
+ /** Azure Subscription ID. */
+ private String subscriptionId;
+
+ /**
+ * Gets Azure Subscription ID.
+ *
+ * @return the subscriptionId value.
+ */
+ public String subscriptionId() {
+ return this.subscriptionId;
+ }
+
+ /**
+ * Sets Azure Subscription ID.
+ *
+ * @param subscriptionId the subscriptionId value.
+ * @return the service client itself
+ */
+ public BillingClientImpl withSubscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ return this;
+ }
+
+ /** The preferred language for the response. */
+ private String acceptLanguage;
+
+ /**
+ * Gets The preferred language for the response.
+ *
+ * @return the acceptLanguage value.
+ */
+ public String acceptLanguage() {
+ return this.acceptLanguage;
+ }
+
+ /**
+ * Sets The preferred language for the response.
+ *
+ * @param acceptLanguage the acceptLanguage value.
+ * @return the service client itself
+ */
+ public BillingClientImpl withAcceptLanguage(String acceptLanguage) {
+ this.acceptLanguage = acceptLanguage;
+ return this;
+ }
+
+ /** The retry timeout in seconds for Long Running Operations. Default value is 30. */
+ private int longRunningOperationRetryTimeout;
+
+ /**
+ * Gets The retry timeout in seconds for Long Running Operations. Default value is 30.
+ *
+ * @return the longRunningOperationRetryTimeout value.
+ */
+ public int longRunningOperationRetryTimeout() {
+ return this.longRunningOperationRetryTimeout;
+ }
+
+ /**
+ * Sets The retry timeout in seconds for Long Running Operations. Default value is 30.
+ *
+ * @param longRunningOperationRetryTimeout the longRunningOperationRetryTimeout value.
+ * @return the service client itself
+ */
+ public BillingClientImpl withLongRunningOperationRetryTimeout(int longRunningOperationRetryTimeout) {
+ this.longRunningOperationRetryTimeout = longRunningOperationRetryTimeout;
+ return this;
+ }
+
+ /** Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true. */
+ private boolean generateClientRequestId;
+
+ /**
+ * Gets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ *
+ * @return the generateClientRequestId value.
+ */
+ public boolean generateClientRequestId() {
+ return this.generateClientRequestId;
+ }
+
+ /**
+ * Sets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ *
+ * @param generateClientRequestId the generateClientRequestId value.
+ * @return the service client itself
+ */
+ public BillingClientImpl withGenerateClientRequestId(boolean generateClientRequestId) {
+ this.generateClientRequestId = generateClientRequestId;
+ return this;
+ }
+
+ /**
+ * The InvoicesInner object to access its operations.
+ */
+ private InvoicesInner invoices;
+
+ /**
+ * Gets the InvoicesInner object to access its operations.
+ * @return the InvoicesInner object.
+ */
+ public InvoicesInner invoices() {
+ return this.invoices;
+ }
+
+ /**
+ * The OperationsInner object to access its operations.
+ */
+ private OperationsInner operations;
+
+ /**
+ * Gets the OperationsInner object to access its operations.
+ * @return the OperationsInner object.
+ */
+ public OperationsInner operations() {
+ return this.operations;
+ }
+
+ /**
+ * Initializes an instance of BillingClient client.
+ *
+ * @param credentials the management credentials for Azure
+ */
+ public BillingClientImpl(ServiceClientCredentials credentials) {
+ this("https://management.azure.com", credentials);
+ }
+
+ /**
+ * Initializes an instance of BillingClient client.
+ *
+ * @param baseUrl the base URL of the host
+ * @param credentials the management credentials for Azure
+ */
+ public BillingClientImpl(String baseUrl, ServiceClientCredentials credentials) {
+ super(baseUrl, credentials);
+ initialize();
+ }
+
+ /**
+ * Initializes an instance of BillingClient client.
+ *
+ * @param restClient the REST client to connect to Azure.
+ */
+ public BillingClientImpl(RestClient restClient) {
+ super(restClient);
+ initialize();
+ }
+
+ protected void initialize() {
+ this.apiVersion = "2017-02-27-preview";
+ this.acceptLanguage = "en-US";
+ this.longRunningOperationRetryTimeout = 30;
+ this.generateClientRequestId = true;
+ this.invoices = new InvoicesInner(restClient().retrofit(), this);
+ this.operations = new OperationsInner(restClient().retrofit(), this);
+ this.azureClient = new AzureClient(this);
+ }
+
+ /**
+ * Gets the User-Agent header for the client.
+ *
+ * @return the user agent string.
+ */
+ @Override
+ public String userAgent() {
+ return String.format("%s (%s, %s, auto-generated)", super.userAgent(), "BillingClient", "2017-02-27-preview");
+ }
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/BillingManager.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/BillingManager.java
new file mode 100644
index 000000000000..974c93ed70cd
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/BillingManager.java
@@ -0,0 +1,111 @@
+/**
+ * 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.billing.v2017_02_27_preview.implementation;
+
+import com.microsoft.azure.AzureEnvironment;
+import com.microsoft.azure.AzureResponseBuilder;
+import com.microsoft.azure.credentials.AzureTokenCredentials;
+import com.microsoft.azure.management.apigeneration.Beta;
+import com.microsoft.azure.management.apigeneration.Beta.SinceVersion;
+import com.microsoft.azure.arm.resources.AzureConfigurable;
+import com.microsoft.azure.serializer.AzureJacksonAdapter;
+import com.microsoft.rest.RestClient;
+import com.microsoft.azure.management.billing.v2017_02_27_preview.Invoices;
+import com.microsoft.azure.management.billing.v2017_02_27_preview.Operations;
+import com.microsoft.azure.arm.resources.implementation.AzureConfigurableCoreImpl;
+import com.microsoft.azure.arm.resources.implementation.ManagerCore;
+
+/**
+ * Entry point to Azure Billing resource management.
+ */
+public final class BillingManager extends ManagerCore {
+ private Invoices invoices;
+ private Operations operations;
+ /**
+ * Get a Configurable instance that can be used to create BillingManager with optional configuration.
+ *
+ * @return the instance allowing configurations
+ */
+ public static Configurable configure() {
+ return new BillingManager.ConfigurableImpl();
+ }
+ /**
+ * Creates an instance of BillingManager that exposes Billing resource management API entry points.
+ *
+ * @param credentials the credentials to use
+ * @param subscriptionId the subscription UUID
+ * @return the BillingManager
+ */
+ public static BillingManager authenticate(AzureTokenCredentials credentials, String subscriptionId) {
+ return new BillingManager(new RestClient.Builder()
+ .withBaseUrl(credentials.environment(), AzureEnvironment.Endpoint.RESOURCE_MANAGER)
+ .withCredentials(credentials)
+ .withSerializerAdapter(new AzureJacksonAdapter())
+ .withResponseBuilderFactory(new AzureResponseBuilder.Factory())
+ .build(), subscriptionId);
+ }
+ /**
+ * Creates an instance of BillingManager that exposes Billing resource management API entry points.
+ *
+ * @param restClient the RestClient to be used for API calls.
+ * @param subscriptionId the subscription UUID
+ * @return the BillingManager
+ */
+ public static BillingManager authenticate(RestClient restClient, String subscriptionId) {
+ return new BillingManager(restClient, subscriptionId);
+ }
+ /**
+ * The interface allowing configurations to be set.
+ */
+ public interface Configurable extends AzureConfigurable {
+ /**
+ * Creates an instance of BillingManager that exposes Billing management API entry points.
+ *
+ * @param credentials the credentials to use
+ * @param subscriptionId the subscription UUID
+ * @return the interface exposing Billing management API entry points that work across subscriptions
+ */
+ BillingManager authenticate(AzureTokenCredentials credentials, String subscriptionId);
+ }
+
+ /**
+ * @return Entry point to manage Invoices.
+ */
+ public Invoices invoices() {
+ if (this.invoices == null) {
+ this.invoices = new InvoicesImpl(this);
+ }
+ return this.invoices;
+ }
+
+ /**
+ * @return Entry point to manage Operations.
+ */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(this);
+ }
+ return this.operations;
+ }
+
+ /**
+ * The implementation for Configurable interface.
+ */
+ private static final class ConfigurableImpl extends AzureConfigurableCoreImpl implements Configurable {
+ public BillingManager authenticate(AzureTokenCredentials credentials, String subscriptionId) {
+ return BillingManager.authenticate(buildRestClient(credentials), subscriptionId);
+ }
+ }
+ private BillingManager(RestClient restClient, String subscriptionId) {
+ super(
+ restClient,
+ subscriptionId,
+ new BillingClientImpl(restClient).withSubscriptionId(subscriptionId));
+ }
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/IdParsingUtils.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/IdParsingUtils.java
new file mode 100644
index 000000000000..815c2fdab6c1
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/IdParsingUtils.java
@@ -0,0 +1,57 @@
+/**
+ * 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.billing.v2017_02_27_preview.implementation;
+import java.util.Arrays;
+import java.util.Iterator;
+
+class IdParsingUtils {
+ public static String getValueFromIdByName(String id, String name) {
+ if (id == null) {
+ return null;
+ }
+ Iterable iterable = Arrays.asList(id.split("/"));
+ Iterator itr = iterable.iterator();
+ while (itr.hasNext()) {
+ String part = itr.next();
+ if (part != null && part.trim() != "") {
+ if (part.equalsIgnoreCase(name)) {
+ if (itr.hasNext()) {
+ return itr.next();
+ } else {
+ return null;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ public static String getValueFromIdByPosition(String id, int pos) {
+ if (id == null) {
+ return null;
+ }
+ Iterable iterable = Arrays.asList(id.split("/"));
+ Iterator itr = iterable.iterator();
+ int index = 0;
+ while (itr.hasNext()) {
+ String part = itr.next();
+ if (part != null && part.trim() != "") {
+ if (index == pos) {
+ if (itr.hasNext()) {
+ return itr.next();
+ } else {
+ return null;
+ }
+ }
+ }
+ index++;
+ }
+ return null;
+ }
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/InvoiceImpl.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/InvoiceImpl.java
new file mode 100644
index 000000000000..e0e127dc2a71
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/InvoiceImpl.java
@@ -0,0 +1,72 @@
+/**
+ * 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.billing.v2017_02_27_preview.implementation;
+
+import com.microsoft.azure.management.billing.v2017_02_27_preview.Invoice;
+import com.microsoft.azure.arm.model.implementation.IndexableRefreshableWrapperImpl;
+import rx.Observable;
+import com.microsoft.azure.management.billing.v2017_02_27_preview.DownloadUrl;
+import org.joda.time.LocalDate;
+
+class InvoiceImpl extends IndexableRefreshableWrapperImpl implements Invoice {
+ private String invoiceName;
+ private final BillingManager manager;
+
+ InvoiceImpl(InvoiceInner inner, BillingManager manager) {
+ super(null, inner);
+ this.manager = manager;
+ // set resource ancestor and positional variables
+ this.invoiceName = IdParsingUtils.getValueFromIdByName(inner.id(), "invoices");
+ }
+
+ @Override
+ public BillingManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ InvoicesInner client = this.manager().inner().invoices();
+ return client.getAsync(this.invoiceName);
+ }
+
+
+
+ @Override
+ public DownloadUrl downloadUrl() {
+ return this.inner().downloadUrl();
+ }
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+ @Override
+ public LocalDate invoicePeriodEndDate() {
+ return this.inner().invoicePeriodEndDate();
+ }
+
+ @Override
+ public LocalDate invoicePeriodStartDate() {
+ return this.inner().invoicePeriodStartDate();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public String type() {
+ return this.inner().type();
+ }
+
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/InvoiceInner.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/InvoiceInner.java
new file mode 100644
index 000000000000..2b29ddb0f69d
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/InvoiceInner.java
@@ -0,0 +1,79 @@
+/**
+ * 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.billing.v2017_02_27_preview.implementation;
+
+import org.joda.time.LocalDate;
+import com.microsoft.azure.management.billing.v2017_02_27_preview.DownloadUrl;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * An invoice resource can be used download a PDF version of an invoice.
+ */
+@JsonFlatten
+public class InvoiceInner extends ProxyResource {
+ /**
+ * The start of the date range covered by the invoice.
+ */
+ @JsonProperty(value = "properties.invoicePeriodStartDate", access = JsonProperty.Access.WRITE_ONLY)
+ private LocalDate invoicePeriodStartDate;
+
+ /**
+ * The end of the date range covered by the invoice.
+ */
+ @JsonProperty(value = "properties.invoicePeriodEndDate", access = JsonProperty.Access.WRITE_ONLY)
+ private LocalDate invoicePeriodEndDate;
+
+ /**
+ * A secure link to download the PDF version of an invoice. The link will
+ * cease to work after its expiry time is reached.
+ */
+ @JsonProperty(value = "properties.downloadUrl")
+ private DownloadUrl downloadUrl;
+
+ /**
+ * Get the start of the date range covered by the invoice.
+ *
+ * @return the invoicePeriodStartDate value
+ */
+ public LocalDate invoicePeriodStartDate() {
+ return this.invoicePeriodStartDate;
+ }
+
+ /**
+ * Get the end of the date range covered by the invoice.
+ *
+ * @return the invoicePeriodEndDate value
+ */
+ public LocalDate invoicePeriodEndDate() {
+ return this.invoicePeriodEndDate;
+ }
+
+ /**
+ * Get a secure link to download the PDF version of an invoice. The link will cease to work after its expiry time is reached.
+ *
+ * @return the downloadUrl value
+ */
+ public DownloadUrl downloadUrl() {
+ return this.downloadUrl;
+ }
+
+ /**
+ * Set a secure link to download the PDF version of an invoice. The link will cease to work after its expiry time is reached.
+ *
+ * @param downloadUrl the downloadUrl value to set
+ * @return the InvoiceInner object itself.
+ */
+ public InvoiceInner withDownloadUrl(DownloadUrl downloadUrl) {
+ this.downloadUrl = downloadUrl;
+ return this;
+ }
+
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/InvoicesImpl.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/InvoicesImpl.java
new file mode 100644
index 000000000000..988869488b2a
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/InvoicesImpl.java
@@ -0,0 +1,92 @@
+/**
+ * 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.
+ * jkl
+ */
+
+package com.microsoft.azure.management.billing.v2017_02_27_preview.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.billing.v2017_02_27_preview.Invoices;
+import rx.Observable;
+import rx.functions.Func1;
+import com.microsoft.azure.PagedList;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.billing.v2017_02_27_preview.Invoice;
+import com.microsoft.azure.arm.utils.PagedListConverter;
+
+class InvoicesImpl extends WrapperImpl implements Invoices {
+ private PagedListConverter converter;
+ private final BillingManager manager;
+
+ InvoicesImpl(BillingManager manager) {
+ super(manager.inner().invoices());
+ this.manager = manager;
+ this.converter = new PagedListConverter() {
+ @Override
+ public Observable typeConvertAsync(InvoiceInner inner) {
+ return Observable.just((Invoice) wrapModel(inner));
+ }
+ };
+ }
+
+ public BillingManager manager() {
+ return this.manager;
+ }
+
+ private InvoiceImpl wrapModel(InvoiceInner inner) {
+ return new InvoiceImpl(inner, manager());
+ }
+
+ @Override
+ public Observable getAsync(String invoiceName) {
+ InvoicesInner client = this.inner();
+ return client.getAsync(invoiceName)
+ .map(new Func1() {
+ @Override
+ public Invoice call(InvoiceInner inner) {
+ return new InvoiceImpl(inner, manager());
+ }
+ });
+ }
+
+ @Override
+ public Observable getLatestAsync() {
+ InvoicesInner client = this.inner();
+ return client.getLatestAsync()
+ .map(new Func1() {
+ @Override
+ public Invoice call(InvoiceInner inner) {
+ return new InvoiceImpl(inner, manager());
+ }
+ });
+ }
+
+ @Override
+ public PagedList list() {
+ InvoicesInner client = this.inner();
+ return converter.convert(client.list());
+ }
+
+ @Override
+ public Observable listAsync() {
+ InvoicesInner client = this.inner();
+ return client.listAsync()
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public Invoice call(InvoiceInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/InvoicesInner.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/InvoicesInner.java
new file mode 100644
index 000000000000..d03109e68107
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/InvoicesInner.java
@@ -0,0 +1,571 @@
+/**
+ * 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.billing.v2017_02_27_preview.implementation;
+
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.AzureServiceFuture;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.management.billing.v2017_02_27_preview.ErrorResponseException;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+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.http.Url;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Invoices.
+ */
+public class InvoicesInner {
+ /** The Retrofit service to perform REST calls. */
+ private InvoicesService service;
+ /** The service client containing this operation class. */
+ private BillingClientImpl client;
+
+ /**
+ * Initializes an instance of InvoicesInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public InvoicesInner(Retrofit retrofit, BillingClientImpl client) {
+ this.service = retrofit.create(InvoicesService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for Invoices to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface InvoicesService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.billing.v2017_02_27_preview.Invoices list" })
+ @GET("subscriptions/{subscriptionId}/providers/Microsoft.Billing/invoices")
+ Observable> list(@Path("subscriptionId") String subscriptionId, @Query("$expand") String expand, @Query("$filter") String filter, @Query("$skiptoken") String skiptoken, @Query("$top") Integer top, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.billing.v2017_02_27_preview.Invoices get" })
+ @GET("subscriptions/{subscriptionId}/providers/Microsoft.Billing/invoices/{invoiceName}")
+ Observable> get(@Path("subscriptionId") String subscriptionId, @Path("invoiceName") String invoiceName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.billing.v2017_02_27_preview.Invoices getLatest" })
+ @GET("subscriptions/{subscriptionId}/providers/Microsoft.Billing/invoices/latest")
+ Observable> getLatest(@Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.billing.v2017_02_27_preview.Invoices listNext" })
+ @GET
+ Observable> listNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Lists the available invoices for a subscription in reverse chronological order beginning with the most recent invoice. In preview, invoices are available via this API only for invoice periods which end December 1, 2016 or later.
+ *
+ * @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 PagedList<InvoiceInner> object if successful.
+ */
+ public PagedList list() {
+ ServiceResponse> response = listSinglePageAsync().toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Lists the available invoices for a subscription in reverse chronological order beginning with the most recent invoice. In preview, invoices are available via this API only for invoice periods which end December 1, 2016 or later.
+ *
+ * @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(final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listSinglePageAsync(),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Lists the available invoices for a subscription in reverse chronological order beginning with the most recent invoice. In preview, invoices are available via this API only for invoice periods which end December 1, 2016 or later.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<InvoiceInner> object
+ */
+ public Observable> listAsync() {
+ return listWithServiceResponseAsync()
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Lists the available invoices for a subscription in reverse chronological order beginning with the most recent invoice. In preview, invoices are available via this API only for invoice periods which end December 1, 2016 or later.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<InvoiceInner> object
+ */
+ public Observable>> listWithServiceResponseAsync() {
+ return listSinglePageAsync()
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Lists the available invoices for a subscription in reverse chronological order beginning with the most recent invoice. In preview, invoices are available via this API only for invoice periods which end December 1, 2016 or later.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<InvoiceInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listSinglePageAsync() {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ final String expand = null;
+ final String filter = null;
+ final String skiptoken = null;
+ final Integer top = null;
+ return service.list(this.client.subscriptionId(), expand, filter, skiptoken, top, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ /**
+ * Lists the available invoices for a subscription in reverse chronological order beginning with the most recent invoice. In preview, invoices are available via this API only for invoice periods which end December 1, 2016 or later.
+ *
+ * @param expand May be used to expand the downloadUrl property within a list of invoices. This enables download links to be generated for multiple invoices at once. By default, downloadURLs are not included when listing invoices.
+ * @param filter May be used to filter invoices by invoicePeriodEndDate. The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'. It does not currently support 'ne', 'or', or 'not'
+ * @param skiptoken Skiptoken is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls.
+ * @param top May be used to limit the number of results to the most recent N invoices.
+ * @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 PagedList<InvoiceInner> object if successful.
+ */
+ public PagedList list(final String expand, final String filter, final String skiptoken, final Integer top) {
+ ServiceResponse> response = listSinglePageAsync(expand, filter, skiptoken, top).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Lists the available invoices for a subscription in reverse chronological order beginning with the most recent invoice. In preview, invoices are available via this API only for invoice periods which end December 1, 2016 or later.
+ *
+ * @param expand May be used to expand the downloadUrl property within a list of invoices. This enables download links to be generated for multiple invoices at once. By default, downloadURLs are not included when listing invoices.
+ * @param filter May be used to filter invoices by invoicePeriodEndDate. The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'. It does not currently support 'ne', 'or', or 'not'
+ * @param skiptoken Skiptoken is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls.
+ * @param top May be used to limit the number of results to the most recent N invoices.
+ * @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(final String expand, final String filter, final String skiptoken, final Integer top, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listSinglePageAsync(expand, filter, skiptoken, top),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Lists the available invoices for a subscription in reverse chronological order beginning with the most recent invoice. In preview, invoices are available via this API only for invoice periods which end December 1, 2016 or later.
+ *
+ * @param expand May be used to expand the downloadUrl property within a list of invoices. This enables download links to be generated for multiple invoices at once. By default, downloadURLs are not included when listing invoices.
+ * @param filter May be used to filter invoices by invoicePeriodEndDate. The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'. It does not currently support 'ne', 'or', or 'not'
+ * @param skiptoken Skiptoken is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls.
+ * @param top May be used to limit the number of results to the most recent N invoices.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<InvoiceInner> object
+ */
+ public Observable> listAsync(final String expand, final String filter, final String skiptoken, final Integer top) {
+ return listWithServiceResponseAsync(expand, filter, skiptoken, top)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Lists the available invoices for a subscription in reverse chronological order beginning with the most recent invoice. In preview, invoices are available via this API only for invoice periods which end December 1, 2016 or later.
+ *
+ * @param expand May be used to expand the downloadUrl property within a list of invoices. This enables download links to be generated for multiple invoices at once. By default, downloadURLs are not included when listing invoices.
+ * @param filter May be used to filter invoices by invoicePeriodEndDate. The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'. It does not currently support 'ne', 'or', or 'not'
+ * @param skiptoken Skiptoken is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls.
+ * @param top May be used to limit the number of results to the most recent N invoices.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<InvoiceInner> object
+ */
+ public Observable>> listWithServiceResponseAsync(final String expand, final String filter, final String skiptoken, final Integer top) {
+ return listSinglePageAsync(expand, filter, skiptoken, top)
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Lists the available invoices for a subscription in reverse chronological order beginning with the most recent invoice. In preview, invoices are available via this API only for invoice periods which end December 1, 2016 or later.
+ *
+ ServiceResponse> * @param expand May be used to expand the downloadUrl property within a list of invoices. This enables download links to be generated for multiple invoices at once. By default, downloadURLs are not included when listing invoices.
+ ServiceResponse> * @param filter May be used to filter invoices by invoicePeriodEndDate. The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'. It does not currently support 'ne', 'or', or 'not'
+ ServiceResponse> * @param skiptoken Skiptoken is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls.
+ ServiceResponse> * @param top May be used to limit the number of results to the most recent N invoices.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<InvoiceInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listSinglePageAsync(final String expand, final String filter, final String skiptoken, final Integer top) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.list(this.client.subscriptionId(), expand, filter, skiptoken, top, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } 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);
+ }
+
+ /**
+ * Gets a named invoice resource. When getting a single invoice, the downloadUrl property is expanded automatically.
+ *
+ * @param invoiceName The name of an invoice 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 InvoiceInner object if successful.
+ */
+ public InvoiceInner get(String invoiceName) {
+ return getWithServiceResponseAsync(invoiceName).toBlocking().single().body();
+ }
+
+ /**
+ * Gets a named invoice resource. When getting a single invoice, the downloadUrl property is expanded automatically.
+ *
+ * @param invoiceName The name of an invoice 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 getAsync(String invoiceName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(getWithServiceResponseAsync(invoiceName), serviceCallback);
+ }
+
+ /**
+ * Gets a named invoice resource. When getting a single invoice, the downloadUrl property is expanded automatically.
+ *
+ * @param invoiceName The name of an invoice resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the InvoiceInner object
+ */
+ public Observable getAsync(String invoiceName) {
+ return getWithServiceResponseAsync(invoiceName).map(new Func1, InvoiceInner>() {
+ @Override
+ public InvoiceInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Gets a named invoice resource. When getting a single invoice, the downloadUrl property is expanded automatically.
+ *
+ * @param invoiceName The name of an invoice resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the InvoiceInner object
+ */
+ public Observable> getWithServiceResponseAsync(String invoiceName) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (invoiceName == null) {
+ throw new IllegalArgumentException("Parameter invoiceName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.get(this.client.subscriptionId(), invoiceName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = getDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse getDelegate(Response response) throws ErrorResponseException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(ErrorResponseException.class)
+ .build(response);
+ }
+
+ /**
+ * Gets the most recent invoice. When getting a single invoice, the downloadUrl property is expanded automatically.
+ *
+ * @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 InvoiceInner object if successful.
+ */
+ public InvoiceInner getLatest() {
+ return getLatestWithServiceResponseAsync().toBlocking().single().body();
+ }
+
+ /**
+ * Gets the most recent invoice. When getting a single invoice, the downloadUrl property is expanded automatically.
+ *
+ * @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 getLatestAsync(final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(getLatestWithServiceResponseAsync(), serviceCallback);
+ }
+
+ /**
+ * Gets the most recent invoice. When getting a single invoice, the downloadUrl property is expanded automatically.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the InvoiceInner object
+ */
+ public Observable getLatestAsync() {
+ return getLatestWithServiceResponseAsync().map(new Func1, InvoiceInner>() {
+ @Override
+ public InvoiceInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Gets the most recent invoice. When getting a single invoice, the downloadUrl property is expanded automatically.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the InvoiceInner object
+ */
+ public Observable> getLatestWithServiceResponseAsync() {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.getLatest(this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = getLatestDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse getLatestDelegate(Response response) throws ErrorResponseException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(ErrorResponseException.class)
+ .build(response);
+ }
+
+ /**
+ * Lists the available invoices for a subscription in reverse chronological order beginning with the most recent invoice. In preview, invoices are available via this API only for invoice periods which end December 1, 2016 or later.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @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 PagedList<InvoiceInner> object if successful.
+ */
+ public PagedList listNext(final String nextPageLink) {
+ ServiceResponse> response = listNextSinglePageAsync(nextPageLink).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Lists the available invoices for a subscription in reverse chronological order beginning with the most recent invoice. In preview, invoices are available via this API only for invoice periods which end December 1, 2016 or later.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+ * @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> listNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listNextSinglePageAsync(nextPageLink),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Lists the available invoices for a subscription in reverse chronological order beginning with the most recent invoice. In preview, invoices are available via this API only for invoice periods which end December 1, 2016 or later.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<InvoiceInner> object
+ */
+ public Observable> listNextAsync(final String nextPageLink) {
+ return listNextWithServiceResponseAsync(nextPageLink)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Lists the available invoices for a subscription in reverse chronological order beginning with the most recent invoice. In preview, invoices are available via this API only for invoice periods which end December 1, 2016 or later.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<InvoiceInner> object
+ */
+ public Observable>> listNextWithServiceResponseAsync(final String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink)
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Lists the available invoices for a subscription in reverse chronological order beginning with the most recent invoice. In preview, invoices are available via this API only for invoice periods which end December 1, 2016 or later.
+ *
+ ServiceResponse> * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<InvoiceInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listNextSinglePageAsync(final String nextPageLink) {
+ if (nextPageLink == null) {
+ throw new IllegalArgumentException("Parameter nextPageLink is required and cannot be null.");
+ }
+ String nextUrl = String.format("%s", nextPageLink);
+ return service.listNext(nextUrl, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listNextDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listNextDelegate(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/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/OperationImpl.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/OperationImpl.java
new file mode 100644
index 000000000000..ae62e8d8796d
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/OperationImpl.java
@@ -0,0 +1,37 @@
+/**
+ * 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.billing.v2017_02_27_preview.implementation;
+
+import com.microsoft.azure.management.billing.v2017_02_27_preview.Operation;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.billing.v2017_02_27_preview.OperationDisplay;
+
+class OperationImpl extends WrapperImpl implements Operation {
+ private final BillingManager manager;
+ OperationImpl(OperationInner inner, BillingManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public BillingManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public OperationDisplay display() {
+ return this.inner().display();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/OperationInner.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/OperationInner.java
new file mode 100644
index 000000000000..0a9010e1cb04
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/OperationInner.java
@@ -0,0 +1,59 @@
+/**
+ * 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.billing.v2017_02_27_preview.implementation;
+
+import com.microsoft.azure.management.billing.v2017_02_27_preview.OperationDisplay;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A Billing REST API operation.
+ */
+public class OperationInner {
+ /**
+ * Operation name: {provider}/{resource}/{operation}.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * The object that represents the operation.
+ */
+ @JsonProperty(value = "display")
+ private OperationDisplay display;
+
+ /**
+ * Get operation name: {provider}/{resource}/{operation}.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the object that represents the operation.
+ *
+ * @return the display value
+ */
+ public OperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the object that represents the operation.
+ *
+ * @param display the display value to set
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withDisplay(OperationDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/OperationsImpl.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/OperationsImpl.java
new file mode 100644
index 000000000000..86e77ad137da
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/OperationsImpl.java
@@ -0,0 +1,49 @@
+/**
+ * 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.
+ * abc
+ */
+
+package com.microsoft.azure.management.billing.v2017_02_27_preview.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.billing.v2017_02_27_preview.Operations;
+import rx.functions.Func1;
+import rx.Observable;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.billing.v2017_02_27_preview.Operation;
+
+class OperationsImpl extends WrapperImpl implements Operations {
+ private final BillingManager manager;
+
+ OperationsImpl(BillingManager manager) {
+ super(manager.inner().operations());
+ this.manager = manager;
+ }
+
+ public BillingManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable listAsync() {
+ OperationsInner client = this.inner();
+ return client.listAsync()
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public Operation call(OperationInner inner) {
+ return new OperationImpl(inner, manager());
+ }
+ });
+ }
+
+}
diff --git a/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/OperationsInner.java b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/OperationsInner.java
new file mode 100644
index 000000000000..81ce5ddd79d4
--- /dev/null
+++ b/billing/resource-manager/v2017_02_27_preview/src/main/java/com/microsoft/azure/management/billing/v2017_02_27_preview/implementation/OperationsInner.java
@@ -0,0 +1,283 @@
+/**
+ * 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.billing.v2017_02_27_preview.implementation;
+
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.AzureServiceFuture;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.management.billing.v2017_02_27_preview.ErrorResponseException;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+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.Query;
+import retrofit2.http.Url;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Operations.
+ */
+public class OperationsInner {
+ /** The Retrofit service to perform REST calls. */
+ private OperationsService service;
+ /** The service client containing this operation class. */
+ private BillingClientImpl client;
+
+ /**
+ * Initializes an instance of OperationsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public OperationsInner(Retrofit retrofit, BillingClientImpl client) {
+ this.service = retrofit.create(OperationsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for Operations to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface OperationsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.billing.v2017_02_27_preview.Operations list" })
+ @GET("providers/Microsoft.Billing/operations")
+ Observable> list(@Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.billing.v2017_02_27_preview.Operations listNext" })
+ @GET
+ Observable> listNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Lists all of the available billing REST API operations.
+ *
+ * @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 PagedList<OperationInner> object if successful.
+ */
+ public PagedList list() {
+ ServiceResponse> response = listSinglePageAsync().toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Lists all of the available billing REST API operations.
+ *
+ * @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(final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listSinglePageAsync(),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Lists all of the available billing REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<OperationInner> object
+ */
+ public Observable> listAsync() {
+ return listWithServiceResponseAsync()
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Lists all of the available billing REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<OperationInner> object
+ */
+ public Observable>> listWithServiceResponseAsync() {
+ return listSinglePageAsync()
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Lists all of the available billing REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<OperationInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listSinglePageAsync() {
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.list(this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response