diff --git a/sdk/billing/mgmt-v2019_10_01_preview/pom.xml b/sdk/billing/mgmt-v2019_10_01_preview/pom.xml
new file mode 100644
index 000000000000..537ffc29bbe6
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.billing.v2019_10_01_preview
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.1.0
+ ../../../pom.management.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
+
+ 1.6.5
+
+
+
+
+
+ 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/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AcceptTransferRequest.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AcceptTransferRequest.java
new file mode 100644
index 000000000000..f6c6e1f949c6
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AcceptTransferRequest.java
@@ -0,0 +1,46 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Request parameters to accept transfer.
+ */
+@JsonFlatten
+public class AcceptTransferRequest {
+ /**
+ * Request parameters to accept transfer.
+ */
+ @JsonProperty(value = "properties.productDetails")
+ private List productDetails;
+
+ /**
+ * Get request parameters to accept transfer.
+ *
+ * @return the productDetails value
+ */
+ public List productDetails() {
+ return this.productDetails;
+ }
+
+ /**
+ * Set request parameters to accept transfer.
+ *
+ * @param productDetails the productDetails value to set
+ * @return the AcceptTransferRequest object itself.
+ */
+ public AcceptTransferRequest withProductDetails(List productDetails) {
+ this.productDetails = productDetails;
+ return this;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AcceptanceMode.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AcceptanceMode.java
new file mode 100644
index 000000000000..75ff55497ea3
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AcceptanceMode.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.v2019_10_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AcceptanceMode.
+ */
+public final class AcceptanceMode extends ExpandableStringEnum {
+ /** Static value ClickToAccept for AcceptanceMode. */
+ public static final AcceptanceMode CLICK_TO_ACCEPT = fromString("ClickToAccept");
+
+ /** Static value ESignEmbedded for AcceptanceMode. */
+ public static final AcceptanceMode ESIGN_EMBEDDED = fromString("ESignEmbedded");
+
+ /** Static value ESignOffline for AcceptanceMode. */
+ public static final AcceptanceMode ESIGN_OFFLINE = fromString("ESignOffline");
+
+ /**
+ * Creates or finds a AcceptanceMode from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AcceptanceMode
+ */
+ @JsonCreator
+ public static AcceptanceMode fromString(String name) {
+ return fromString(name, AcceptanceMode.class);
+ }
+
+ /**
+ * @return known AcceptanceMode values
+ */
+ public static Collection values() {
+ return values(AcceptanceMode.class);
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AccountType.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AccountType.java
new file mode 100644
index 000000000000..fcd9416e585f
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AccountType.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.v2019_10_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AccountType.
+ */
+public final class AccountType extends ExpandableStringEnum {
+ /** Static value Enterprise for AccountType. */
+ public static final AccountType ENTERPRISE = fromString("Enterprise");
+
+ /** Static value Individual for AccountType. */
+ public static final AccountType INDIVIDUAL = fromString("Individual");
+
+ /** Static value Partner for AccountType. */
+ public static final AccountType PARTNER = fromString("Partner");
+
+ /**
+ * Creates or finds a AccountType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AccountType
+ */
+ @JsonCreator
+ public static AccountType fromString(String name) {
+ return fromString(name, AccountType.class);
+ }
+
+ /**
+ * @return known AccountType values
+ */
+ public static Collection values() {
+ return values(AccountType.class);
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Address.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Address.java
new file mode 100644
index 000000000000..2ae7487127a7
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Address.java
@@ -0,0 +1,28 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.AddressInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Address.
+ */
+public interface Address extends HasInner {
+ /**
+ * Validates an address. Use the operation to validate an address before using it as a billing account or a billing profile address.
+ *
+ * @param address the AddressDetails value
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable validateAsync(AddressDetails address);
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AddressDetails.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AddressDetails.java
new file mode 100644
index 000000000000..fae83bd7a457
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AddressDetails.java
@@ -0,0 +1,277 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Address details.
+ */
+public class AddressDetails {
+ /**
+ * First name.
+ */
+ @JsonProperty(value = "firstName")
+ private String firstName;
+
+ /**
+ * Last name.
+ */
+ @JsonProperty(value = "lastName")
+ private String lastName;
+
+ /**
+ * Company name.
+ */
+ @JsonProperty(value = "companyName")
+ private String companyName;
+
+ /**
+ * Address line 1.
+ */
+ @JsonProperty(value = "addressLine1")
+ private String addressLine1;
+
+ /**
+ * Address line 2.
+ */
+ @JsonProperty(value = "addressLine2")
+ private String addressLine2;
+
+ /**
+ * Address line 3.
+ */
+ @JsonProperty(value = "addressLine3")
+ private String addressLine3;
+
+ /**
+ * Address city.
+ */
+ @JsonProperty(value = "city")
+ private String city;
+
+ /**
+ * Address region.
+ */
+ @JsonProperty(value = "region")
+ private String region;
+
+ /**
+ * Country code uses ISO2, 2-digit format.
+ */
+ @JsonProperty(value = "country")
+ private String country;
+
+ /**
+ * Postal code.
+ */
+ @JsonProperty(value = "postalCode")
+ private String postalCode;
+
+ /**
+ * Get first name.
+ *
+ * @return the firstName value
+ */
+ public String firstName() {
+ return this.firstName;
+ }
+
+ /**
+ * Set first name.
+ *
+ * @param firstName the firstName value to set
+ * @return the AddressDetails object itself.
+ */
+ public AddressDetails withFirstName(String firstName) {
+ this.firstName = firstName;
+ return this;
+ }
+
+ /**
+ * Get last name.
+ *
+ * @return the lastName value
+ */
+ public String lastName() {
+ return this.lastName;
+ }
+
+ /**
+ * Set last name.
+ *
+ * @param lastName the lastName value to set
+ * @return the AddressDetails object itself.
+ */
+ public AddressDetails withLastName(String lastName) {
+ this.lastName = lastName;
+ return this;
+ }
+
+ /**
+ * Get company name.
+ *
+ * @return the companyName value
+ */
+ public String companyName() {
+ return this.companyName;
+ }
+
+ /**
+ * Set company name.
+ *
+ * @param companyName the companyName value to set
+ * @return the AddressDetails object itself.
+ */
+ public AddressDetails withCompanyName(String companyName) {
+ this.companyName = companyName;
+ return this;
+ }
+
+ /**
+ * Get address line 1.
+ *
+ * @return the addressLine1 value
+ */
+ public String addressLine1() {
+ return this.addressLine1;
+ }
+
+ /**
+ * Set address line 1.
+ *
+ * @param addressLine1 the addressLine1 value to set
+ * @return the AddressDetails object itself.
+ */
+ public AddressDetails withAddressLine1(String addressLine1) {
+ this.addressLine1 = addressLine1;
+ return this;
+ }
+
+ /**
+ * Get address line 2.
+ *
+ * @return the addressLine2 value
+ */
+ public String addressLine2() {
+ return this.addressLine2;
+ }
+
+ /**
+ * Set address line 2.
+ *
+ * @param addressLine2 the addressLine2 value to set
+ * @return the AddressDetails object itself.
+ */
+ public AddressDetails withAddressLine2(String addressLine2) {
+ this.addressLine2 = addressLine2;
+ return this;
+ }
+
+ /**
+ * Get address line 3.
+ *
+ * @return the addressLine3 value
+ */
+ public String addressLine3() {
+ return this.addressLine3;
+ }
+
+ /**
+ * Set address line 3.
+ *
+ * @param addressLine3 the addressLine3 value to set
+ * @return the AddressDetails object itself.
+ */
+ public AddressDetails withAddressLine3(String addressLine3) {
+ this.addressLine3 = addressLine3;
+ return this;
+ }
+
+ /**
+ * Get address city.
+ *
+ * @return the city value
+ */
+ public String city() {
+ return this.city;
+ }
+
+ /**
+ * Set address city.
+ *
+ * @param city the city value to set
+ * @return the AddressDetails object itself.
+ */
+ public AddressDetails withCity(String city) {
+ this.city = city;
+ return this;
+ }
+
+ /**
+ * Get address region.
+ *
+ * @return the region value
+ */
+ public String region() {
+ return this.region;
+ }
+
+ /**
+ * Set address region.
+ *
+ * @param region the region value to set
+ * @return the AddressDetails object itself.
+ */
+ public AddressDetails withRegion(String region) {
+ this.region = region;
+ return this;
+ }
+
+ /**
+ * Get country code uses ISO2, 2-digit format.
+ *
+ * @return the country value
+ */
+ public String country() {
+ return this.country;
+ }
+
+ /**
+ * Set country code uses ISO2, 2-digit format.
+ *
+ * @param country the country value to set
+ * @return the AddressDetails object itself.
+ */
+ public AddressDetails withCountry(String country) {
+ this.country = country;
+ return this;
+ }
+
+ /**
+ * Get postal code.
+ *
+ * @return the postalCode value
+ */
+ public String postalCode() {
+ return this.postalCode;
+ }
+
+ /**
+ * Set postal code.
+ *
+ * @param postalCode the postalCode value to set
+ * @return the AddressDetails object itself.
+ */
+ public AddressDetails withPostalCode(String postalCode) {
+ this.postalCode = postalCode;
+ return this;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AddressValidationStatus.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AddressValidationStatus.java
new file mode 100644
index 000000000000..4d9ea95a8614
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AddressValidationStatus.java
@@ -0,0 +1,41 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AddressValidationStatus.
+ */
+public final class AddressValidationStatus extends ExpandableStringEnum {
+ /** Static value Valid for AddressValidationStatus. */
+ public static final AddressValidationStatus VALID = fromString("Valid");
+
+ /** Static value Invalid for AddressValidationStatus. */
+ public static final AddressValidationStatus INVALID = fromString("Invalid");
+
+ /**
+ * Creates or finds a AddressValidationStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AddressValidationStatus
+ */
+ @JsonCreator
+ public static AddressValidationStatus fromString(String name) {
+ return fromString(name, AddressValidationStatus.class);
+ }
+
+ /**
+ * @return known AddressValidationStatus values
+ */
+ public static Collection values() {
+ return values(AddressValidationStatus.class);
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Agreement.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Agreement.java
new file mode 100644
index 000000000000..c0b99d0df7ff
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Agreement.java
@@ -0,0 +1,74 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.AgreementInner;
+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.v2019_10_01_preview.implementation.BillingManager;
+import org.joda.time.DateTime;
+import java.util.List;
+
+/**
+ * Type representing Agreement.
+ */
+public interface Agreement extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the acceptanceMode value.
+ */
+ AcceptanceMode acceptanceMode();
+
+ /**
+ * @return the agreementLink value.
+ */
+ String agreementLink();
+
+ /**
+ * @return the category value.
+ */
+ Category category();
+
+ /**
+ * @return the effectiveDate value.
+ */
+ DateTime effectiveDate();
+
+ /**
+ * @return the expirationDate value.
+ */
+ DateTime expirationDate();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the participants value.
+ */
+ List participants();
+
+ /**
+ * @return the status value.
+ */
+ String status();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AgreementListResult.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AgreementListResult.java
new file mode 100644
index 000000000000..0f4aded018df
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AgreementListResult.java
@@ -0,0 +1,32 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.AgreementListResultInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.AgreementInner;
+import java.util.List;
+
+/**
+ * Type representing AgreementListResult.
+ */
+public interface AgreementListResult extends HasInner, HasManager {
+ /**
+ * @return the nextLink value.
+ */
+ String nextLink();
+
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AgreementType.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AgreementType.java
new file mode 100644
index 000000000000..d3d4eaad6c43
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AgreementType.java
@@ -0,0 +1,47 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AgreementType.
+ */
+public final class AgreementType extends ExpandableStringEnum {
+ /** Static value MicrosoftCustomerAgreement for AgreementType. */
+ public static final AgreementType MICROSOFT_CUSTOMER_AGREEMENT = fromString("MicrosoftCustomerAgreement");
+
+ /** Static value EnterpriseAgreement for AgreementType. */
+ public static final AgreementType ENTERPRISE_AGREEMENT = fromString("EnterpriseAgreement");
+
+ /** Static value MicrosoftOnlineServicesProgram for AgreementType. */
+ public static final AgreementType MICROSOFT_ONLINE_SERVICES_PROGRAM = fromString("MicrosoftOnlineServicesProgram");
+
+ /** Static value MicrosoftPartnerAgreement for AgreementType. */
+ public static final AgreementType MICROSOFT_PARTNER_AGREEMENT = fromString("MicrosoftPartnerAgreement");
+
+ /**
+ * Creates or finds a AgreementType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AgreementType
+ */
+ @JsonCreator
+ public static AgreementType fromString(String name) {
+ return fromString(name, AgreementType.class);
+ }
+
+ /**
+ * @return known AgreementType values
+ */
+ public static Collection values() {
+ return values(AgreementType.class);
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Agreements.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Agreements.java
new file mode 100644
index 000000000000..f8cebcb91721
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Agreements.java
@@ -0,0 +1,38 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.AgreementsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Agreements.
+ */
+public interface Agreements extends HasInner {
+ /**
+ * Lists the agreements for a billing account.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingAccountAsync(String billingAccountName);
+
+ /**
+ * Gets an agreement by ID.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param agreementName The ID that uniquely identifies an agreement.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String billingAccountName, String agreementName);
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Amount.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Amount.java
new file mode 100644
index 000000000000..f7a9e2df7b29
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Amount.java
@@ -0,0 +1,58 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The amount.
+ */
+public class Amount {
+ /**
+ * The currency for the amount value.
+ */
+ @JsonProperty(value = "currency", access = JsonProperty.Access.WRITE_ONLY)
+ private String currency;
+
+ /**
+ * Amount value.
+ */
+ @JsonProperty(value = "value")
+ private Double value;
+
+ /**
+ * Get the currency for the amount value.
+ *
+ * @return the currency value
+ */
+ public String currency() {
+ return this.currency;
+ }
+
+ /**
+ * Get amount value.
+ *
+ * @return the value value
+ */
+ public Double value() {
+ return this.value;
+ }
+
+ /**
+ * Set amount value.
+ *
+ * @param value the value value to set
+ * @return the Amount object itself.
+ */
+ public Amount withValue(Double value) {
+ this.value = value;
+ return this;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AvailableBalance.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AvailableBalance.java
new file mode 100644
index 000000000000..ba04740a32e2
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AvailableBalance.java
@@ -0,0 +1,40 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.AvailableBalanceInner;
+
+/**
+ * Type representing AvailableBalance.
+ */
+public interface AvailableBalance extends HasInner, HasManager {
+ /**
+ * @return the amount value.
+ */
+ Amount amount();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AvailableBalances.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AvailableBalances.java
new file mode 100644
index 000000000000..4aaba535713f
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AvailableBalances.java
@@ -0,0 +1,29 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.AvailableBalancesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing AvailableBalances.
+ */
+public interface AvailableBalances extends HasInner {
+ /**
+ * The available credit balance for a billing profile. This is the balance that can be used for pay now to settle due or past due invoices. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByBillingProfileAsync(String billingAccountName, String billingProfileName);
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AzurePlan.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AzurePlan.java
new file mode 100644
index 000000000000..95b21833b8d4
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/AzurePlan.java
@@ -0,0 +1,58 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Details of the Azure plan.
+ */
+public class AzurePlan {
+ /**
+ * The sku id.
+ */
+ @JsonProperty(value = "skuId")
+ private String skuId;
+
+ /**
+ * The sku description.
+ */
+ @JsonProperty(value = "skuDescription", access = JsonProperty.Access.WRITE_ONLY)
+ private String skuDescription;
+
+ /**
+ * Get the sku id.
+ *
+ * @return the skuId value
+ */
+ public String skuId() {
+ return this.skuId;
+ }
+
+ /**
+ * Set the sku id.
+ *
+ * @param skuId the skuId value to set
+ * @return the AzurePlan object itself.
+ */
+ public AzurePlan withSkuId(String skuId) {
+ this.skuId = skuId;
+ return this;
+ }
+
+ /**
+ * Get the sku description.
+ *
+ * @return the skuDescription value
+ */
+ public String skuDescription() {
+ return this.skuDescription;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccount.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccount.java
new file mode 100644
index 000000000000..be9863eaa4a6
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccount.java
@@ -0,0 +1,152 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingAccountInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import java.util.List;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingProfileInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.DepartmentInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.EnrollmentAccountInner;
+
+/**
+ * Type representing BillingAccount.
+ */
+public interface BillingAccount extends HasInner, Indexable, Updatable, Refreshable, HasManager {
+ /**
+ * @return the accountType value.
+ */
+ AccountType accountType();
+
+ /**
+ * @return the address value.
+ */
+ AddressDetails address();
+
+ /**
+ * @return the agreementType value.
+ */
+ AgreementType agreementType();
+
+ /**
+ * @return the billingProfiles value.
+ */
+ List billingProfiles();
+
+ /**
+ * @return the customerType value.
+ */
+ CustomerType customerType();
+
+ /**
+ * @return the departments value.
+ */
+ List departments();
+
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the enrollmentAccounts value.
+ */
+ List enrollmentAccounts();
+
+ /**
+ * @return the enrollmentDetails value.
+ */
+ Enrollment enrollmentDetails();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the organizationId value.
+ */
+ String organizationId();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The template for a BillingAccount update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithAddress, UpdateStages.WithBillingProfiles, UpdateStages.WithDepartments, UpdateStages.WithEnrollmentAccounts {
+ }
+
+ /**
+ * Grouping of BillingAccount update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the billingaccount update allowing to specify Address.
+ */
+ interface WithAddress {
+ /**
+ * Specifies address.
+ * @param address The address associated with the billing account
+ * @return the next update stage
+ */
+ Update withAddress(AddressDetails address);
+ }
+
+ /**
+ * The stage of the billingaccount update allowing to specify BillingProfiles.
+ */
+ interface WithBillingProfiles {
+ /**
+ * Specifies billingProfiles.
+ * @param billingProfiles The billing profiles associated with the billing account. By default this is not populated, unless it's specified in $expand
+ * @return the next update stage
+ */
+ Update withBillingProfiles(List billingProfiles);
+ }
+
+ /**
+ * The stage of the billingaccount update allowing to specify Departments.
+ */
+ interface WithDepartments {
+ /**
+ * Specifies departments.
+ * @param departments The departments associated to the enrollment
+ * @return the next update stage
+ */
+ Update withDepartments(List departments);
+ }
+
+ /**
+ * The stage of the billingaccount update allowing to specify EnrollmentAccounts.
+ */
+ interface WithEnrollmentAccounts {
+ /**
+ * Specifies enrollmentAccounts.
+ * @param enrollmentAccounts The accounts associated to the enrollment
+ * @return the next update stage
+ */
+ Update withEnrollmentAccounts(List enrollmentAccounts);
+ }
+
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccountBillingRoleAssignment.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccountBillingRoleAssignment.java
new file mode 100644
index 000000000000..d201203d94c2
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccountBillingRoleAssignment.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.
+ */
+
+package com.microsoft.azure.management.billing.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingRoleAssignmentInner;
+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.v2019_10_01_preview.implementation.BillingManager;
+
+/**
+ * Type representing BillingAccountBillingRoleAssignment.
+ */
+public interface BillingAccountBillingRoleAssignment extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the billingRoleAssignmentName value.
+ */
+ String billingRoleAssignmentName();
+
+ /**
+ * @return the createdByPrincipalId value.
+ */
+ String createdByPrincipalId();
+
+ /**
+ * @return the createdByPrincipalTenantId value.
+ */
+ String createdByPrincipalTenantId();
+
+ /**
+ * @return the createdByUserEmailAddress value.
+ */
+ String createdByUserEmailAddress();
+
+ /**
+ * @return the createdOn value.
+ */
+ String createdOn();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the principalId value.
+ */
+ String principalId();
+
+ /**
+ * @return the principalTenantId value.
+ */
+ String principalTenantId();
+
+ /**
+ * @return the roleDefinitionId value.
+ */
+ String roleDefinitionId();
+
+ /**
+ * @return the scope value.
+ */
+ String scope();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the userAuthenticationType value.
+ */
+ String userAuthenticationType();
+
+ /**
+ * @return the userEmailAddress value.
+ */
+ String userEmailAddress();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccountBillingRoleAssignmentModel.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccountBillingRoleAssignmentModel.java
new file mode 100644
index 000000000000..4e6fec45b901
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccountBillingRoleAssignmentModel.java
@@ -0,0 +1,261 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingRoleAssignmentInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+
+/**
+ * Type representing BillingAccountBillingRoleAssignmentModel.
+ */
+public interface BillingAccountBillingRoleAssignmentModel extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the billingRoleAssignmentName value.
+ */
+ String billingRoleAssignmentName();
+
+ /**
+ * @return the createdByPrincipalId value.
+ */
+ String createdByPrincipalId();
+
+ /**
+ * @return the createdByPrincipalTenantId value.
+ */
+ String createdByPrincipalTenantId();
+
+ /**
+ * @return the createdByUserEmailAddress value.
+ */
+ String createdByUserEmailAddress();
+
+ /**
+ * @return the createdOn value.
+ */
+ String createdOn();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the principalId value.
+ */
+ String principalId();
+
+ /**
+ * @return the principalTenantId value.
+ */
+ String principalTenantId();
+
+ /**
+ * @return the roleDefinitionId value.
+ */
+ String roleDefinitionId();
+
+ /**
+ * @return the scope value.
+ */
+ String scope();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the userAuthenticationType value.
+ */
+ String userAuthenticationType();
+
+ /**
+ * @return the userEmailAddress value.
+ */
+ String userEmailAddress();
+
+ /**
+ * The entirety of the BillingAccountBillingRoleAssignmentModel definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithBillingAccount, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of BillingAccountBillingRoleAssignmentModel definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a BillingAccountBillingRoleAssignmentModel definition.
+ */
+ interface Blank extends WithBillingAccount {
+ }
+
+ /**
+ * The stage of the billingaccountbillingroleassignmentmodel definition allowing to specify BillingAccount.
+ */
+ interface WithBillingAccount {
+ /**
+ * Specifies billingAccountName.
+ * @param billingAccountName The ID that uniquely identifies a billing account
+ * @return the next definition stage
+ */
+ WithCreate withExistingBillingAccount(String billingAccountName);
+ }
+
+ /**
+ * The stage of the billingaccountbillingroleassignmentmodel definition allowing to specify PrincipalId.
+ */
+ interface WithPrincipalId {
+ /**
+ * Specifies principalId.
+ * @param principalId The principal id of the user to whom the role was assigned
+ * @return the next definition stage
+ */
+ WithCreate withPrincipalId(String principalId);
+ }
+
+ /**
+ * The stage of the billingaccountbillingroleassignmentmodel definition allowing to specify PrincipalTenantId.
+ */
+ interface WithPrincipalTenantId {
+ /**
+ * Specifies principalTenantId.
+ * @param principalTenantId The principal tenant id of the user to whom the role was assigned
+ * @return the next definition stage
+ */
+ WithCreate withPrincipalTenantId(String principalTenantId);
+ }
+
+ /**
+ * The stage of the billingaccountbillingroleassignmentmodel definition allowing to specify RoleDefinitionId.
+ */
+ interface WithRoleDefinitionId {
+ /**
+ * Specifies roleDefinitionId.
+ * @param roleDefinitionId The ID of the role definition
+ * @return the next definition stage
+ */
+ WithCreate withRoleDefinitionId(String roleDefinitionId);
+ }
+
+ /**
+ * The stage of the billingaccountbillingroleassignmentmodel definition allowing to specify UserAuthenticationType.
+ */
+ interface WithUserAuthenticationType {
+ /**
+ * Specifies userAuthenticationType.
+ * @param userAuthenticationType The authentication type of the user, whether Organization or MSA, of the user to whom the role was assigned. This is supported only for billing accounts with agreement type Enterprise Agreement
+ * @return the next definition stage
+ */
+ WithCreate withUserAuthenticationType(String userAuthenticationType);
+ }
+
+ /**
+ * The stage of the billingaccountbillingroleassignmentmodel definition allowing to specify UserEmailAddress.
+ */
+ interface WithUserEmailAddress {
+ /**
+ * Specifies userEmailAddress.
+ * @param userEmailAddress The email address of the user to whom the role was assigned. This is supported only for billing accounts with agreement type Enterprise Agreement
+ * @return the next definition stage
+ */
+ WithCreate withUserEmailAddress(String userEmailAddress);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithPrincipalId, DefinitionStages.WithPrincipalTenantId, DefinitionStages.WithRoleDefinitionId, DefinitionStages.WithUserAuthenticationType, DefinitionStages.WithUserEmailAddress {
+ }
+ }
+ /**
+ * The template for a BillingAccountBillingRoleAssignmentModel update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithPrincipalId, UpdateStages.WithPrincipalTenantId, UpdateStages.WithRoleDefinitionId, UpdateStages.WithUserAuthenticationType, UpdateStages.WithUserEmailAddress {
+ }
+
+ /**
+ * Grouping of BillingAccountBillingRoleAssignmentModel update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the billingaccountbillingroleassignmentmodel update allowing to specify PrincipalId.
+ */
+ interface WithPrincipalId {
+ /**
+ * Specifies principalId.
+ * @param principalId The principal id of the user to whom the role was assigned
+ * @return the next update stage
+ */
+ Update withPrincipalId(String principalId);
+ }
+
+ /**
+ * The stage of the billingaccountbillingroleassignmentmodel update allowing to specify PrincipalTenantId.
+ */
+ interface WithPrincipalTenantId {
+ /**
+ * Specifies principalTenantId.
+ * @param principalTenantId The principal tenant id of the user to whom the role was assigned
+ * @return the next update stage
+ */
+ Update withPrincipalTenantId(String principalTenantId);
+ }
+
+ /**
+ * The stage of the billingaccountbillingroleassignmentmodel update allowing to specify RoleDefinitionId.
+ */
+ interface WithRoleDefinitionId {
+ /**
+ * Specifies roleDefinitionId.
+ * @param roleDefinitionId The ID of the role definition
+ * @return the next update stage
+ */
+ Update withRoleDefinitionId(String roleDefinitionId);
+ }
+
+ /**
+ * The stage of the billingaccountbillingroleassignmentmodel update allowing to specify UserAuthenticationType.
+ */
+ interface WithUserAuthenticationType {
+ /**
+ * Specifies userAuthenticationType.
+ * @param userAuthenticationType The authentication type of the user, whether Organization or MSA, of the user to whom the role was assigned. This is supported only for billing accounts with agreement type Enterprise Agreement
+ * @return the next update stage
+ */
+ Update withUserAuthenticationType(String userAuthenticationType);
+ }
+
+ /**
+ * The stage of the billingaccountbillingroleassignmentmodel update allowing to specify UserEmailAddress.
+ */
+ interface WithUserEmailAddress {
+ /**
+ * Specifies userEmailAddress.
+ * @param userEmailAddress The email address of the user to whom the role was assigned. This is supported only for billing accounts with agreement type Enterprise Agreement
+ * @return the next update stage
+ */
+ Update withUserEmailAddress(String userEmailAddress);
+ }
+
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccountListResult.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccountListResult.java
new file mode 100644
index 000000000000..381d33ccc6fc
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccountListResult.java
@@ -0,0 +1,32 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingAccountListResultInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingAccountInner;
+import java.util.List;
+
+/**
+ * Type representing BillingAccountListResult.
+ */
+public interface BillingAccountListResult extends HasInner, HasManager {
+ /**
+ * @return the nextLink value.
+ */
+ String nextLink();
+
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccountUpdateRequest.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccountUpdateRequest.java
new file mode 100644
index 000000000000..926068ef93b5
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccountUpdateRequest.java
@@ -0,0 +1,223 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import java.util.List;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingProfileInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.DepartmentInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.EnrollmentAccountInner;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * The request properties of the billing account that can be updated.
+ */
+@JsonFlatten
+public class BillingAccountUpdateRequest {
+ /**
+ * The billing account name.
+ */
+ @JsonProperty(value = "properties.displayName", access = JsonProperty.Access.WRITE_ONLY)
+ private String displayName;
+
+ /**
+ * The address associated with the billing account.
+ */
+ @JsonProperty(value = "properties.address")
+ private AddressDetails address;
+
+ /**
+ * The type of agreement. Possible values include:
+ * 'MicrosoftCustomerAgreement', 'EnterpriseAgreement',
+ * 'MicrosoftOnlineServicesProgram', 'MicrosoftPartnerAgreement'.
+ */
+ @JsonProperty(value = "properties.agreementType", access = JsonProperty.Access.WRITE_ONLY)
+ private AgreementType agreementType;
+
+ /**
+ * The type of customer. Possible values include: 'Enterprise',
+ * 'Individual', 'Partner'.
+ */
+ @JsonProperty(value = "properties.customerType", access = JsonProperty.Access.WRITE_ONLY)
+ private CustomerType customerType;
+
+ /**
+ * The type of customer. Possible values include: 'Enterprise',
+ * 'Individual', 'Partner'.
+ */
+ @JsonProperty(value = "properties.accountType", access = JsonProperty.Access.WRITE_ONLY)
+ private AccountType accountType;
+
+ /**
+ * The billing profiles associated with the billing account. By default
+ * this is not populated, unless it's specified in $expand.
+ */
+ @JsonProperty(value = "properties.billingProfiles")
+ private List billingProfiles;
+
+ /**
+ * The details about the associated legacy enrollment. By default this is
+ * not populated, unless it's specified in $expand.
+ */
+ @JsonProperty(value = "properties.enrollmentDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private Enrollment enrollmentDetails;
+
+ /**
+ * The departments associated to the enrollment.
+ */
+ @JsonProperty(value = "properties.departments")
+ private List departments;
+
+ /**
+ * The accounts associated to the enrollment.
+ */
+ @JsonProperty(value = "properties.enrollmentAccounts")
+ private List enrollmentAccounts;
+
+ /**
+ * Organization id.
+ */
+ @JsonProperty(value = "properties.organizationId", access = JsonProperty.Access.WRITE_ONLY)
+ private String organizationId;
+
+ /**
+ * Get the billing account name.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Get the address associated with the billing account.
+ *
+ * @return the address value
+ */
+ public AddressDetails address() {
+ return this.address;
+ }
+
+ /**
+ * Set the address associated with the billing account.
+ *
+ * @param address the address value to set
+ * @return the BillingAccountUpdateRequest object itself.
+ */
+ public BillingAccountUpdateRequest withAddress(AddressDetails address) {
+ this.address = address;
+ return this;
+ }
+
+ /**
+ * Get the type of agreement. Possible values include: 'MicrosoftCustomerAgreement', 'EnterpriseAgreement', 'MicrosoftOnlineServicesProgram', 'MicrosoftPartnerAgreement'.
+ *
+ * @return the agreementType value
+ */
+ public AgreementType agreementType() {
+ return this.agreementType;
+ }
+
+ /**
+ * Get the type of customer. Possible values include: 'Enterprise', 'Individual', 'Partner'.
+ *
+ * @return the customerType value
+ */
+ public CustomerType customerType() {
+ return this.customerType;
+ }
+
+ /**
+ * Get the type of customer. Possible values include: 'Enterprise', 'Individual', 'Partner'.
+ *
+ * @return the accountType value
+ */
+ public AccountType accountType() {
+ return this.accountType;
+ }
+
+ /**
+ * Get the billing profiles associated with the billing account. By default this is not populated, unless it's specified in $expand.
+ *
+ * @return the billingProfiles value
+ */
+ public List billingProfiles() {
+ return this.billingProfiles;
+ }
+
+ /**
+ * Set the billing profiles associated with the billing account. By default this is not populated, unless it's specified in $expand.
+ *
+ * @param billingProfiles the billingProfiles value to set
+ * @return the BillingAccountUpdateRequest object itself.
+ */
+ public BillingAccountUpdateRequest withBillingProfiles(List billingProfiles) {
+ this.billingProfiles = billingProfiles;
+ return this;
+ }
+
+ /**
+ * Get the details about the associated legacy enrollment. By default this is not populated, unless it's specified in $expand.
+ *
+ * @return the enrollmentDetails value
+ */
+ public Enrollment enrollmentDetails() {
+ return this.enrollmentDetails;
+ }
+
+ /**
+ * Get the departments associated to the enrollment.
+ *
+ * @return the departments value
+ */
+ public List departments() {
+ return this.departments;
+ }
+
+ /**
+ * Set the departments associated to the enrollment.
+ *
+ * @param departments the departments value to set
+ * @return the BillingAccountUpdateRequest object itself.
+ */
+ public BillingAccountUpdateRequest withDepartments(List departments) {
+ this.departments = departments;
+ return this;
+ }
+
+ /**
+ * Get the accounts associated to the enrollment.
+ *
+ * @return the enrollmentAccounts value
+ */
+ public List enrollmentAccounts() {
+ return this.enrollmentAccounts;
+ }
+
+ /**
+ * Set the accounts associated to the enrollment.
+ *
+ * @param enrollmentAccounts the enrollmentAccounts value to set
+ * @return the BillingAccountUpdateRequest object itself.
+ */
+ public BillingAccountUpdateRequest withEnrollmentAccounts(List enrollmentAccounts) {
+ this.enrollmentAccounts = enrollmentAccounts;
+ return this;
+ }
+
+ /**
+ * Get organization id.
+ *
+ * @return the organizationId value
+ */
+ public String organizationId() {
+ return this.organizationId;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccounts.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccounts.java
new file mode 100644
index 000000000000..b311679d017d
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingAccounts.java
@@ -0,0 +1,45 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingAccountsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BillingAccounts.
+ */
+public interface BillingAccounts extends HasInner {
+ /**
+ * Gets a billing account by its ID.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String billingAccountName);
+
+ /**
+ * Lists the invoice sections for which the user has permission to create Azure subscriptions. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listInvoiceSectionsByCreateSubscriptionPermissionAsync(final String billingAccountName);
+
+ /**
+ * Lists the billing accounts that a user has access to.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingFrequency.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingFrequency.java
new file mode 100644
index 000000000000..86115830fc09
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingFrequency.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.v2019_10_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for BillingFrequency.
+ */
+public final class BillingFrequency extends ExpandableStringEnum {
+ /** Static value OneTime for BillingFrequency. */
+ public static final BillingFrequency ONE_TIME = fromString("OneTime");
+
+ /** Static value Monthly for BillingFrequency. */
+ public static final BillingFrequency MONTHLY = fromString("Monthly");
+
+ /** Static value UsageBased for BillingFrequency. */
+ public static final BillingFrequency USAGE_BASED = fromString("UsageBased");
+
+ /**
+ * Creates or finds a BillingFrequency from its string representation.
+ * @param name a name to look for
+ * @return the corresponding BillingFrequency
+ */
+ @JsonCreator
+ public static BillingFrequency fromString(String name) {
+ return fromString(name, BillingFrequency.class);
+ }
+
+ /**
+ * @return known BillingFrequency values
+ */
+ public static Collection values() {
+ return values(BillingFrequency.class);
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingPermissions.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingPermissions.java
new file mode 100644
index 000000000000..ad94d58159fa
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingPermissions.java
@@ -0,0 +1,77 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import rx.Observable;
+
+/**
+ * Type representing BillingPermissions.
+ */
+public interface BillingPermissions {
+ /**
+ * Lists the billing permissions the caller has for a customer.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param customerName The ID that uniquely identifies a customer.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByCustomerAsync(String billingAccountName, String customerName);
+
+ /**
+ * Lists the billing permissions the caller has on a billing account.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingAccountAsync(final String billingAccountName);
+
+ /**
+ * Lists the billing permissions the caller has on an invoice section.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @param invoiceSectionName The ID that uniquely identifies an invoice section.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByInvoiceSectionsAsync(String billingAccountName, String billingProfileName, String invoiceSectionName);
+
+ /**
+ * Lists the billing permissions the caller has on a billing profile.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingProfileAsync(String billingAccountName, String billingProfileName);
+
+ /**
+ * Lists the billing permissions the caller has on a department.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param departmentName The ID that uniquely identifies a department.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDepartmentAsync(final String billingAccountName, final String departmentName);
+
+ /**
+ * Lists the billing permissions the caller has on an enrollment account.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param enrollmentAccountName The ID that uniquely identifies an enrollment account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByEnrollmentAccountAsync(final String billingAccountName, final String enrollmentAccountName);
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingPermissionsListResult.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingPermissionsListResult.java
new file mode 100644
index 000000000000..15ad02bf2f74
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingPermissionsListResult.java
@@ -0,0 +1,32 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingPermissionsListResultInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingPermissionsPropertiesInner;
+import java.util.List;
+
+/**
+ * Type representing BillingPermissionsListResult.
+ */
+public interface BillingPermissionsListResult extends HasInner, HasManager {
+ /**
+ * @return the nextLink value.
+ */
+ String nextLink();
+
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingPermissionsProperties.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingPermissionsProperties.java
new file mode 100644
index 000000000000..b4c3f4fdc720
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingPermissionsProperties.java
@@ -0,0 +1,31 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingPermissionsPropertiesInner;
+import java.util.List;
+
+/**
+ * Type representing BillingPermissionsProperties.
+ */
+public interface BillingPermissionsProperties extends HasInner, HasManager {
+ /**
+ * @return the actions value.
+ */
+ List actions();
+
+ /**
+ * @return the notActions value.
+ */
+ List notActions();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfile.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfile.java
new file mode 100644
index 000000000000..9eaaa193050d
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfile.java
@@ -0,0 +1,291 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingProfileInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import java.util.List;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.InvoiceSectionInner;
+
+/**
+ * Type representing BillingProfile.
+ */
+public interface BillingProfile extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the address value.
+ */
+ AddressDetails address();
+
+ /**
+ * @return the billingRelationshipType value.
+ */
+ BillingRelationshipType billingRelationshipType();
+
+ /**
+ * @return the currency value.
+ */
+ String currency();
+
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the enabledAzurePlans value.
+ */
+ List enabledAzurePlans();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the indirectRelationshipInfo value.
+ */
+ IndirectRelationshipInfo indirectRelationshipInfo();
+
+ /**
+ * @return the invoiceDay value.
+ */
+ Integer invoiceDay();
+
+ /**
+ * @return the invoiceEmailOptIn value.
+ */
+ Boolean invoiceEmailOptIn();
+
+ /**
+ * @return the invoiceSections value.
+ */
+ List invoiceSections();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the poNumber value.
+ */
+ String poNumber();
+
+ /**
+ * @return the spendingLimit value.
+ */
+ SpendingLimit spendingLimit();
+
+ /**
+ * @return the status value.
+ */
+ Object status();
+
+ /**
+ * @return the statusReasonCode value.
+ */
+ StatusReasonCode statusReasonCode();
+
+ /**
+ * @return the targetClouds value.
+ */
+ List targetClouds();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the BillingProfile definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithBillingAccount, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of BillingProfile definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a BillingProfile definition.
+ */
+ interface Blank extends WithBillingAccount {
+ }
+
+ /**
+ * The stage of the billingprofile definition allowing to specify BillingAccount.
+ */
+ interface WithBillingAccount {
+ /**
+ * Specifies billingAccountName.
+ * @param billingAccountName The ID that uniquely identifies a billing account
+ * @return the next definition stage
+ */
+ WithCreate withExistingBillingAccount(String billingAccountName);
+ }
+
+ /**
+ * The stage of the billingprofile definition allowing to specify Address.
+ */
+ interface WithAddress {
+ /**
+ * Specifies address.
+ * @param address Billing address
+ * @return the next definition stage
+ */
+ WithCreate withAddress(AddressDetails address);
+ }
+
+ /**
+ * The stage of the billingprofile definition allowing to specify DisplayName.
+ */
+ interface WithDisplayName {
+ /**
+ * Specifies displayName.
+ * @param displayName The name of the billing profile
+ * @return the next definition stage
+ */
+ WithCreate withDisplayName(String displayName);
+ }
+
+ /**
+ * The stage of the billingprofile definition allowing to specify EnabledAzurePlans.
+ */
+ interface WithEnabledAzurePlans {
+ /**
+ * Specifies enabledAzurePlans.
+ * @param enabledAzurePlans Enabled azure plans for the billing profile
+ * @return the next definition stage
+ */
+ WithCreate withEnabledAzurePlans(List enabledAzurePlans);
+ }
+
+ /**
+ * The stage of the billingprofile definition allowing to specify InvoiceEmailOptIn.
+ */
+ interface WithInvoiceEmailOptIn {
+ /**
+ * Specifies invoiceEmailOptIn.
+ * @param invoiceEmailOptIn Flag controlling whether the invoices for the billing profile are sent through email
+ * @return the next definition stage
+ */
+ WithCreate withInvoiceEmailOptIn(Boolean invoiceEmailOptIn);
+ }
+
+ /**
+ * The stage of the billingprofile definition allowing to specify PoNumber.
+ */
+ interface WithPoNumber {
+ /**
+ * Specifies poNumber.
+ * @param poNumber The purchase order name that will appear on the invoices generated for the billing profile
+ * @return the next definition stage
+ */
+ WithCreate withPoNumber(String poNumber);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithAddress, DefinitionStages.WithDisplayName, DefinitionStages.WithEnabledAzurePlans, DefinitionStages.WithInvoiceEmailOptIn, DefinitionStages.WithPoNumber {
+ }
+ }
+ /**
+ * The template for a BillingProfile update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithAddress, UpdateStages.WithDisplayName, UpdateStages.WithEnabledAzurePlans, UpdateStages.WithInvoiceEmailOptIn, UpdateStages.WithInvoiceSections, UpdateStages.WithPoNumber {
+ }
+
+ /**
+ * Grouping of BillingProfile update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the billingprofile update allowing to specify Address.
+ */
+ interface WithAddress {
+ /**
+ * Specifies address.
+ * @param address Billing address
+ * @return the next update stage
+ */
+ Update withAddress(AddressDetails address);
+ }
+
+ /**
+ * The stage of the billingprofile update allowing to specify DisplayName.
+ */
+ interface WithDisplayName {
+ /**
+ * Specifies displayName.
+ * @param displayName The name of the billing profile
+ * @return the next update stage
+ */
+ Update withDisplayName(String displayName);
+ }
+
+ /**
+ * The stage of the billingprofile update allowing to specify EnabledAzurePlans.
+ */
+ interface WithEnabledAzurePlans {
+ /**
+ * Specifies enabledAzurePlans.
+ * @param enabledAzurePlans Information about the enabled azure plans
+ * @return the next update stage
+ */
+ Update withEnabledAzurePlans(List enabledAzurePlans);
+ }
+
+ /**
+ * The stage of the billingprofile update allowing to specify InvoiceEmailOptIn.
+ */
+ interface WithInvoiceEmailOptIn {
+ /**
+ * Specifies invoiceEmailOptIn.
+ * @param invoiceEmailOptIn Flag controlling whether the invoices for the billing profile are sent through email
+ * @return the next update stage
+ */
+ Update withInvoiceEmailOptIn(Boolean invoiceEmailOptIn);
+ }
+
+ /**
+ * The stage of the billingprofile update allowing to specify InvoiceSections.
+ */
+ interface WithInvoiceSections {
+ /**
+ * Specifies invoiceSections.
+ * @param invoiceSections The invoice sections associated to the billing profile
+ * @return the next update stage
+ */
+ Update withInvoiceSections(List invoiceSections);
+ }
+
+ /**
+ * The stage of the billingprofile update allowing to specify PoNumber.
+ */
+ interface WithPoNumber {
+ /**
+ * Specifies poNumber.
+ * @param poNumber The purchase order name that will appear on the invoices generated for the billing profile
+ * @return the next update stage
+ */
+ Update withPoNumber(String poNumber);
+ }
+
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfileCreationRequest.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfileCreationRequest.java
new file mode 100644
index 000000000000..d1eab423a8e6
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfileCreationRequest.java
@@ -0,0 +1,150 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The request parameters for creating a new billing profile.
+ */
+public class BillingProfileCreationRequest {
+ /**
+ * The name of the billing profile.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * The purchase order name that will appear on the invoices generated for
+ * the billing profile.
+ */
+ @JsonProperty(value = "poNumber")
+ private String poNumber;
+
+ /**
+ * Billing address.
+ */
+ @JsonProperty(value = "address")
+ private AddressDetails address;
+
+ /**
+ * Flag controlling whether the invoices for the billing profile are sent
+ * through email.
+ */
+ @JsonProperty(value = "invoiceEmailOptIn")
+ private Boolean invoiceEmailOptIn;
+
+ /**
+ * Enabled azure plans for the billing profile.
+ */
+ @JsonProperty(value = "enabledAzurePlans")
+ private List enabledAzurePlans;
+
+ /**
+ * Get the name of the billing profile.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the name of the billing profile.
+ *
+ * @param displayName the displayName value to set
+ * @return the BillingProfileCreationRequest object itself.
+ */
+ public BillingProfileCreationRequest withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get the purchase order name that will appear on the invoices generated for the billing profile.
+ *
+ * @return the poNumber value
+ */
+ public String poNumber() {
+ return this.poNumber;
+ }
+
+ /**
+ * Set the purchase order name that will appear on the invoices generated for the billing profile.
+ *
+ * @param poNumber the poNumber value to set
+ * @return the BillingProfileCreationRequest object itself.
+ */
+ public BillingProfileCreationRequest withPoNumber(String poNumber) {
+ this.poNumber = poNumber;
+ return this;
+ }
+
+ /**
+ * Get billing address.
+ *
+ * @return the address value
+ */
+ public AddressDetails address() {
+ return this.address;
+ }
+
+ /**
+ * Set billing address.
+ *
+ * @param address the address value to set
+ * @return the BillingProfileCreationRequest object itself.
+ */
+ public BillingProfileCreationRequest withAddress(AddressDetails address) {
+ this.address = address;
+ return this;
+ }
+
+ /**
+ * Get flag controlling whether the invoices for the billing profile are sent through email.
+ *
+ * @return the invoiceEmailOptIn value
+ */
+ public Boolean invoiceEmailOptIn() {
+ return this.invoiceEmailOptIn;
+ }
+
+ /**
+ * Set flag controlling whether the invoices for the billing profile are sent through email.
+ *
+ * @param invoiceEmailOptIn the invoiceEmailOptIn value to set
+ * @return the BillingProfileCreationRequest object itself.
+ */
+ public BillingProfileCreationRequest withInvoiceEmailOptIn(Boolean invoiceEmailOptIn) {
+ this.invoiceEmailOptIn = invoiceEmailOptIn;
+ return this;
+ }
+
+ /**
+ * Get enabled azure plans for the billing profile.
+ *
+ * @return the enabledAzurePlans value
+ */
+ public List enabledAzurePlans() {
+ return this.enabledAzurePlans;
+ }
+
+ /**
+ * Set enabled azure plans for the billing profile.
+ *
+ * @param enabledAzurePlans the enabledAzurePlans value to set
+ * @return the BillingProfileCreationRequest object itself.
+ */
+ public BillingProfileCreationRequest withEnabledAzurePlans(List enabledAzurePlans) {
+ this.enabledAzurePlans = enabledAzurePlans;
+ return this;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfileListResult.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfileListResult.java
new file mode 100644
index 000000000000..464f5824ab3f
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfileListResult.java
@@ -0,0 +1,32 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingProfileListResultInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingProfileInner;
+import java.util.List;
+
+/**
+ * Type representing BillingProfileListResult.
+ */
+public interface BillingProfileListResult extends HasInner, HasManager {
+ /**
+ * @return the nextLink value.
+ */
+ String nextLink();
+
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfileSpendingLimit.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfileSpendingLimit.java
new file mode 100644
index 000000000000..88d6638725ee
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfileSpendingLimit.java
@@ -0,0 +1,41 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for BillingProfileSpendingLimit.
+ */
+public final class BillingProfileSpendingLimit extends ExpandableStringEnum {
+ /** Static value Off for BillingProfileSpendingLimit. */
+ public static final BillingProfileSpendingLimit OFF = fromString("Off");
+
+ /** Static value On for BillingProfileSpendingLimit. */
+ public static final BillingProfileSpendingLimit ON = fromString("On");
+
+ /**
+ * Creates or finds a BillingProfileSpendingLimit from its string representation.
+ * @param name a name to look for
+ * @return the corresponding BillingProfileSpendingLimit
+ */
+ @JsonCreator
+ public static BillingProfileSpendingLimit fromString(String name) {
+ return fromString(name, BillingProfileSpendingLimit.class);
+ }
+
+ /**
+ * @return known BillingProfileSpendingLimit values
+ */
+ public static Collection values() {
+ return values(BillingProfileSpendingLimit.class);
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfileStatus.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfileStatus.java
new file mode 100644
index 000000000000..614f06114d8b
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfileStatus.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.v2019_10_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for BillingProfileStatus.
+ */
+public final class BillingProfileStatus extends ExpandableStringEnum {
+ /** Static value Active for BillingProfileStatus. */
+ public static final BillingProfileStatus ACTIVE = fromString("Active");
+
+ /** Static value Disabled for BillingProfileStatus. */
+ public static final BillingProfileStatus DISABLED = fromString("Disabled");
+
+ /** Static value Warned for BillingProfileStatus. */
+ public static final BillingProfileStatus WARNED = fromString("Warned");
+
+ /**
+ * Creates or finds a BillingProfileStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding BillingProfileStatus
+ */
+ @JsonCreator
+ public static BillingProfileStatus fromString(String name) {
+ return fromString(name, BillingProfileStatus.class);
+ }
+
+ /**
+ * @return known BillingProfileStatus values
+ */
+ public static Collection values() {
+ return values(BillingProfileStatus.class);
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfileStatusReasonCode.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfileStatusReasonCode.java
new file mode 100644
index 000000000000..ead3dbf22380
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfileStatusReasonCode.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.v2019_10_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for BillingProfileStatusReasonCode.
+ */
+public final class BillingProfileStatusReasonCode extends ExpandableStringEnum {
+ /** Static value PastDue for BillingProfileStatusReasonCode. */
+ public static final BillingProfileStatusReasonCode PAST_DUE = fromString("PastDue");
+
+ /** Static value SpendingLimitReached for BillingProfileStatusReasonCode. */
+ public static final BillingProfileStatusReasonCode SPENDING_LIMIT_REACHED = fromString("SpendingLimitReached");
+
+ /** Static value SpendingLimitExpired for BillingProfileStatusReasonCode. */
+ public static final BillingProfileStatusReasonCode SPENDING_LIMIT_EXPIRED = fromString("SpendingLimitExpired");
+
+ /**
+ * Creates or finds a BillingProfileStatusReasonCode from its string representation.
+ * @param name a name to look for
+ * @return the corresponding BillingProfileStatusReasonCode
+ */
+ @JsonCreator
+ public static BillingProfileStatusReasonCode fromString(String name) {
+ return fromString(name, BillingProfileStatusReasonCode.class);
+ }
+
+ /**
+ * @return known BillingProfileStatusReasonCode values
+ */
+ public static Collection values() {
+ return values(BillingProfileStatusReasonCode.class);
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfiles.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfiles.java
new file mode 100644
index 000000000000..f65f59ddeb0d
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfiles.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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Observable;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingProfilesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BillingProfiles.
+ */
+public interface BillingProfiles extends SupportsCreating, HasInner {
+ /**
+ * Validates if the default payment method can be detached from the billing profile. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getEligibilityToDetachPaymentMethodAsync(String billingAccountName, String billingProfileName);
+
+ /**
+ * Lists the billing profiles that a user has access to. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement or Microsoft Partner Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingAccountAsync(String billingAccountName);
+
+ /**
+ * Gets a billing profile by its ID. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement or Microsoft Partner Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String billingAccountName, String billingProfileName);
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfilesCreateHeaders.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfilesCreateHeaders.java
new file mode 100644
index 000000000000..82ab45a89c68
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfilesCreateHeaders.java
@@ -0,0 +1,70 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for Create operation.
+ */
+public class BillingProfilesCreateHeaders {
+ /**
+ * Location URI to poll for result.
+ */
+ @JsonProperty(value = "Location")
+ private String location;
+
+ /**
+ * Recommended time to wait before making another request to check the
+ * status of the operation. The time is specified in seconds.
+ */
+ @JsonProperty(value = "Retry-After")
+ private Integer retryAfter;
+
+ /**
+ * Get location URI to poll for result.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set location URI to poll for result.
+ *
+ * @param location the location value to set
+ * @return the BillingProfilesCreateHeaders object itself.
+ */
+ public BillingProfilesCreateHeaders withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get recommended time to wait before making another request to check the status of the operation. The time is specified in seconds.
+ *
+ * @return the retryAfter value
+ */
+ public Integer retryAfter() {
+ return this.retryAfter;
+ }
+
+ /**
+ * Set recommended time to wait before making another request to check the status of the operation. The time is specified in seconds.
+ *
+ * @param retryAfter the retryAfter value to set
+ * @return the BillingProfilesCreateHeaders object itself.
+ */
+ public BillingProfilesCreateHeaders withRetryAfter(Integer retryAfter) {
+ this.retryAfter = retryAfter;
+ return this;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfilesUpdateHeaders.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfilesUpdateHeaders.java
new file mode 100644
index 000000000000..5ed220081878
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProfilesUpdateHeaders.java
@@ -0,0 +1,70 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for Update operation.
+ */
+public class BillingProfilesUpdateHeaders {
+ /**
+ * GET this URL to retrieve the status of the asynchronous operation.
+ */
+ @JsonProperty(value = "Location")
+ private String location;
+
+ /**
+ * The amount of delay to use while the status of the operation is checked.
+ * The value is expressed in seconds.
+ */
+ @JsonProperty(value = "Retry-After")
+ private String retryAfter;
+
+ /**
+ * Get gET this URL to retrieve the status of the asynchronous operation.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set gET this URL to retrieve the status of the asynchronous operation.
+ *
+ * @param location the location value to set
+ * @return the BillingProfilesUpdateHeaders object itself.
+ */
+ public BillingProfilesUpdateHeaders withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get the amount of delay to use while the status of the operation is checked. The value is expressed in seconds.
+ *
+ * @return the retryAfter value
+ */
+ public String retryAfter() {
+ return this.retryAfter;
+ }
+
+ /**
+ * Set the amount of delay to use while the status of the operation is checked. The value is expressed in seconds.
+ *
+ * @param retryAfter the retryAfter value to set
+ * @return the BillingProfilesUpdateHeaders object itself.
+ */
+ public BillingProfilesUpdateHeaders withRetryAfter(String retryAfter) {
+ this.retryAfter = retryAfter;
+ return this;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProperty.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProperty.java
new file mode 100644
index 000000000000..8ee9b647e195
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingProperty.java
@@ -0,0 +1,110 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingPropertyInner;
+
+/**
+ * Type representing BillingProperty.
+ */
+public interface BillingProperty extends HasInner, HasManager {
+ /**
+ * @return the billingAccountDisplayName value.
+ */
+ String billingAccountDisplayName();
+
+ /**
+ * @return the billingAccountId value.
+ */
+ String billingAccountId();
+
+ /**
+ * @return the billingProfileDisplayName value.
+ */
+ String billingProfileDisplayName();
+
+ /**
+ * @return the billingProfileId value.
+ */
+ String billingProfileId();
+
+ /**
+ * @return the billingProfileSpendingLimit value.
+ */
+ Object billingProfileSpendingLimit();
+
+ /**
+ * @return the billingProfileStatus value.
+ */
+ BillingProfileStatus billingProfileStatus();
+
+ /**
+ * @return the billingProfileStatusReasonCode value.
+ */
+ Object billingProfileStatusReasonCode();
+
+ /**
+ * @return the billingTenantId value.
+ */
+ String billingTenantId();
+
+ /**
+ * @return the costCenter value.
+ */
+ String costCenter();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the invoiceSectionDisplayName value.
+ */
+ String invoiceSectionDisplayName();
+
+ /**
+ * @return the invoiceSectionId value.
+ */
+ String invoiceSectionId();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the productId value.
+ */
+ String productId();
+
+ /**
+ * @return the productName value.
+ */
+ String productName();
+
+ /**
+ * @return the skuDescription value.
+ */
+ String skuDescription();
+
+ /**
+ * @return the skuId value.
+ */
+ String skuId();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingPropertys.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingPropertys.java
new file mode 100644
index 000000000000..11eaa19e480d
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingPropertys.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.v2019_10_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingPropertysInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BillingPropertys.
+ */
+public interface BillingPropertys extends HasInner {
+ /**
+ * Get the billing properties for a subscription. This operation is not supported for billing accounts with agreement type Enterprise Agreement.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRelationshipType.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRelationshipType.java
new file mode 100644
index 000000000000..22b248f133c2
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRelationshipType.java
@@ -0,0 +1,47 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for BillingRelationshipType.
+ */
+public final class BillingRelationshipType extends ExpandableStringEnum {
+ /** Static value Direct for BillingRelationshipType. */
+ public static final BillingRelationshipType DIRECT = fromString("Direct");
+
+ /** Static value IndirectCustomer for BillingRelationshipType. */
+ public static final BillingRelationshipType INDIRECT_CUSTOMER = fromString("IndirectCustomer");
+
+ /** Static value IndirectPartner for BillingRelationshipType. */
+ public static final BillingRelationshipType INDIRECT_PARTNER = fromString("IndirectPartner");
+
+ /** Static value CSPPartner for BillingRelationshipType. */
+ public static final BillingRelationshipType CSPPARTNER = fromString("CSPPartner");
+
+ /**
+ * Creates or finds a BillingRelationshipType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding BillingRelationshipType
+ */
+ @JsonCreator
+ public static BillingRelationshipType fromString(String name) {
+ return fromString(name, BillingRelationshipType.class);
+ }
+
+ /**
+ * @return known BillingRelationshipType values
+ */
+ public static Collection values() {
+ return values(BillingRelationshipType.class);
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleAssignmentListResult.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleAssignmentListResult.java
new file mode 100644
index 000000000000..bad409523066
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleAssignmentListResult.java
@@ -0,0 +1,32 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingRoleAssignmentListResultInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingRoleAssignmentInner;
+import java.util.List;
+
+/**
+ * Type representing BillingRoleAssignmentListResult.
+ */
+public interface BillingRoleAssignmentListResult extends HasInner, HasManager {
+ /**
+ * @return the nextLink value.
+ */
+ String nextLink();
+
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleAssignmentPayload.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleAssignmentPayload.java
new file mode 100644
index 000000000000..68f652825a3b
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleAssignmentPayload.java
@@ -0,0 +1,69 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The payload use to update role assignment on a scope.
+ */
+public class BillingRoleAssignmentPayload {
+ /**
+ * The user's principal id that the role gets assigned to.
+ */
+ @JsonProperty(value = "principalId")
+ private String principalId;
+
+ /**
+ * The role definition id.
+ */
+ @JsonProperty(value = "billingRoleDefinitionId")
+ private String billingRoleDefinitionId;
+
+ /**
+ * Get the user's principal id that the role gets assigned to.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Set the user's principal id that the role gets assigned to.
+ *
+ * @param principalId the principalId value to set
+ * @return the BillingRoleAssignmentPayload object itself.
+ */
+ public BillingRoleAssignmentPayload withPrincipalId(String principalId) {
+ this.principalId = principalId;
+ return this;
+ }
+
+ /**
+ * Get the role definition id.
+ *
+ * @return the billingRoleDefinitionId value
+ */
+ public String billingRoleDefinitionId() {
+ return this.billingRoleDefinitionId;
+ }
+
+ /**
+ * Set the role definition id.
+ *
+ * @param billingRoleDefinitionId the billingRoleDefinitionId value to set
+ * @return the BillingRoleAssignmentPayload object itself.
+ */
+ public BillingRoleAssignmentPayload withBillingRoleDefinitionId(String billingRoleDefinitionId) {
+ this.billingRoleDefinitionId = billingRoleDefinitionId;
+ return this;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleAssignments.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleAssignments.java
new file mode 100644
index 000000000000..dc00fba9b472
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleAssignments.java
@@ -0,0 +1,213 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingRoleAssignmentsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BillingRoleAssignments.
+ */
+public interface BillingRoleAssignments extends HasInner {
+ /**
+ * Gets a role assignment for the caller on an invoice section. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @param invoiceSectionName The ID that uniquely identifies an invoice section.
+ * @param billingRoleAssignmentName The ID that uniquely identifies a role assignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByInvoiceSectionAsync(String billingAccountName, String billingProfileName, String invoiceSectionName, String billingRoleAssignmentName);
+
+ /**
+ * Deletes a role assignment for the caller on an invoice section. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @param invoiceSectionName The ID that uniquely identifies an invoice section.
+ * @param billingRoleAssignmentName The ID that uniquely identifies a role assignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable deleteByInvoiceSectionAsync(String billingAccountName, String billingProfileName, String invoiceSectionName, String billingRoleAssignmentName);
+
+ /**
+ * Gets a role assignment for the caller on a billing profile. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @param billingRoleAssignmentName The ID that uniquely identifies a role assignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByBillingProfileAsync(String billingAccountName, String billingProfileName, String billingRoleAssignmentName);
+
+ /**
+ * Deletes a role assignment for the caller on a billing profile. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @param billingRoleAssignmentName The ID that uniquely identifies a role assignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable deleteByBillingProfileAsync(String billingAccountName, String billingProfileName, String billingRoleAssignmentName);
+
+ /**
+ * Gets a role assignment for the caller on a department. The operation is supported only for billing accounts with agreement type Enterprise Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param departmentName The ID that uniquely identifies a department.
+ * @param billingRoleAssignmentName The ID that uniquely identifies a role assignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByDepartmentAsync(String billingAccountName, String departmentName, String billingRoleAssignmentName);
+
+ /**
+ * Deletes a role assignment for the caller on a department. The operation is supported only for billing accounts with agreement type Enterprise Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param departmentName The ID that uniquely identifies a department.
+ * @param billingRoleAssignmentName The ID that uniquely identifies a role assignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable deleteByDepartmentAsync(String billingAccountName, String departmentName, String billingRoleAssignmentName);
+
+ /**
+ * Gets a role assignment for the caller on a enrollment Account. The operation is supported only for billing accounts with agreement type Enterprise Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param enrollmentAccountName The ID that uniquely identifies an enrollment account.
+ * @param billingRoleAssignmentName The ID that uniquely identifies a role assignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByEnrollmentAccountAsync(String billingAccountName, String enrollmentAccountName, String billingRoleAssignmentName);
+
+ /**
+ * Deletes a role assignment for the caller on a enrollment Account. The operation is supported only for billing accounts with agreement type Enterprise Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param enrollmentAccountName The ID that uniquely identifies an enrollment account.
+ * @param billingRoleAssignmentName The ID that uniquely identifies a role assignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable deleteByEnrollmentAccountAsync(String billingAccountName, String enrollmentAccountName, String billingRoleAssignmentName);
+
+ /**
+ * Lists the role assignments for the caller on an invoice section. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @param invoiceSectionName The ID that uniquely identifies an invoice section.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByInvoiceSectionAsync(String billingAccountName, String billingProfileName, String invoiceSectionName);
+
+ /**
+ * Lists the role assignments for the caller on a billing profile. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingProfileAsync(String billingAccountName, String billingProfileName);
+
+ /**
+ * Lists the role assignments for the caller on a billing profile. The operation is supported for billing accounts of type Enterprise Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param departmentName The ID that uniquely identifies a department.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDepartmentAsync(final String billingAccountName, final String departmentName);
+
+ /**
+ * Lists the role assignments for the caller on a billing profile. The operation is supported for billing accounts of type Enterprise Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param enrollmentAccountName The ID that uniquely identifies an enrollment account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByEnrollmentAccountAsync(final String billingAccountName, final String enrollmentAccountName);
+
+ /**
+ * Gets a role assignment for the caller on a billing account. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement, Microsoft Customer Agreement or Enterprise Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingRoleAssignmentName The ID that uniquely identifies a role assignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByBillingAccountAsync(String billingAccountName, String billingRoleAssignmentName);
+
+ /**
+ * Lists the role assignments for the caller on a billing account. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement, Microsoft Customer Agreement or Enterprise Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingAccountAsync(final String billingAccountName);
+
+ /**
+ * Deletes a role assignment for the caller on a billing account. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingRoleAssignmentName The ID that uniquely identifies a role assignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteByBillingAccountAsync(String billingAccountName, String billingRoleAssignmentName);
+
+ /**
+ * Adds a role assignment on a billing account. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param parameters Request parameters that are provided to the create billing role assignment operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable addByBillingAccountAsync(String billingAccountName, BillingRoleAssignmentPayload parameters);
+
+ /**
+ * Adds a role assignment on an invoice section. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @param invoiceSectionName The ID that uniquely identifies an invoice section.
+ * @param parameters Request parameters that are provided to the create billing role assignment operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable addByInvoiceSectionAsync(String billingAccountName, String billingProfileName, String invoiceSectionName, BillingRoleAssignmentPayload parameters);
+
+ /**
+ * Adds a role assignment on a billing profile. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @param parameters Request parameters that are provided to the create billing role assignment operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable addByBillingProfileAsync(String billingAccountName, String billingProfileName, BillingRoleAssignmentPayload parameters);
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleDefinition.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleDefinition.java
new file mode 100644
index 000000000000..cbb4a5bf0a7f
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleDefinition.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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingRoleDefinitionInner;
+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.v2019_10_01_preview.implementation.BillingManager;
+import java.util.List;
+
+/**
+ * Type representing BillingRoleDefinition.
+ */
+public interface BillingRoleDefinition extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the permissions value.
+ */
+ List permissions();
+
+ /**
+ * @return the roleName value.
+ */
+ String roleName();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleDefinitionListResult.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleDefinitionListResult.java
new file mode 100644
index 000000000000..7bde8d2f4273
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleDefinitionListResult.java
@@ -0,0 +1,32 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingRoleDefinitionListResultInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingRoleDefinitionInner;
+import java.util.List;
+
+/**
+ * Type representing BillingRoleDefinitionListResult.
+ */
+public interface BillingRoleDefinitionListResult extends HasInner, HasManager {
+ /**
+ * @return the nextLink value.
+ */
+ String nextLink();
+
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleDefinitions.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleDefinitions.java
new file mode 100644
index 000000000000..cd9ec3c3efb9
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingRoleDefinitions.java
@@ -0,0 +1,124 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingRoleDefinitionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BillingRoleDefinitions.
+ */
+public interface BillingRoleDefinitions extends HasInner {
+ /**
+ * Gets the definition for a role on an invoice section. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @param invoiceSectionName The ID that uniquely identifies an invoice section.
+ * @param billingRoleDefinitionName The ID that uniquely identifies a role definition.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByInvoiceSectionAsync(String billingAccountName, String billingProfileName, String invoiceSectionName, String billingRoleDefinitionName);
+
+ /**
+ * Gets the definition for a role on a billing profile. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @param billingRoleDefinitionName The ID that uniquely identifies a role definition.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByBillingProfileAsync(String billingAccountName, String billingProfileName, String billingRoleDefinitionName);
+
+ /**
+ * Gets the definition for a role on a department. The operation is supported only for billing accounts with agreement type Enterprise Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param departmentName The ID that uniquely identifies a department.
+ * @param billingRoleDefinitionName The ID that uniquely identifies a role definition.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByDepartmentAsync(String billingAccountName, String departmentName, String billingRoleDefinitionName);
+
+ /**
+ * Gets the definition for a role on an enrollment account. The operation is supported only for billing accounts with agreement type Enterprise Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param enrollmentAccountName The ID that uniquely identifies an enrollment account.
+ * @param billingRoleDefinitionName The ID that uniquely identifies a role definition.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByEnrollmentAccountAsync(String billingAccountName, String enrollmentAccountName, String billingRoleDefinitionName);
+
+ /**
+ * Lists the role definitions for an invoice section. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @param invoiceSectionName The ID that uniquely identifies an invoice section.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByInvoiceSectionAsync(String billingAccountName, String billingProfileName, String invoiceSectionName);
+
+ /**
+ * Lists the role definitions for a billing profile. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingProfileAsync(String billingAccountName, String billingProfileName);
+
+ /**
+ * Lists the role definitions for a department. The operation is supported only for billing accounts with agreement type Enterprise Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param departmentName The ID that uniquely identifies a department.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDepartmentAsync(final String billingAccountName, final String departmentName);
+
+ /**
+ * Lists the role definitions for a enrollmentAccount. The operation is supported only for billing accounts with agreement type Enterprise Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param enrollmentAccountName The ID that uniquely identifies an enrollment account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByEnrollmentAccountAsync(final String billingAccountName, final String enrollmentAccountName);
+
+ /**
+ * Gets the definition for a role on a billing account. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingRoleDefinitionName The ID that uniquely identifies a role definition.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByBillingAccountAsync(String billingAccountName, String billingRoleDefinitionName);
+
+ /**
+ * Lists the role definitions for a billing account. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement, Microsoft Customer Agreement or Enterprise Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingAccountAsync(final String billingAccountName);
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingSubscription.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingSubscription.java
new file mode 100644
index 000000000000..03cae8d6c84c
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingSubscription.java
@@ -0,0 +1,108 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingSubscriptionInner;
+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.v2019_10_01_preview.implementation.BillingManager;
+import java.util.UUID;
+
+/**
+ * Type representing BillingSubscription.
+ */
+public interface BillingSubscription extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the billingProfileDisplayName value.
+ */
+ String billingProfileDisplayName();
+
+ /**
+ * @return the billingProfileId value.
+ */
+ String billingProfileId();
+
+ /**
+ * @return the customerDisplayName value.
+ */
+ String customerDisplayName();
+
+ /**
+ * @return the customerId value.
+ */
+ String customerId();
+
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the invoiceSectionDisplayName value.
+ */
+ String invoiceSectionDisplayName();
+
+ /**
+ * @return the invoiceSectionId value.
+ */
+ String invoiceSectionId();
+
+ /**
+ * @return the lastMonthCharges value.
+ */
+ Amount lastMonthCharges();
+
+ /**
+ * @return the monthToDateCharges value.
+ */
+ Amount monthToDateCharges();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the reseller value.
+ */
+ Reseller reseller();
+
+ /**
+ * @return the skuDescription value.
+ */
+ String skuDescription();
+
+ /**
+ * @return the skuId value.
+ */
+ String skuId();
+
+ /**
+ * @return the subscriptionBillingStatus value.
+ */
+ BillingSubscriptionStatusType subscriptionBillingStatus();
+
+ /**
+ * @return the subscriptionId value.
+ */
+ UUID subscriptionId();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingSubscriptionStatusType.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingSubscriptionStatusType.java
new file mode 100644
index 000000000000..bc9b2cf08b79
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingSubscriptionStatusType.java
@@ -0,0 +1,50 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for BillingSubscriptionStatusType.
+ */
+public final class BillingSubscriptionStatusType extends ExpandableStringEnum {
+ /** Static value Active for BillingSubscriptionStatusType. */
+ public static final BillingSubscriptionStatusType ACTIVE = fromString("Active");
+
+ /** Static value Inactive for BillingSubscriptionStatusType. */
+ public static final BillingSubscriptionStatusType INACTIVE = fromString("Inactive");
+
+ /** Static value Abandoned for BillingSubscriptionStatusType. */
+ public static final BillingSubscriptionStatusType ABANDONED = fromString("Abandoned");
+
+ /** Static value Deleted for BillingSubscriptionStatusType. */
+ public static final BillingSubscriptionStatusType DELETED = fromString("Deleted");
+
+ /** Static value Warning for BillingSubscriptionStatusType. */
+ public static final BillingSubscriptionStatusType WARNING = fromString("Warning");
+
+ /**
+ * Creates or finds a BillingSubscriptionStatusType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding BillingSubscriptionStatusType
+ */
+ @JsonCreator
+ public static BillingSubscriptionStatusType fromString(String name) {
+ return fromString(name, BillingSubscriptionStatusType.class);
+ }
+
+ /**
+ * @return known BillingSubscriptionStatusType values
+ */
+ public static Collection values() {
+ return values(BillingSubscriptionStatusType.class);
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingSubscriptions.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingSubscriptions.java
new file mode 100644
index 000000000000..da0498c998b6
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingSubscriptions.java
@@ -0,0 +1,108 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingSubscriptionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BillingSubscriptions.
+ */
+public interface BillingSubscriptions extends HasInner {
+ /**
+ * Lists the subscriptions for a billing account. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement or Microsoft Partner Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingAccountAsync(final String billingAccountName);
+
+ /**
+ * Lists the subscriptions that are billed to a billing profile. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement or Microsoft Partner Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingProfileAsync(String billingAccountName, String billingProfileName);
+
+ /**
+ * Lists the subscriptions that are billed to an invoice section. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @param invoiceSectionName The ID that uniquely identifies an invoice section.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByInvoiceSectionAsync(String billingAccountName, String billingProfileName, String invoiceSectionName);
+
+ /**
+ * Gets a subscription by its ID. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @param invoiceSectionName The ID that uniquely identifies an invoice section.
+ * @param billingSubscriptionName The ID that uniquely identifies a subscription.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String billingAccountName, String billingProfileName, String invoiceSectionName, String billingSubscriptionName);
+
+ /**
+ * Moves a subscription's charges to a new invoice section. The new invoice section must belong to the same billing profile as the existing invoice section. This operation is supported only for products that are purchased with a recurring charge and for billing accounts with agreement type Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @param invoiceSectionName The ID that uniquely identifies an invoice section.
+ * @param billingSubscriptionName The ID that uniquely identifies a subscription.
+ * @param parameters Request parameters that are provided to the transfer product operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable transferAsync(String billingAccountName, String billingProfileName, String invoiceSectionName, String billingSubscriptionName, TransferBillingSubscriptionRequestProperties parameters);
+
+ /**
+ * Validates if a subscription's charges can be moved to a new invoice section. This operation is supported only for products that are purchased with a recurring charge and for billing accounts with agreement type Microsoft Customer Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @param invoiceSectionName The ID that uniquely identifies an invoice section.
+ * @param billingSubscriptionName The ID that uniquely identifies a subscription.
+ * @param parameters Request parameters that are provided to the validate transfer eligibility operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable validateTransferAsync(String billingAccountName, String billingProfileName, String invoiceSectionName, String billingSubscriptionName, TransferBillingSubscriptionRequestProperties parameters);
+
+ /**
+ * Gets a subscription by its ID. The operation is supported only for billing accounts with agreement type Microsoft Partner Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param customerName The ID that uniquely identifies a customer.
+ * @param billingSubscriptionName The ID that uniquely identifies a subscription.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByCustomerAsync(String billingAccountName, String customerName, String billingSubscriptionName);
+
+ /**
+ * Lists the subscriptions for a customer. The operation is supported only for billing accounts with agreement type Microsoft Partner Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param customerName The ID that uniquely identifies a customer.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByCustomerAsync(final String billingAccountName, final String customerName);
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingSubscriptionsListResult.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingSubscriptionsListResult.java
new file mode 100644
index 000000000000..efa0aa2a9c05
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingSubscriptionsListResult.java
@@ -0,0 +1,32 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingSubscriptionsListResultInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingSubscriptionInner;
+import java.util.List;
+
+/**
+ * Type representing BillingSubscriptionsListResult.
+ */
+public interface BillingSubscriptionsListResult extends HasInner, HasManager {
+ /**
+ * @return the nextLink value.
+ */
+ String nextLink();
+
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingSubscriptionsTransferHeaders.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingSubscriptionsTransferHeaders.java
new file mode 100644
index 000000000000..735baf541dd3
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/BillingSubscriptionsTransferHeaders.java
@@ -0,0 +1,70 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for Transfer operation.
+ */
+public class BillingSubscriptionsTransferHeaders {
+ /**
+ * Location URI to poll for result.
+ */
+ @JsonProperty(value = "Location")
+ private String location;
+
+ /**
+ * Recommended time to wait before making another request to check the
+ * status of the operation. The time is specified in seconds.
+ */
+ @JsonProperty(value = "Retry-After")
+ private Integer retryAfter;
+
+ /**
+ * Get location URI to poll for result.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set location URI to poll for result.
+ *
+ * @param location the location value to set
+ * @return the BillingSubscriptionsTransferHeaders object itself.
+ */
+ public BillingSubscriptionsTransferHeaders withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get recommended time to wait before making another request to check the status of the operation. The time is specified in seconds.
+ *
+ * @return the retryAfter value
+ */
+ public Integer retryAfter() {
+ return this.retryAfter;
+ }
+
+ /**
+ * Set recommended time to wait before making another request to check the status of the operation. The time is specified in seconds.
+ *
+ * @param retryAfter the retryAfter value to set
+ * @return the BillingSubscriptionsTransferHeaders object itself.
+ */
+ public BillingSubscriptionsTransferHeaders withRetryAfter(Integer retryAfter) {
+ this.retryAfter = retryAfter;
+ return this;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Category.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Category.java
new file mode 100644
index 000000000000..fc9e457222c2
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Category.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.v2019_10_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Category.
+ */
+public final class Category extends ExpandableStringEnum {
+ /** Static value MicrosoftCustomerAgreement for Category. */
+ public static final Category MICROSOFT_CUSTOMER_AGREEMENT = fromString("MicrosoftCustomerAgreement");
+
+ /** Static value AffiliatePurchaseTerms for Category. */
+ public static final Category AFFILIATE_PURCHASE_TERMS = fromString("AffiliatePurchaseTerms");
+
+ /** Static value Other for Category. */
+ public static final Category OTHER = fromString("Other");
+
+ /**
+ * Creates or finds a Category from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Category
+ */
+ @JsonCreator
+ public static Category fromString(String name) {
+ return fromString(name, Category.class);
+ }
+
+ /**
+ * @return known Category values
+ */
+ public static Collection values() {
+ return values(Category.class);
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Customer.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Customer.java
new file mode 100644
index 000000000000..d868c4c63420
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Customer.java
@@ -0,0 +1,51 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.CustomerInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import java.util.List;
+
+/**
+ * Type representing Customer.
+ */
+public interface Customer extends HasInner, HasManager {
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the enabledAzurePlans value.
+ */
+ List enabledAzurePlans();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the resellers value.
+ */
+ List resellers();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/CustomerBillingProfileBillingAccountTransferDetails.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/CustomerBillingProfileBillingAccountTransferDetails.java
new file mode 100644
index 000000000000..9242786a9b3c
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/CustomerBillingProfileBillingAccountTransferDetails.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.
+ */
+
+package com.microsoft.azure.management.billing.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.TransferDetailsInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import org.joda.time.DateTime;
+import java.util.List;
+
+/**
+ * Type representing CustomerBillingProfileBillingAccountTransferDetails.
+ */
+public interface CustomerBillingProfileBillingAccountTransferDetails extends HasInner, HasManager {
+ /**
+ * @return the billingAccountId value.
+ */
+ String billingAccountId();
+
+ /**
+ * @return the billingProfileId value.
+ */
+ String billingProfileId();
+
+ /**
+ * @return the canceledBy value.
+ */
+ String canceledBy();
+
+ /**
+ * @return the creationTime value.
+ */
+ DateTime creationTime();
+
+ /**
+ * @return the detailedTransferStatus value.
+ */
+ List detailedTransferStatus();
+
+ /**
+ * @return the expirationTime value.
+ */
+ DateTime expirationTime();
+
+ /**
+ * @return the initiatorCustomerType value.
+ */
+ String initiatorCustomerType();
+
+ /**
+ * @return the initiatorEmailId value.
+ */
+ String initiatorEmailId();
+
+ /**
+ * @return the invoiceSectionId value.
+ */
+ String invoiceSectionId();
+
+ /**
+ * @return the lastModifiedTime value.
+ */
+ DateTime lastModifiedTime();
+
+ /**
+ * @return the recipientEmailId value.
+ */
+ String recipientEmailId();
+
+ /**
+ * @return the resellerId value.
+ */
+ String resellerId();
+
+ /**
+ * @return the resellerName value.
+ */
+ String resellerName();
+
+ /**
+ * @return the transferStatus value.
+ */
+ TransferStatus transferStatus();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/CustomerPolicy.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/CustomerPolicy.java
new file mode 100644
index 000000000000..17ad6bcffce7
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/CustomerPolicy.java
@@ -0,0 +1,40 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.CustomerPolicyInner;
+
+/**
+ * Type representing CustomerPolicy.
+ */
+public interface CustomerPolicy extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the viewCharges value.
+ */
+ ViewCharges viewCharges();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/CustomerType.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/CustomerType.java
new file mode 100644
index 000000000000..3a5f4935ae2e
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/CustomerType.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.v2019_10_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for CustomerType.
+ */
+public final class CustomerType extends ExpandableStringEnum {
+ /** Static value Enterprise for CustomerType. */
+ public static final CustomerType ENTERPRISE = fromString("Enterprise");
+
+ /** Static value Individual for CustomerType. */
+ public static final CustomerType INDIVIDUAL = fromString("Individual");
+
+ /** Static value Partner for CustomerType. */
+ public static final CustomerType PARTNER = fromString("Partner");
+
+ /**
+ * Creates or finds a CustomerType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding CustomerType
+ */
+ @JsonCreator
+ public static CustomerType fromString(String name) {
+ return fromString(name, CustomerType.class);
+ }
+
+ /**
+ * @return known CustomerType values
+ */
+ public static Collection values() {
+ return values(CustomerType.class);
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Customers.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Customers.java
new file mode 100644
index 000000000000..e3b0b9c1d466
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Customers.java
@@ -0,0 +1,48 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.CustomersInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Customers.
+ */
+public interface Customers extends HasInner {
+ /**
+ * Lists the customers that are billed to a billing account. The operation is supported only for billing accounts with agreement type Microsoft Partner Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingAccountAsync(final String billingAccountName);
+
+ /**
+ * Gets a customer by its ID. The operation is supported only for billing accounts with agreement type Microsoft Partner Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param customerName The ID that uniquely identifies a customer.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String billingAccountName, String customerName);
+
+ /**
+ * Lists the customers that are billed to a billing profile. The operation is supported only for billing accounts with agreement type Microsoft Partner Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingProfileAsync(final String billingAccountName, final String billingProfileName);
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Department.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Department.java
new file mode 100644
index 000000000000..09763d84ada5
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Department.java
@@ -0,0 +1,58 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.DepartmentInner;
+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.v2019_10_01_preview.implementation.BillingManager;
+import java.util.List;
+
+/**
+ * Type representing Department.
+ */
+public interface Department extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the costCenter value.
+ */
+ String costCenter();
+
+ /**
+ * @return the departmentName value.
+ */
+ String departmentName();
+
+ /**
+ * @return the enrollmentAccounts value.
+ */
+ List enrollmentAccounts();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the status value.
+ */
+ String status();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DepartmentBillingAccountBillingRoleAssignment.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DepartmentBillingAccountBillingRoleAssignment.java
new file mode 100644
index 000000000000..c4200e06ba3c
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DepartmentBillingAccountBillingRoleAssignment.java
@@ -0,0 +1,262 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingRoleAssignmentInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+
+/**
+ * Type representing DepartmentBillingAccountBillingRoleAssignment.
+ */
+public interface DepartmentBillingAccountBillingRoleAssignment extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the billingRoleAssignmentName value.
+ */
+ String billingRoleAssignmentName();
+
+ /**
+ * @return the createdByPrincipalId value.
+ */
+ String createdByPrincipalId();
+
+ /**
+ * @return the createdByPrincipalTenantId value.
+ */
+ String createdByPrincipalTenantId();
+
+ /**
+ * @return the createdByUserEmailAddress value.
+ */
+ String createdByUserEmailAddress();
+
+ /**
+ * @return the createdOn value.
+ */
+ String createdOn();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the principalId value.
+ */
+ String principalId();
+
+ /**
+ * @return the principalTenantId value.
+ */
+ String principalTenantId();
+
+ /**
+ * @return the roleDefinitionId value.
+ */
+ String roleDefinitionId();
+
+ /**
+ * @return the scope value.
+ */
+ String scope();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the userAuthenticationType value.
+ */
+ String userAuthenticationType();
+
+ /**
+ * @return the userEmailAddress value.
+ */
+ String userEmailAddress();
+
+ /**
+ * The entirety of the DepartmentBillingAccountBillingRoleAssignment definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDepartment, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of DepartmentBillingAccountBillingRoleAssignment definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a DepartmentBillingAccountBillingRoleAssignment definition.
+ */
+ interface Blank extends WithDepartment {
+ }
+
+ /**
+ * The stage of the departmentbillingaccountbillingroleassignment definition allowing to specify Department.
+ */
+ interface WithDepartment {
+ /**
+ * Specifies billingAccountName, departmentName.
+ * @param billingAccountName The ID that uniquely identifies a billing account
+ * @param departmentName The ID that uniquely identifies a department
+ * @return the next definition stage
+ */
+ WithCreate withExistingDepartment(String billingAccountName, String departmentName);
+ }
+
+ /**
+ * The stage of the departmentbillingaccountbillingroleassignment definition allowing to specify PrincipalId.
+ */
+ interface WithPrincipalId {
+ /**
+ * Specifies principalId.
+ * @param principalId The principal id of the user to whom the role was assigned
+ * @return the next definition stage
+ */
+ WithCreate withPrincipalId(String principalId);
+ }
+
+ /**
+ * The stage of the departmentbillingaccountbillingroleassignment definition allowing to specify PrincipalTenantId.
+ */
+ interface WithPrincipalTenantId {
+ /**
+ * Specifies principalTenantId.
+ * @param principalTenantId The principal tenant id of the user to whom the role was assigned
+ * @return the next definition stage
+ */
+ WithCreate withPrincipalTenantId(String principalTenantId);
+ }
+
+ /**
+ * The stage of the departmentbillingaccountbillingroleassignment definition allowing to specify RoleDefinitionId.
+ */
+ interface WithRoleDefinitionId {
+ /**
+ * Specifies roleDefinitionId.
+ * @param roleDefinitionId The ID of the role definition
+ * @return the next definition stage
+ */
+ WithCreate withRoleDefinitionId(String roleDefinitionId);
+ }
+
+ /**
+ * The stage of the departmentbillingaccountbillingroleassignment definition allowing to specify UserAuthenticationType.
+ */
+ interface WithUserAuthenticationType {
+ /**
+ * Specifies userAuthenticationType.
+ * @param userAuthenticationType The authentication type of the user, whether Organization or MSA, of the user to whom the role was assigned. This is supported only for billing accounts with agreement type Enterprise Agreement
+ * @return the next definition stage
+ */
+ WithCreate withUserAuthenticationType(String userAuthenticationType);
+ }
+
+ /**
+ * The stage of the departmentbillingaccountbillingroleassignment definition allowing to specify UserEmailAddress.
+ */
+ interface WithUserEmailAddress {
+ /**
+ * Specifies userEmailAddress.
+ * @param userEmailAddress The email address of the user to whom the role was assigned. This is supported only for billing accounts with agreement type Enterprise Agreement
+ * @return the next definition stage
+ */
+ WithCreate withUserEmailAddress(String userEmailAddress);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithPrincipalId, DefinitionStages.WithPrincipalTenantId, DefinitionStages.WithRoleDefinitionId, DefinitionStages.WithUserAuthenticationType, DefinitionStages.WithUserEmailAddress {
+ }
+ }
+ /**
+ * The template for a DepartmentBillingAccountBillingRoleAssignment update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithPrincipalId, UpdateStages.WithPrincipalTenantId, UpdateStages.WithRoleDefinitionId, UpdateStages.WithUserAuthenticationType, UpdateStages.WithUserEmailAddress {
+ }
+
+ /**
+ * Grouping of DepartmentBillingAccountBillingRoleAssignment update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the departmentbillingaccountbillingroleassignment update allowing to specify PrincipalId.
+ */
+ interface WithPrincipalId {
+ /**
+ * Specifies principalId.
+ * @param principalId The principal id of the user to whom the role was assigned
+ * @return the next update stage
+ */
+ Update withPrincipalId(String principalId);
+ }
+
+ /**
+ * The stage of the departmentbillingaccountbillingroleassignment update allowing to specify PrincipalTenantId.
+ */
+ interface WithPrincipalTenantId {
+ /**
+ * Specifies principalTenantId.
+ * @param principalTenantId The principal tenant id of the user to whom the role was assigned
+ * @return the next update stage
+ */
+ Update withPrincipalTenantId(String principalTenantId);
+ }
+
+ /**
+ * The stage of the departmentbillingaccountbillingroleassignment update allowing to specify RoleDefinitionId.
+ */
+ interface WithRoleDefinitionId {
+ /**
+ * Specifies roleDefinitionId.
+ * @param roleDefinitionId The ID of the role definition
+ * @return the next update stage
+ */
+ Update withRoleDefinitionId(String roleDefinitionId);
+ }
+
+ /**
+ * The stage of the departmentbillingaccountbillingroleassignment update allowing to specify UserAuthenticationType.
+ */
+ interface WithUserAuthenticationType {
+ /**
+ * Specifies userAuthenticationType.
+ * @param userAuthenticationType The authentication type of the user, whether Organization or MSA, of the user to whom the role was assigned. This is supported only for billing accounts with agreement type Enterprise Agreement
+ * @return the next update stage
+ */
+ Update withUserAuthenticationType(String userAuthenticationType);
+ }
+
+ /**
+ * The stage of the departmentbillingaccountbillingroleassignment update allowing to specify UserEmailAddress.
+ */
+ interface WithUserEmailAddress {
+ /**
+ * Specifies userEmailAddress.
+ * @param userEmailAddress The email address of the user to whom the role was assigned. This is supported only for billing accounts with agreement type Enterprise Agreement
+ * @return the next update stage
+ */
+ Update withUserEmailAddress(String userEmailAddress);
+ }
+
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DepartmentListResult.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DepartmentListResult.java
new file mode 100644
index 000000000000..b0c14ee027d3
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DepartmentListResult.java
@@ -0,0 +1,32 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.DepartmentListResultInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.DepartmentInner;
+import java.util.List;
+
+/**
+ * Type representing DepartmentListResult.
+ */
+public interface DepartmentListResult extends HasInner, HasManager {
+ /**
+ * @return the nextLink value.
+ */
+ String nextLink();
+
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Departments.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Departments.java
new file mode 100644
index 000000000000..b628eefdd9ca
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Departments.java
@@ -0,0 +1,38 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.DepartmentsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Departments.
+ */
+public interface Departments extends HasInner {
+ /**
+ * Lists the departments that a user has access to. The operation is supported only for billing accounts with agreement type Enterprise Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingAccountNameAsync(String billingAccountName);
+
+ /**
+ * Gets a department by ID. The operation is supported only for billing accounts with agreement type Enterprise Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param departmentName The ID that uniquely identifies a department.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String billingAccountName, String departmentName);
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DetachPaymentMethodEligibilityErrorCode.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DetachPaymentMethodEligibilityErrorCode.java
new file mode 100644
index 000000000000..d41d26201d32
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DetachPaymentMethodEligibilityErrorCode.java
@@ -0,0 +1,50 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DetachPaymentMethodEligibilityErrorCode.
+ */
+public final class DetachPaymentMethodEligibilityErrorCode extends ExpandableStringEnum {
+ /** Static value AzureSubscriptions for DetachPaymentMethodEligibilityErrorCode. */
+ public static final DetachPaymentMethodEligibilityErrorCode AZURE_SUBSCRIPTIONS = fromString("AzureSubscriptions");
+
+ /** Static value RecurringCharges for DetachPaymentMethodEligibilityErrorCode. */
+ public static final DetachPaymentMethodEligibilityErrorCode RECURRING_CHARGES = fromString("RecurringCharges");
+
+ /** Static value ReservedInstances for DetachPaymentMethodEligibilityErrorCode. */
+ public static final DetachPaymentMethodEligibilityErrorCode RESERVED_INSTANCES = fromString("ReservedInstances");
+
+ /** Static value OutstandingCharges for DetachPaymentMethodEligibilityErrorCode. */
+ public static final DetachPaymentMethodEligibilityErrorCode OUTSTANDING_CHARGES = fromString("OutstandingCharges");
+
+ /** Static value PendingCharges for DetachPaymentMethodEligibilityErrorCode. */
+ public static final DetachPaymentMethodEligibilityErrorCode PENDING_CHARGES = fromString("PendingCharges");
+
+ /**
+ * Creates or finds a DetachPaymentMethodEligibilityErrorCode from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DetachPaymentMethodEligibilityErrorCode
+ */
+ @JsonCreator
+ public static DetachPaymentMethodEligibilityErrorCode fromString(String name) {
+ return fromString(name, DetachPaymentMethodEligibilityErrorCode.class);
+ }
+
+ /**
+ * @return known DetachPaymentMethodEligibilityErrorCode values
+ */
+ public static Collection values() {
+ return values(DetachPaymentMethodEligibilityErrorCode.class);
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DetachPaymentMethodEligibilityResult.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DetachPaymentMethodEligibilityResult.java
new file mode 100644
index 000000000000..ceebb52466bf
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DetachPaymentMethodEligibilityResult.java
@@ -0,0 +1,31 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.DetachPaymentMethodEligibilityResultInner;
+import java.util.List;
+
+/**
+ * Type representing DetachPaymentMethodEligibilityResult.
+ */
+public interface DetachPaymentMethodEligibilityResult extends HasInner, HasManager {
+ /**
+ * @return the errorDetails value.
+ */
+ List errorDetails();
+
+ /**
+ * @return the isEligible value.
+ */
+ Boolean isEligible();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DetachPaymentMethodErrorDetails.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DetachPaymentMethodErrorDetails.java
new file mode 100644
index 000000000000..0d1d6c472235
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DetachPaymentMethodErrorDetails.java
@@ -0,0 +1,71 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Error details of the detach payment method eligibility validation.
+ */
+public class DetachPaymentMethodErrorDetails {
+ /**
+ * Error code for the detach payment method eligibility validation.
+ * Possible values include: 'AzureSubscriptions', 'RecurringCharges',
+ * 'ReservedInstances', 'OutstandingCharges', 'PendingCharges'.
+ */
+ @JsonProperty(value = "code")
+ private DetachPaymentMethodEligibilityErrorCode code;
+
+ /**
+ * Error message for the detach payment method eligibility validation.
+ */
+ @JsonProperty(value = "message")
+ private String message;
+
+ /**
+ * Get error code for the detach payment method eligibility validation. Possible values include: 'AzureSubscriptions', 'RecurringCharges', 'ReservedInstances', 'OutstandingCharges', 'PendingCharges'.
+ *
+ * @return the code value
+ */
+ public DetachPaymentMethodEligibilityErrorCode code() {
+ return this.code;
+ }
+
+ /**
+ * Set error code for the detach payment method eligibility validation. Possible values include: 'AzureSubscriptions', 'RecurringCharges', 'ReservedInstances', 'OutstandingCharges', 'PendingCharges'.
+ *
+ * @param code the code value to set
+ * @return the DetachPaymentMethodErrorDetails object itself.
+ */
+ public DetachPaymentMethodErrorDetails withCode(DetachPaymentMethodEligibilityErrorCode code) {
+ this.code = code;
+ return this;
+ }
+
+ /**
+ * Get error message for the detach payment method eligibility validation.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Set error message for the detach payment method eligibility validation.
+ *
+ * @param message the message value to set
+ * @return the DetachPaymentMethodErrorDetails object itself.
+ */
+ public DetachPaymentMethodErrorDetails withMessage(String message) {
+ this.message = message;
+ return this;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DetailedTransferStatus.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DetailedTransferStatus.java
new file mode 100644
index 000000000000..34ddf5ec22da
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DetailedTransferStatus.java
@@ -0,0 +1,90 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Detailed transfer status.
+ */
+public class DetailedTransferStatus {
+ /**
+ * Type of product that is transferred. Possible values include:
+ * 'AzureSubscription', 'AzureReservation'.
+ */
+ @JsonProperty(value = "productType", access = JsonProperty.Access.WRITE_ONLY)
+ private ProductType productType;
+
+ /**
+ * The ID of the product that is transferred.
+ */
+ @JsonProperty(value = "productId", access = JsonProperty.Access.WRITE_ONLY)
+ private String productId;
+
+ /**
+ * Transfer status. Possible values include: 'NotStarted', 'InProgress',
+ * 'Completed', 'Failed'.
+ */
+ @JsonProperty(value = "transferStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private ProductTransferStatus transferStatus;
+
+ /**
+ * Error details for transfer execution.
+ */
+ @JsonProperty(value = "errorDetails")
+ private Error errorDetails;
+
+ /**
+ * Get type of product that is transferred. Possible values include: 'AzureSubscription', 'AzureReservation'.
+ *
+ * @return the productType value
+ */
+ public ProductType productType() {
+ return this.productType;
+ }
+
+ /**
+ * Get the ID of the product that is transferred.
+ *
+ * @return the productId value
+ */
+ public String productId() {
+ return this.productId;
+ }
+
+ /**
+ * Get transfer status. Possible values include: 'NotStarted', 'InProgress', 'Completed', 'Failed'.
+ *
+ * @return the transferStatus value
+ */
+ public ProductTransferStatus transferStatus() {
+ return this.transferStatus;
+ }
+
+ /**
+ * Get error details for transfer execution.
+ *
+ * @return the errorDetails value
+ */
+ public Error errorDetails() {
+ return this.errorDetails;
+ }
+
+ /**
+ * Set error details for transfer execution.
+ *
+ * @param errorDetails the errorDetails value to set
+ * @return the DetailedTransferStatus object itself.
+ */
+ public DetailedTransferStatus withErrorDetails(Error errorDetails) {
+ this.errorDetails = errorDetails;
+ return this;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Document.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Document.java
new file mode 100644
index 000000000000..ea2235216ff2
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Document.java
@@ -0,0 +1,64 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of a document.
+ */
+public class Document {
+ /**
+ * The type of the document. Possible values include: 'Invoice',
+ * 'VoidNote', 'TaxReceipt', 'CreditNote'.
+ */
+ @JsonProperty(value = "kind", access = JsonProperty.Access.WRITE_ONLY)
+ private DocumentType kind;
+
+ /**
+ * Document URL.
+ */
+ @JsonProperty(value = "url", access = JsonProperty.Access.WRITE_ONLY)
+ private String url;
+
+ /**
+ * Document numbers for an Enterprise Agreement invoice.
+ */
+ @JsonProperty(value = "documentNumbers", access = JsonProperty.Access.WRITE_ONLY)
+ private List documentNumbers;
+
+ /**
+ * Get the type of the document. Possible values include: 'Invoice', 'VoidNote', 'TaxReceipt', 'CreditNote'.
+ *
+ * @return the kind value
+ */
+ public DocumentType kind() {
+ return this.kind;
+ }
+
+ /**
+ * Get document URL.
+ *
+ * @return the url value
+ */
+ public String url() {
+ return this.url;
+ }
+
+ /**
+ * Get document numbers for an Enterprise Agreement invoice.
+ *
+ * @return the documentNumbers value
+ */
+ public List documentNumbers() {
+ return this.documentNumbers;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DocumentType.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DocumentType.java
new file mode 100644
index 000000000000..746015e609f2
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DocumentType.java
@@ -0,0 +1,47 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DocumentType.
+ */
+public final class DocumentType extends ExpandableStringEnum {
+ /** Static value Invoice for DocumentType. */
+ public static final DocumentType INVOICE = fromString("Invoice");
+
+ /** Static value VoidNote for DocumentType. */
+ public static final DocumentType VOID_NOTE = fromString("VoidNote");
+
+ /** Static value TaxReceipt for DocumentType. */
+ public static final DocumentType TAX_RECEIPT = fromString("TaxReceipt");
+
+ /** Static value CreditNote for DocumentType. */
+ public static final DocumentType CREDIT_NOTE = fromString("CreditNote");
+
+ /**
+ * Creates or finds a DocumentType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DocumentType
+ */
+ @JsonCreator
+ public static DocumentType fromString(String name) {
+ return fromString(name, DocumentType.class);
+ }
+
+ /**
+ * @return known DocumentType values
+ */
+ public static Collection values() {
+ return values(DocumentType.class);
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DownloadUrl.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DownloadUrl.java
new file mode 100644
index 000000000000..875a3bbaafdb
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/DownloadUrl.java
@@ -0,0 +1,31 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.DownloadUrlInner;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing DownloadUrl.
+ */
+public interface DownloadUrl extends HasInner, HasManager {
+ /**
+ * @return the expiryTime value.
+ */
+ DateTime expiryTime();
+
+ /**
+ * @return the url value.
+ */
+ String url();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EligibleProductType.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EligibleProductType.java
new file mode 100644
index 000000000000..e30aa4dc2495
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EligibleProductType.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.v2019_10_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for EligibleProductType.
+ */
+public final class EligibleProductType extends ExpandableStringEnum {
+ /** Static value DevTestAzureSubscription for EligibleProductType. */
+ public static final EligibleProductType DEV_TEST_AZURE_SUBSCRIPTION = fromString("DevTestAzureSubscription");
+
+ /** Static value StandardAzureSubscription for EligibleProductType. */
+ public static final EligibleProductType STANDARD_AZURE_SUBSCRIPTION = fromString("StandardAzureSubscription");
+
+ /** Static value AzureReservation for EligibleProductType. */
+ public static final EligibleProductType AZURE_RESERVATION = fromString("AzureReservation");
+
+ /**
+ * Creates or finds a EligibleProductType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding EligibleProductType
+ */
+ @JsonCreator
+ public static EligibleProductType fromString(String name) {
+ return fromString(name, EligibleProductType.class);
+ }
+
+ /**
+ * @return known EligibleProductType values
+ */
+ public static Collection values() {
+ return values(EligibleProductType.class);
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Enrollment.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Enrollment.java
new file mode 100644
index 000000000000..56f8d352bf52
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Enrollment.java
@@ -0,0 +1,175 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of an enrollment.
+ */
+public class Enrollment {
+ /**
+ * The start date of the enrollment.
+ */
+ @JsonProperty(value = "startDate")
+ private DateTime startDate;
+
+ /**
+ * The end date of the enrollment.
+ */
+ @JsonProperty(value = "endDate")
+ private DateTime endDate;
+
+ /**
+ * The billing currency for the enrollment.
+ */
+ @JsonProperty(value = "currency", access = JsonProperty.Access.WRITE_ONLY)
+ private String currency;
+
+ /**
+ * The channel type of the enrollment.
+ */
+ @JsonProperty(value = "channel", access = JsonProperty.Access.WRITE_ONLY)
+ private String channel;
+
+ /**
+ * The policies for Enterprise Agreement enrollments.
+ */
+ @JsonProperty(value = "policies", access = JsonProperty.Access.WRITE_ONLY)
+ private EnrollmentPolicies policies;
+
+ /**
+ * The language for the enrollment.
+ */
+ @JsonProperty(value = "language", access = JsonProperty.Access.WRITE_ONLY)
+ private String language;
+
+ /**
+ * The country code of the enrollment.
+ */
+ @JsonProperty(value = "countryCode", access = JsonProperty.Access.WRITE_ONLY)
+ private String countryCode;
+
+ /**
+ * The current status of the enrollment.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private String status;
+
+ /**
+ * The billing cycle for the enrollment.
+ */
+ @JsonProperty(value = "billingCycle", access = JsonProperty.Access.WRITE_ONLY)
+ private String billingCycle;
+
+ /**
+ * Get the start date of the enrollment.
+ *
+ * @return the startDate value
+ */
+ public DateTime startDate() {
+ return this.startDate;
+ }
+
+ /**
+ * Set the start date of the enrollment.
+ *
+ * @param startDate the startDate value to set
+ * @return the Enrollment object itself.
+ */
+ public Enrollment withStartDate(DateTime startDate) {
+ this.startDate = startDate;
+ return this;
+ }
+
+ /**
+ * Get the end date of the enrollment.
+ *
+ * @return the endDate value
+ */
+ public DateTime endDate() {
+ return this.endDate;
+ }
+
+ /**
+ * Set the end date of the enrollment.
+ *
+ * @param endDate the endDate value to set
+ * @return the Enrollment object itself.
+ */
+ public Enrollment withEndDate(DateTime endDate) {
+ this.endDate = endDate;
+ return this;
+ }
+
+ /**
+ * Get the billing currency for the enrollment.
+ *
+ * @return the currency value
+ */
+ public String currency() {
+ return this.currency;
+ }
+
+ /**
+ * Get the channel type of the enrollment.
+ *
+ * @return the channel value
+ */
+ public String channel() {
+ return this.channel;
+ }
+
+ /**
+ * Get the policies for Enterprise Agreement enrollments.
+ *
+ * @return the policies value
+ */
+ public EnrollmentPolicies policies() {
+ return this.policies;
+ }
+
+ /**
+ * Get the language for the enrollment.
+ *
+ * @return the language value
+ */
+ public String language() {
+ return this.language;
+ }
+
+ /**
+ * Get the country code of the enrollment.
+ *
+ * @return the countryCode value
+ */
+ public String countryCode() {
+ return this.countryCode;
+ }
+
+ /**
+ * Get the current status of the enrollment.
+ *
+ * @return the status value
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Get the billing cycle for the enrollment.
+ *
+ * @return the billingCycle value
+ */
+ public String billingCycle() {
+ return this.billingCycle;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccount.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccount.java
new file mode 100644
index 000000000000..645bcc55edab
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccount.java
@@ -0,0 +1,73 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.EnrollmentAccountInner;
+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.v2019_10_01_preview.implementation.BillingManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing EnrollmentAccount.
+ */
+public interface EnrollmentAccount extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the accountName value.
+ */
+ String accountName();
+
+ /**
+ * @return the accountOwner value.
+ */
+ String accountOwner();
+
+ /**
+ * @return the costCenter value.
+ */
+ String costCenter();
+
+ /**
+ * @return the department value.
+ */
+ Department department();
+
+ /**
+ * @return the endDate value.
+ */
+ DateTime endDate();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the startDate value.
+ */
+ DateTime startDate();
+
+ /**
+ * @return the status value.
+ */
+ String status();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccountBillingAccountBillingRoleAssignment.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccountBillingAccountBillingRoleAssignment.java
new file mode 100644
index 000000000000..8c52ea847142
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccountBillingAccountBillingRoleAssignment.java
@@ -0,0 +1,262 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingRoleAssignmentInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+
+/**
+ * Type representing EnrollmentAccountBillingAccountBillingRoleAssignment.
+ */
+public interface EnrollmentAccountBillingAccountBillingRoleAssignment extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the billingRoleAssignmentName value.
+ */
+ String billingRoleAssignmentName();
+
+ /**
+ * @return the createdByPrincipalId value.
+ */
+ String createdByPrincipalId();
+
+ /**
+ * @return the createdByPrincipalTenantId value.
+ */
+ String createdByPrincipalTenantId();
+
+ /**
+ * @return the createdByUserEmailAddress value.
+ */
+ String createdByUserEmailAddress();
+
+ /**
+ * @return the createdOn value.
+ */
+ String createdOn();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the principalId value.
+ */
+ String principalId();
+
+ /**
+ * @return the principalTenantId value.
+ */
+ String principalTenantId();
+
+ /**
+ * @return the roleDefinitionId value.
+ */
+ String roleDefinitionId();
+
+ /**
+ * @return the scope value.
+ */
+ String scope();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the userAuthenticationType value.
+ */
+ String userAuthenticationType();
+
+ /**
+ * @return the userEmailAddress value.
+ */
+ String userEmailAddress();
+
+ /**
+ * The entirety of the EnrollmentAccountBillingAccountBillingRoleAssignment definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithEnrollmentAccount, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of EnrollmentAccountBillingAccountBillingRoleAssignment definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a EnrollmentAccountBillingAccountBillingRoleAssignment definition.
+ */
+ interface Blank extends WithEnrollmentAccount {
+ }
+
+ /**
+ * The stage of the enrollmentaccountbillingaccountbillingroleassignment definition allowing to specify EnrollmentAccount.
+ */
+ interface WithEnrollmentAccount {
+ /**
+ * Specifies billingAccountName, enrollmentAccountName.
+ * @param billingAccountName The ID that uniquely identifies a billing account
+ * @param enrollmentAccountName The ID that uniquely identifies an enrollment account
+ * @return the next definition stage
+ */
+ WithCreate withExistingEnrollmentAccount(String billingAccountName, String enrollmentAccountName);
+ }
+
+ /**
+ * The stage of the enrollmentaccountbillingaccountbillingroleassignment definition allowing to specify PrincipalId.
+ */
+ interface WithPrincipalId {
+ /**
+ * Specifies principalId.
+ * @param principalId The principal id of the user to whom the role was assigned
+ * @return the next definition stage
+ */
+ WithCreate withPrincipalId(String principalId);
+ }
+
+ /**
+ * The stage of the enrollmentaccountbillingaccountbillingroleassignment definition allowing to specify PrincipalTenantId.
+ */
+ interface WithPrincipalTenantId {
+ /**
+ * Specifies principalTenantId.
+ * @param principalTenantId The principal tenant id of the user to whom the role was assigned
+ * @return the next definition stage
+ */
+ WithCreate withPrincipalTenantId(String principalTenantId);
+ }
+
+ /**
+ * The stage of the enrollmentaccountbillingaccountbillingroleassignment definition allowing to specify RoleDefinitionId.
+ */
+ interface WithRoleDefinitionId {
+ /**
+ * Specifies roleDefinitionId.
+ * @param roleDefinitionId The ID of the role definition
+ * @return the next definition stage
+ */
+ WithCreate withRoleDefinitionId(String roleDefinitionId);
+ }
+
+ /**
+ * The stage of the enrollmentaccountbillingaccountbillingroleassignment definition allowing to specify UserAuthenticationType.
+ */
+ interface WithUserAuthenticationType {
+ /**
+ * Specifies userAuthenticationType.
+ * @param userAuthenticationType The authentication type of the user, whether Organization or MSA, of the user to whom the role was assigned. This is supported only for billing accounts with agreement type Enterprise Agreement
+ * @return the next definition stage
+ */
+ WithCreate withUserAuthenticationType(String userAuthenticationType);
+ }
+
+ /**
+ * The stage of the enrollmentaccountbillingaccountbillingroleassignment definition allowing to specify UserEmailAddress.
+ */
+ interface WithUserEmailAddress {
+ /**
+ * Specifies userEmailAddress.
+ * @param userEmailAddress The email address of the user to whom the role was assigned. This is supported only for billing accounts with agreement type Enterprise Agreement
+ * @return the next definition stage
+ */
+ WithCreate withUserEmailAddress(String userEmailAddress);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithPrincipalId, DefinitionStages.WithPrincipalTenantId, DefinitionStages.WithRoleDefinitionId, DefinitionStages.WithUserAuthenticationType, DefinitionStages.WithUserEmailAddress {
+ }
+ }
+ /**
+ * The template for a EnrollmentAccountBillingAccountBillingRoleAssignment update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithPrincipalId, UpdateStages.WithPrincipalTenantId, UpdateStages.WithRoleDefinitionId, UpdateStages.WithUserAuthenticationType, UpdateStages.WithUserEmailAddress {
+ }
+
+ /**
+ * Grouping of EnrollmentAccountBillingAccountBillingRoleAssignment update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the enrollmentaccountbillingaccountbillingroleassignment update allowing to specify PrincipalId.
+ */
+ interface WithPrincipalId {
+ /**
+ * Specifies principalId.
+ * @param principalId The principal id of the user to whom the role was assigned
+ * @return the next update stage
+ */
+ Update withPrincipalId(String principalId);
+ }
+
+ /**
+ * The stage of the enrollmentaccountbillingaccountbillingroleassignment update allowing to specify PrincipalTenantId.
+ */
+ interface WithPrincipalTenantId {
+ /**
+ * Specifies principalTenantId.
+ * @param principalTenantId The principal tenant id of the user to whom the role was assigned
+ * @return the next update stage
+ */
+ Update withPrincipalTenantId(String principalTenantId);
+ }
+
+ /**
+ * The stage of the enrollmentaccountbillingaccountbillingroleassignment update allowing to specify RoleDefinitionId.
+ */
+ interface WithRoleDefinitionId {
+ /**
+ * Specifies roleDefinitionId.
+ * @param roleDefinitionId The ID of the role definition
+ * @return the next update stage
+ */
+ Update withRoleDefinitionId(String roleDefinitionId);
+ }
+
+ /**
+ * The stage of the enrollmentaccountbillingaccountbillingroleassignment update allowing to specify UserAuthenticationType.
+ */
+ interface WithUserAuthenticationType {
+ /**
+ * Specifies userAuthenticationType.
+ * @param userAuthenticationType The authentication type of the user, whether Organization or MSA, of the user to whom the role was assigned. This is supported only for billing accounts with agreement type Enterprise Agreement
+ * @return the next update stage
+ */
+ Update withUserAuthenticationType(String userAuthenticationType);
+ }
+
+ /**
+ * The stage of the enrollmentaccountbillingaccountbillingroleassignment update allowing to specify UserEmailAddress.
+ */
+ interface WithUserEmailAddress {
+ /**
+ * Specifies userEmailAddress.
+ * @param userEmailAddress The email address of the user to whom the role was assigned. This is supported only for billing accounts with agreement type Enterprise Agreement
+ * @return the next update stage
+ */
+ Update withUserEmailAddress(String userEmailAddress);
+ }
+
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccountContext.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccountContext.java
new file mode 100644
index 000000000000..3a56c3c99bcd
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccountContext.java
@@ -0,0 +1,122 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.billing.v2019_10_01_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The enrollment account context.
+ */
+public class EnrollmentAccountContext {
+ /**
+ * The cost center associated with the enrollment account.
+ */
+ @JsonProperty(value = "costCenter")
+ private String costCenter;
+
+ /**
+ * The start date of the enrollment account.
+ */
+ @JsonProperty(value = "startDate")
+ private DateTime startDate;
+
+ /**
+ * The end date of the enrollment account.
+ */
+ @JsonProperty(value = "endDate")
+ private DateTime endDate;
+
+ /**
+ * The ID of the enrollment account.
+ */
+ @JsonProperty(value = "enrollmentAccountName")
+ private String enrollmentAccountName;
+
+ /**
+ * Get the cost center associated with the enrollment account.
+ *
+ * @return the costCenter value
+ */
+ public String costCenter() {
+ return this.costCenter;
+ }
+
+ /**
+ * Set the cost center associated with the enrollment account.
+ *
+ * @param costCenter the costCenter value to set
+ * @return the EnrollmentAccountContext object itself.
+ */
+ public EnrollmentAccountContext withCostCenter(String costCenter) {
+ this.costCenter = costCenter;
+ return this;
+ }
+
+ /**
+ * Get the start date of the enrollment account.
+ *
+ * @return the startDate value
+ */
+ public DateTime startDate() {
+ return this.startDate;
+ }
+
+ /**
+ * Set the start date of the enrollment account.
+ *
+ * @param startDate the startDate value to set
+ * @return the EnrollmentAccountContext object itself.
+ */
+ public EnrollmentAccountContext withStartDate(DateTime startDate) {
+ this.startDate = startDate;
+ return this;
+ }
+
+ /**
+ * Get the end date of the enrollment account.
+ *
+ * @return the endDate value
+ */
+ public DateTime endDate() {
+ return this.endDate;
+ }
+
+ /**
+ * Set the end date of the enrollment account.
+ *
+ * @param endDate the endDate value to set
+ * @return the EnrollmentAccountContext object itself.
+ */
+ public EnrollmentAccountContext withEndDate(DateTime endDate) {
+ this.endDate = endDate;
+ return this;
+ }
+
+ /**
+ * Get the ID of the enrollment account.
+ *
+ * @return the enrollmentAccountName value
+ */
+ public String enrollmentAccountName() {
+ return this.enrollmentAccountName;
+ }
+
+ /**
+ * Set the ID of the enrollment account.
+ *
+ * @param enrollmentAccountName the enrollmentAccountName value to set
+ * @return the EnrollmentAccountContext object itself.
+ */
+ public EnrollmentAccountContext withEnrollmentAccountName(String enrollmentAccountName) {
+ this.enrollmentAccountName = enrollmentAccountName;
+ return this;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccountListResult.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccountListResult.java
new file mode 100644
index 000000000000..0571f5c925cc
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccountListResult.java
@@ -0,0 +1,32 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.EnrollmentAccountListResultInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.EnrollmentAccountInner;
+import java.util.List;
+
+/**
+ * Type representing EnrollmentAccountListResult.
+ */
+public interface EnrollmentAccountListResult extends HasInner, HasManager {
+ /**
+ * @return the nextLink value.
+ */
+ String nextLink();
+
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccountRoleAssignments.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccountRoleAssignments.java
new file mode 100644
index 000000000000..c8701c7afd30
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccountRoleAssignments.java
@@ -0,0 +1,19 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.EnrollmentAccountRoleAssignmentsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing EnrollmentAccountRoleAssignments.
+ */
+public interface EnrollmentAccountRoleAssignments extends SupportsCreating, HasInner {
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccounts.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccounts.java
new file mode 100644
index 000000000000..2043af350c3f
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentAccounts.java
@@ -0,0 +1,38 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.EnrollmentAccountsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing EnrollmentAccounts.
+ */
+public interface EnrollmentAccounts extends HasInner {
+ /**
+ * Lists the enrollment accounts for a billing account. The operation is supported only for billing accounts with agreement type Enterprise Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingAccountNameAsync(String billingAccountName);
+
+ /**
+ * Gets an enrollment account by ID. The operation is supported only for billing accounts with agreement type Enterprise Agreement.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param enrollmentAccountName The ID that uniquely identifies an enrollment account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByEnrollmentAccountIdAsync(String billingAccountName, String enrollmentAccountName);
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentDepartmentRoleAssignments.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentDepartmentRoleAssignments.java
new file mode 100644
index 000000000000..14b0d1405f8e
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentDepartmentRoleAssignments.java
@@ -0,0 +1,19 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.EnrollmentDepartmentRoleAssignmentsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing EnrollmentDepartmentRoleAssignments.
+ */
+public interface EnrollmentDepartmentRoleAssignments extends SupportsCreating, HasInner {
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentPolicies.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentPolicies.java
new file mode 100644
index 000000000000..6b5bbb34451b
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/EnrollmentPolicies.java
@@ -0,0 +1,80 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The policies for Enterprise Agreement enrollments.
+ */
+public class EnrollmentPolicies {
+ /**
+ * The policy that controls whether Account Owners can view charges.
+ */
+ @JsonProperty(value = "accountOwnerViewCharges", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean accountOwnerViewCharges;
+
+ /**
+ * The policy that controls whether Department Administrators can view
+ * charges.
+ */
+ @JsonProperty(value = "departmentAdminViewCharges", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean departmentAdminViewCharges;
+
+ /**
+ * The policy that controls whether Azure marketplace purchases are allowed
+ * in the enrollment.
+ */
+ @JsonProperty(value = "marketplacesEnabled", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean marketplacesEnabled;
+
+ /**
+ * The policy that controls whether Azure reservation purchases are allowed
+ * in the enrollment.
+ */
+ @JsonProperty(value = "reservedInstancesEnabled", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean reservedInstancesEnabled;
+
+ /**
+ * Get the policy that controls whether Account Owners can view charges.
+ *
+ * @return the accountOwnerViewCharges value
+ */
+ public Boolean accountOwnerViewCharges() {
+ return this.accountOwnerViewCharges;
+ }
+
+ /**
+ * Get the policy that controls whether Department Administrators can view charges.
+ *
+ * @return the departmentAdminViewCharges value
+ */
+ public Boolean departmentAdminViewCharges() {
+ return this.departmentAdminViewCharges;
+ }
+
+ /**
+ * Get the policy that controls whether Azure marketplace purchases are allowed in the enrollment.
+ *
+ * @return the marketplacesEnabled value
+ */
+ public Boolean marketplacesEnabled() {
+ return this.marketplacesEnabled;
+ }
+
+ /**
+ * Get the policy that controls whether Azure reservation purchases are allowed in the enrollment.
+ *
+ * @return the reservedInstancesEnabled value
+ */
+ public Boolean reservedInstancesEnabled() {
+ return this.reservedInstancesEnabled;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Error.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Error.java
new file mode 100644
index 000000000000..56d2fc1b4963
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Error.java
@@ -0,0 +1,47 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Error details for transfer execution.
+ */
+public class Error {
+ /**
+ * Error code.
+ */
+ @JsonProperty(value = "errorCode", access = JsonProperty.Access.WRITE_ONLY)
+ private String errorCode;
+
+ /**
+ * Error message.
+ */
+ @JsonProperty(value = "errorMessage", access = JsonProperty.Access.WRITE_ONLY)
+ private String errorMessage;
+
+ /**
+ * Get error code.
+ *
+ * @return the errorCode value
+ */
+ public String errorCode() {
+ return this.errorCode;
+ }
+
+ /**
+ * Get error message.
+ *
+ * @return the errorMessage value
+ */
+ public String errorMessage() {
+ return this.errorMessage;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/ErrorDetails.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/ErrorDetails.java
new file mode 100644
index 000000000000..b62f436cf585
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/ErrorDetails.java
@@ -0,0 +1,78 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import java.util.List;
+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;
+
+ /**
+ * The sub details of the error.
+ */
+ @JsonProperty(value = "details", access = JsonProperty.Access.WRITE_ONLY)
+ private List details;
+
+ /**
+ * 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;
+ }
+
+ /**
+ * Get the sub details of the error.
+ *
+ * @return the details value
+ */
+ public List details() {
+ return this.details;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/ErrorResponse.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/ErrorResponse.java
new file mode 100644
index 000000000000..dcc0014f88b0
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_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.v2019_10_01_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 details of the error.
+ */
+ @JsonProperty(value = "error")
+ private ErrorDetails error;
+
+ /**
+ * Get the details of the error.
+ *
+ * @return the error value
+ */
+ public ErrorDetails error() {
+ return this.error;
+ }
+
+ /**
+ * Set the details of the error.
+ *
+ * @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/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/ErrorResponseException.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/ErrorResponseException.java
new file mode 100644
index 000000000000..59d8b1a93fa2
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_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.v2019_10_01_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/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/ErrorSubDetailsItem.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/ErrorSubDetailsItem.java
new file mode 100644
index 000000000000..30601ca52c2d
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/ErrorSubDetailsItem.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.v2019_10_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The ErrorSubDetailsItem model.
+ */
+public class ErrorSubDetailsItem {
+ /**
+ * 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/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/IndirectRelationshipInfo.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/IndirectRelationshipInfo.java
new file mode 100644
index 000000000000..63302d64cf1c
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/IndirectRelationshipInfo.java
@@ -0,0 +1,98 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The billing profile details of the partner of the customer for an indirect
+ * motion.
+ */
+public class IndirectRelationshipInfo {
+ /**
+ * The billing account name of the partner or the customer for an indirect
+ * motion.
+ */
+ @JsonProperty(value = "billingAccountName")
+ private String billingAccountName;
+
+ /**
+ * The billing profile name of the partner or the customer for an indirect
+ * motion.
+ */
+ @JsonProperty(value = "billingProfileName")
+ private String billingProfileName;
+
+ /**
+ * The display name of the partner or customer for an indirect motion.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * Get the billing account name of the partner or the customer for an indirect motion.
+ *
+ * @return the billingAccountName value
+ */
+ public String billingAccountName() {
+ return this.billingAccountName;
+ }
+
+ /**
+ * Set the billing account name of the partner or the customer for an indirect motion.
+ *
+ * @param billingAccountName the billingAccountName value to set
+ * @return the IndirectRelationshipInfo object itself.
+ */
+ public IndirectRelationshipInfo withBillingAccountName(String billingAccountName) {
+ this.billingAccountName = billingAccountName;
+ return this;
+ }
+
+ /**
+ * Get the billing profile name of the partner or the customer for an indirect motion.
+ *
+ * @return the billingProfileName value
+ */
+ public String billingProfileName() {
+ return this.billingProfileName;
+ }
+
+ /**
+ * Set the billing profile name of the partner or the customer for an indirect motion.
+ *
+ * @param billingProfileName the billingProfileName value to set
+ * @return the IndirectRelationshipInfo object itself.
+ */
+ public IndirectRelationshipInfo withBillingProfileName(String billingProfileName) {
+ this.billingProfileName = billingProfileName;
+ return this;
+ }
+
+ /**
+ * Get the display name of the partner or customer for an indirect motion.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the display name of the partner or customer for an indirect motion.
+ *
+ * @param displayName the displayName value to set
+ * @return the IndirectRelationshipInfo object itself.
+ */
+ public IndirectRelationshipInfo withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/InitiateTransferRequest.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/InitiateTransferRequest.java
new file mode 100644
index 000000000000..0f6fc844e0ee
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/InitiateTransferRequest.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.v2019_10_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Request parameters to initiate transfer.
+ */
+@JsonFlatten
+public class InitiateTransferRequest {
+ /**
+ * The email ID of the recipient to whom the transfer request is sent.
+ */
+ @JsonProperty(value = "properties.recipientEmailId")
+ private String recipientEmailId;
+
+ /**
+ * Optional MPN ID of the reseller for transfer requests that are sent from
+ * a Microsoft Partner Agreement billing account.
+ */
+ @JsonProperty(value = "properties.resellerId")
+ private String resellerId;
+
+ /**
+ * Get the email ID of the recipient to whom the transfer request is sent.
+ *
+ * @return the recipientEmailId value
+ */
+ public String recipientEmailId() {
+ return this.recipientEmailId;
+ }
+
+ /**
+ * Set the email ID of the recipient to whom the transfer request is sent.
+ *
+ * @param recipientEmailId the recipientEmailId value to set
+ * @return the InitiateTransferRequest object itself.
+ */
+ public InitiateTransferRequest withRecipientEmailId(String recipientEmailId) {
+ this.recipientEmailId = recipientEmailId;
+ return this;
+ }
+
+ /**
+ * Get optional MPN ID of the reseller for transfer requests that are sent from a Microsoft Partner Agreement billing account.
+ *
+ * @return the resellerId value
+ */
+ public String resellerId() {
+ return this.resellerId;
+ }
+
+ /**
+ * Set optional MPN ID of the reseller for transfer requests that are sent from a Microsoft Partner Agreement billing account.
+ *
+ * @param resellerId the resellerId value to set
+ * @return the InitiateTransferRequest object itself.
+ */
+ public InitiateTransferRequest withResellerId(String resellerId) {
+ this.resellerId = resellerId;
+ return this;
+ }
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Instruction.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Instruction.java
new file mode 100644
index 000000000000..8a7a02790719
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Instruction.java
@@ -0,0 +1,169 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.InstructionInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing Instruction.
+ */
+public interface Instruction extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the amount value.
+ */
+ double amount();
+
+ /**
+ * @return the creationDate value.
+ */
+ DateTime creationDate();
+
+ /**
+ * @return the endDate value.
+ */
+ DateTime endDate();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the startDate value.
+ */
+ DateTime startDate();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the Instruction definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithBillingProfile, DefinitionStages.WithAmount, DefinitionStages.WithEndDate, DefinitionStages.WithStartDate, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Instruction definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Instruction definition.
+ */
+ interface Blank extends WithBillingProfile {
+ }
+
+ /**
+ * The stage of the instruction definition allowing to specify BillingProfile.
+ */
+ interface WithBillingProfile {
+ /**
+ * Specifies billingAccountName, billingProfileName.
+ * @param billingAccountName The ID that uniquely identifies a billing account
+ * @param billingProfileName The ID that uniquely identifies a billing profile
+ * @return the next definition stage
+ */
+ WithAmount withExistingBillingProfile(String billingAccountName, String billingProfileName);
+ }
+
+ /**
+ * The stage of the instruction definition allowing to specify Amount.
+ */
+ interface WithAmount {
+ /**
+ * Specifies amount.
+ * @param amount The amount budgeted for this billing instruction
+ * @return the next definition stage
+ */
+ WithEndDate withAmount(double amount);
+ }
+
+ /**
+ * The stage of the instruction definition allowing to specify EndDate.
+ */
+ interface WithEndDate {
+ /**
+ * Specifies endDate.
+ * @param endDate The date this billing instruction is no longer in effect
+ * @return the next definition stage
+ */
+ WithStartDate withEndDate(DateTime endDate);
+ }
+
+ /**
+ * The stage of the instruction definition allowing to specify StartDate.
+ */
+ interface WithStartDate {
+ /**
+ * Specifies startDate.
+ * @param startDate The date this billing instruction goes into effect
+ * @return the next definition stage
+ */
+ WithCreate withStartDate(DateTime startDate);
+ }
+
+ /**
+ * The stage of the instruction definition allowing to specify CreationDate.
+ */
+ interface WithCreationDate {
+ /**
+ * Specifies creationDate.
+ * @param creationDate The date this billing instruction was created
+ * @return the next definition stage
+ */
+ WithCreate withCreationDate(DateTime creationDate);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithCreationDate {
+ }
+ }
+ /**
+ * The template for a Instruction update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithCreationDate {
+ }
+
+ /**
+ * Grouping of Instruction update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the instruction update allowing to specify CreationDate.
+ */
+ interface WithCreationDate {
+ /**
+ * Specifies creationDate.
+ * @param creationDate The date this billing instruction was created
+ * @return the next update stage
+ */
+ Update withCreationDate(DateTime creationDate);
+ }
+
+ }
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Instructions.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Instructions.java
new file mode 100644
index 000000000000..d7333c6268c2
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Instructions.java
@@ -0,0 +1,41 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Observable;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.InstructionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Instructions.
+ */
+public interface Instructions extends SupportsCreating, HasInner {
+ /**
+ * Get the instruction by name. These are custom billing instructions and are only applicable for certain customers.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @param instructionName Instruction Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String billingAccountName, String billingProfileName, String instructionName);
+
+ /**
+ * Lists the instructions by billing profile id.
+ *
+ * @param billingAccountName The ID that uniquely identifies a billing account.
+ * @param billingProfileName The ID that uniquely identifies a billing profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingProfileAsync(final String billingAccountName, final String billingProfileName);
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Invoice.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Invoice.java
new file mode 100644
index 000000000000..f68e913632a5
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/Invoice.java
@@ -0,0 +1,159 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.billing.v2019_10_01_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.v2019_10_01_preview.implementation.BillingManager;
+import java.util.List;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing Invoice.
+ */
+public interface Invoice extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the amountDue value.
+ */
+ Amount amountDue();
+
+ /**
+ * @return the azurePrepaymentApplied value.
+ */
+ Amount azurePrepaymentApplied();
+
+ /**
+ * @return the billedAmount value.
+ */
+ Amount billedAmount();
+
+ /**
+ * @return the billingProfileDisplayName value.
+ */
+ String billingProfileDisplayName();
+
+ /**
+ * @return the billingProfileId value.
+ */
+ String billingProfileId();
+
+ /**
+ * @return the creditAmount value.
+ */
+ Amount creditAmount();
+
+ /**
+ * @return the documents value.
+ */
+ List documents();
+
+ /**
+ * @return the dueDate value.
+ */
+ DateTime dueDate();
+
+ /**
+ * @return the freeAzureCreditApplied value.
+ */
+ Amount freeAzureCreditApplied();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the invoiceDate value.
+ */
+ DateTime invoiceDate();
+
+ /**
+ * @return the invoicePeriodEndDate value.
+ */
+ DateTime invoicePeriodEndDate();
+
+ /**
+ * @return the invoicePeriodStartDate value.
+ */
+ DateTime invoicePeriodStartDate();
+
+ /**
+ * @return the invoiceType value.
+ */
+ InvoiceType invoiceType();
+
+ /**
+ * @return the isMonthlyInvoice value.
+ */
+ Boolean isMonthlyInvoice();
+
+ /**
+ * @return the latestInvoiceId value.
+ */
+ String latestInvoiceId();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the payments value.
+ */
+ List payments();
+
+ /**
+ * @return the purchaseOrderNumber value.
+ */
+ String purchaseOrderNumber();
+
+ /**
+ * @return the rebillDocumentType value.
+ */
+ RebillDocumentType rebillDocumentType();
+
+ /**
+ * @return the rebilledInvoiceId value.
+ */
+ String rebilledInvoiceId();
+
+ /**
+ * @return the status value.
+ */
+ InvoiceStatus status();
+
+ /**
+ * @return the subscriptionId value.
+ */
+ String subscriptionId();
+
+ /**
+ * @return the subTotal value.
+ */
+ Amount subTotal();
+
+ /**
+ * @return the taxAmount value.
+ */
+ Amount taxAmount();
+
+ /**
+ * @return the totalAmount value.
+ */
+ Amount totalAmount();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/InvoiceListResult.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/InvoiceListResult.java
new file mode 100644
index 000000000000..15b3460edaff
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/InvoiceListResult.java
@@ -0,0 +1,32 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.InvoiceListResultInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.InvoiceInner;
+import java.util.List;
+
+/**
+ * Type representing InvoiceListResult.
+ */
+public interface InvoiceListResult extends HasInner, HasManager {
+ /**
+ * @return the nextLink value.
+ */
+ String nextLink();
+
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/InvoiceSection.java b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/InvoiceSection.java
new file mode 100644
index 000000000000..d704733903a7
--- /dev/null
+++ b/sdk/billing/mgmt-v2019_10_01_preview/src/main/java/com/microsoft/azure/management/billing/v2019_10_01_preview/InvoiceSection.java
@@ -0,0 +1,127 @@
+/**
+ * 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.v2019_10_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.InvoiceSectionInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.billing.v2019_10_01_preview.implementation.BillingManager;
+
+/**
+ * Type representing InvoiceSection.
+ */
+public interface InvoiceSection extends HasInner, Indexable, Refreshable