Class: AWSCDK::SecretsManager::MultiUserHostedRotationOptions

Inherits:
SingleUserHostedRotationOptions
  • Object
show all
Defined in:
secrets_manager/multi_user_hosted_rotation_options.rb

Overview

Multi user hosted rotation options.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(exclude_characters: nil, function_name: nil, security_groups: nil, vpc: nil, vpc_subnets: nil, master_secret:) ⇒ MultiUserHostedRotationOptions

Returns a new instance of MultiUserHostedRotationOptions.

Parameters:

  • exclude_characters (String, nil) (defaults to: nil)

    A string of the characters that you don't want in the password.

  • function_name (String, nil) (defaults to: nil)

    A name for the Lambda created to rotate the secret.

  • security_groups (Array<AWSCDK::EC2::ISecurityGroup>, nil) (defaults to: nil)

    A list of security groups for the Lambda created to rotate the secret.

  • vpc (AWSCDK::EC2::IVPC, nil) (defaults to: nil)

    The VPC where the Lambda rotation function will run.

  • vpc_subnets (AWSCDK::EC2::SubnetSelection, nil) (defaults to: nil)

    The type of subnets in the VPC where the Lambda rotation function will run.

  • master_secret (AWSCDK::SecretsManager::ISecret)

    The master secret for a multi user rotation scheme.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'secrets_manager/multi_user_hosted_rotation_options.rb', line 13

def initialize(exclude_characters: nil, function_name: nil, security_groups: nil, vpc: nil, vpc_subnets: nil, master_secret:)
  @exclude_characters = exclude_characters
  Jsii::Type.check_type(@exclude_characters, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "excludeCharacters") unless @exclude_characters.nil?
  @function_name = function_name
  Jsii::Type.check_type(@function_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "functionName") unless @function_name.nil?
  @security_groups = security_groups
  Jsii::Type.check_type(@security_groups, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lYzIuSVNlY3VyaXR5R3JvdXAifSwia2luZCI6ImFycmF5In19")), "securityGroups") unless @security_groups.nil?
  @vpc = vpc
  Jsii::Type.check_type(@vpc, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLklWcGMifQ==")), "vpc") unless @vpc.nil?
  @vpc_subnets = vpc_subnets.is_a?(Hash) ? ::AWSCDK::EC2::SubnetSelection.new(**vpc_subnets.transform_keys(&:to_sym)) : vpc_subnets
  Jsii::Type.check_type(@vpc_subnets, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLlN1Ym5ldFNlbGVjdGlvbiJ9")), "vpcSubnets") unless @vpc_subnets.nil?
  @master_secret = master_secret
  Jsii::Type.check_type(@master_secret, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfc2VjcmV0c21hbmFnZXIuSVNlY3JldCJ9")), "masterSecret")
end

Instance Attribute Details

#exclude_charactersString? (readonly)

Note:

Default: the same exclude characters as the ones used for the secret or " %+~`#$&*()|[]{}:;<>?!'/@\"\"

A string of the characters that you don't want in the password.

Returns:

  • (String, nil)


32
33
34
# File 'secrets_manager/multi_user_hosted_rotation_options.rb', line 32

def exclude_characters
  @exclude_characters
end

#function_nameString? (readonly)

Note:

Default: - a CloudFormation generated name

A name for the Lambda created to rotate the secret.

Returns:

  • (String, nil)


37
38
39
# File 'secrets_manager/multi_user_hosted_rotation_options.rb', line 37

def function_name
  @function_name
end

#master_secretAWSCDK::SecretsManager::ISecret (readonly)

The master secret for a multi user rotation scheme.



56
57
58
# File 'secrets_manager/multi_user_hosted_rotation_options.rb', line 56

def master_secret
  @master_secret
end

#security_groupsArray<AWSCDK::EC2::ISecurityGroup>? (readonly)

Note:

Default: - a new security group is created

A list of security groups for the Lambda created to rotate the secret.

Returns:



42
43
44
# File 'secrets_manager/multi_user_hosted_rotation_options.rb', line 42

def security_groups
  @security_groups
end

#vpcAWSCDK::EC2::IVPC? (readonly)

Note:

Default: - the Lambda is not deployed in a VPC

The VPC where the Lambda rotation function will run.

Returns:



47
48
49
# File 'secrets_manager/multi_user_hosted_rotation_options.rb', line 47

def vpc
  @vpc
end

#vpc_subnetsAWSCDK::EC2::SubnetSelection? (readonly)

Note:

Default: - the Vpc default strategy if not specified.

The type of subnets in the VPC where the Lambda rotation function will run.



52
53
54
# File 'secrets_manager/multi_user_hosted_rotation_options.rb', line 52

def vpc_subnets
  @vpc_subnets
end

Class Method Details

.jsii_propertiesObject



58
59
60
61
62
63
64
65
66
67
# File 'secrets_manager/multi_user_hosted_rotation_options.rb', line 58

def self.jsii_properties
  {
    :exclude_characters => "excludeCharacters",
    :function_name => "functionName",
    :security_groups => "securityGroups",
    :vpc => "vpc",
    :vpc_subnets => "vpcSubnets",
    :master_secret => "masterSecret",
  }
end

Instance Method Details

#to_jsiiObject



69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'secrets_manager/multi_user_hosted_rotation_options.rb', line 69

def to_jsii
  result = {}
  result.merge!(super)
  result.merge!({
    "excludeCharacters" => @exclude_characters,
    "functionName" => @function_name,
    "securityGroups" => @security_groups,
    "vpc" => @vpc,
    "vpcSubnets" => @vpc_subnets,
    "masterSecret" => @master_secret,
  })
  result.compact
end