-
Notifications
You must be signed in to change notification settings - Fork 17
/
ParameterGroupProps.go
121 lines (118 loc) · 4.45 KB
/
ParameterGroupProps.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package awsrds
import (
"github.com/aws/aws-cdk-go/awscdk/v2"
)
// Properties for a parameter group.
//
// Example:
// // Set open cursors with parameter group
// parameterGroup := rds.NewParameterGroup(this, jsii.String("ParameterGroup"), &ParameterGroupProps{
// Engine: rds.DatabaseInstanceEngine_OracleSe2(&OracleSe2InstanceEngineProps{
// Version: rds.OracleEngineVersion_VER_19_0_0_0_2020_04_R1(),
// }),
// Parameters: map[string]*string{
// "open_cursors": jsii.String("2500"),
// },
// })
//
// optionGroup := rds.NewOptionGroup(this, jsii.String("OptionGroup"), &OptionGroupProps{
// Engine: rds.DatabaseInstanceEngine_*OracleSe2(&OracleSe2InstanceEngineProps{
// Version: rds.OracleEngineVersion_VER_19_0_0_0_2020_04_R1(),
// }),
// Configurations: []optionConfiguration{
// &optionConfiguration{
// Name: jsii.String("LOCATOR"),
// },
// &optionConfiguration{
// Name: jsii.String("OEM"),
// Port: jsii.Number(1158),
// Vpc: *Vpc,
// },
// },
// })
//
// // Allow connections to OEM
// optionGroup.OptionConnections.oEM.Connections.AllowDefaultPortFromAnyIpv4()
//
// // Database instance with production values
// instance := rds.NewDatabaseInstance(this, jsii.String("Instance"), &DatabaseInstanceProps{
// Engine: rds.DatabaseInstanceEngine_*OracleSe2(&OracleSe2InstanceEngineProps{
// Version: rds.OracleEngineVersion_VER_19_0_0_0_2020_04_R1(),
// }),
// LicenseModel: rds.LicenseModel_BRING_YOUR_OWN_LICENSE,
// InstanceType: ec2.InstanceType_Of(ec2.InstanceClass_BURSTABLE3, ec2.InstanceSize_MEDIUM),
// MultiAz: jsii.Boolean(true),
// StorageType: rds.StorageType_IO1,
// Credentials: rds.Credentials_FromUsername(jsii.String("syscdk")),
// Vpc: Vpc,
// DatabaseName: jsii.String("ORCL"),
// StorageEncrypted: jsii.Boolean(true),
// BackupRetention: cdk.Duration_Days(jsii.Number(7)),
// MonitoringInterval: cdk.Duration_Seconds(jsii.Number(60)),
// EnablePerformanceInsights: jsii.Boolean(true),
// CloudwatchLogsExports: []*string{
// jsii.String("trace"),
// jsii.String("audit"),
// jsii.String("alert"),
// jsii.String("listener"),
// },
// CloudwatchLogsRetention: logs.RetentionDays_ONE_MONTH,
// AutoMinorVersionUpgrade: jsii.Boolean(true),
// // required to be true if LOCATOR is used in the option group
// OptionGroup: OptionGroup,
// ParameterGroup: ParameterGroup,
// RemovalPolicy: awscdk.RemovalPolicy_DESTROY,
// })
//
// // Allow connections on default port from any IPV4
// instance.connections.AllowDefaultPortFromAnyIpv4()
//
// // Rotate the master user password every 30 days
// instance.addRotationSingleUser()
//
// // Add alarm for high CPU
// // Add alarm for high CPU
// cloudwatch.NewAlarm(this, jsii.String("HighCPU"), &AlarmProps{
// Metric: instance.metricCPUUtilization(),
// Threshold: jsii.Number(90),
// EvaluationPeriods: jsii.Number(1),
// })
//
// // Trigger Lambda function on instance availability events
// fn := lambda.NewFunction(this, jsii.String("Function"), &FunctionProps{
// Code: lambda.Code_FromInline(jsii.String("exports.handler = (event) => console.log(event);")),
// Handler: jsii.String("index.handler"),
// Runtime: lambda.Runtime_NODEJS_18_X(),
// })
//
// availabilityRule := instance.OnEvent(jsii.String("Availability"), &OnEventOptions{
// Target: targets.NewLambdaFunction(fn),
// })
// availabilityRule.AddEventPattern(&EventPattern{
// Detail: map[string]interface{}{
// "EventCategories": []interface{}{
// jsii.String("availability"),
// },
// },
// })
//
type ParameterGroupProps struct {
// The database engine for this parameter group.
Engine IEngine `field:"required" json:"engine" yaml:"engine"`
// Description for this parameter group.
// Default: a CDK generated description.
//
Description *string `field:"optional" json:"description" yaml:"description"`
// The name of this parameter group.
// Default: - CloudFormation-generated name.
//
Name *string `field:"optional" json:"name" yaml:"name"`
// The parameters in this parameter group.
// Default: - None.
//
Parameters *map[string]*string `field:"optional" json:"parameters" yaml:"parameters"`
// The CloudFormation policy to apply when the instance is removed from the stack or replaced during an update.
// Default: - RemovalPolicy.DESTROY
//
RemovalPolicy awscdk.RemovalPolicy `field:"optional" json:"removalPolicy" yaml:"removalPolicy"`
}