Show / Hide Table of Contents

Class OptionGroup

An option group.

Inheritance
object
Resource
OptionGroup
Implements
IOptionGroup
IResource
IConstruct
IDependable
IEnvironmentAware
Inherited Members
Resource.IsOwnedResource(IConstruct)
Resource.IsResource(IConstruct)
Resource.ApplyRemovalPolicy(RemovalPolicy)
Resource.GeneratePhysicalName()
Resource.GetResourceArnAttribute(string, IArnComponents)
Resource.GetResourceNameAttribute(string)
Resource.Env
Resource.PhysicalName
Resource.Stack
Namespace: Amazon.CDK.AWS.RDS
Assembly: Amazon.CDK.Lib.dll
Syntax (csharp)
public class OptionGroup : Resource, IOptionGroup, IResource, IConstruct, IDependable, IEnvironmentAware
Syntax (vb)
Public Class OptionGroup Inherits Resource Implements IOptionGroup, IResource, IConstruct, IDependable, IEnvironmentAware
Remarks

ExampleMetadata: lit=aws-rds/test/integ.instance.lit.ts infused

Examples
// Set open cursors with parameter group
            var parameterGroup = new ParameterGroup(this, "ParameterGroup", new ParameterGroupProps {
                Engine = DatabaseInstanceEngine.OracleSe2(new OracleSe2InstanceEngineProps { Version = OracleEngineVersion.VER_19_0_0_0_2020_04_R1 }),
                Parameters = new Dictionary<string, string> {
                    { "open_cursors", "2500" }
                }
            });

            var optionGroup = new OptionGroup(this, "OptionGroup", new OptionGroupProps {
                Engine = DatabaseInstanceEngine.OracleSe2(new OracleSe2InstanceEngineProps { Version = OracleEngineVersion.VER_19_0_0_0_2020_04_R1 }),
                Configurations = new [] { new OptionConfiguration {
                    Name = "LOCATOR"
                }, new OptionConfiguration {
                    Name = "OEM",
                    Port = 1158,
                    Vpc = vpc
                } }
            });

            // Allow connections to OEM
            optionGroup.OptionConnections.OEM.Connections.AllowDefaultPortFromAnyIpv4();

            // Database instance with production values
            var instance = new DatabaseInstance(this, "Instance", new DatabaseInstanceProps {
                Engine = DatabaseInstanceEngine.OracleSe2(new OracleSe2InstanceEngineProps { Version = OracleEngineVersion.VER_19_0_0_0_2020_04_R1 }),
                LicenseModel = LicenseModel.BRING_YOUR_OWN_LICENSE,
                InstanceType = InstanceType.Of(InstanceClass.BURSTABLE3, InstanceSize.MEDIUM),
                MultiAz = true,
                StorageType = StorageType.IO1,
                Credentials = Credentials.FromUsername("syscdk"),
                Vpc = vpc,
                DatabaseName = "ORCL",
                StorageEncrypted = true,
                BackupRetention = Duration.Days(7),
                MonitoringInterval = Duration.Seconds(60),
                EnablePerformanceInsights = true,
                CloudwatchLogsExports = new [] { "trace", "audit", "alert", "listener" },
                CloudwatchLogsRetention = RetentionDays.ONE_MONTH,
                AutoMinorVersionUpgrade = true,  // required to be true if LOCATOR is used in the option group
                OptionGroup = optionGroup,
                ParameterGroup = parameterGroup,
                RemovalPolicy = 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
            new Alarm(this, "HighCPU", new AlarmProps {
                Metric = instance.MetricCPUUtilization(),
                Threshold = 90,
                EvaluationPeriods = 1
            });

            // Trigger Lambda function on instance availability events
            var fn = new Function(this, "Function", new FunctionProps {
                Code = Code.FromInline("exports.handler = (event) => console.log(event);"),
                Handler = "index.handler",
                Runtime = Runtime.NODEJS_20_X
            });

            var availabilityRule = instance.OnEvent("Availability", new OnEventOptions { Target = new LambdaFunction(fn) });
            availabilityRule.AddEventPattern(new EventPattern {
                Detail = new Dictionary<string, object> {
                    { "EventCategories", new [] { "availability" } }
                }
            });

Synopsis

Constructors

OptionGroup(Construct, string, IOptionGroupProps)

An option group.

Properties

OptionConnections

The connections object for the options.

OptionGroupName

The name of the option group.

PROPERTY_INJECTION_ID

Uniquely identifies this class.

Methods

AddConfiguration(IOptionConfiguration)

Adds a configuration to this OptionGroup.

FromOptionGroupName(Construct, string, string)

Import an existing option group.

Constructors

OptionGroup(Construct, string, IOptionGroupProps)

An option group.

public OptionGroup(Construct scope, string id, IOptionGroupProps props)
Parameters
scope Construct
id string
props IOptionGroupProps
Remarks

ExampleMetadata: lit=aws-rds/test/integ.instance.lit.ts infused

Examples
// Set open cursors with parameter group
            var parameterGroup = new ParameterGroup(this, "ParameterGroup", new ParameterGroupProps {
                Engine = DatabaseInstanceEngine.OracleSe2(new OracleSe2InstanceEngineProps { Version = OracleEngineVersion.VER_19_0_0_0_2020_04_R1 }),
                Parameters = new Dictionary<string, string> {
                    { "open_cursors", "2500" }
                }
            });

            var optionGroup = new OptionGroup(this, "OptionGroup", new OptionGroupProps {
                Engine = DatabaseInstanceEngine.OracleSe2(new OracleSe2InstanceEngineProps { Version = OracleEngineVersion.VER_19_0_0_0_2020_04_R1 }),
                Configurations = new [] { new OptionConfiguration {
                    Name = "LOCATOR"
                }, new OptionConfiguration {
                    Name = "OEM",
                    Port = 1158,
                    Vpc = vpc
                } }
            });

            // Allow connections to OEM
            optionGroup.OptionConnections.OEM.Connections.AllowDefaultPortFromAnyIpv4();

            // Database instance with production values
            var instance = new DatabaseInstance(this, "Instance", new DatabaseInstanceProps {
                Engine = DatabaseInstanceEngine.OracleSe2(new OracleSe2InstanceEngineProps { Version = OracleEngineVersion.VER_19_0_0_0_2020_04_R1 }),
                LicenseModel = LicenseModel.BRING_YOUR_OWN_LICENSE,
                InstanceType = InstanceType.Of(InstanceClass.BURSTABLE3, InstanceSize.MEDIUM),
                MultiAz = true,
                StorageType = StorageType.IO1,
                Credentials = Credentials.FromUsername("syscdk"),
                Vpc = vpc,
                DatabaseName = "ORCL",
                StorageEncrypted = true,
                BackupRetention = Duration.Days(7),
                MonitoringInterval = Duration.Seconds(60),
                EnablePerformanceInsights = true,
                CloudwatchLogsExports = new [] { "trace", "audit", "alert", "listener" },
                CloudwatchLogsRetention = RetentionDays.ONE_MONTH,
                AutoMinorVersionUpgrade = true,  // required to be true if LOCATOR is used in the option group
                OptionGroup = optionGroup,
                ParameterGroup = parameterGroup,
                RemovalPolicy = 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
            new Alarm(this, "HighCPU", new AlarmProps {
                Metric = instance.MetricCPUUtilization(),
                Threshold = 90,
                EvaluationPeriods = 1
            });

            // Trigger Lambda function on instance availability events
            var fn = new Function(this, "Function", new FunctionProps {
                Code = Code.FromInline("exports.handler = (event) => console.log(event);"),
                Handler = "index.handler",
                Runtime = Runtime.NODEJS_20_X
            });

            var availabilityRule = instance.OnEvent("Availability", new OnEventOptions { Target = new LambdaFunction(fn) });
            availabilityRule.AddEventPattern(new EventPattern {
                Detail = new Dictionary<string, object> {
                    { "EventCategories", new [] { "availability" } }
                }
            });

Properties

OptionConnections

The connections object for the options.

public virtual IDictionary<string, Connections_> OptionConnections { get; }
Property Value

IDictionary<string, Connections_>

Remarks

ExampleMetadata: lit=aws-rds/test/integ.instance.lit.ts infused

OptionGroupName

The name of the option group.

public virtual string OptionGroupName { get; }
Property Value

string

Remarks

ExampleMetadata: lit=aws-rds/test/integ.instance.lit.ts infused

PROPERTY_INJECTION_ID

Uniquely identifies this class.

public static string PROPERTY_INJECTION_ID { get; }
Property Value

string

Remarks

ExampleMetadata: lit=aws-rds/test/integ.instance.lit.ts infused

Methods

AddConfiguration(IOptionConfiguration)

Adds a configuration to this OptionGroup.

public virtual bool AddConfiguration(IOptionConfiguration configuration)
Parameters
configuration IOptionConfiguration
Returns

bool

Remarks

This method is a no-op for an imported OptionGroup.

FromOptionGroupName(Construct, string, string)

Import an existing option group.

public static IOptionGroup FromOptionGroupName(Construct scope, string id, string optionGroupName)
Parameters
scope Construct
id string
optionGroupName string
Returns

IOptionGroup

Remarks

ExampleMetadata: lit=aws-rds/test/integ.instance.lit.ts infused

Implements

IOptionGroup
IResource
Constructs.IConstruct
Constructs.IDependable
IEnvironmentAware
Back to top Generated by DocFX