import * as core from "@terrascript/core";
export interface LogsArgs extends core.SchemaArgs {
    audit?: string | core.StringOut;
    general?: boolean | core.BooleanOut;
}
export declare class Logs extends core.Schema<LogsArgs> {
    audit?: string | core.StringOut;
    general?: boolean | core.BooleanOut;
}
export interface UserArgs extends core.SchemaArgs {
    consoleAccess?: boolean | core.BooleanOut;
    groups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    password: string | core.StringOut;
    username: string | core.StringOut;
}
export declare class User extends core.Schema<UserArgs> {
    consoleAccess?: boolean | core.BooleanOut;
    groups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    password: string | core.StringOut;
    username: string | core.StringOut;
}
export interface InstancesArgs extends core.SchemaArgs {
    consoleUrl: string | core.StringOut;
    endpoints: core.Array<string> | core.ArrayOut<core.StringOut>;
    ipAddress: string | core.StringOut;
}
export declare class Instances extends core.Schema<InstancesArgs> {
    consoleUrl: string | core.StringOut;
    endpoints: core.Array<string> | core.ArrayOut<core.StringOut>;
    ipAddress: string | core.StringOut;
}
export interface LdapServerMetadataArgs extends core.SchemaArgs {
    hosts?: core.Array<string> | core.ArrayOut<core.StringOut>;
    roleBase?: string | core.StringOut;
    roleName?: string | core.StringOut;
    roleSearchMatching?: string | core.StringOut;
    roleSearchSubtree?: boolean | core.BooleanOut;
    serviceAccountPassword?: string | core.StringOut;
    serviceAccountUsername?: string | core.StringOut;
    userBase?: string | core.StringOut;
    userRoleName?: string | core.StringOut;
    userSearchMatching?: string | core.StringOut;
    userSearchSubtree?: boolean | core.BooleanOut;
}
export declare class LdapServerMetadata extends core.Schema<LdapServerMetadataArgs> {
    hosts?: core.Array<string> | core.ArrayOut<core.StringOut>;
    roleBase?: string | core.StringOut;
    roleName?: string | core.StringOut;
    roleSearchMatching?: string | core.StringOut;
    roleSearchSubtree?: boolean | core.BooleanOut;
    serviceAccountPassword?: string | core.StringOut;
    serviceAccountUsername?: string | core.StringOut;
    userBase?: string | core.StringOut;
    userRoleName?: string | core.StringOut;
    userSearchMatching?: string | core.StringOut;
    userSearchSubtree?: boolean | core.BooleanOut;
}
export interface ConfigurationArgs extends core.SchemaArgs {
    id?: string | core.StringOut;
    revision?: number | core.NumberOut;
}
export declare class Configuration extends core.Schema<ConfigurationArgs> {
    id?: string | core.StringOut;
    revision?: number | core.NumberOut;
}
export interface EncryptionOptionsArgs extends core.SchemaArgs {
    kmsKeyId?: string | core.StringOut;
    useAwsOwnedKey?: boolean | core.BooleanOut;
}
export declare class EncryptionOptions extends core.Schema<EncryptionOptionsArgs> {
    kmsKeyId?: string | core.StringOut;
    useAwsOwnedKey?: boolean | core.BooleanOut;
}
export interface MaintenanceWindowStartTimeArgs extends core.SchemaArgs {
    dayOfWeek: string | core.StringOut;
    timeOfDay: string | core.StringOut;
    timeZone: string | core.StringOut;
}
export declare class MaintenanceWindowStartTime extends core.Schema<MaintenanceWindowStartTimeArgs> {
    dayOfWeek: string | core.StringOut;
    timeOfDay: string | core.StringOut;
    timeZone: string | core.StringOut;
}
export interface BrokerArgs extends core.ResourceArgs {
    applyImmediately?: boolean | core.BooleanOut;
    authenticationStrategy?: string | core.StringOut;
    autoMinorVersionUpgrade?: boolean | core.BooleanOut;
    brokerName: string | core.StringOut;
    configuration?: Configuration;
    deploymentMode?: string | core.StringOut;
    encryptionOptions?: EncryptionOptions;
    engineType: string | core.StringOut;
    engineVersion: string | core.StringOut;
    hostInstanceType: string | core.StringOut;
    ldapServerMetadata?: LdapServerMetadata;
    logs?: Logs;
    maintenanceWindowStartTime?: MaintenanceWindowStartTime;
    publiclyAccessible?: boolean | core.BooleanOut;
    securityGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    storageType?: string | core.StringOut;
    subnetIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    user: core.Array<User> | core.ArrayOut<User>;
}
export declare class Broker extends core.Resource<BrokerArgs> {
    applyImmediately?: boolean | core.BooleanOut;
    arn: string | core.StringOut;
    authenticationStrategy?: string | core.StringOut;
    autoMinorVersionUpgrade?: boolean | core.BooleanOut;
    brokerName: string | core.StringOut;
    configuration?: Configuration;
    deploymentMode?: string | core.StringOut;
    encryptionOptions?: EncryptionOptions;
    engineType: string | core.StringOut;
    engineVersion: string | core.StringOut;
    hostInstanceType: string | core.StringOut;
    id: string | core.StringOut;
    instances: core.Array<Instances> | core.ArrayOut<Instances>;
    ldapServerMetadata?: LdapServerMetadata;
    logs?: Logs;
    maintenanceWindowStartTime?: MaintenanceWindowStartTime;
    publiclyAccessible?: boolean | core.BooleanOut;
    securityGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    storageType?: string | core.StringOut;
    subnetIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    user: core.Array<User> | core.ArrayOut<User>;
    constructor(name: string, args?: BrokerArgs);
    getNamespace(): string;
}
//# sourceMappingURL=broker.d.ts.map