package awslogs import ( "github.com/aws/aws-cdk-go/awscdk/v2" "github.com/aws/aws-cdk-go/awscdk/v2/awskms" ) // Properties for a LogGroup. // // Example: // import kinesisfirehose "github.com/aws/aws-cdk-go/awscdkkinesisfirehosealpha" // import destinations "github.com/aws/aws-cdk-go/awscdkkinesisfirehosedestinationsalpha" // // // logGroupDestination := logs.NewLogGroup(this, jsii.String("LogGroupLambdaAudit"), &LogGroupProps{ // LogGroupName: jsii.String("auditDestinationForCDK"), // }) // // bucket := s3.NewBucket(this, jsii.String("audit-bucket")) // s3Destination := destinations.NewS3Bucket(bucket) // // deliveryStream := kinesisfirehose.NewDeliveryStream(this, jsii.String("Delivery Stream"), &DeliveryStreamProps{ // Destinations: []iDestination{ // s3Destination, // }, // }) // // dataProtectionPolicy := logs.NewDataProtectionPolicy(&DataProtectionPolicyProps{ // Name: jsii.String("data protection policy"), // Description: jsii.String("policy description"), // Identifiers: []dataIdentifier{ // logs.*dataIdentifier_DRIVERSLICENSE_US(), // logs.NewDataIdentifier(jsii.String("EmailAddress")), // }, // LogGroupAuditDestination: logGroupDestination, // S3BucketAuditDestination: bucket, // DeliveryStreamNameAuditDestination: deliveryStream.DeliveryStreamName, // }) // // logs.NewLogGroup(this, jsii.String("LogGroupLambda"), &LogGroupProps{ // LogGroupName: jsii.String("cdkIntegLogGroup"), // DataProtectionPolicy: dataProtectionPolicy, // }) // type LogGroupProps struct { // Data Protection Policy for this log group. DataProtectionPolicy DataProtectionPolicy `field:"optional" json:"dataProtectionPolicy" yaml:"dataProtectionPolicy"` // The KMS customer managed key to encrypt the log group with. EncryptionKey awskms.IKey `field:"optional" json:"encryptionKey" yaml:"encryptionKey"` // Name of the log group. LogGroupName *string `field:"optional" json:"logGroupName" yaml:"logGroupName"` // Determine the removal policy of this log group. // // Normally you want to retain the log group so you can diagnose issues // from logs even after a deployment that no longer includes the log group. // In that case, use the normal date-based retention policy to age out your // logs. RemovalPolicy awscdk.RemovalPolicy `field:"optional" json:"removalPolicy" yaml:"removalPolicy"` // How long, in days, the log contents will be retained. // // To retain all logs, set this value to RetentionDays.INFINITE. Retention RetentionDays `field:"optional" json:"retention" yaml:"retention"` }