import * as core from "@terrascript/core"; export interface AuditLogsArgs extends core.SchemaArgs { enable: boolean | core.BooleanOut; } export class AuditLogs extends core.Schema { @core.attr(Boolean) public enable!: boolean | core.BooleanOut; } export interface KubernetesArgs extends core.SchemaArgs { auditLogs: AuditLogs; } export class Kubernetes extends core.Schema { @core.attr(AuditLogs) public auditLogs!: AuditLogs; } export interface EbsVolumesArgs extends core.SchemaArgs { enable: boolean | core.BooleanOut; } export class EbsVolumes extends core.Schema { @core.attr(Boolean) public enable!: boolean | core.BooleanOut; } export interface ScanEc2InstanceWithFindingsArgs extends core.SchemaArgs { ebsVolumes: EbsVolumes; } export class ScanEc2InstanceWithFindings extends core.Schema { @core.attr(EbsVolumes) public ebsVolumes!: EbsVolumes; } export interface MalwareProtectionArgs extends core.SchemaArgs { scanEc2InstanceWithFindings: ScanEc2InstanceWithFindings; } export class MalwareProtection extends core.Schema { @core.attr(ScanEc2InstanceWithFindings) public scanEc2InstanceWithFindings!: ScanEc2InstanceWithFindings; } export interface S3LogsArgs extends core.SchemaArgs { enable: boolean | core.BooleanOut; } export class S3Logs extends core.Schema { @core.attr(Boolean) public enable!: boolean | core.BooleanOut; } export interface DatasourcesArgs extends core.SchemaArgs { kubernetes?: Kubernetes; malwareProtection?: MalwareProtection; s3Logs?: S3Logs; } export class Datasources extends core.Schema { @core.attr(Kubernetes, { computed: true }) public kubernetes?: Kubernetes; @core.attr(MalwareProtection, { computed: true }) public malwareProtection?: MalwareProtection; @core.attr(S3Logs, { computed: true }) public s3Logs?: S3Logs; } export interface DetectorArgs extends core.ResourceArgs { /** * (Optional) Describes which data sources will be enabled for the detector. See [Data Sources](#data-s * ources) below for more details. */ datasources?: Datasources; /** * (Optional) Enable monitoring and feedback reporting. Setting to `false` is equivalent to "suspending * " GuardDuty. Defaults to `true`. */ enable?: boolean | core.BooleanOut; /** * (Optional) Specifies the frequency of notifications sent for subsequent finding occurrences. If the * detector is a GuardDuty member account, the value is determined by the GuardDuty primary account and * cannot be modified, otherwise defaults to `SIX_HOURS`. For standalone and GuardDuty primary account * s, it must be configured in Terraform to enable drift detection. Valid values for standalone and pri * mary accounts: `FIFTEEN_MINUTES`, `ONE_HOUR`, `SIX_HOURS`. See [AWS Documentation](https://docs.aws. * amazon.com/guardduty/latest/ug/guardduty_findings_cloudwatch.html#guardduty_findings_cloudwatch_noti * fication_frequency) for more information. */ findingPublishingFrequency?: string | core.StringOut; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-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 Detector extends core.Resource { /** * The AWS account ID of the GuardDuty detector */ @core.attr(String, { computed: true }) public accountId!: string | core.StringOut; /** * Amazon Resource Name (ARN) of the GuardDuty detector */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) Describes which data sources will be enabled for the detector. See [Data Sources](#data-s * ources) below for more details. */ @core.attr(Datasources, { computed: true }) public datasources?: Datasources; /** * (Optional) Enable monitoring and feedback reporting. Setting to `false` is equivalent to "suspending * " GuardDuty. Defaults to `true`. */ @core.attr(Boolean) public enable?: boolean | core.BooleanOut; /** * (Optional) Specifies the frequency of notifications sent for subsequent finding occurrences. If the * detector is a GuardDuty member account, the value is determined by the GuardDuty primary account and * cannot be modified, otherwise defaults to `SIX_HOURS`. For standalone and GuardDuty primary account * s, it must be configured in Terraform to enable drift detection. Valid values for standalone and pri * mary accounts: `FIFTEEN_MINUTES`, `ONE_HOUR`, `SIX_HOURS`. See [AWS Documentation](https://docs.aws. * amazon.com/guardduty/latest/ug/guardduty_findings_cloudwatch.html#guardduty_findings_cloudwatch_noti * fication_frequency) for more information. */ @core.attr(String, { computed: true }) public findingPublishingFrequency?: string | core.StringOut; /** * The ID of the GuardDuty detector */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-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?: DetectorArgs) { super(name, "aws_guardduty_detector", args); } public override getNamespace(): string { return "aws_guardduty"; } }