Class OptionGroup

java.lang.Object
software.amazon.jsii.JsiiObject
software.constructs.Construct
software.amazon.awscdk.core.Construct
software.amazon.awscdk.core.Resource
software.amazon.awscdk.services.rds.OptionGroup
All Implemented Interfaces:
IConstruct, IDependable, IResource, IOptionGroup, software.amazon.jsii.JsiiSerializable, software.constructs.IConstruct

@Generated(value="jsii-pacmak/1.84.0 (build 5404dcf)", date="2023-06-19T16:30:49.217Z") @Stability(Stable) public class OptionGroup extends Resource implements IOptionGroup
An option group.

Example:

 // Set open cursors with parameter group
 ParameterGroup parameterGroup = ParameterGroup.Builder.create(this, "ParameterGroup")
         .engine(DatabaseInstanceEngine.oracleSe2(OracleSe2InstanceEngineProps.builder().version(OracleEngineVersion.VER_19_0_0_0_2020_04_R1).build()))
         .parameters(Map.of(
                 "open_cursors", "2500"))
         .build();
 OptionGroup optionGroup = OptionGroup.Builder.create(this, "OptionGroup")
         .engine(DatabaseInstanceEngine.oracleSe2(OracleSe2InstanceEngineProps.builder().version(OracleEngineVersion.VER_19_0_0_0_2020_04_R1).build()))
         .configurations(List.of(OptionConfiguration.builder()
                 .name("LOCATOR")
                 .build(), OptionConfiguration.builder()
                 .name("OEM")
                 .port(1158)
                 .vpc(vpc)
                 .build()))
         .build();
 // Allow connections to OEM
 optionGroup.optionConnections.OEM.connections.allowDefaultPortFromAnyIpv4();
 // Database instance with production values
 DatabaseInstance instance = DatabaseInstance.Builder.create(this, "Instance")
         .engine(DatabaseInstanceEngine.oracleSe2(OracleSe2InstanceEngineProps.builder().version(OracleEngineVersion.VER_19_0_0_0_2020_04_R1).build()))
         .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(List.of("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)
         .build();
 // 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
 Alarm.Builder.create(this, "HighCPU")
         .metric(instance.metricCPUUtilization())
         .threshold(90)
         .evaluationPeriods(1)
         .build();
 // Trigger Lambda function on instance availability events
 Function fn = Function.Builder.create(this, "Function")
         .code(Code.fromInline("exports.handler = (event) => console.log(event);"))
         .handler("index.handler")
         .runtime(Runtime.NODEJS_14_X)
         .build();
 Rule availabilityRule = instance.onEvent("Availability", OnEventOptions.builder().target(new LambdaFunction(fn)).build());
 availabilityRule.addEventPattern(EventPattern.builder()
         .detail(Map.of(
                 "EventCategories", List.of("availability")))
         .build());
 
  • Constructor Details

    • OptionGroup

      protected OptionGroup(software.amazon.jsii.JsiiObjectRef objRef)
    • OptionGroup

      protected OptionGroup(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
    • OptionGroup

      @Stability(Stable) public OptionGroup(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull OptionGroupProps props)
      Parameters:
      scope - This parameter is required.
      id - This parameter is required.
      props - This parameter is required.
  • Method Details

    • fromOptionGroupName

      @Stability(Stable) @NotNull public static IOptionGroup fromOptionGroupName(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull String optionGroupName)
      Import an existing option group.

      Parameters:
      scope - This parameter is required.
      id - This parameter is required.
      optionGroupName - This parameter is required.
    • addConfiguration

      @Stability(Stable) @NotNull public Boolean addConfiguration(@NotNull OptionConfiguration configuration)
      Adds a configuration to this OptionGroup.

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

      Specified by:
      addConfiguration in interface IOptionGroup
      Parameters:
      configuration - This parameter is required.
      Returns:
      true if the OptionConfiguration was successfully added.
    • getOptionConnections

      @Stability(Stable) @NotNull public Map<String,Connections> getOptionConnections()
      The connections object for the options.
    • getOptionGroupName

      @Stability(Stable) @NotNull public String getOptionGroupName()
      The name of the option group.
      Specified by:
      getOptionGroupName in interface IOptionGroup