Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.azurenative.costmanagement.ExportArgs Maven / Gradle / Ivy
Go to download
A native Pulumi package for creating and managing Azure resources.
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.azurenative.costmanagement;
import com.pulumi.azurenative.costmanagement.enums.FormatType;
import com.pulumi.azurenative.costmanagement.inputs.ExportDefinitionArgs;
import com.pulumi.azurenative.costmanagement.inputs.ExportDeliveryInfoArgs;
import com.pulumi.azurenative.costmanagement.inputs.ExportScheduleArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class ExportArgs extends com.pulumi.resources.ResourceArgs {
public static final ExportArgs Empty = new ExportArgs();
/**
* Has the definition for the export.
*
*/
@Import(name="definition", required=true)
private Output definition;
/**
* @return Has the definition for the export.
*
*/
public Output definition() {
return this.definition;
}
/**
* Has delivery information for the export.
*
*/
@Import(name="deliveryInfo", required=true)
private Output deliveryInfo;
/**
* @return Has delivery information for the export.
*
*/
public Output deliveryInfo() {
return this.deliveryInfo;
}
/**
* 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.
*
*/
@Import(name="eTag")
private @Nullable Output eTag;
/**
* @return 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.
*
*/
public Optional> eTag() {
return Optional.ofNullable(this.eTag);
}
/**
* Export Name.
*
*/
@Import(name="exportName")
private @Nullable Output exportName;
/**
* @return Export Name.
*
*/
public Optional> exportName() {
return Optional.ofNullable(this.exportName);
}
/**
* The format of the export being delivered. Currently only 'Csv' is supported.
*
*/
@Import(name="format")
private @Nullable Output> format;
/**
* @return The format of the export being delivered. Currently only 'Csv' is supported.
*
*/
public Optional>> format() {
return Optional.ofNullable(this.format);
}
/**
* If set to true, exported data will be partitioned by size and placed in a blob directory together with a manifest file. Note: this option is currently available only for Microsoft Customer Agreement commerce scopes.
*
*/
@Import(name="partitionData")
private @Nullable Output partitionData;
/**
* @return If set to true, exported data will be partitioned by size and placed in a blob directory together with a manifest file. Note: this option is currently available only for Microsoft Customer Agreement commerce scopes.
*
*/
public Optional> partitionData() {
return Optional.ofNullable(this.partitionData);
}
/**
* Has schedule information for the export.
*
*/
@Import(name="schedule")
private @Nullable Output schedule;
/**
* @return Has schedule information for the export.
*
*/
public Optional> schedule() {
return Optional.ofNullable(this.schedule);
}
/**
* The scope associated with export operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope, '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for billingProfile scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' for invoiceSection scope, and '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' specific for partners.
*
*/
@Import(name="scope", required=true)
private Output scope;
/**
* @return The scope associated with export operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope, '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for billingProfile scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' for invoiceSection scope, and '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' specific for partners.
*
*/
public Output scope() {
return this.scope;
}
private ExportArgs() {}
private ExportArgs(ExportArgs $) {
this.definition = $.definition;
this.deliveryInfo = $.deliveryInfo;
this.eTag = $.eTag;
this.exportName = $.exportName;
this.format = $.format;
this.partitionData = $.partitionData;
this.schedule = $.schedule;
this.scope = $.scope;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(ExportArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private ExportArgs $;
public Builder() {
$ = new ExportArgs();
}
public Builder(ExportArgs defaults) {
$ = new ExportArgs(Objects.requireNonNull(defaults));
}
/**
* @param definition Has the definition for the export.
*
* @return builder
*
*/
public Builder definition(Output definition) {
$.definition = definition;
return this;
}
/**
* @param definition Has the definition for the export.
*
* @return builder
*
*/
public Builder definition(ExportDefinitionArgs definition) {
return definition(Output.of(definition));
}
/**
* @param deliveryInfo Has delivery information for the export.
*
* @return builder
*
*/
public Builder deliveryInfo(Output deliveryInfo) {
$.deliveryInfo = deliveryInfo;
return this;
}
/**
* @param deliveryInfo Has delivery information for the export.
*
* @return builder
*
*/
public Builder deliveryInfo(ExportDeliveryInfoArgs deliveryInfo) {
return deliveryInfo(Output.of(deliveryInfo));
}
/**
* @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 builder
*
*/
public Builder eTag(@Nullable Output eTag) {
$.eTag = eTag;
return this;
}
/**
* @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 builder
*
*/
public Builder eTag(String eTag) {
return eTag(Output.of(eTag));
}
/**
* @param exportName Export Name.
*
* @return builder
*
*/
public Builder exportName(@Nullable Output exportName) {
$.exportName = exportName;
return this;
}
/**
* @param exportName Export Name.
*
* @return builder
*
*/
public Builder exportName(String exportName) {
return exportName(Output.of(exportName));
}
/**
* @param format The format of the export being delivered. Currently only 'Csv' is supported.
*
* @return builder
*
*/
public Builder format(@Nullable Output> format) {
$.format = format;
return this;
}
/**
* @param format The format of the export being delivered. Currently only 'Csv' is supported.
*
* @return builder
*
*/
public Builder format(Either format) {
return format(Output.of(format));
}
/**
* @param format The format of the export being delivered. Currently only 'Csv' is supported.
*
* @return builder
*
*/
public Builder format(String format) {
return format(Either.ofLeft(format));
}
/**
* @param format The format of the export being delivered. Currently only 'Csv' is supported.
*
* @return builder
*
*/
public Builder format(FormatType format) {
return format(Either.ofRight(format));
}
/**
* @param partitionData If set to true, exported data will be partitioned by size and placed in a blob directory together with a manifest file. Note: this option is currently available only for Microsoft Customer Agreement commerce scopes.
*
* @return builder
*
*/
public Builder partitionData(@Nullable Output partitionData) {
$.partitionData = partitionData;
return this;
}
/**
* @param partitionData If set to true, exported data will be partitioned by size and placed in a blob directory together with a manifest file. Note: this option is currently available only for Microsoft Customer Agreement commerce scopes.
*
* @return builder
*
*/
public Builder partitionData(Boolean partitionData) {
return partitionData(Output.of(partitionData));
}
/**
* @param schedule Has schedule information for the export.
*
* @return builder
*
*/
public Builder schedule(@Nullable Output schedule) {
$.schedule = schedule;
return this;
}
/**
* @param schedule Has schedule information for the export.
*
* @return builder
*
*/
public Builder schedule(ExportScheduleArgs schedule) {
return schedule(Output.of(schedule));
}
/**
* @param scope The scope associated with export operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope, '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for billingProfile scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' for invoiceSection scope, and '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' specific for partners.
*
* @return builder
*
*/
public Builder scope(Output scope) {
$.scope = scope;
return this;
}
/**
* @param scope The scope associated with export operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope, '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for billingProfile scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' for invoiceSection scope, and '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' specific for partners.
*
* @return builder
*
*/
public Builder scope(String scope) {
return scope(Output.of(scope));
}
public ExportArgs build() {
if ($.definition == null) {
throw new MissingRequiredPropertyException("ExportArgs", "definition");
}
if ($.deliveryInfo == null) {
throw new MissingRequiredPropertyException("ExportArgs", "deliveryInfo");
}
if ($.scope == null) {
throw new MissingRequiredPropertyException("ExportArgs", "scope");
}
return $;
}
}
}