import * as core from "@terrascript/core"; export interface ReportSettingArgs extends core.SchemaArgs { frameworkArns?: core.Array | core.ArrayOut; numberOfFrameworks?: number | core.NumberOut; reportTemplate: string | core.StringOut; } export class ReportSetting extends core.Schema { @core.attr(String, { kind: "array" }) public frameworkArns?: core.Array | core.ArrayOut; @core.attr(Number) public numberOfFrameworks?: number | core.NumberOut; @core.attr(String) public reportTemplate!: string | core.StringOut; } export interface ReportDeliveryChannelArgs extends core.SchemaArgs { formats?: core.Array | core.ArrayOut; s3BucketName: string | core.StringOut; s3KeyPrefix?: string | core.StringOut; } export class ReportDeliveryChannel extends core.Schema { @core.attr(String, { kind: "array" }) public formats?: core.Array | core.ArrayOut; @core.attr(String) public s3BucketName!: string | core.StringOut; @core.attr(String) public s3KeyPrefix?: string | core.StringOut; } export interface ReportPlanArgs extends core.ResourceArgs { /** * (Optional) The description of the report plan with a maximum of 1,024 characters */ description?: string | core.StringOut; /** * (Required) The unique name of the report plan. The name must be between 1 and 256 characters, starti * ng with a letter, and consisting of letters, numbers, and underscores. */ name: string | core.StringOut; /** * (Required) An object that contains information about where and how to deliver your reports, specific * ally your Amazon S3 bucket name, S3 key prefix, and the formats of your reports. Detailed below. */ reportDeliveryChannel: ReportDeliveryChannel; /** * (Required) An object that identifies the report template for the report. Reports are built using a r * eport template. Detailed below. */ reportSetting: ReportSetting; /** * (Optional) Metadata that you can assign to help organize the report plans you create. If configured * with a provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashico * rp/aws/latest/docs#default_tags-configuration-block) present, tags with matching keys will overwrite * those defined at the provider-level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; } export class ReportPlan extends core.Resource { /** * The ARN of the backup report plan. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * The date and time that a report plan is created, in Unix format and Coordinated Universal Time (UTC) * . */ @core.attr(String, { computed: true }) public creationTime!: string | core.StringOut; /** * The deployment status of a report plan. The statuses are: `CREATE_IN_PROGRESS` | `UPDATE_IN_PROGRESS * | `DELETE_IN_PROGRESS` | `COMPLETED`. */ @core.attr(String, { computed: true }) public deploymentStatus!: string | core.StringOut; /** * (Optional) The description of the report plan with a maximum of 1,024 characters */ @core.attr(String) public description?: string | core.StringOut; /** * The id of the backup report plan. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) The unique name of the report plan. The name must be between 1 and 256 characters, starti * ng with a letter, and consisting of letters, numbers, and underscores. */ @core.attr(String) public name!: string | core.StringOut; /** * (Required) An object that contains information about where and how to deliver your reports, specific * ally your Amazon S3 bucket name, S3 key prefix, and the formats of your reports. Detailed below. */ @core.attr(ReportDeliveryChannel) public reportDeliveryChannel!: ReportDeliveryChannel; /** * (Required) An object that identifies the report template for the report. Reports are built using a r * eport template. Detailed below. */ @core.attr(ReportSetting) public reportSetting!: ReportSetting; /** * (Optional) Metadata that you can assign to help organize the report plans you create. If configured * with a provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashico * rp/aws/latest/docs#default_tags-configuration-block) present, tags with matching keys will overwrite * those defined at the provider-level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; constructor(name: string, args?: ReportPlanArgs) { super(name, "aws_backup_report_plan", args); } public override getNamespace(): string { return "aws_backup"; } }