SubscriptionCostManagementExport

class SubscriptionCostManagementExport : KotlinCustomResource

Manages a Cost Management Export for a Subscription.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = azure.core.getSubscription({});
const exampleResourceGroup = new azure.core.ResourceGroup("example", {
name: "example-resources",
location: "West Europe",
});
const exampleAccount = new azure.storage.Account("example", {
name: "example",
resourceGroupName: exampleResourceGroup.name,
location: exampleResourceGroup.location,
accountTier: "Standard",
accountReplicationType: "LRS",
});
const exampleContainer = new azure.storage.Container("example", {
name: "examplecontainer",
storageAccountName: exampleAccount.name,
});
const exampleSubscriptionCostManagementExport = new azure.core.SubscriptionCostManagementExport("example", {
name: "example",
subscriptionId: example.then(example => example.id),
recurrenceType: "Monthly",
recurrencePeriodStartDate: "2020-08-18T00:00:00Z",
recurrencePeriodEndDate: "2020-09-18T00:00:00Z",
fileFormat: "Csv",
exportDataStorageLocation: {
containerId: exampleContainer.resourceManagerId,
rootFolderPath: "/root/updated",
},
exportDataOptions: {
type: "Usage",
timeFrame: "WeekToDate",
},
});
import pulumi
import pulumi_azure as azure
example = azure.core.get_subscription()
example_resource_group = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_account = azure.storage.Account("example",
name="example",
resource_group_name=example_resource_group.name,
location=example_resource_group.location,
account_tier="Standard",
account_replication_type="LRS")
example_container = azure.storage.Container("example",
name="examplecontainer",
storage_account_name=example_account.name)
example_subscription_cost_management_export = azure.core.SubscriptionCostManagementExport("example",
name="example",
subscription_id=example.id,
recurrence_type="Monthly",
recurrence_period_start_date="2020-08-18T00:00:00Z",
recurrence_period_end_date="2020-09-18T00:00:00Z",
file_format="Csv",
export_data_storage_location={
"container_id": example_container.resource_manager_id,
"root_folder_path": "/root/updated",
},
export_data_options={
"type": "Usage",
"time_frame": "WeekToDate",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
return await Deployment.RunAsync(() =>
{
var example = Azure.Core.GetSubscription.Invoke();
var exampleResourceGroup = new Azure.Core.ResourceGroup("example", new()
{
Name = "example-resources",
Location = "West Europe",
});
var exampleAccount = new Azure.Storage.Account("example", new()
{
Name = "example",
ResourceGroupName = exampleResourceGroup.Name,
Location = exampleResourceGroup.Location,
AccountTier = "Standard",
AccountReplicationType = "LRS",
});
var exampleContainer = new Azure.Storage.Container("example", new()
{
Name = "examplecontainer",
StorageAccountName = exampleAccount.Name,
});
var exampleSubscriptionCostManagementExport = new Azure.Core.SubscriptionCostManagementExport("example", new()
{
Name = "example",
SubscriptionId = example.Apply(getSubscriptionResult => getSubscriptionResult.Id),
RecurrenceType = "Monthly",
RecurrencePeriodStartDate = "2020-08-18T00:00:00Z",
RecurrencePeriodEndDate = "2020-09-18T00:00:00Z",
FileFormat = "Csv",
ExportDataStorageLocation = new Azure.Core.Inputs.SubscriptionCostManagementExportExportDataStorageLocationArgs
{
ContainerId = exampleContainer.ResourceManagerId,
RootFolderPath = "/root/updated",
},
ExportDataOptions = new Azure.Core.Inputs.SubscriptionCostManagementExportExportDataOptionsArgs
{
Type = "Usage",
TimeFrame = "WeekToDate",
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/storage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := core.LookupSubscription(ctx, &core.LookupSubscriptionArgs{}, nil)
if err != nil {
return err
}
exampleResourceGroup, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("example-resources"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
exampleAccount, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{
Name: pulumi.String("example"),
ResourceGroupName: exampleResourceGroup.Name,
Location: exampleResourceGroup.Location,
AccountTier: pulumi.String("Standard"),
AccountReplicationType: pulumi.String("LRS"),
})
if err != nil {
return err
}
exampleContainer, err := storage.NewContainer(ctx, "example", &storage.ContainerArgs{
Name: pulumi.String("examplecontainer"),
StorageAccountName: exampleAccount.Name,
})
if err != nil {
return err
}
_, err = core.NewSubscriptionCostManagementExport(ctx, "example", &core.SubscriptionCostManagementExportArgs{
Name: pulumi.String("example"),
SubscriptionId: pulumi.String(example.Id),
RecurrenceType: pulumi.String("Monthly"),
RecurrencePeriodStartDate: pulumi.String("2020-08-18T00:00:00Z"),
RecurrencePeriodEndDate: pulumi.String("2020-09-18T00:00:00Z"),
FileFormat: pulumi.String("Csv"),
ExportDataStorageLocation: &core.SubscriptionCostManagementExportExportDataStorageLocationArgs{
ContainerId: exampleContainer.ResourceManagerId,
RootFolderPath: pulumi.String("/root/updated"),
},
ExportDataOptions: &core.SubscriptionCostManagementExportExportDataOptionsArgs{
Type: pulumi.String("Usage"),
TimeFrame: pulumi.String("WeekToDate"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.CoreFunctions;
import com.pulumi.azure.core.inputs.GetSubscriptionArgs;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.storage.Account;
import com.pulumi.azure.storage.AccountArgs;
import com.pulumi.azure.storage.Container;
import com.pulumi.azure.storage.ContainerArgs;
import com.pulumi.azure.core.SubscriptionCostManagementExport;
import com.pulumi.azure.core.SubscriptionCostManagementExportArgs;
import com.pulumi.azure.core.inputs.SubscriptionCostManagementExportExportDataStorageLocationArgs;
import com.pulumi.azure.core.inputs.SubscriptionCostManagementExportExportDataOptionsArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var example = CoreFunctions.getSubscription();
var exampleResourceGroup = new ResourceGroup("exampleResourceGroup", ResourceGroupArgs.builder()
.name("example-resources")
.location("West Europe")
.build());
var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
.name("example")
.resourceGroupName(exampleResourceGroup.name())
.location(exampleResourceGroup.location())
.accountTier("Standard")
.accountReplicationType("LRS")
.build());
var exampleContainer = new Container("exampleContainer", ContainerArgs.builder()
.name("examplecontainer")
.storageAccountName(exampleAccount.name())
.build());
var exampleSubscriptionCostManagementExport = new SubscriptionCostManagementExport("exampleSubscriptionCostManagementExport", SubscriptionCostManagementExportArgs.builder()
.name("example")
.subscriptionId(example.applyValue(getSubscriptionResult -> getSubscriptionResult.id()))
.recurrenceType("Monthly")
.recurrencePeriodStartDate("2020-08-18T00:00:00Z")
.recurrencePeriodEndDate("2020-09-18T00:00:00Z")
.fileFormat("Csv")
.exportDataStorageLocation(SubscriptionCostManagementExportExportDataStorageLocationArgs.builder()
.containerId(exampleContainer.resourceManagerId())
.rootFolderPath("/root/updated")
.build())
.exportDataOptions(SubscriptionCostManagementExportExportDataOptionsArgs.builder()
.type("Usage")
.timeFrame("WeekToDate")
.build())
.build());
}
}
resources:
exampleResourceGroup:
type: azure:core:ResourceGroup
name: example
properties:
name: example-resources
location: West Europe
exampleAccount:
type: azure:storage:Account
name: example
properties:
name: example
resourceGroupName: ${exampleResourceGroup.name}
location: ${exampleResourceGroup.location}
accountTier: Standard
accountReplicationType: LRS
exampleContainer:
type: azure:storage:Container
name: example
properties:
name: examplecontainer
storageAccountName: ${exampleAccount.name}
exampleSubscriptionCostManagementExport:
type: azure:core:SubscriptionCostManagementExport
name: example
properties:
name: example
subscriptionId: ${example.id}
recurrenceType: Monthly
recurrencePeriodStartDate: 2020-08-18T00:00:00Z
recurrencePeriodEndDate: 2020-09-18T00:00:00Z
fileFormat: Csv
exportDataStorageLocation:
containerId: ${exampleContainer.resourceManagerId}
rootFolderPath: /root/updated
exportDataOptions:
type: Usage
timeFrame: WeekToDate
variables:
example:
fn::invoke:
function: azure:core:getSubscription
arguments: {}

Import

Subscription Cost Management Exports can be imported using the resource id, e.g.

$ pulumi import azure:core/subscriptionCostManagementExport:SubscriptionCostManagementExport example /subscriptions/12345678-1234-9876-4563-123456789012/providers/Microsoft.CostManagement/exports/export1

Properties

Link copied to clipboard
val active: Output<Boolean>?

Is the cost management export active? Default is true.

Link copied to clipboard

A export_data_options block as defined below.

Link copied to clipboard

A export_data_storage_location block as defined below.

Link copied to clipboard
val fileFormat: Output<String>?

Format for export. Valid values are Csv only. Default is Csv.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val name: Output<String>

Specifies the name of the Cost Management Export. Changing this forces a new resource to be created.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

The date the export will stop capturing information.

Link copied to clipboard

The date the export will start capturing information.

Link copied to clipboard
val recurrenceType: Output<String>

How often the requested information will be exported. Valid values include Annually, Daily, Monthly, Weekly.

Link copied to clipboard
val subscriptionId: Output<String>

The id of the subscription on which to create an export. Changing this forces a new resource to be created.

Link copied to clipboard
val urn: Output<String>