123 lines
3.4 KiB
TypeScript
123 lines
3.4 KiB
TypeScript
import type { Construct } from 'constructs';
|
|
import type { IInstanceEngine } from './instance-engine';
|
|
import type { IOptionGroupRef, OptionGroupReference } from './rds.generated';
|
|
import * as ec2 from '../../aws-ec2';
|
|
import type { IResource } from '../../core';
|
|
import { Resource } from '../../core';
|
|
/**
|
|
* An option group
|
|
*/
|
|
export interface IOptionGroup extends IResource, IOptionGroupRef {
|
|
/**
|
|
* The name of the option group.
|
|
*
|
|
* @attribute
|
|
*/
|
|
readonly optionGroupName: string;
|
|
/**
|
|
* Adds a configuration to this OptionGroup.
|
|
* This method is a no-op for an imported OptionGroup.
|
|
*
|
|
* @returns true if the OptionConfiguration was successfully added.
|
|
*/
|
|
addConfiguration(configuration: OptionConfiguration): boolean;
|
|
}
|
|
/**
|
|
* Configuration properties for an option.
|
|
*/
|
|
export interface OptionConfiguration {
|
|
/**
|
|
* The name of the option.
|
|
*/
|
|
readonly name: string;
|
|
/**
|
|
* The settings for the option.
|
|
*
|
|
* @default - no settings
|
|
*/
|
|
readonly settings?: {
|
|
[name: string]: string;
|
|
};
|
|
/**
|
|
* The version for the option.
|
|
*
|
|
* @default - no version
|
|
*/
|
|
readonly version?: string;
|
|
/**
|
|
* The port number that this option uses. If `port` is specified then `vpc`
|
|
* must also be specified.
|
|
*
|
|
* @default - no port
|
|
*/
|
|
readonly port?: number;
|
|
/**
|
|
* The VPC where a security group should be created for this option. If `vpc`
|
|
* is specified then `port` must also be specified.
|
|
*
|
|
* @default - no VPC
|
|
*/
|
|
readonly vpc?: ec2.IVpc;
|
|
/**
|
|
* Optional list of security groups to use for this option, if `vpc` is specified.
|
|
* If no groups are provided, a default one will be created.
|
|
*
|
|
* @default - a default group will be created if `port` or `vpc` are specified.
|
|
*/
|
|
readonly securityGroups?: ec2.ISecurityGroup[];
|
|
}
|
|
/**
|
|
* Construction properties for an OptionGroup.
|
|
*/
|
|
export interface OptionGroupProps {
|
|
/**
|
|
* The database engine that this option group is associated with.
|
|
*/
|
|
readonly engine: IInstanceEngine;
|
|
/**
|
|
* A description of the option group.
|
|
*
|
|
* @default a CDK generated description
|
|
*/
|
|
readonly description?: string;
|
|
/**
|
|
* The configurations for this option group.
|
|
*/
|
|
readonly configurations: OptionConfiguration[];
|
|
/**
|
|
* The name of the option group.
|
|
*
|
|
* @default - a CDK generated name
|
|
*/
|
|
readonly optionGroupName?: string;
|
|
}
|
|
/**
|
|
* An option group
|
|
*/
|
|
export declare class OptionGroup extends Resource implements IOptionGroup {
|
|
/** Uniquely identifies this class. */
|
|
static readonly PROPERTY_INJECTION_ID: string;
|
|
/**
|
|
* Import an existing option group.
|
|
*/
|
|
static fromOptionGroupName(scope: Construct, id: string, optionGroupName: string): IOptionGroup;
|
|
/**
|
|
* The name of the option group.
|
|
*/
|
|
readonly optionGroupName: string;
|
|
/**
|
|
* The connections object for the options.
|
|
*/
|
|
readonly optionConnections: {
|
|
[key: string]: ec2.Connections;
|
|
};
|
|
private readonly configurations;
|
|
constructor(scope: Construct, id: string, props: OptionGroupProps);
|
|
addConfiguration(configuration: OptionConfiguration): boolean;
|
|
/**
|
|
* Renders the option configurations specifications.
|
|
*/
|
|
private renderConfigurations;
|
|
get optionGroupRef(): OptionGroupReference;
|
|
}
|