diff --git a/consumption/resource-manager/v2018_10_01/pom.xml b/consumption/resource-manager/v2018_10_01/pom.xml
new file mode 100644
index 0000000000000..8f99bb54b0151
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.consumption.v2018_10_01
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.1.0
+ ../../../pom.management.xml
+
+ azure-mgmt-consumption
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for Consumption Management
+ This package contains Microsoft Consumption 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
+
+
+ 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/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/AggregatedCosts.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/AggregatedCosts.java
new file mode 100644
index 0000000000000..9fe341be2c9ec
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/AggregatedCosts.java
@@ -0,0 +1,36 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import rx.Observable;
+
+/**
+ * Type representing AggregatedCosts.
+ */
+public interface AggregatedCosts {
+ /**
+ * Provides the aggregate cost of a management group and all child management groups by current billing period.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByManagementGroupAsync(String managementGroupId);
+
+ /**
+ * Provides the aggregate cost of a management group and all child management groups by specified billing period.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getForBillingPeriodByManagementGroupAsync(String managementGroupId, String billingPeriodName);
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Balance.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Balance.java
new file mode 100644
index 0000000000000..c7763d2bce376
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Balance.java
@@ -0,0 +1,118 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ConsumptionManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.BalanceInner;
+import java.util.List;
+import java.math.BigDecimal;
+import java.util.Map;
+
+/**
+ * Type representing Balance.
+ */
+public interface Balance extends HasInner, HasManager {
+ /**
+ * @return the adjustmentDetails value.
+ */
+ List adjustmentDetails();
+
+ /**
+ * @return the adjustments value.
+ */
+ BigDecimal adjustments();
+
+ /**
+ * @return the azureMarketplaceServiceCharges value.
+ */
+ BigDecimal azureMarketplaceServiceCharges();
+
+ /**
+ * @return the beginningBalance value.
+ */
+ BigDecimal beginningBalance();
+
+ /**
+ * @return the billingFrequency value.
+ */
+ BillingFrequency billingFrequency();
+
+ /**
+ * @return the chargesBilledSeparately value.
+ */
+ BigDecimal chargesBilledSeparately();
+
+ /**
+ * @return the currency value.
+ */
+ String currency();
+
+ /**
+ * @return the endingBalance value.
+ */
+ BigDecimal endingBalance();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the newPurchases value.
+ */
+ BigDecimal newPurchases();
+
+ /**
+ * @return the newPurchasesDetails value.
+ */
+ List newPurchasesDetails();
+
+ /**
+ * @return the priceHidden value.
+ */
+ Boolean priceHidden();
+
+ /**
+ * @return the serviceOverage value.
+ */
+ BigDecimal serviceOverage();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the totalOverage value.
+ */
+ BigDecimal totalOverage();
+
+ /**
+ * @return the totalUsage value.
+ */
+ BigDecimal totalUsage();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the utilized value.
+ */
+ BigDecimal utilized();
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/BalancePropertiesAdjustmentDetailsItem.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/BalancePropertiesAdjustmentDetailsItem.java
new file mode 100644
index 0000000000000..cce73e8c6923a
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/BalancePropertiesAdjustmentDetailsItem.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.consumption.v2018_10_01;
+
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The BalancePropertiesAdjustmentDetailsItem model.
+ */
+public class BalancePropertiesAdjustmentDetailsItem {
+ /**
+ * the name of new adjustment.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * the value of new adjustment.
+ */
+ @JsonProperty(value = "value", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal value;
+
+ /**
+ * Get the name of new adjustment.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the value of new adjustment.
+ *
+ * @return the value value
+ */
+ public BigDecimal value() {
+ return this.value;
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/BalancePropertiesNewPurchasesDetailsItem.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/BalancePropertiesNewPurchasesDetailsItem.java
new file mode 100644
index 0000000000000..2703678baebd8
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/BalancePropertiesNewPurchasesDetailsItem.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.consumption.v2018_10_01;
+
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The BalancePropertiesNewPurchasesDetailsItem model.
+ */
+public class BalancePropertiesNewPurchasesDetailsItem {
+ /**
+ * the name of new purchase.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * the value of new purchase.
+ */
+ @JsonProperty(value = "value", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal value;
+
+ /**
+ * Get the name of new purchase.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the value of new purchase.
+ *
+ * @return the value value
+ */
+ public BigDecimal value() {
+ return this.value;
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Balances.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Balances.java
new file mode 100644
index 0000000000000..3f1b385bda85b
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Balances.java
@@ -0,0 +1,36 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import rx.Observable;
+
+/**
+ * Type representing Balances.
+ */
+public interface Balances {
+ /**
+ * Gets the balances for a scope by billingAccountId. Balances are available via this API only for May 1, 2014 or later.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByBillingAccountAsync(String billingAccountId);
+
+ /**
+ * Gets the balances for a scope by billing period and billingAccountId. Balances are available via this API only for May 1, 2014 or later.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getForBillingPeriodByBillingAccountAsync(String billingAccountId, String billingPeriodName);
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/BillingFrequency.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/BillingFrequency.java
new file mode 100644
index 0000000000000..281324023a221
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/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.consumption.v2018_10_01;
+
+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 Month for BillingFrequency. */
+ public static final BillingFrequency MONTH = fromString("Month");
+
+ /** Static value Quarter for BillingFrequency. */
+ public static final BillingFrequency QUARTER = fromString("Quarter");
+
+ /** Static value Year for BillingFrequency. */
+ public static final BillingFrequency YEAR = fromString("Year");
+
+ /**
+ * 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/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Bound.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Bound.java
new file mode 100644
index 0000000000000..48e43f95eb628
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Bound.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.consumption.v2018_10_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Bound.
+ */
+public final class Bound extends ExpandableStringEnum {
+ /** Static value Upper for Bound. */
+ public static final Bound UPPER = fromString("Upper");
+
+ /** Static value Lower for Bound. */
+ public static final Bound LOWER = fromString("Lower");
+
+ /**
+ * Creates or finds a Bound from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Bound
+ */
+ @JsonCreator
+ public static Bound fromString(String name) {
+ return fromString(name, Bound.class);
+ }
+
+ /**
+ * @return known Bound values
+ */
+ public static Collection values() {
+ return values(Bound.class);
+ }
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Budget.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Budget.java
new file mode 100644
index 0000000000000..a76895630fa2c
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Budget.java
@@ -0,0 +1,249 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.BudgetInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Creatable;
+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.consumption.v2018_10_01.implementation.ConsumptionManager;
+import java.math.BigDecimal;
+import java.util.Map;
+
+/**
+ * Type representing Budget.
+ */
+public interface Budget extends HasInner, Indexable, Updatable, Refreshable, HasManager {
+ /**
+ * @return the amount value.
+ */
+ BigDecimal amount();
+
+ /**
+ * @return the category value.
+ */
+ CategoryType category();
+
+ /**
+ * @return the currentSpend value.
+ */
+ CurrentSpend currentSpend();
+
+ /**
+ * @return the eTag value.
+ */
+ String eTag();
+
+ /**
+ * @return the filters value.
+ */
+ Filters filters();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the notifications value.
+ */
+ Map notifications();
+
+ /**
+ * @return the timeGrain value.
+ */
+ TimeGrainType timeGrain();
+
+ /**
+ * @return the timePeriod value.
+ */
+ BudgetTimePeriod timePeriod();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the Budget definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithResourceGroupName, DefinitionStages.WithAmount, DefinitionStages.WithCategory, DefinitionStages.WithTimeGrain, DefinitionStages.WithTimePeriod, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Budget definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Budget definition.
+ */
+ interface Blank extends WithResourceGroupName {
+ }
+
+ /**
+ * The stage of the budget definition allowing to specify ResourceGroupName.
+ */
+ interface WithResourceGroupName {
+ /**
+ * Specifies resourceGroupName.
+ * @param resourceGroupName Azure Resource Group Name
+ * @return the next definition stage
+ */
+ WithAmount withResourceGroupName(String resourceGroupName);
+ }
+
+ /**
+ * The stage of the budget definition allowing to specify Amount.
+ */
+ interface WithAmount {
+ /**
+ * Specifies amount.
+ * @param amount The total amount of cost to track with the budget
+ * @return the next definition stage
+ */
+ WithCategory withAmount(BigDecimal amount);
+ }
+
+ /**
+ * The stage of the budget definition allowing to specify Category.
+ */
+ interface WithCategory {
+ /**
+ * Specifies category.
+ * @param category The category of the budget, whether the budget tracks cost or usage. Possible values include: 'Cost', 'Usage'
+ * @return the next definition stage
+ */
+ WithTimeGrain withCategory(CategoryType category);
+ }
+
+ /**
+ * The stage of the budget definition allowing to specify TimeGrain.
+ */
+ interface WithTimeGrain {
+ /**
+ * Specifies timeGrain.
+ * @param timeGrain The time covered by a budget. Tracking of the amount will be reset based on the time grain. Possible values include: 'Monthly', 'Quarterly', 'Annually'
+ * @return the next definition stage
+ */
+ WithTimePeriod withTimeGrain(TimeGrainType timeGrain);
+ }
+
+ /**
+ * The stage of the budget definition allowing to specify TimePeriod.
+ */
+ interface WithTimePeriod {
+ /**
+ * Specifies timePeriod.
+ * @param timePeriod Has start and end date of the budget. The start date must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than three months. Past start date should be selected within the timegrain period. There are no restrictions on the end date
+ * @return the next definition stage
+ */
+ WithCreate withTimePeriod(BudgetTimePeriod timePeriod);
+ }
+
+ /**
+ * The stage of the budget definition allowing to specify ETag.
+ */
+ interface WithETag {
+ /**
+ * Specifies eTag.
+ * @param eTag eTag of the resource. To handle concurrent update scenario, this field will be used to determine whether the user is updating the latest version or not
+ * @return the next definition stage
+ */
+ WithCreate withETag(String eTag);
+ }
+
+ /**
+ * The stage of the budget definition allowing to specify Filters.
+ */
+ interface WithFilters {
+ /**
+ * Specifies filters.
+ * @param filters May be used to filter budgets by resource group, resource, or meter
+ * @return the next definition stage
+ */
+ WithCreate withFilters(Filters filters);
+ }
+
+ /**
+ * The stage of the budget definition allowing to specify Notifications.
+ */
+ interface WithNotifications {
+ /**
+ * Specifies notifications.
+ * @param notifications Dictionary of notifications associated with the budget. Budget can have up to five notifications
+ * @return the next definition stage
+ */
+ WithCreate withNotifications(Map notifications);
+ }
+
+ /**
+ * 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.WithETag, DefinitionStages.WithFilters, DefinitionStages.WithNotifications {
+ }
+ }
+ /**
+ * The template for a Budget update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithETag, UpdateStages.WithFilters, UpdateStages.WithNotifications {
+ }
+
+ /**
+ * Grouping of Budget update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the budget update allowing to specify ETag.
+ */
+ interface WithETag {
+ /**
+ * Specifies eTag.
+ * @param eTag eTag of the resource. To handle concurrent update scenario, this field will be used to determine whether the user is updating the latest version or not
+ * @return the next update stage
+ */
+ Update withETag(String eTag);
+ }
+
+ /**
+ * The stage of the budget update allowing to specify Filters.
+ */
+ interface WithFilters {
+ /**
+ * Specifies filters.
+ * @param filters May be used to filter budgets by resource group, resource, or meter
+ * @return the next update stage
+ */
+ Update withFilters(Filters filters);
+ }
+
+ /**
+ * The stage of the budget update allowing to specify Notifications.
+ */
+ interface WithNotifications {
+ /**
+ * Specifies notifications.
+ * @param notifications Dictionary of notifications associated with the budget. Budget can have up to five notifications
+ * @return the next update stage
+ */
+ Update withNotifications(Map notifications);
+ }
+
+ }
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/BudgetTimePeriod.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/BudgetTimePeriod.java
new file mode 100644
index 0000000000000..a0482eb642e6c
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/BudgetTimePeriod.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.consumption.v2018_10_01;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The start and end date for a budget.
+ */
+public class BudgetTimePeriod {
+ /**
+ * The start date for the budget.
+ */
+ @JsonProperty(value = "startDate", required = true)
+ private DateTime startDate;
+
+ /**
+ * The end date for the budget. If not provided, we default this to 10
+ * years from the start date.
+ */
+ @JsonProperty(value = "endDate")
+ private DateTime endDate;
+
+ /**
+ * Get the start date for the budget.
+ *
+ * @return the startDate value
+ */
+ public DateTime startDate() {
+ return this.startDate;
+ }
+
+ /**
+ * Set the start date for the budget.
+ *
+ * @param startDate the startDate value to set
+ * @return the BudgetTimePeriod object itself.
+ */
+ public BudgetTimePeriod withStartDate(DateTime startDate) {
+ this.startDate = startDate;
+ return this;
+ }
+
+ /**
+ * Get the end date for the budget. If not provided, we default this to 10 years from the start date.
+ *
+ * @return the endDate value
+ */
+ public DateTime endDate() {
+ return this.endDate;
+ }
+
+ /**
+ * Set the end date for the budget. If not provided, we default this to 10 years from the start date.
+ *
+ * @param endDate the endDate value to set
+ * @return the BudgetTimePeriod object itself.
+ */
+ public BudgetTimePeriod withEndDate(DateTime endDate) {
+ this.endDate = endDate;
+ return this;
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Budgets.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Budgets.java
new file mode 100644
index 0000000000000..0535dd7672f2d
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Budgets.java
@@ -0,0 +1,55 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import rx.Completable;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.BudgetInner;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.BudgetsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Budgets.
+ */
+public interface Budgets extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * Gets the budget for a subscription by budget name.
+ *
+ * @param budgetName Budget Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String budgetName);
+
+ /**
+ * The operation to create or update a budget. Update operation requires latest eTag to be set in the request mandatorily. You may obtain the latest eTag by performing a get operation. Create operation does not require eTag.
+ *
+ * @param budgetName Budget Name.
+ * @param parameters Parameters supplied to the Create Budget operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable createOrUpdateAsync(String budgetName, BudgetInner parameters);
+
+ /**
+ * The operation to delete a budget.
+ *
+ * @param budgetName Budget Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String budgetName);
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/CategoryType.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/CategoryType.java
new file mode 100644
index 0000000000000..0839d26421ea2
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/CategoryType.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.consumption.v2018_10_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for CategoryType.
+ */
+public final class CategoryType extends ExpandableStringEnum {
+ /** Static value Cost for CategoryType. */
+ public static final CategoryType COST = fromString("Cost");
+
+ /** Static value Usage for CategoryType. */
+ public static final CategoryType USAGE = fromString("Usage");
+
+ /**
+ * Creates or finds a CategoryType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding CategoryType
+ */
+ @JsonCreator
+ public static CategoryType fromString(String name) {
+ return fromString(name, CategoryType.class);
+ }
+
+ /**
+ * @return known CategoryType values
+ */
+ public static Collection values() {
+ return values(CategoryType.class);
+ }
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ChargeSummary.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ChargeSummary.java
new file mode 100644
index 0000000000000..e5993ded3d764
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ChargeSummary.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.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ConsumptionManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ChargeSummaryInner;
+import java.math.BigDecimal;
+import java.util.Map;
+
+/**
+ * Type representing ChargeSummary.
+ */
+public interface ChargeSummary extends HasInner, HasManager {
+ /**
+ * @return the azureCharges value.
+ */
+ BigDecimal azureCharges();
+
+ /**
+ * @return the billingPeriodId value.
+ */
+ String billingPeriodId();
+
+ /**
+ * @return the chargesBilledSeparately value.
+ */
+ BigDecimal chargesBilledSeparately();
+
+ /**
+ * @return the currency value.
+ */
+ String currency();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the marketplaceCharges value.
+ */
+ BigDecimal marketplaceCharges();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the usageEnd value.
+ */
+ String usageEnd();
+
+ /**
+ * @return the usageStart value.
+ */
+ String usageStart();
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ChargeType.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ChargeType.java
new file mode 100644
index 0000000000000..956ecb73ebc0c
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ChargeType.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.consumption.v2018_10_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ChargeType.
+ */
+public final class ChargeType extends ExpandableStringEnum {
+ /** Static value Actual for ChargeType. */
+ public static final ChargeType ACTUAL = fromString("Actual");
+
+ /** Static value Forecast for ChargeType. */
+ public static final ChargeType FORECAST = fromString("Forecast");
+
+ /**
+ * Creates or finds a ChargeType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ChargeType
+ */
+ @JsonCreator
+ public static ChargeType fromString(String name) {
+ return fromString(name, ChargeType.class);
+ }
+
+ /**
+ * @return known ChargeType values
+ */
+ public static Collection values() {
+ return values(ChargeType.class);
+ }
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Charges.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Charges.java
new file mode 100644
index 0000000000000..7f7bf749464c0
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Charges.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.consumption.v2018_10_01;
+
+import rx.Observable;
+
+/**
+ * Type representing Charges.
+ */
+public interface Charges {
+ /**
+ * Lists the charges by enrollmentAccountId.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @param enrollmentAccountId EnrollmentAccount ID
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByEnrollmentAccountAsync(String billingAccountId, String enrollmentAccountId);
+
+ /**
+ * Lists the charges based on enrollmentAccountId by billing period.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @param enrollmentAccountId EnrollmentAccount ID
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listForBillingPeriodByEnrollmentAccountAsync(String billingAccountId, String enrollmentAccountId, String billingPeriodName);
+
+ /**
+ * Lists the charges by departmentId.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @param departmentId Department ID
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDepartmentAsync(String billingAccountId, String departmentId);
+
+ /**
+ * Lists the charges based on departmentId by billing period.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @param departmentId Department ID
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listForBillingPeriodByDepartmentAsync(String billingAccountId, String departmentId, String billingPeriodName);
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ChargesListResult.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ChargesListResult.java
new file mode 100644
index 0000000000000..8753daeb5a978
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ChargesListResult.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.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ConsumptionManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ChargesListResultInner;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ChargeSummaryInner;
+import java.util.List;
+
+/**
+ * Type representing ChargesListResult.
+ */
+public interface ChargesListResult extends HasInner, HasManager {
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/CurrentSpend.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/CurrentSpend.java
new file mode 100644
index 0000000000000..3e0b61b774946
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/CurrentSpend.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.consumption.v2018_10_01;
+
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The current amount of cost which is being tracked for a budget.
+ */
+public class CurrentSpend {
+ /**
+ * The total amount of cost which is being tracked by the budget.
+ */
+ @JsonProperty(value = "amount", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal amount;
+
+ /**
+ * The unit of measure for the budget amount.
+ */
+ @JsonProperty(value = "unit", access = JsonProperty.Access.WRITE_ONLY)
+ private String unit;
+
+ /**
+ * Get the total amount of cost which is being tracked by the budget.
+ *
+ * @return the amount value
+ */
+ public BigDecimal amount() {
+ return this.amount;
+ }
+
+ /**
+ * Get the unit of measure for the budget amount.
+ *
+ * @return the unit value
+ */
+ public String unit() {
+ return this.unit;
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Datagrain.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Datagrain.java
new file mode 100644
index 0000000000000..0ff157b227289
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Datagrain.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.consumption.v2018_10_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Datagrain.
+ */
+public final class Datagrain extends ExpandableStringEnum {
+ /** Static value daily for Datagrain. */
+ public static final Datagrain DAILY_GRAIN = fromString("daily");
+
+ /** Static value monthly for Datagrain. */
+ public static final Datagrain MONTHLY_GRAIN = fromString("monthly");
+
+ /**
+ * Creates or finds a Datagrain from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Datagrain
+ */
+ @JsonCreator
+ public static Datagrain fromString(String name) {
+ return fromString(name, Datagrain.class);
+ }
+
+ /**
+ * @return known Datagrain values
+ */
+ public static Collection values() {
+ return values(Datagrain.class);
+ }
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ErrorDetails.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ErrorDetails.java
new file mode 100644
index 0000000000000..89af1c95f556c
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ErrorDetails.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.consumption.v2018_10_01;
+
+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;
+
+ /**
+ * 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;
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ErrorResponse.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ErrorResponse.java
new file mode 100644
index 0000000000000..b6b81efab06c8
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/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.consumption.v2018_10_01;
+
+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/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ErrorResponseException.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ErrorResponseException.java
new file mode 100644
index 0000000000000..3b0a952c1ba10
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/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.consumption.v2018_10_01;
+
+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/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Filters.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Filters.java
new file mode 100644
index 0000000000000..a161151cec721
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Filters.java
@@ -0,0 +1,126 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import java.util.List;
+import java.util.UUID;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * May be used to filter budgets by resource group, resource, or meter.
+ */
+public class Filters {
+ /**
+ * The list of filters on resource groups, allowed at subscription level
+ * only.
+ */
+ @JsonProperty(value = "resourceGroups")
+ private List resourceGroups;
+
+ /**
+ * The list of filters on resources.
+ */
+ @JsonProperty(value = "resources")
+ private List resources;
+
+ /**
+ * The list of filters on meters (GUID), mandatory for budgets of usage
+ * category.
+ */
+ @JsonProperty(value = "meters")
+ private List meters;
+
+ /**
+ * The dictionary of filters on tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map> tags;
+
+ /**
+ * Get the list of filters on resource groups, allowed at subscription level only.
+ *
+ * @return the resourceGroups value
+ */
+ public List resourceGroups() {
+ return this.resourceGroups;
+ }
+
+ /**
+ * Set the list of filters on resource groups, allowed at subscription level only.
+ *
+ * @param resourceGroups the resourceGroups value to set
+ * @return the Filters object itself.
+ */
+ public Filters withResourceGroups(List resourceGroups) {
+ this.resourceGroups = resourceGroups;
+ return this;
+ }
+
+ /**
+ * Get the list of filters on resources.
+ *
+ * @return the resources value
+ */
+ public List resources() {
+ return this.resources;
+ }
+
+ /**
+ * Set the list of filters on resources.
+ *
+ * @param resources the resources value to set
+ * @return the Filters object itself.
+ */
+ public Filters withResources(List resources) {
+ this.resources = resources;
+ return this;
+ }
+
+ /**
+ * Get the list of filters on meters (GUID), mandatory for budgets of usage category.
+ *
+ * @return the meters value
+ */
+ public List meters() {
+ return this.meters;
+ }
+
+ /**
+ * Set the list of filters on meters (GUID), mandatory for budgets of usage category.
+ *
+ * @param meters the meters value to set
+ * @return the Filters object itself.
+ */
+ public Filters withMeters(List meters) {
+ this.meters = meters;
+ return this;
+ }
+
+ /**
+ * Get the dictionary of filters on tags.
+ *
+ * @return the tags value
+ */
+ public Map> tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the dictionary of filters on tags.
+ *
+ * @param tags the tags value to set
+ * @return the Filters object itself.
+ */
+ public Filters withTags(Map> tags) {
+ this.tags = tags;
+ return this;
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Forecast.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Forecast.java
new file mode 100644
index 0000000000000..a3f43f936a83d
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Forecast.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.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ForecastInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ConsumptionManager;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Type representing Forecast.
+ */
+public interface Forecast extends HasInner, HasManager {
+ /**
+ * @return the charge value.
+ */
+ BigDecimal charge();
+
+ /**
+ * @return the chargeType value.
+ */
+ ChargeType chargeType();
+
+ /**
+ * @return the confidenceLevels value.
+ */
+ List confidenceLevels();
+
+ /**
+ * @return the currency value.
+ */
+ String currency();
+
+ /**
+ * @return the grain value.
+ */
+ Grain grain();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the usageDate value.
+ */
+ String usageDate();
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ForecastPropertiesConfidenceLevelsItem.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ForecastPropertiesConfidenceLevelsItem.java
new file mode 100644
index 0000000000000..871fd13159417
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ForecastPropertiesConfidenceLevelsItem.java
@@ -0,0 +1,75 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The ForecastPropertiesConfidenceLevelsItem model.
+ */
+public class ForecastPropertiesConfidenceLevelsItem {
+ /**
+ * The percentage level of the confidence.
+ */
+ @JsonProperty(value = "percentage", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal percentage;
+
+ /**
+ * The boundary of the percentage, values could be 'Upper' or 'Lower'.
+ * Possible values include: 'Upper', 'Lower'.
+ */
+ @JsonProperty(value = "bound")
+ private Bound bound;
+
+ /**
+ * The amount of forecast within the percentage level.
+ */
+ @JsonProperty(value = "value", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal value;
+
+ /**
+ * Get the percentage level of the confidence.
+ *
+ * @return the percentage value
+ */
+ public BigDecimal percentage() {
+ return this.percentage;
+ }
+
+ /**
+ * Get the boundary of the percentage, values could be 'Upper' or 'Lower'. Possible values include: 'Upper', 'Lower'.
+ *
+ * @return the bound value
+ */
+ public Bound bound() {
+ return this.bound;
+ }
+
+ /**
+ * Set the boundary of the percentage, values could be 'Upper' or 'Lower'. Possible values include: 'Upper', 'Lower'.
+ *
+ * @param bound the bound value to set
+ * @return the ForecastPropertiesConfidenceLevelsItem object itself.
+ */
+ public ForecastPropertiesConfidenceLevelsItem withBound(Bound bound) {
+ this.bound = bound;
+ return this;
+ }
+
+ /**
+ * Get the amount of forecast within the percentage level.
+ *
+ * @return the value value
+ */
+ public BigDecimal value() {
+ return this.value;
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Forecasts.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Forecasts.java
new file mode 100644
index 0000000000000..90a97764bd80e
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Forecasts.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.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ForecastsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Forecasts.
+ */
+public interface Forecasts extends SupportsListing, HasInner {
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Grain.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Grain.java
new file mode 100644
index 0000000000000..c991af61850b7
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Grain.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.consumption.v2018_10_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Grain.
+ */
+public final class Grain extends ExpandableStringEnum {
+ /** Static value Daily for Grain. */
+ public static final Grain DAILY = fromString("Daily");
+
+ /** Static value Monthly for Grain. */
+ public static final Grain MONTHLY = fromString("Monthly");
+
+ /** Static value Yearly for Grain. */
+ public static final Grain YEARLY = fromString("Yearly");
+
+ /**
+ * Creates or finds a Grain from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Grain
+ */
+ @JsonCreator
+ public static Grain fromString(String name) {
+ return fromString(name, Grain.class);
+ }
+
+ /**
+ * @return known Grain values
+ */
+ public static Collection values() {
+ return values(Grain.class);
+ }
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ManagementGroupAggregatedCostResult.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ManagementGroupAggregatedCostResult.java
new file mode 100644
index 0000000000000..63eccaf18380a
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ManagementGroupAggregatedCostResult.java
@@ -0,0 +1,94 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ConsumptionManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ManagementGroupAggregatedCostResultInner;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing ManagementGroupAggregatedCostResult.
+ */
+public interface ManagementGroupAggregatedCostResult extends HasInner, HasManager {
+ /**
+ * @return the azureCharges value.
+ */
+ BigDecimal azureCharges();
+
+ /**
+ * @return the billingPeriodId value.
+ */
+ String billingPeriodId();
+
+ /**
+ * @return the chargesBilledSeparately value.
+ */
+ BigDecimal chargesBilledSeparately();
+
+ /**
+ * @return the children value.
+ */
+ List children();
+
+ /**
+ * @return the currency value.
+ */
+ String currency();
+
+ /**
+ * @return the excludedSubscriptions value.
+ */
+ List excludedSubscriptions();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the includedSubscriptions value.
+ */
+ List includedSubscriptions();
+
+ /**
+ * @return the marketplaceCharges value.
+ */
+ BigDecimal marketplaceCharges();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the usageEnd value.
+ */
+ DateTime usageEnd();
+
+ /**
+ * @return the usageStart value.
+ */
+ DateTime usageStart();
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Marketplace.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Marketplace.java
new file mode 100644
index 0000000000000..073e0e8121b32
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Marketplace.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.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ConsumptionManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.MarketplaceInner;
+import java.math.BigDecimal;
+import java.util.UUID;
+import java.util.Map;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing Marketplace.
+ */
+public interface Marketplace extends HasInner, HasManager {
+ /**
+ * @return the accountName value.
+ */
+ String accountName();
+
+ /**
+ * @return the additionalProperties value.
+ */
+ String additionalProperties();
+
+ /**
+ * @return the billingPeriodId value.
+ */
+ String billingPeriodId();
+
+ /**
+ * @return the consumedQuantity value.
+ */
+ BigDecimal consumedQuantity();
+
+ /**
+ * @return the consumedService value.
+ */
+ String consumedService();
+
+ /**
+ * @return the costCenter value.
+ */
+ String costCenter();
+
+ /**
+ * @return the currency value.
+ */
+ String currency();
+
+ /**
+ * @return the departmentName value.
+ */
+ String departmentName();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the instanceId value.
+ */
+ String instanceId();
+
+ /**
+ * @return the instanceName value.
+ */
+ String instanceName();
+
+ /**
+ * @return the isEstimated value.
+ */
+ Boolean isEstimated();
+
+ /**
+ * @return the isRecurringCharge value.
+ */
+ Boolean isRecurringCharge();
+
+ /**
+ * @return the meterId value.
+ */
+ UUID meterId();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the offerName value.
+ */
+ String offerName();
+
+ /**
+ * @return the orderNumber value.
+ */
+ String orderNumber();
+
+ /**
+ * @return the planName value.
+ */
+ String planName();
+
+ /**
+ * @return the pretaxCost value.
+ */
+ BigDecimal pretaxCost();
+
+ /**
+ * @return the publisherName value.
+ */
+ String publisherName();
+
+ /**
+ * @return the resourceGroup value.
+ */
+ String resourceGroup();
+
+ /**
+ * @return the resourceRate value.
+ */
+ BigDecimal resourceRate();
+
+ /**
+ * @return the subscriptionGuid value.
+ */
+ UUID subscriptionGuid();
+
+ /**
+ * @return the subscriptionName value.
+ */
+ String subscriptionName();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the unitOfMeasure value.
+ */
+ String unitOfMeasure();
+
+ /**
+ * @return the usageEnd value.
+ */
+ DateTime usageEnd();
+
+ /**
+ * @return the usageStart value.
+ */
+ DateTime usageStart();
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Marketplaces.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Marketplaces.java
new file mode 100644
index 0000000000000..cb4a132b86a9f
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Marketplaces.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.consumption.v2018_10_01;
+
+import rx.Observable;
+
+/**
+ * Type representing Marketplaces.
+ */
+public interface Marketplaces {
+ /**
+ * Lists the marketplaces for a scope by billing period and subscriptionId. Marketplaces are available via this API only for May 1, 2014 or later.
+ *
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingPeriodAsync(final String billingPeriodName);
+
+ /**
+ * Lists the marketplaces for a scope by billingAccountId and current billing period. Marketplaces are available via this API only for May 1, 2014 or later.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingAccountAsync(final String billingAccountId);
+
+ /**
+ * Lists the marketplaces for a scope by billing period and billingAccountId. Marketplaces are available via this API only for May 1, 2014 or later.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listForBillingPeriodByBillingAccountAsync(final String billingAccountId, final String billingPeriodName);
+
+ /**
+ * Lists the marketplaces for a scope by departmentId and current billing period. Marketplaces are available via this API only for May 1, 2014 or later.
+ *
+ * @param departmentId Department ID
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDepartmentAsync(final String departmentId);
+
+ /**
+ * Lists the marketplaces for a scope by billing period and departmentId. Marketplaces are available via this API only for May 1, 2014 or later.
+ *
+ * @param departmentId Department ID
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listForBillingPeriodByDepartmentAsync(final String departmentId, final String billingPeriodName);
+
+ /**
+ * Lists the marketplaces for a scope by enrollmentAccountId and current billing period. Marketplaces are available via this API only for May 1, 2014 or later.
+ *
+ * @param enrollmentAccountId EnrollmentAccount ID
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByEnrollmentAccountAsync(final String enrollmentAccountId);
+
+ /**
+ * Lists the marketplaces for a scope by billing period and enrollmentAccountId. Marketplaces are available via this API only for May 1, 2014 or later.
+ *
+ * @param enrollmentAccountId EnrollmentAccount ID
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listForBillingPeriodByEnrollmentAccountAsync(final String enrollmentAccountId, final String billingPeriodName);
+
+ /**
+ * Lists the marketplace records for all subscriptions belonging to a management group scope by current billing period. Marketplaces are available via this API only for May 1, 2014 or later.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByManagementGroupAsync(final String managementGroupId);
+
+ /**
+ * Lists the marketplace records for all subscriptions belonging to a management group scope by specified billing period. Marketplaces are available via this API only for May 1, 2014 or later.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listForBillingPeriodByManagementGroupAsync(final String managementGroupId, final String billingPeriodName);
+
+ /**
+ * Lists the marketplaces for a scope by subscriptionId and current billing period. Marketplaces are available via this API only for May 1, 2014 or later.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/MeterDetails.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/MeterDetails.java
new file mode 100644
index 0000000000000..3c542bb411e17
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/MeterDetails.java
@@ -0,0 +1,156 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of the meter detail.
+ */
+public class MeterDetails {
+ /**
+ * The name of the meter, within the given meter category.
+ */
+ @JsonProperty(value = "meterName", access = JsonProperty.Access.WRITE_ONLY)
+ private String meterName;
+
+ /**
+ * The category of the meter, for example, 'Cloud services', 'Networking',
+ * etc..
+ */
+ @JsonProperty(value = "meterCategory", access = JsonProperty.Access.WRITE_ONLY)
+ private String meterCategory;
+
+ /**
+ * The subcategory of the meter, for example, 'A6 Cloud services',
+ * 'ExpressRoute (IXP)', etc..
+ */
+ @JsonProperty(value = "meterSubCategory", access = JsonProperty.Access.WRITE_ONLY)
+ private String meterSubCategory;
+
+ /**
+ * The unit in which the meter consumption is charged, for example,
+ * 'Hours', 'GB', etc.
+ */
+ @JsonProperty(value = "unit", access = JsonProperty.Access.WRITE_ONLY)
+ private String unit;
+
+ /**
+ * The location in which the Azure service is available.
+ */
+ @JsonProperty(value = "meterLocation", access = JsonProperty.Access.WRITE_ONLY)
+ private String meterLocation;
+
+ /**
+ * The total included quantity associated with the offer.
+ */
+ @JsonProperty(value = "totalIncludedQuantity", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal totalIncludedQuantity;
+
+ /**
+ * The pretax listing price.
+ */
+ @JsonProperty(value = "pretaxStandardRate", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal pretaxStandardRate;
+
+ /**
+ * The name of the service.
+ */
+ @JsonProperty(value = "serviceName", access = JsonProperty.Access.WRITE_ONLY)
+ private String serviceName;
+
+ /**
+ * The service tier.
+ */
+ @JsonProperty(value = "serviceTier", access = JsonProperty.Access.WRITE_ONLY)
+ private String serviceTier;
+
+ /**
+ * Get the name of the meter, within the given meter category.
+ *
+ * @return the meterName value
+ */
+ public String meterName() {
+ return this.meterName;
+ }
+
+ /**
+ * Get the category of the meter, for example, 'Cloud services', 'Networking', etc..
+ *
+ * @return the meterCategory value
+ */
+ public String meterCategory() {
+ return this.meterCategory;
+ }
+
+ /**
+ * Get the subcategory of the meter, for example, 'A6 Cloud services', 'ExpressRoute (IXP)', etc..
+ *
+ * @return the meterSubCategory value
+ */
+ public String meterSubCategory() {
+ return this.meterSubCategory;
+ }
+
+ /**
+ * Get the unit in which the meter consumption is charged, for example, 'Hours', 'GB', etc.
+ *
+ * @return the unit value
+ */
+ public String unit() {
+ return this.unit;
+ }
+
+ /**
+ * Get the location in which the Azure service is available.
+ *
+ * @return the meterLocation value
+ */
+ public String meterLocation() {
+ return this.meterLocation;
+ }
+
+ /**
+ * Get the total included quantity associated with the offer.
+ *
+ * @return the totalIncludedQuantity value
+ */
+ public BigDecimal totalIncludedQuantity() {
+ return this.totalIncludedQuantity;
+ }
+
+ /**
+ * Get the pretax listing price.
+ *
+ * @return the pretaxStandardRate value
+ */
+ public BigDecimal pretaxStandardRate() {
+ return this.pretaxStandardRate;
+ }
+
+ /**
+ * Get the name of the service.
+ *
+ * @return the serviceName value
+ */
+ public String serviceName() {
+ return this.serviceName;
+ }
+
+ /**
+ * Get the service tier.
+ *
+ * @return the serviceTier value
+ */
+ public String serviceTier() {
+ return this.serviceTier;
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Notification.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Notification.java
new file mode 100644
index 0000000000000..b34aedec6ad00
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Notification.java
@@ -0,0 +1,181 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import java.math.BigDecimal;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The notification associated with a budget.
+ */
+public class Notification {
+ /**
+ * The notification is enabled or not.
+ */
+ @JsonProperty(value = "enabled", required = true)
+ private boolean enabled;
+
+ /**
+ * The comparison operator. Possible values include: 'EqualTo',
+ * 'GreaterThan', 'GreaterThanOrEqualTo'.
+ */
+ @JsonProperty(value = "operator", required = true)
+ private OperatorType operator;
+
+ /**
+ * Threshold value associated with a notification. Notification is sent
+ * when the cost exceeded the threshold. It is always percent and has to be
+ * between 0 and 1000.
+ */
+ @JsonProperty(value = "threshold", required = true)
+ private BigDecimal threshold;
+
+ /**
+ * Email addresses to send the budget notification to when the threshold is
+ * exceeded.
+ */
+ @JsonProperty(value = "contactEmails", required = true)
+ private List contactEmails;
+
+ /**
+ * Contact roles to send the budget notification to when the threshold is
+ * exceeded.
+ */
+ @JsonProperty(value = "contactRoles")
+ private List contactRoles;
+
+ /**
+ * Action groups to send the budget notification to when the threshold is
+ * exceeded.
+ */
+ @JsonProperty(value = "contactGroups")
+ private List contactGroups;
+
+ /**
+ * Get the notification is enabled or not.
+ *
+ * @return the enabled value
+ */
+ public boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set the notification is enabled or not.
+ *
+ * @param enabled the enabled value to set
+ * @return the Notification object itself.
+ */
+ public Notification withEnabled(boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Get the comparison operator. Possible values include: 'EqualTo', 'GreaterThan', 'GreaterThanOrEqualTo'.
+ *
+ * @return the operator value
+ */
+ public OperatorType operator() {
+ return this.operator;
+ }
+
+ /**
+ * Set the comparison operator. Possible values include: 'EqualTo', 'GreaterThan', 'GreaterThanOrEqualTo'.
+ *
+ * @param operator the operator value to set
+ * @return the Notification object itself.
+ */
+ public Notification withOperator(OperatorType operator) {
+ this.operator = operator;
+ return this;
+ }
+
+ /**
+ * Get threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.
+ *
+ * @return the threshold value
+ */
+ public BigDecimal threshold() {
+ return this.threshold;
+ }
+
+ /**
+ * Set threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.
+ *
+ * @param threshold the threshold value to set
+ * @return the Notification object itself.
+ */
+ public Notification withThreshold(BigDecimal threshold) {
+ this.threshold = threshold;
+ return this;
+ }
+
+ /**
+ * Get email addresses to send the budget notification to when the threshold is exceeded.
+ *
+ * @return the contactEmails value
+ */
+ public List contactEmails() {
+ return this.contactEmails;
+ }
+
+ /**
+ * Set email addresses to send the budget notification to when the threshold is exceeded.
+ *
+ * @param contactEmails the contactEmails value to set
+ * @return the Notification object itself.
+ */
+ public Notification withContactEmails(List contactEmails) {
+ this.contactEmails = contactEmails;
+ return this;
+ }
+
+ /**
+ * Get contact roles to send the budget notification to when the threshold is exceeded.
+ *
+ * @return the contactRoles value
+ */
+ public List contactRoles() {
+ return this.contactRoles;
+ }
+
+ /**
+ * Set contact roles to send the budget notification to when the threshold is exceeded.
+ *
+ * @param contactRoles the contactRoles value to set
+ * @return the Notification object itself.
+ */
+ public Notification withContactRoles(List contactRoles) {
+ this.contactRoles = contactRoles;
+ return this;
+ }
+
+ /**
+ * Get action groups to send the budget notification to when the threshold is exceeded.
+ *
+ * @return the contactGroups value
+ */
+ public List contactGroups() {
+ return this.contactGroups;
+ }
+
+ /**
+ * Set action groups to send the budget notification to when the threshold is exceeded.
+ *
+ * @param contactGroups the contactGroups value to set
+ * @return the Notification object itself.
+ */
+ public Notification withContactGroups(List contactGroups) {
+ this.contactGroups = contactGroups;
+ return this;
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Operation.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Operation.java
new file mode 100644
index 0000000000000..f57a148217d50
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Operation.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ConsumptionManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.OperationInner;
+
+/**
+ * Type representing Operation.
+ */
+public interface Operation extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ OperationDisplay display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/OperationDisplay.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/OperationDisplay.java
new file mode 100644
index 0000000000000..c3881bf2d1975
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/OperationDisplay.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.consumption.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The object that represents the operation.
+ */
+public class OperationDisplay {
+ /**
+ * Service provider: Microsoft.Consumption.
+ */
+ @JsonProperty(value = "provider", access = JsonProperty.Access.WRITE_ONLY)
+ private String provider;
+
+ /**
+ * Resource on which the operation is performed: UsageDetail, etc.
+ */
+ @JsonProperty(value = "resource", access = JsonProperty.Access.WRITE_ONLY)
+ private String resource;
+
+ /**
+ * Operation type: Read, write, delete, etc.
+ */
+ @JsonProperty(value = "operation", access = JsonProperty.Access.WRITE_ONLY)
+ private String operation;
+
+ /**
+ * Get service provider: Microsoft.Consumption.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Get resource on which the operation is performed: UsageDetail, etc.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Get operation type: Read, write, delete, etc.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Operations.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Operations.java
new file mode 100644
index 0000000000000..0367211e97557
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Operations.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.consumption.v2018_10_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Lists all of the available consumption REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/OperatorType.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/OperatorType.java
new file mode 100644
index 0000000000000..027446aacd8c8
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/OperatorType.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.consumption.v2018_10_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for OperatorType.
+ */
+public final class OperatorType extends ExpandableStringEnum {
+ /** Static value EqualTo for OperatorType. */
+ public static final OperatorType EQUAL_TO = fromString("EqualTo");
+
+ /** Static value GreaterThan for OperatorType. */
+ public static final OperatorType GREATER_THAN = fromString("GreaterThan");
+
+ /** Static value GreaterThanOrEqualTo for OperatorType. */
+ public static final OperatorType GREATER_THAN_OR_EQUAL_TO = fromString("GreaterThanOrEqualTo");
+
+ /**
+ * Creates or finds a OperatorType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding OperatorType
+ */
+ @JsonCreator
+ public static OperatorType fromString(String name) {
+ return fromString(name, OperatorType.class);
+ }
+
+ /**
+ * @return known OperatorType values
+ */
+ public static Collection values() {
+ return values(OperatorType.class);
+ }
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/PriceSheetProperties.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/PriceSheetProperties.java
new file mode 100644
index 0000000000000..3809d093cafd3
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/PriceSheetProperties.java
@@ -0,0 +1,155 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import java.util.UUID;
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of the price sheet.
+ */
+public class PriceSheetProperties {
+ /**
+ * The id of the billing period resource that the usage belongs to.
+ */
+ @JsonProperty(value = "billingPeriodId", access = JsonProperty.Access.WRITE_ONLY)
+ private String billingPeriodId;
+
+ /**
+ * The meter id (GUID).
+ */
+ @JsonProperty(value = "meterId", access = JsonProperty.Access.WRITE_ONLY)
+ private UUID meterId;
+
+ /**
+ * The details about the meter. By default this is not populated, unless
+ * it's specified in $expand.
+ */
+ @JsonProperty(value = "meterDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private MeterDetails meterDetails;
+
+ /**
+ * Unit of measure.
+ */
+ @JsonProperty(value = "unitOfMeasure", access = JsonProperty.Access.WRITE_ONLY)
+ private String unitOfMeasure;
+
+ /**
+ * Included quality for an offer.
+ */
+ @JsonProperty(value = "includedQuantity", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal includedQuantity;
+
+ /**
+ * Part Number.
+ */
+ @JsonProperty(value = "partNumber", access = JsonProperty.Access.WRITE_ONLY)
+ private String partNumber;
+
+ /**
+ * Unit Price.
+ */
+ @JsonProperty(value = "unitPrice", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal unitPrice;
+
+ /**
+ * Currency Code.
+ */
+ @JsonProperty(value = "currencyCode", access = JsonProperty.Access.WRITE_ONLY)
+ private String currencyCode;
+
+ /**
+ * Offer Id.
+ */
+ @JsonProperty(value = "offerId", access = JsonProperty.Access.WRITE_ONLY)
+ private String offerId;
+
+ /**
+ * Get the id of the billing period resource that the usage belongs to.
+ *
+ * @return the billingPeriodId value
+ */
+ public String billingPeriodId() {
+ return this.billingPeriodId;
+ }
+
+ /**
+ * Get the meter id (GUID).
+ *
+ * @return the meterId value
+ */
+ public UUID meterId() {
+ return this.meterId;
+ }
+
+ /**
+ * Get the details about the meter. By default this is not populated, unless it's specified in $expand.
+ *
+ * @return the meterDetails value
+ */
+ public MeterDetails meterDetails() {
+ return this.meterDetails;
+ }
+
+ /**
+ * Get unit of measure.
+ *
+ * @return the unitOfMeasure value
+ */
+ public String unitOfMeasure() {
+ return this.unitOfMeasure;
+ }
+
+ /**
+ * Get included quality for an offer.
+ *
+ * @return the includedQuantity value
+ */
+ public BigDecimal includedQuantity() {
+ return this.includedQuantity;
+ }
+
+ /**
+ * Get part Number.
+ *
+ * @return the partNumber value
+ */
+ public String partNumber() {
+ return this.partNumber;
+ }
+
+ /**
+ * Get unit Price.
+ *
+ * @return the unitPrice value
+ */
+ public BigDecimal unitPrice() {
+ return this.unitPrice;
+ }
+
+ /**
+ * Get currency Code.
+ *
+ * @return the currencyCode value
+ */
+ public String currencyCode() {
+ return this.currencyCode;
+ }
+
+ /**
+ * Get offer Id.
+ *
+ * @return the offerId value
+ */
+ public String offerId() {
+ return this.offerId;
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/PriceSheetResult.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/PriceSheetResult.java
new file mode 100644
index 0000000000000..30170887fd693
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/PriceSheetResult.java
@@ -0,0 +1,52 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ConsumptionManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.PriceSheetResultInner;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Type representing PriceSheetResult.
+ */
+public interface PriceSheetResult extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the nextLink value.
+ */
+ String nextLink();
+
+ /**
+ * @return the pricesheets value.
+ */
+ List pricesheets();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/PriceSheets.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/PriceSheets.java
new file mode 100644
index 0000000000000..a7e6d88132373
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/PriceSheets.java
@@ -0,0 +1,36 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.PriceSheetsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing PriceSheets.
+ */
+public interface PriceSheets extends HasInner {
+ /**
+ * Gets the price sheet for a scope by subscriptionId. Price sheet is available via this API only for May 1, 2014 or later.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync();
+
+ /**
+ * Get the price sheet for a scope by subscriptionId and billing period. Price sheet is available via this API only for May 1, 2014 or later.
+ *
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByBillingPeriodAsync(String billingPeriodName);
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/QueryOptions.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/QueryOptions.java
new file mode 100644
index 0000000000000..56165eef79e6b
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/QueryOptions.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.consumption.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Additional parameters for a set of operations.
+ */
+public class QueryOptions {
+ /**
+ * OData apply expression to aggregate usageDetails by tags or (tags and
+ * properties/usageStart).
+ */
+ @JsonProperty(value = "")
+ private String apply;
+
+ /**
+ * Get oData apply expression to aggregate usageDetails by tags or (tags and properties/usageStart).
+ *
+ * @return the apply value
+ */
+ public String apply() {
+ return this.apply;
+ }
+
+ /**
+ * Set oData apply expression to aggregate usageDetails by tags or (tags and properties/usageStart).
+ *
+ * @param apply the apply value to set
+ * @return the QueryOptions object itself.
+ */
+ public QueryOptions withApply(String apply) {
+ this.apply = apply;
+ return this;
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationDetail.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationDetail.java
new file mode 100644
index 0000000000000..00a7a59ae5531
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationDetail.java
@@ -0,0 +1,83 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ConsumptionManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ReservationDetailInner;
+import java.math.BigDecimal;
+import java.util.Map;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing ReservationDetail.
+ */
+public interface ReservationDetail extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the instanceId value.
+ */
+ String instanceId();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the reservationId value.
+ */
+ String reservationId();
+
+ /**
+ * @return the reservationOrderId value.
+ */
+ String reservationOrderId();
+
+ /**
+ * @return the reservedHours value.
+ */
+ BigDecimal reservedHours();
+
+ /**
+ * @return the skuName value.
+ */
+ String skuName();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the totalReservedQuantity value.
+ */
+ BigDecimal totalReservedQuantity();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the usageDate value.
+ */
+ DateTime usageDate();
+
+ /**
+ * @return the usedHours value.
+ */
+ BigDecimal usedHours();
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationRecommendation.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationRecommendation.java
new file mode 100644
index 0000000000000..f32769622ef7a
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationRecommendation.java
@@ -0,0 +1,76 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ConsumptionManager;
+import java.math.BigDecimal;
+import org.joda.time.DateTime;
+import java.util.UUID;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ReservationRecommendationInner;
+
+/**
+ * Type representing ReservationRecommendation.
+ */
+public interface ReservationRecommendation extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, HasManager {
+ /**
+ * @return the costWithNoReservedInstances value.
+ */
+ BigDecimal costWithNoReservedInstances();
+
+ /**
+ * @return the firstUsageDate value.
+ */
+ DateTime firstUsageDate();
+
+ /**
+ * @return the lookBackPeriod value.
+ */
+ String lookBackPeriod();
+
+ /**
+ * @return the meterId value.
+ */
+ UUID meterId();
+
+ /**
+ * @return the netSavings value.
+ */
+ BigDecimal netSavings();
+
+ /**
+ * @return the recommendedQuantity value.
+ */
+ BigDecimal recommendedQuantity();
+
+ /**
+ * @return the scope value.
+ */
+ String scope();
+
+ /**
+ * @return the sku value.
+ */
+ String sku();
+
+ /**
+ * @return the term value.
+ */
+ String term();
+
+ /**
+ * @return the totalCostWithReservedInstances value.
+ */
+ BigDecimal totalCostWithReservedInstances();
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationRecommendations.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationRecommendations.java
new file mode 100644
index 0000000000000..50dfad10c489a
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationRecommendations.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.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ReservationRecommendationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ReservationRecommendations.
+ */
+public interface ReservationRecommendations extends SupportsListing, HasInner {
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationSummary.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationSummary.java
new file mode 100644
index 0000000000000..e0121096b18a5
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationSummary.java
@@ -0,0 +1,88 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ConsumptionManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ReservationSummaryInner;
+import java.math.BigDecimal;
+import java.util.Map;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing ReservationSummary.
+ */
+public interface ReservationSummary extends HasInner, HasManager {
+ /**
+ * @return the avgUtilizationPercentage value.
+ */
+ BigDecimal avgUtilizationPercentage();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the maxUtilizationPercentage value.
+ */
+ BigDecimal maxUtilizationPercentage();
+
+ /**
+ * @return the minUtilizationPercentage value.
+ */
+ BigDecimal minUtilizationPercentage();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the reservationId value.
+ */
+ String reservationId();
+
+ /**
+ * @return the reservationOrderId value.
+ */
+ String reservationOrderId();
+
+ /**
+ * @return the reservedHours value.
+ */
+ BigDecimal reservedHours();
+
+ /**
+ * @return the skuName value.
+ */
+ String skuName();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the usageDate value.
+ */
+ DateTime usageDate();
+
+ /**
+ * @return the usedHours value.
+ */
+ BigDecimal usedHours();
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationsDetails.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationsDetails.java
new file mode 100644
index 0000000000000..79aff759e9d84
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationsDetails.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.consumption.v2018_10_01;
+
+import rx.Observable;
+
+/**
+ * Type representing ReservationsDetails.
+ */
+public interface ReservationsDetails {
+ /**
+ * Lists the reservations details for provided date range.
+ *
+ * @param reservationOrderId Order Id of the reservation
+ * @param filter Filter reservation details by date range. The properties/UsageDate for start date and end date. The filter supports 'le' and 'ge'
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByReservationOrderAsync(final String reservationOrderId, final String filter);
+
+ /**
+ * Lists the reservations details for provided date range.
+ *
+ * @param reservationOrderId Order Id of the reservation
+ * @param reservationId Id of the reservation
+ * @param filter Filter reservation details by date range. The properties/UsageDate for start date and end date. The filter supports 'le' and 'ge'
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByReservationOrderAndReservationAsync(final String reservationOrderId, final String reservationId, final String filter);
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationsSummaries.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationsSummaries.java
new file mode 100644
index 0000000000000..0a6f161558425
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ReservationsSummaries.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.consumption.v2018_10_01;
+
+import rx.Observable;
+
+/**
+ * Type representing ReservationsSummaries.
+ */
+public interface ReservationsSummaries {
+ /**
+ * Lists the reservations summaries for daily or monthly grain.
+ *
+ * @param reservationOrderId Order Id of the reservation
+ * @param grain Can be daily or monthly. Possible values include: 'DailyGrain', 'MonthlyGrain'
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByReservationOrderAsync(final String reservationOrderId, final Datagrain grain);
+
+ /**
+ * Lists the reservations summaries for daily or monthly grain.
+ *
+ * @param reservationOrderId Order Id of the reservation
+ * @param reservationId Id of the reservation
+ * @param grain Can be daily or monthly. Possible values include: 'DailyGrain', 'MonthlyGrain'
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByReservationOrderAndReservationAsync(final String reservationOrderId, final String reservationId, final Datagrain grain);
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ResourceAttributes.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ResourceAttributes.java
new file mode 100644
index 0000000000000..7c3c305b5502b
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/ResourceAttributes.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.consumption.v2018_10_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The Resource model definition.
+ */
+public class ResourceAttributes {
+ /**
+ * Resource location.
+ */
+ @JsonProperty(value = "location", access = JsonProperty.Access.WRITE_ONLY)
+ private String location;
+
+ /**
+ * Resource sku.
+ */
+ @JsonProperty(value = "sku", access = JsonProperty.Access.WRITE_ONLY)
+ private String sku;
+
+ /**
+ * Get resource location.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Get resource sku.
+ *
+ * @return the sku value
+ */
+ public String sku() {
+ return this.sku;
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Tags.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Tags.java
new file mode 100644
index 0000000000000..e479c210c5e71
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Tags.java
@@ -0,0 +1,26 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import rx.Observable;
+
+/**
+ * Type representing Tags.
+ */
+public interface Tags {
+ /**
+ * Get all available tag keys for a billing account.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String billingAccountId);
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/TagsResult.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/TagsResult.java
new file mode 100644
index 0000000000000..8e2271fe25c23
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/TagsResult.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.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ConsumptionManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.TagsResultInner;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.TagInner;
+import java.util.List;
+
+/**
+ * Type representing TagsResult.
+ */
+public interface TagsResult extends HasInner, HasManager {
+ /**
+ * @return the eTag value.
+ */
+ String eTag();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the tags value.
+ */
+ List tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/TenantListResult.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/TenantListResult.java
new file mode 100644
index 0000000000000..5cd8cd4be3c51
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/TenantListResult.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.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ConsumptionManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.TenantListResultInner;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.TenantInner;
+import java.util.List;
+
+/**
+ * Type representing TenantListResult.
+ */
+public interface TenantListResult extends HasInner, HasManager {
+ /**
+ * @return the nextLink value.
+ */
+ String nextLink();
+
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Tenants.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Tenants.java
new file mode 100644
index 0000000000000..49ccf4fb01adb
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/Tenants.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.consumption.v2018_10_01;
+
+import rx.Observable;
+
+/**
+ * Type representing Tenants.
+ */
+public interface Tenants {
+ /**
+ * Gets a Tenant Properties.
+ *
+ * @param billingAccountId Billing Account Id.
+ * @param billingProfileId Billing Profile Id.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String billingAccountId, String billingProfileId);
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/TimeGrainType.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/TimeGrainType.java
new file mode 100644
index 0000000000000..90aa5f4b37e3d
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/TimeGrainType.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.consumption.v2018_10_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for TimeGrainType.
+ */
+public final class TimeGrainType extends ExpandableStringEnum {
+ /** Static value Monthly for TimeGrainType. */
+ public static final TimeGrainType MONTHLY = fromString("Monthly");
+
+ /** Static value Quarterly for TimeGrainType. */
+ public static final TimeGrainType QUARTERLY = fromString("Quarterly");
+
+ /** Static value Annually for TimeGrainType. */
+ public static final TimeGrainType ANNUALLY = fromString("Annually");
+
+ /**
+ * Creates or finds a TimeGrainType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding TimeGrainType
+ */
+ @JsonCreator
+ public static TimeGrainType fromString(String name) {
+ return fromString(name, TimeGrainType.class);
+ }
+
+ /**
+ * @return known TimeGrainType values
+ */
+ public static Collection values() {
+ return values(TimeGrainType.class);
+ }
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/UsageDetail.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/UsageDetail.java
new file mode 100644
index 0000000000000..495aa8815cb17
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/UsageDetail.java
@@ -0,0 +1,179 @@
+/**
+ * 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.consumption.v2018_10_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.ConsumptionManager;
+import com.microsoft.azure.management.consumption.v2018_10_01.implementation.UsageDetailInner;
+import java.math.BigDecimal;
+import java.util.UUID;
+import java.util.Map;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing UsageDetail.
+ */
+public interface UsageDetail extends HasInner, HasManager {
+ /**
+ * @return the accountName value.
+ */
+ String accountName();
+
+ /**
+ * @return the additionalProperties value.
+ */
+ String additionalProperties();
+
+ /**
+ * @return the billableQuantity value.
+ */
+ BigDecimal billableQuantity();
+
+ /**
+ * @return the billingPeriodId value.
+ */
+ String billingPeriodId();
+
+ /**
+ * @return the chargesBilledSeparately value.
+ */
+ Boolean chargesBilledSeparately();
+
+ /**
+ * @return the consumedService value.
+ */
+ String consumedService();
+
+ /**
+ * @return the costCenter value.
+ */
+ String costCenter();
+
+ /**
+ * @return the currency value.
+ */
+ String currency();
+
+ /**
+ * @return the departmentName value.
+ */
+ String departmentName();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the instanceId value.
+ */
+ String instanceId();
+
+ /**
+ * @return the instanceLocation value.
+ */
+ String instanceLocation();
+
+ /**
+ * @return the instanceName value.
+ */
+ String instanceName();
+
+ /**
+ * @return the invoiceId value.
+ */
+ String invoiceId();
+
+ /**
+ * @return the isEstimated value.
+ */
+ Boolean isEstimated();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the meterDetails value.
+ */
+ MeterDetails meterDetails();
+
+ /**
+ * @return the meterId value.
+ */
+ UUID meterId();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the offerId value.
+ */
+ String offerId();
+
+ /**
+ * @return the partNumber value.
+ */
+ String partNumber();
+
+ /**
+ * @return the pretaxCost value.
+ */
+ BigDecimal pretaxCost();
+
+ /**
+ * @return the product value.
+ */
+ String product();
+
+ /**
+ * @return the resourceGuid value.
+ */
+ String resourceGuid();
+
+ /**
+ * @return the subscriptionGuid value.
+ */
+ UUID subscriptionGuid();
+
+ /**
+ * @return the subscriptionName value.
+ */
+ String subscriptionName();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the usageEnd value.
+ */
+ DateTime usageEnd();
+
+ /**
+ * @return the usageQuantity value.
+ */
+ BigDecimal usageQuantity();
+
+ /**
+ * @return the usageStart value.
+ */
+ DateTime usageStart();
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/UsageDetails.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/UsageDetails.java
new file mode 100644
index 0000000000000..facdf8c89ba5c
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/UsageDetails.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.consumption.v2018_10_01;
+
+import rx.Observable;
+
+/**
+ * Type representing UsageDetails.
+ */
+public interface UsageDetails {
+ /**
+ * Lists the usage details for a scope by billing period. Usage details are available via this API only for May 1, 2014 or later.
+ *
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingPeriodAsync(final String billingPeriodName);
+
+ /**
+ * Lists the usage details by billingAccountId for a scope by current billing period. Usage details are available via this API only for May 1, 2014 or later.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByBillingAccountAsync(final String billingAccountId);
+
+ /**
+ * Lists the usage details based on billingAccountId for a scope by billing period. Usage details are available via this API only for May 1, 2014 or later.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listForBillingPeriodByBillingAccountAsync(final String billingAccountId, final String billingPeriodName);
+
+ /**
+ * Lists the usage details by departmentId for a scope by current billing period. Usage details are available via this API only for May 1, 2014 or later.
+ *
+ * @param departmentId Department ID
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDepartmentAsync(final String departmentId);
+
+ /**
+ * Lists the usage details based on departmentId for a scope by billing period. Usage details are available via this API only for May 1, 2014 or later.
+ *
+ * @param departmentId Department ID
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listForBillingPeriodByDepartmentAsync(final String departmentId, final String billingPeriodName);
+
+ /**
+ * Lists the usage details by enrollmentAccountId for a scope by current billing period. Usage details are available via this API only for May 1, 2014 or later.
+ *
+ * @param enrollmentAccountId EnrollmentAccount ID
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByEnrollmentAccountAsync(final String enrollmentAccountId);
+
+ /**
+ * Lists the usage details based on enrollmentAccountId for a scope by billing period. Usage details are available via this API only for May 1, 2014 or later.
+ *
+ * @param enrollmentAccountId EnrollmentAccount ID
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listForBillingPeriodByEnrollmentAccountAsync(final String enrollmentAccountId, final String billingPeriodName);
+
+ /**
+ * Lists the usage detail records for all subscriptions belonging to a management group scope by current billing period. Usage details are available via this API only for May 1, 2014 or later.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByManagementGroupAsync(final String managementGroupId);
+
+ /**
+ * Lists the usage detail records for all subscriptions belonging to a management group scope by specified billing period. Usage details are available via this API only for May 1, 2014 or later.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listForBillingPeriodByManagementGroupAsync(final String managementGroupId, final String billingPeriodName);
+
+ /**
+ * Lists the usage details for a scope by current billing period. Usage details are available via this API only for May 1, 2014 or later.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/AggregatedCostsImpl.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/AggregatedCostsImpl.java
new file mode 100644
index 0000000000000..8c93e2b706aa2
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/AggregatedCostsImpl.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * abc
+ */
+
+package com.microsoft.azure.management.consumption.v2018_10_01.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.consumption.v2018_10_01.AggregatedCosts;
+import rx.functions.Func1;
+import rx.Observable;
+import com.microsoft.azure.management.consumption.v2018_10_01.ManagementGroupAggregatedCostResult;
+
+class AggregatedCostsImpl extends WrapperImpl implements AggregatedCosts {
+ private final ConsumptionManager manager;
+
+ AggregatedCostsImpl(ConsumptionManager manager) {
+ super(manager.inner().aggregatedCosts());
+ this.manager = manager;
+ }
+
+ public ConsumptionManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable getByManagementGroupAsync(String managementGroupId) {
+ AggregatedCostsInner client = this.inner();
+ return client.getByManagementGroupAsync(managementGroupId)
+ .map(new Func1() {
+ @Override
+ public ManagementGroupAggregatedCostResult call(ManagementGroupAggregatedCostResultInner inner) {
+ return new ManagementGroupAggregatedCostResultImpl(inner, manager());
+ }
+ });
+ }
+
+ @Override
+ public Observable getForBillingPeriodByManagementGroupAsync(String managementGroupId, String billingPeriodName) {
+ AggregatedCostsInner client = this.inner();
+ return client.getForBillingPeriodByManagementGroupAsync(managementGroupId, billingPeriodName)
+ .map(new Func1() {
+ @Override
+ public ManagementGroupAggregatedCostResult call(ManagementGroupAggregatedCostResultInner inner) {
+ return new ManagementGroupAggregatedCostResultImpl(inner, manager());
+ }
+ });
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/AggregatedCostsInner.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/AggregatedCostsInner.java
new file mode 100644
index 0000000000000..0f8b389646e10
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/AggregatedCostsInner.java
@@ -0,0 +1,297 @@
+/**
+ * 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.consumption.v2018_10_01.implementation;
+
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.management.consumption.v2018_10_01.ErrorResponseException;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import okhttp3.ResponseBody;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.Path;
+import retrofit2.http.Query;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in AggregatedCosts.
+ */
+public class AggregatedCostsInner {
+ /** The Retrofit service to perform REST calls. */
+ private AggregatedCostsService service;
+ /** The service client containing this operation class. */
+ private ConsumptionManagementClientImpl client;
+
+ /**
+ * Initializes an instance of AggregatedCostsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public AggregatedCostsInner(Retrofit retrofit, ConsumptionManagementClientImpl client) {
+ this.service = retrofit.create(AggregatedCostsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for AggregatedCosts to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface AggregatedCostsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.consumption.v2018_10_01.AggregatedCosts getByManagementGroup" })
+ @GET("providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Consumption/aggregatedcost")
+ Observable> getByManagementGroup(@Path("managementGroupId") String managementGroupId, @Query("api-version") String apiVersion, @Query("$filter") String filter, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.consumption.v2018_10_01.AggregatedCosts getForBillingPeriodByManagementGroup" })
+ @GET("providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}/Microsoft.Consumption/aggregatedcost")
+ Observable> getForBillingPeriodByManagementGroup(@Path("managementGroupId") String managementGroupId, @Path("billingPeriodName") String billingPeriodName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Provides the aggregate cost of a management group and all child management groups by current billing period.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws ErrorResponseException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the ManagementGroupAggregatedCostResultInner object if successful.
+ */
+ public ManagementGroupAggregatedCostResultInner getByManagementGroup(String managementGroupId) {
+ return getByManagementGroupWithServiceResponseAsync(managementGroupId).toBlocking().single().body();
+ }
+
+ /**
+ * Provides the aggregate cost of a management group and all child management groups by current billing period.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture getByManagementGroupAsync(String managementGroupId, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(getByManagementGroupWithServiceResponseAsync(managementGroupId), serviceCallback);
+ }
+
+ /**
+ * Provides the aggregate cost of a management group and all child management groups by current billing period.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ManagementGroupAggregatedCostResultInner object
+ */
+ public Observable getByManagementGroupAsync(String managementGroupId) {
+ return getByManagementGroupWithServiceResponseAsync(managementGroupId).map(new Func1, ManagementGroupAggregatedCostResultInner>() {
+ @Override
+ public ManagementGroupAggregatedCostResultInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Provides the aggregate cost of a management group and all child management groups by current billing period.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ManagementGroupAggregatedCostResultInner object
+ */
+ public Observable> getByManagementGroupWithServiceResponseAsync(String managementGroupId) {
+ if (managementGroupId == null) {
+ throw new IllegalArgumentException("Parameter managementGroupId is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ final String filter = null;
+ return service.getByManagementGroup(managementGroupId, this.client.apiVersion(), filter, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = getByManagementGroupDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ /**
+ * Provides the aggregate cost of a management group and all child management groups by current billing period.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @param filter May be used to filter aggregated cost by properties/usageStart (Utc time), properties/usageEnd (Utc time). The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'. It does not currently support 'ne', 'or', or 'not'. Tag filter is a key value pair string where key and value is separated by a colon (:).
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws ErrorResponseException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the ManagementGroupAggregatedCostResultInner object if successful.
+ */
+ public ManagementGroupAggregatedCostResultInner getByManagementGroup(String managementGroupId, String filter) {
+ return getByManagementGroupWithServiceResponseAsync(managementGroupId, filter).toBlocking().single().body();
+ }
+
+ /**
+ * Provides the aggregate cost of a management group and all child management groups by current billing period.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @param filter May be used to filter aggregated cost by properties/usageStart (Utc time), properties/usageEnd (Utc time). The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'. It does not currently support 'ne', 'or', or 'not'. Tag filter is a key value pair string where key and value is separated by a colon (:).
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture getByManagementGroupAsync(String managementGroupId, String filter, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(getByManagementGroupWithServiceResponseAsync(managementGroupId, filter), serviceCallback);
+ }
+
+ /**
+ * Provides the aggregate cost of a management group and all child management groups by current billing period.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @param filter May be used to filter aggregated cost by properties/usageStart (Utc time), properties/usageEnd (Utc time). The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'. It does not currently support 'ne', 'or', or 'not'. Tag filter is a key value pair string where key and value is separated by a colon (:).
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ManagementGroupAggregatedCostResultInner object
+ */
+ public Observable getByManagementGroupAsync(String managementGroupId, String filter) {
+ return getByManagementGroupWithServiceResponseAsync(managementGroupId, filter).map(new Func1, ManagementGroupAggregatedCostResultInner>() {
+ @Override
+ public ManagementGroupAggregatedCostResultInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Provides the aggregate cost of a management group and all child management groups by current billing period.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @param filter May be used to filter aggregated cost by properties/usageStart (Utc time), properties/usageEnd (Utc time). The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'. It does not currently support 'ne', 'or', or 'not'. Tag filter is a key value pair string where key and value is separated by a colon (:).
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ManagementGroupAggregatedCostResultInner object
+ */
+ public Observable> getByManagementGroupWithServiceResponseAsync(String managementGroupId, String filter) {
+ if (managementGroupId == null) {
+ throw new IllegalArgumentException("Parameter managementGroupId is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.getByManagementGroup(managementGroupId, this.client.apiVersion(), filter, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = getByManagementGroupDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse getByManagementGroupDelegate(Response response) throws ErrorResponseException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(ErrorResponseException.class)
+ .build(response);
+ }
+
+ /**
+ * Provides the aggregate cost of a management group and all child management groups by specified billing period.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws ErrorResponseException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the ManagementGroupAggregatedCostResultInner object if successful.
+ */
+ public ManagementGroupAggregatedCostResultInner getForBillingPeriodByManagementGroup(String managementGroupId, String billingPeriodName) {
+ return getForBillingPeriodByManagementGroupWithServiceResponseAsync(managementGroupId, billingPeriodName).toBlocking().single().body();
+ }
+
+ /**
+ * Provides the aggregate cost of a management group and all child management groups by specified billing period.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @param billingPeriodName Billing Period Name.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture getForBillingPeriodByManagementGroupAsync(String managementGroupId, String billingPeriodName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(getForBillingPeriodByManagementGroupWithServiceResponseAsync(managementGroupId, billingPeriodName), serviceCallback);
+ }
+
+ /**
+ * Provides the aggregate cost of a management group and all child management groups by specified billing period.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ManagementGroupAggregatedCostResultInner object
+ */
+ public Observable getForBillingPeriodByManagementGroupAsync(String managementGroupId, String billingPeriodName) {
+ return getForBillingPeriodByManagementGroupWithServiceResponseAsync(managementGroupId, billingPeriodName).map(new Func1, ManagementGroupAggregatedCostResultInner>() {
+ @Override
+ public ManagementGroupAggregatedCostResultInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Provides the aggregate cost of a management group and all child management groups by specified billing period.
+ *
+ * @param managementGroupId Azure Management Group ID.
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ManagementGroupAggregatedCostResultInner object
+ */
+ public Observable> getForBillingPeriodByManagementGroupWithServiceResponseAsync(String managementGroupId, String billingPeriodName) {
+ if (managementGroupId == null) {
+ throw new IllegalArgumentException("Parameter managementGroupId is required and cannot be null.");
+ }
+ if (billingPeriodName == null) {
+ throw new IllegalArgumentException("Parameter billingPeriodName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.getForBillingPeriodByManagementGroup(managementGroupId, billingPeriodName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = getForBillingPeriodByManagementGroupDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse getForBillingPeriodByManagementGroupDelegate(Response response) throws ErrorResponseException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(ErrorResponseException.class)
+ .build(response);
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BalanceImpl.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BalanceImpl.java
new file mode 100644
index 0000000000000..e76b24ce9059a
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BalanceImpl.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.consumption.v2018_10_01.implementation;
+
+import com.microsoft.azure.management.consumption.v2018_10_01.Balance;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import java.util.List;
+import com.microsoft.azure.management.consumption.v2018_10_01.BalancePropertiesAdjustmentDetailsItem;
+import java.math.BigDecimal;
+import com.microsoft.azure.management.consumption.v2018_10_01.BillingFrequency;
+import com.microsoft.azure.management.consumption.v2018_10_01.BalancePropertiesNewPurchasesDetailsItem;
+import java.util.Map;
+
+class BalanceImpl extends WrapperImpl implements Balance {
+ private final ConsumptionManager manager;
+ BalanceImpl(BalanceInner inner, ConsumptionManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public ConsumptionManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public List adjustmentDetails() {
+ return this.inner().adjustmentDetails();
+ }
+
+ @Override
+ public BigDecimal adjustments() {
+ return this.inner().adjustments();
+ }
+
+ @Override
+ public BigDecimal azureMarketplaceServiceCharges() {
+ return this.inner().azureMarketplaceServiceCharges();
+ }
+
+ @Override
+ public BigDecimal beginningBalance() {
+ return this.inner().beginningBalance();
+ }
+
+ @Override
+ public BillingFrequency billingFrequency() {
+ return this.inner().billingFrequency();
+ }
+
+ @Override
+ public BigDecimal chargesBilledSeparately() {
+ return this.inner().chargesBilledSeparately();
+ }
+
+ @Override
+ public String currency() {
+ return this.inner().currency();
+ }
+
+ @Override
+ public BigDecimal endingBalance() {
+ return this.inner().endingBalance();
+ }
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public BigDecimal newPurchases() {
+ return this.inner().newPurchases();
+ }
+
+ @Override
+ public List newPurchasesDetails() {
+ return this.inner().newPurchasesDetails();
+ }
+
+ @Override
+ public Boolean priceHidden() {
+ return this.inner().priceHidden();
+ }
+
+ @Override
+ public BigDecimal serviceOverage() {
+ return this.inner().serviceOverage();
+ }
+
+ @Override
+ public Map tags() {
+ return this.inner().tags();
+ }
+
+ @Override
+ public BigDecimal totalOverage() {
+ return this.inner().totalOverage();
+ }
+
+ @Override
+ public BigDecimal totalUsage() {
+ return this.inner().totalUsage();
+ }
+
+ @Override
+ public String type() {
+ return this.inner().type();
+ }
+
+ @Override
+ public BigDecimal utilized() {
+ return this.inner().utilized();
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BalanceInner.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BalanceInner.java
new file mode 100644
index 0000000000000..e8d2c376e0df8
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BalanceInner.java
@@ -0,0 +1,279 @@
+/**
+ * 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.consumption.v2018_10_01.implementation;
+
+import java.math.BigDecimal;
+import com.microsoft.azure.management.consumption.v2018_10_01.BillingFrequency;
+import java.util.List;
+import com.microsoft.azure.management.consumption.v2018_10_01.BalancePropertiesNewPurchasesDetailsItem;
+import com.microsoft.azure.management.consumption.v2018_10_01.BalancePropertiesAdjustmentDetailsItem;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * A balance resource.
+ */
+@JsonFlatten
+public class BalanceInner extends ProxyResource {
+ /**
+ * The ISO currency in which the meter is charged, for example, USD.
+ */
+ @JsonProperty(value = "properties.currency", access = JsonProperty.Access.WRITE_ONLY)
+ private String currency;
+
+ /**
+ * The beginning balance for the billing period.
+ */
+ @JsonProperty(value = "properties.beginningBalance", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal beginningBalance;
+
+ /**
+ * The ending balance for the billing period (for open periods this will be
+ * updated daily).
+ */
+ @JsonProperty(value = "properties.endingBalance", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal endingBalance;
+
+ /**
+ * Total new purchase amount.
+ */
+ @JsonProperty(value = "properties.newPurchases", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal newPurchases;
+
+ /**
+ * Total adjustment amount.
+ */
+ @JsonProperty(value = "properties.adjustments", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal adjustments;
+
+ /**
+ * Total Commitment usage.
+ */
+ @JsonProperty(value = "properties.utilized", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal utilized;
+
+ /**
+ * Overage for Azure services.
+ */
+ @JsonProperty(value = "properties.serviceOverage", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal serviceOverage;
+
+ /**
+ * Charges Billed separately.
+ */
+ @JsonProperty(value = "properties.chargesBilledSeparately", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal chargesBilledSeparately;
+
+ /**
+ * serviceOverage + chargesBilledSeparately.
+ */
+ @JsonProperty(value = "properties.totalOverage", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal totalOverage;
+
+ /**
+ * Azure service commitment + total Overage.
+ */
+ @JsonProperty(value = "properties.totalUsage", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal totalUsage;
+
+ /**
+ * Total charges for Azure Marketplace.
+ */
+ @JsonProperty(value = "properties.azureMarketplaceServiceCharges", access = JsonProperty.Access.WRITE_ONLY)
+ private BigDecimal azureMarketplaceServiceCharges;
+
+ /**
+ * The billing frequency. Possible values include: 'Month', 'Quarter',
+ * 'Year'.
+ */
+ @JsonProperty(value = "properties.billingFrequency")
+ private BillingFrequency billingFrequency;
+
+ /**
+ * Price is hidden or not.
+ */
+ @JsonProperty(value = "properties.priceHidden", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean priceHidden;
+
+ /**
+ * List of new purchases.
+ */
+ @JsonProperty(value = "properties.newPurchasesDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private List newPurchasesDetails;
+
+ /**
+ * List of Adjustments (Promo credit, SIE credit etc.).
+ */
+ @JsonProperty(value = "properties.adjustmentDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private List adjustmentDetails;
+
+ /**
+ * Resource tags.
+ */
+ @JsonProperty(value = "tags", access = JsonProperty.Access.WRITE_ONLY)
+ private Map tags;
+
+ /**
+ * Get the ISO currency in which the meter is charged, for example, USD.
+ *
+ * @return the currency value
+ */
+ public String currency() {
+ return this.currency;
+ }
+
+ /**
+ * Get the beginning balance for the billing period.
+ *
+ * @return the beginningBalance value
+ */
+ public BigDecimal beginningBalance() {
+ return this.beginningBalance;
+ }
+
+ /**
+ * Get the ending balance for the billing period (for open periods this will be updated daily).
+ *
+ * @return the endingBalance value
+ */
+ public BigDecimal endingBalance() {
+ return this.endingBalance;
+ }
+
+ /**
+ * Get total new purchase amount.
+ *
+ * @return the newPurchases value
+ */
+ public BigDecimal newPurchases() {
+ return this.newPurchases;
+ }
+
+ /**
+ * Get total adjustment amount.
+ *
+ * @return the adjustments value
+ */
+ public BigDecimal adjustments() {
+ return this.adjustments;
+ }
+
+ /**
+ * Get total Commitment usage.
+ *
+ * @return the utilized value
+ */
+ public BigDecimal utilized() {
+ return this.utilized;
+ }
+
+ /**
+ * Get overage for Azure services.
+ *
+ * @return the serviceOverage value
+ */
+ public BigDecimal serviceOverage() {
+ return this.serviceOverage;
+ }
+
+ /**
+ * Get charges Billed separately.
+ *
+ * @return the chargesBilledSeparately value
+ */
+ public BigDecimal chargesBilledSeparately() {
+ return this.chargesBilledSeparately;
+ }
+
+ /**
+ * Get serviceOverage + chargesBilledSeparately.
+ *
+ * @return the totalOverage value
+ */
+ public BigDecimal totalOverage() {
+ return this.totalOverage;
+ }
+
+ /**
+ * Get azure service commitment + total Overage.
+ *
+ * @return the totalUsage value
+ */
+ public BigDecimal totalUsage() {
+ return this.totalUsage;
+ }
+
+ /**
+ * Get total charges for Azure Marketplace.
+ *
+ * @return the azureMarketplaceServiceCharges value
+ */
+ public BigDecimal azureMarketplaceServiceCharges() {
+ return this.azureMarketplaceServiceCharges;
+ }
+
+ /**
+ * Get the billing frequency. Possible values include: 'Month', 'Quarter', 'Year'.
+ *
+ * @return the billingFrequency value
+ */
+ public BillingFrequency billingFrequency() {
+ return this.billingFrequency;
+ }
+
+ /**
+ * Set the billing frequency. Possible values include: 'Month', 'Quarter', 'Year'.
+ *
+ * @param billingFrequency the billingFrequency value to set
+ * @return the BalanceInner object itself.
+ */
+ public BalanceInner withBillingFrequency(BillingFrequency billingFrequency) {
+ this.billingFrequency = billingFrequency;
+ return this;
+ }
+
+ /**
+ * Get price is hidden or not.
+ *
+ * @return the priceHidden value
+ */
+ public Boolean priceHidden() {
+ return this.priceHidden;
+ }
+
+ /**
+ * Get list of new purchases.
+ *
+ * @return the newPurchasesDetails value
+ */
+ public List newPurchasesDetails() {
+ return this.newPurchasesDetails;
+ }
+
+ /**
+ * Get list of Adjustments (Promo credit, SIE credit etc.).
+ *
+ * @return the adjustmentDetails value
+ */
+ public List adjustmentDetails() {
+ return this.adjustmentDetails;
+ }
+
+ /**
+ * Get resource tags.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BalancesImpl.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BalancesImpl.java
new file mode 100644
index 0000000000000..9d8321847e693
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BalancesImpl.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * abc
+ */
+
+package com.microsoft.azure.management.consumption.v2018_10_01.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.consumption.v2018_10_01.Balances;
+import rx.functions.Func1;
+import rx.Observable;
+import com.microsoft.azure.management.consumption.v2018_10_01.Balance;
+
+class BalancesImpl extends WrapperImpl implements Balances {
+ private final ConsumptionManager manager;
+
+ BalancesImpl(ConsumptionManager manager) {
+ super(manager.inner().balances());
+ this.manager = manager;
+ }
+
+ public ConsumptionManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable getByBillingAccountAsync(String billingAccountId) {
+ BalancesInner client = this.inner();
+ return client.getByBillingAccountAsync(billingAccountId)
+ .map(new Func1() {
+ @Override
+ public Balance call(BalanceInner inner) {
+ return new BalanceImpl(inner, manager());
+ }
+ });
+ }
+
+ @Override
+ public Observable getForBillingPeriodByBillingAccountAsync(String billingAccountId, String billingPeriodName) {
+ BalancesInner client = this.inner();
+ return client.getForBillingPeriodByBillingAccountAsync(billingAccountId, billingPeriodName)
+ .map(new Func1() {
+ @Override
+ public Balance call(BalanceInner inner) {
+ return new BalanceImpl(inner, manager());
+ }
+ });
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BalancesInner.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BalancesInner.java
new file mode 100644
index 0000000000000..8d386d1bd166a
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BalancesInner.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.consumption.v2018_10_01.implementation;
+
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.management.consumption.v2018_10_01.ErrorResponseException;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import okhttp3.ResponseBody;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.Path;
+import retrofit2.http.Query;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Balances.
+ */
+public class BalancesInner {
+ /** The Retrofit service to perform REST calls. */
+ private BalancesService service;
+ /** The service client containing this operation class. */
+ private ConsumptionManagementClientImpl client;
+
+ /**
+ * Initializes an instance of BalancesInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public BalancesInner(Retrofit retrofit, ConsumptionManagementClientImpl client) {
+ this.service = retrofit.create(BalancesService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for Balances to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface BalancesService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.consumption.v2018_10_01.Balances getByBillingAccount" })
+ @GET("providers/Microsoft.Billing/billingAccounts/{billingAccountId}/providers/Microsoft.Consumption/balances")
+ Observable> getByBillingAccount(@Path("billingAccountId") String billingAccountId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.consumption.v2018_10_01.Balances getForBillingPeriodByBillingAccount" })
+ @GET("providers/Microsoft.Billing/billingAccounts/{billingAccountId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}/providers/Microsoft.Consumption/balances")
+ Observable> getForBillingPeriodByBillingAccount(@Path("billingAccountId") String billingAccountId, @Path("billingPeriodName") String billingPeriodName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Gets the balances for a scope by billingAccountId. Balances are available via this API only for May 1, 2014 or later.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws ErrorResponseException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the BalanceInner object if successful.
+ */
+ public BalanceInner getByBillingAccount(String billingAccountId) {
+ return getByBillingAccountWithServiceResponseAsync(billingAccountId).toBlocking().single().body();
+ }
+
+ /**
+ * Gets the balances for a scope by billingAccountId. Balances are available via this API only for May 1, 2014 or later.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture getByBillingAccountAsync(String billingAccountId, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(getByBillingAccountWithServiceResponseAsync(billingAccountId), serviceCallback);
+ }
+
+ /**
+ * Gets the balances for a scope by billingAccountId. Balances are available via this API only for May 1, 2014 or later.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the BalanceInner object
+ */
+ public Observable getByBillingAccountAsync(String billingAccountId) {
+ return getByBillingAccountWithServiceResponseAsync(billingAccountId).map(new Func1, BalanceInner>() {
+ @Override
+ public BalanceInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Gets the balances for a scope by billingAccountId. Balances are available via this API only for May 1, 2014 or later.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the BalanceInner object
+ */
+ public Observable> getByBillingAccountWithServiceResponseAsync(String billingAccountId) {
+ if (billingAccountId == null) {
+ throw new IllegalArgumentException("Parameter billingAccountId is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.getByBillingAccount(billingAccountId, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = getByBillingAccountDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse getByBillingAccountDelegate(Response response) throws ErrorResponseException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(ErrorResponseException.class)
+ .build(response);
+ }
+
+ /**
+ * Gets the balances for a scope by billing period and billingAccountId. Balances are available via this API only for May 1, 2014 or later.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws ErrorResponseException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the BalanceInner object if successful.
+ */
+ public BalanceInner getForBillingPeriodByBillingAccount(String billingAccountId, String billingPeriodName) {
+ return getForBillingPeriodByBillingAccountWithServiceResponseAsync(billingAccountId, billingPeriodName).toBlocking().single().body();
+ }
+
+ /**
+ * Gets the balances for a scope by billing period and billingAccountId. Balances are available via this API only for May 1, 2014 or later.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @param billingPeriodName Billing Period Name.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture getForBillingPeriodByBillingAccountAsync(String billingAccountId, String billingPeriodName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(getForBillingPeriodByBillingAccountWithServiceResponseAsync(billingAccountId, billingPeriodName), serviceCallback);
+ }
+
+ /**
+ * Gets the balances for a scope by billing period and billingAccountId. Balances are available via this API only for May 1, 2014 or later.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the BalanceInner object
+ */
+ public Observable getForBillingPeriodByBillingAccountAsync(String billingAccountId, String billingPeriodName) {
+ return getForBillingPeriodByBillingAccountWithServiceResponseAsync(billingAccountId, billingPeriodName).map(new Func1, BalanceInner>() {
+ @Override
+ public BalanceInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Gets the balances for a scope by billing period and billingAccountId. Balances are available via this API only for May 1, 2014 or later.
+ *
+ * @param billingAccountId BillingAccount ID
+ * @param billingPeriodName Billing Period Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the BalanceInner object
+ */
+ public Observable> getForBillingPeriodByBillingAccountWithServiceResponseAsync(String billingAccountId, String billingPeriodName) {
+ if (billingAccountId == null) {
+ throw new IllegalArgumentException("Parameter billingAccountId is required and cannot be null.");
+ }
+ if (billingPeriodName == null) {
+ throw new IllegalArgumentException("Parameter billingPeriodName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.getForBillingPeriodByBillingAccount(billingAccountId, billingPeriodName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = getForBillingPeriodByBillingAccountDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse getForBillingPeriodByBillingAccountDelegate(Response response) throws ErrorResponseException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(ErrorResponseException.class)
+ .build(response);
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BudgetImpl.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BudgetImpl.java
new file mode 100644
index 0000000000000..3c580fc736522
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BudgetImpl.java
@@ -0,0 +1,182 @@
+/**
+ * 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.consumption.v2018_10_01.implementation;
+
+import com.microsoft.azure.management.consumption.v2018_10_01.Budget;
+import com.microsoft.azure.arm.model.implementation.CreatableUpdatableImpl;
+import rx.Observable;
+import com.microsoft.azure.management.consumption.v2018_10_01.CategoryType;
+import java.math.BigDecimal;
+import com.microsoft.azure.management.consumption.v2018_10_01.TimeGrainType;
+import com.microsoft.azure.management.consumption.v2018_10_01.BudgetTimePeriod;
+import com.microsoft.azure.management.consumption.v2018_10_01.Filters;
+import com.microsoft.azure.management.consumption.v2018_10_01.CurrentSpend;
+import java.util.Map;
+import com.microsoft.azure.management.consumption.v2018_10_01.Notification;
+
+class BudgetImpl extends CreatableUpdatableImpl implements Budget, Budget.Definition, Budget.Update {
+ private String resourceGroupName;
+ private String budgetName;
+ private final ConsumptionManager manager;
+
+ BudgetImpl(String name, ConsumptionManager manager) {
+ super(name, new BudgetInner());
+ this.manager = manager;
+ // Set resource name
+ this.budgetName = name;
+ //
+ }
+
+ BudgetImpl(BudgetInner inner, ConsumptionManager manager) {
+ super(inner.name(), inner);
+ this.manager = manager;
+ // Set resource name
+ this.budgetName = inner.name();
+ // set resource ancestor and positional variables
+ this.resourceGroupName = IdParsingUtils.getValueFromIdByName(inner.id(), "resourceGroups");
+ this.budgetName = IdParsingUtils.getValueFromIdByName(inner.id(), "budgets");
+ // set other parameters for create and update
+ }
+
+ @Override
+ public ConsumptionManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ BudgetsInner client = this.manager().inner().budgets();
+ return client.createOrUpdateByResourceGroupNameAsync(this.resourceGroupName, this.budgetName, this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ BudgetsInner client = this.manager().inner().budgets();
+ return client.createOrUpdateByResourceGroupNameAsync(this.resourceGroupName, this.budgetName, this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ BudgetsInner client = this.manager().inner().budgets();
+ return client.getByResourceGroupAsync(this.resourceGroupName, this.budgetName);
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+
+ @Override
+ public BigDecimal amount() {
+ return this.inner().amount();
+ }
+
+ @Override
+ public CategoryType category() {
+ return this.inner().category();
+ }
+
+ @Override
+ public CurrentSpend currentSpend() {
+ return this.inner().currentSpend();
+ }
+
+ @Override
+ public String eTag() {
+ return this.inner().eTag();
+ }
+
+ @Override
+ public Filters filters() {
+ return this.inner().filters();
+ }
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public Map notifications() {
+ return this.inner().notifications();
+ }
+
+ @Override
+ public TimeGrainType timeGrain() {
+ return this.inner().timeGrain();
+ }
+
+ @Override
+ public BudgetTimePeriod timePeriod() {
+ return this.inner().timePeriod();
+ }
+
+ @Override
+ public String type() {
+ return this.inner().type();
+ }
+
+ @Override
+ public BudgetImpl withResourceGroupName(String resourceGroupName) {
+ this.resourceGroupName = resourceGroupName;
+ return this;
+ }
+
+ @Override
+ public BudgetImpl withAmount(BigDecimal amount) {
+ this.inner().withAmount(amount);
+ return this;
+ }
+
+ @Override
+ public BudgetImpl withCategory(CategoryType category) {
+ this.inner().withCategory(category);
+ return this;
+ }
+
+ @Override
+ public BudgetImpl withTimeGrain(TimeGrainType timeGrain) {
+ this.inner().withTimeGrain(timeGrain);
+ return this;
+ }
+
+ @Override
+ public BudgetImpl withTimePeriod(BudgetTimePeriod timePeriod) {
+ this.inner().withTimePeriod(timePeriod);
+ return this;
+ }
+
+ @Override
+ public BudgetImpl withETag(String eTag) {
+ this.inner().withETag(eTag);
+ return this;
+ }
+
+ @Override
+ public BudgetImpl withFilters(Filters filters) {
+ this.inner().withFilters(filters);
+ return this;
+ }
+
+ @Override
+ public BudgetImpl withNotifications(Map notifications) {
+ this.inner().withNotifications(notifications);
+ return this;
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BudgetInner.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BudgetInner.java
new file mode 100644
index 0000000000000..d1be94952d157
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BudgetInner.java
@@ -0,0 +1,235 @@
+/**
+ * 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.consumption.v2018_10_01.implementation;
+
+import com.microsoft.azure.management.consumption.v2018_10_01.CategoryType;
+import java.math.BigDecimal;
+import com.microsoft.azure.management.consumption.v2018_10_01.TimeGrainType;
+import com.microsoft.azure.management.consumption.v2018_10_01.BudgetTimePeriod;
+import com.microsoft.azure.management.consumption.v2018_10_01.Filters;
+import com.microsoft.azure.management.consumption.v2018_10_01.CurrentSpend;
+import java.util.Map;
+import com.microsoft.azure.management.consumption.v2018_10_01.Notification;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * A budget resource.
+ */
+@JsonFlatten
+public class BudgetInner extends ProxyResource {
+ /**
+ * The category of the budget, whether the budget tracks cost or usage.
+ * Possible values include: 'Cost', 'Usage'.
+ */
+ @JsonProperty(value = "properties.category", required = true)
+ private CategoryType category;
+
+ /**
+ * The total amount of cost to track with the budget.
+ */
+ @JsonProperty(value = "properties.amount", required = true)
+ private BigDecimal amount;
+
+ /**
+ * The time covered by a budget. Tracking of the amount will be reset based
+ * on the time grain. Possible values include: 'Monthly', 'Quarterly',
+ * 'Annually'.
+ */
+ @JsonProperty(value = "properties.timeGrain", required = true)
+ private TimeGrainType timeGrain;
+
+ /**
+ * Has start and end date of the budget. The start date must be first of
+ * the month and should be less than the end date. Budget start date must
+ * be on or after June 1, 2017. Future start date should not be more than
+ * three months. Past start date should be selected within the timegrain
+ * period. There are no restrictions on the end date.
+ */
+ @JsonProperty(value = "properties.timePeriod", required = true)
+ private BudgetTimePeriod timePeriod;
+
+ /**
+ * May be used to filter budgets by resource group, resource, or meter.
+ */
+ @JsonProperty(value = "properties.filters")
+ private Filters filters;
+
+ /**
+ * The current amount of cost which is being tracked for a budget.
+ */
+ @JsonProperty(value = "properties.currentSpend", access = JsonProperty.Access.WRITE_ONLY)
+ private CurrentSpend currentSpend;
+
+ /**
+ * Dictionary of notifications associated with the budget. Budget can have
+ * up to five notifications.
+ */
+ @JsonProperty(value = "properties.notifications")
+ private Map notifications;
+
+ /**
+ * eTag of the resource. To handle concurrent update scenario, this field
+ * will be used to determine whether the user is updating the latest
+ * version or not.
+ */
+ @JsonProperty(value = "eTag")
+ private String eTag;
+
+ /**
+ * Get the category of the budget, whether the budget tracks cost or usage. Possible values include: 'Cost', 'Usage'.
+ *
+ * @return the category value
+ */
+ public CategoryType category() {
+ return this.category;
+ }
+
+ /**
+ * Set the category of the budget, whether the budget tracks cost or usage. Possible values include: 'Cost', 'Usage'.
+ *
+ * @param category the category value to set
+ * @return the BudgetInner object itself.
+ */
+ public BudgetInner withCategory(CategoryType category) {
+ this.category = category;
+ return this;
+ }
+
+ /**
+ * Get the total amount of cost to track with the budget.
+ *
+ * @return the amount value
+ */
+ public BigDecimal amount() {
+ return this.amount;
+ }
+
+ /**
+ * Set the total amount of cost to track with the budget.
+ *
+ * @param amount the amount value to set
+ * @return the BudgetInner object itself.
+ */
+ public BudgetInner withAmount(BigDecimal amount) {
+ this.amount = amount;
+ return this;
+ }
+
+ /**
+ * Get the time covered by a budget. Tracking of the amount will be reset based on the time grain. Possible values include: 'Monthly', 'Quarterly', 'Annually'.
+ *
+ * @return the timeGrain value
+ */
+ public TimeGrainType timeGrain() {
+ return this.timeGrain;
+ }
+
+ /**
+ * Set the time covered by a budget. Tracking of the amount will be reset based on the time grain. Possible values include: 'Monthly', 'Quarterly', 'Annually'.
+ *
+ * @param timeGrain the timeGrain value to set
+ * @return the BudgetInner object itself.
+ */
+ public BudgetInner withTimeGrain(TimeGrainType timeGrain) {
+ this.timeGrain = timeGrain;
+ return this;
+ }
+
+ /**
+ * Get has start and end date of the budget. The start date must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than three months. Past start date should be selected within the timegrain period. There are no restrictions on the end date.
+ *
+ * @return the timePeriod value
+ */
+ public BudgetTimePeriod timePeriod() {
+ return this.timePeriod;
+ }
+
+ /**
+ * Set has start and end date of the budget. The start date must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than three months. Past start date should be selected within the timegrain period. There are no restrictions on the end date.
+ *
+ * @param timePeriod the timePeriod value to set
+ * @return the BudgetInner object itself.
+ */
+ public BudgetInner withTimePeriod(BudgetTimePeriod timePeriod) {
+ this.timePeriod = timePeriod;
+ return this;
+ }
+
+ /**
+ * Get may be used to filter budgets by resource group, resource, or meter.
+ *
+ * @return the filters value
+ */
+ public Filters filters() {
+ return this.filters;
+ }
+
+ /**
+ * Set may be used to filter budgets by resource group, resource, or meter.
+ *
+ * @param filters the filters value to set
+ * @return the BudgetInner object itself.
+ */
+ public BudgetInner withFilters(Filters filters) {
+ this.filters = filters;
+ return this;
+ }
+
+ /**
+ * Get the current amount of cost which is being tracked for a budget.
+ *
+ * @return the currentSpend value
+ */
+ public CurrentSpend currentSpend() {
+ return this.currentSpend;
+ }
+
+ /**
+ * Get dictionary of notifications associated with the budget. Budget can have up to five notifications.
+ *
+ * @return the notifications value
+ */
+ public Map notifications() {
+ return this.notifications;
+ }
+
+ /**
+ * Set dictionary of notifications associated with the budget. Budget can have up to five notifications.
+ *
+ * @param notifications the notifications value to set
+ * @return the BudgetInner object itself.
+ */
+ public BudgetInner withNotifications(Map notifications) {
+ this.notifications = notifications;
+ return this;
+ }
+
+ /**
+ * Get eTag of the resource. To handle concurrent update scenario, this field will be used to determine whether the user is updating the latest version or not.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set eTag of the resource. To handle concurrent update scenario, this field will be used to determine whether the user is updating the latest version or not.
+ *
+ * @param eTag the eTag value to set
+ * @return the BudgetInner object itself.
+ */
+ public BudgetInner withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BudgetsImpl.java b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BudgetsImpl.java
new file mode 100644
index 0000000000000..db798ac58d855
--- /dev/null
+++ b/consumption/resource-manager/v2018_10_01/src/main/java/com/microsoft/azure/management/consumption/v2018_10_01/implementation/BudgetsImpl.java
@@ -0,0 +1,215 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * jkl
+ */
+
+package com.microsoft.azure.management.consumption.v2018_10_01.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.consumption.v2018_10_01.Budgets;
+import rx.Completable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import com.microsoft.azure.arm.resources.ResourceUtilsCore;
+import com.microsoft.azure.arm.utils.RXMapper;
+import rx.Observable;
+import rx.functions.Func1;
+import com.microsoft.azure.PagedList;
+import com.microsoft.azure.Page;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.azure.management.consumption.v2018_10_01.Budget;
+import com.microsoft.azure.arm.utils.PagedListConverter;
+
+class BudgetsImpl extends WrapperImpl implements Budgets {
+ private PagedListConverter converter;
+ private final ConsumptionManager manager;
+
+ BudgetsImpl(ConsumptionManager manager) {
+ super(manager.inner().budgets());
+ this.manager = manager;
+ this.converter = new PagedListConverter() {
+ @Override
+ public Observable typeConvertAsync(BudgetInner inner) {
+ return Observable.just((Budget) wrapModel(inner));
+ }
+ };
+ }
+
+ public ConsumptionManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public BudgetImpl define(String name) {
+ return wrapModel(name);
+ }
+
+ private BudgetImpl wrapModel(BudgetInner inner) {
+ return new BudgetImpl(inner, manager());
+ }
+
+ private BudgetImpl wrapModel(String name) {
+ return new BudgetImpl(name, this.manager());
+ }
+
+ @Override
+ public Observable