import * as core from "@terrascript/core"; export interface TagsArgs extends core.SchemaArgs { key: string | core.StringOut; matchOptions: core.Array | core.ArrayOut; values: core.Array | core.ArrayOut; } export class Tags extends core.Schema { @core.attr(String, { computed: true }) public key!: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public matchOptions!: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public values!: core.Array | core.ArrayOut; } export interface CostCategoryBlkArgs extends core.SchemaArgs { key: string | core.StringOut; matchOptions: core.Array | core.ArrayOut; values: core.Array | core.ArrayOut; } export class CostCategoryBlk extends core.Schema { @core.attr(String, { computed: true }) public key!: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public matchOptions!: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public values!: core.Array | core.ArrayOut; } export interface DimensionArgs extends core.SchemaArgs { key: string | core.StringOut; matchOptions: core.Array | core.ArrayOut; values: core.Array | core.ArrayOut; } export class Dimension extends core.Schema { @core.attr(String, { computed: true }) public key!: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public matchOptions!: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public values!: core.Array | core.ArrayOut; } export interface AndArgs extends core.SchemaArgs { costCategory: core.Array | core.ArrayOut; dimension: core.Array | core.ArrayOut; tags: core.Array | core.ArrayOut; } export class And extends core.Schema { @core.attr(CostCategoryBlk, { computed: true, kind: "array" }) public costCategory!: | core.Array | core.ArrayOut; @core.attr(Dimension, { computed: true, kind: "array" }) public dimension!: core.Array | core.ArrayOut; @core.attr(Tags, { computed: true, kind: "array" }) public tags!: core.Array | core.ArrayOut; } export interface NotArgs extends core.SchemaArgs { costCategory: core.Array | core.ArrayOut; dimension: core.Array | core.ArrayOut; tags: core.Array | core.ArrayOut; } export class Not extends core.Schema { @core.attr(CostCategoryBlk, { computed: true, kind: "array" }) public costCategory!: | core.Array | core.ArrayOut; @core.attr(Dimension, { computed: true, kind: "array" }) public dimension!: core.Array | core.ArrayOut; @core.attr(Tags, { computed: true, kind: "array" }) public tags!: core.Array | core.ArrayOut; } export interface OrArgs extends core.SchemaArgs { costCategory: core.Array | core.ArrayOut; dimension: core.Array | core.ArrayOut; tags: core.Array | core.ArrayOut; } export class Or extends core.Schema { @core.attr(CostCategoryBlk, { computed: true, kind: "array" }) public costCategory!: | core.Array | core.ArrayOut; @core.attr(Dimension, { computed: true, kind: "array" }) public dimension!: core.Array | core.ArrayOut; @core.attr(Tags, { computed: true, kind: "array" }) public tags!: core.Array | core.ArrayOut; } export interface RuleRuleArgs extends core.SchemaArgs { and: core.Array | core.ArrayOut; costCategory: core.Array | core.ArrayOut; dimension: core.Array | core.ArrayOut; not: core.Array | core.ArrayOut; or: core.Array | core.ArrayOut; tags: core.Array | core.ArrayOut; } export class RuleRule extends core.Schema { @core.attr(And, { computed: true, kind: "array" }) public and!: core.Array | core.ArrayOut; @core.attr(CostCategoryBlk, { computed: true, kind: "array" }) public costCategory!: | core.Array | core.ArrayOut; @core.attr(Dimension, { computed: true, kind: "array" }) public dimension!: core.Array | core.ArrayOut; @core.attr(Not, { computed: true, kind: "array" }) public not!: core.Array | core.ArrayOut; @core.attr(Or, { computed: true, kind: "array" }) public or!: core.Array | core.ArrayOut; @core.attr(Tags, { computed: true, kind: "array" }) public tags!: core.Array | core.ArrayOut; } export interface InheritedValueArgs extends core.SchemaArgs { dimensionKey: string | core.StringOut; dimensionName: string | core.StringOut; } export class InheritedValue extends core.Schema { @core.attr(String, { computed: true }) public dimensionKey!: string | core.StringOut; @core.attr(String, { computed: true }) public dimensionName!: string | core.StringOut; } export interface RuleArgs extends core.SchemaArgs { inheritedValue: core.Array | core.ArrayOut; rule: core.Array | core.ArrayOut; type: string | core.StringOut; value: string | core.StringOut; } export class Rule extends core.Schema { @core.attr(InheritedValue, { computed: true, kind: "array" }) public inheritedValue!: | core.Array | core.ArrayOut; @core.attr(RuleRule, { computed: true, kind: "array" }) public rule!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public type!: string | core.StringOut; @core.attr(String, { computed: true }) public value!: string | core.StringOut; } export interface ParameterArgs extends core.SchemaArgs { type: string | core.StringOut; values: core.Array | core.ArrayOut; } export class Parameter extends core.Schema { @core.attr(String, { computed: true }) public type!: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public values!: core.Array | core.ArrayOut; } export interface SplitChargeRuleArgs extends core.SchemaArgs { method: string | core.StringOut; parameter: core.Array | core.ArrayOut; source: string | core.StringOut; targets: core.Array | core.ArrayOut; } export class SplitChargeRule extends core.Schema { @core.attr(String, { computed: true }) public method!: string | core.StringOut; @core.attr(Parameter, { computed: true, kind: "array" }) public parameter!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public source!: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public targets!: core.Array | core.ArrayOut; } export interface DsCostCategoryArgs { /** * (Required) Unique name for the Cost Category. */ costCategoryArn: string | core.StringOut; /** * Resource tags. */ tags?: core.Map | core.MapOut; } export class DsCostCategory extends core.Data { /** * (Required) Unique name for the Cost Category. */ @core.attr(String) public costCategoryArn!: string | core.StringOut; /** * Effective end data of your Cost Category. */ @core.attr(String, { computed: true }) public effectiveEnd!: string | core.StringOut; /** * Effective state data of your Cost Category. */ @core.attr(String, { computed: true }) public effectiveStart!: string | core.StringOut; /** * Unique ID of the cost category. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; /** * Configuration block for the Cost Category rules used to categorize costs. See below. */ @core.attr(Rule, { computed: true, kind: "array" }) public rule!: core.Array | core.ArrayOut; /** * Rule schema version in this particular Cost Category. */ @core.attr(String, { computed: true }) public ruleVersion!: string | core.StringOut; /** * Configuration block for the split charge rules used to allocate your charges between your Cost Categ * ory values. See below. */ @core.attr(SplitChargeRule, { computed: true, kind: "array" }) public splitChargeRule!: | core.Array | core.ArrayOut; /** * Resource tags. */ @core.attr(String, { computed: true, kind: "map" }) public tags?: core.Map | core.MapOut; constructor(name: string, args?: DsCostCategoryArgs) { super(name, "aws_ce_cost_category", args); } public override getNamespace(): string { return "aws_ce"; } }