awspec 1.19.1 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/doc/_resource_types/cognito_identity_pool.md +7 -0
  3. data/doc/_resource_types/cognito_user_pool.md +7 -0
  4. data/doc/_resource_types/msk.md +15 -0
  5. data/doc/_resource_types/transit_gateway.md +24 -0
  6. data/doc/_resource_types/vpc_endpoints.md +70 -0
  7. data/doc/resource_types.md +180 -9
  8. data/lib/awspec/generator/doc/type/cognito_identity_pool.rb +17 -0
  9. data/lib/awspec/generator/doc/type/cognito_user_pool.rb +17 -0
  10. data/lib/awspec/generator/doc/type/msk.rb +17 -0
  11. data/lib/awspec/generator/doc/type/transit_gateway.rb +17 -0
  12. data/lib/awspec/generator/doc/type/vpc_endpoints.rb +17 -0
  13. data/lib/awspec/helper/finder.rb +12 -1
  14. data/lib/awspec/helper/finder/cognito_identity_pool.rb +15 -0
  15. data/lib/awspec/helper/finder/cognito_user_pool.rb +15 -0
  16. data/lib/awspec/helper/finder/ec2.rb +10 -1
  17. data/lib/awspec/helper/finder/ecr.rb +4 -0
  18. data/lib/awspec/helper/finder/msk.rb +15 -0
  19. data/lib/awspec/helper/finder/vpc_endpoints.rb +15 -0
  20. data/lib/awspec/helper/type.rb +1 -1
  21. data/lib/awspec/stub/cognito_identity_pool.rb +16 -0
  22. data/lib/awspec/stub/cognito_user_pool.rb +47 -0
  23. data/lib/awspec/stub/msk.rb +84 -0
  24. data/lib/awspec/stub/transit_gateway.rb +52 -0
  25. data/lib/awspec/stub/vpc_endpoints.rb +64 -0
  26. data/lib/awspec/type/cognito_identity_pool.rb +11 -0
  27. data/lib/awspec/type/cognito_user_pool.rb +11 -0
  28. data/lib/awspec/type/ecr_repository.rb +4 -0
  29. data/lib/awspec/type/msk.rb +27 -0
  30. data/lib/awspec/type/security_group.rb +44 -0
  31. data/lib/awspec/type/transit_gateway.rb +24 -0
  32. data/lib/awspec/type/vpc_endpoints.rb +43 -0
  33. data/lib/awspec/version.rb +1 -1
  34. metadata +26 -2
@@ -0,0 +1,17 @@
1
+ module Awspec::Generator
2
+ module Doc
3
+ module Type
4
+ class CognitoUserPool < Base
5
+ def initialize
6
+ super
7
+ @type_name = 'CognitoUserPool'
8
+ @type = Awspec::Type::CognitoUserPool.new('my-cognito-user-pool')
9
+ @ret = @type.resource_via_client
10
+ @matchers = []
11
+ @ignore_matchers = []
12
+ @describes = []
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Awspec::Generator
2
+ module Doc
3
+ module Type
4
+ class Msk < Base
5
+ def initialize
6
+ super
7
+ @type_name = 'Msk'
8
+ @type = Awspec::Type::Msk.new('my-msk')
9
+ @ret = @type.resource_via_client
10
+ @matchers = []
11
+ @ignore_matchers = []
12
+ @describes = []
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Awspec::Generator
2
+ module Doc
3
+ module Type
4
+ class TransitGateway < Base
5
+ def initialize
6
+ super
7
+ @type_name = 'TransitGateway'
8
+ @type = Awspec::Type::TransitGateway.new('my-transit-gateway')
9
+ @ret = @type.resource_via_client
10
+ @matchers = []
11
+ @ignore_matchers = []
12
+ @describes = []
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Awspec::Generator
2
+ module Doc
3
+ module Type
4
+ class VpcEndpoints < Base
5
+ def initialize
6
+ super
7
+ @type_name = 'VpcEndpoints'
8
+ @type = Awspec::Type::VpcEndpoints.new('my-vpc-endpoint')
9
+ @ret = @type.resource_via_client
10
+ @matchers = []
11
+ @ignore_matchers = []
12
+ @describes = []
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -2,6 +2,7 @@ require 'aws-sdk'
2
2
  require 'awspec/helper/finder/nlb'
3
3
  require 'awspec/helper/finder/alb'
4
4
  require 'awspec/helper/finder/vpc'
5
+ require 'awspec/helper/finder/vpc_endpoints'
5
6
  require 'awspec/helper/finder/subnet'
6
7
  require 'awspec/helper/finder/ec2'
7
8
  require 'awspec/helper/finder/ecr'
@@ -47,6 +48,9 @@ require 'awspec/helper/finder/redshift'
47
48
  require 'awspec/helper/finder/codedeploy'
48
49
  require 'awspec/helper/finder/mq'
49
50
  require 'awspec/helper/finder/secretsmanager'
51
+ require 'awspec/helper/finder/cognito_user_pool'
52
+ require 'awspec/helper/finder/msk'
53
+ require 'awspec/helper/finder/cognito_identity_pool'
50
54
 
51
55
  require 'awspec/helper/finder/account_attributes'
52
56
 
@@ -57,6 +61,7 @@ module Awspec::Helper
57
61
  include Awspec::Helper::Finder::Nlb
58
62
  include Awspec::Helper::Finder::Alb
59
63
  include Awspec::Helper::Finder::Vpc
64
+ include Awspec::Helper::Finder::VpcEndpoints
60
65
  include Awspec::Helper::Finder::Subnet
61
66
  include Awspec::Helper::Finder::Ec2
62
67
  include Awspec::Helper::Finder::Ecr
@@ -103,6 +108,9 @@ module Awspec::Helper
103
108
  include Awspec::Helper::Finder::Codedeploy
104
109
  include Awspec::Helper::Finder::Mq
105
110
  include Awspec::Helper::Finder::Secretsmanager
111
+ include Awspec::Helper::Finder::CognitoUserPool
112
+ include Awspec::Helper::Finder::Msk
113
+ include Awspec::Helper::Finder::CognitoIdentityPool
106
114
 
107
115
  CLIENTS = {
108
116
  ec2_client: Aws::EC2::Client,
@@ -147,7 +155,10 @@ module Awspec::Helper
147
155
  redshift_client: Aws::Redshift::Client,
148
156
  codedeploy_client: Aws::CodeDeploy::Client,
149
157
  mq_client: Aws::MQ::Client,
150
- secretsmanager_client: Aws::SecretsManager::Client
158
+ secretsmanager_client: Aws::SecretsManager::Client,
159
+ msk_client: Aws::Kafka::Client,
160
+ cognito_identity_client: Aws::CognitoIdentity::Client,
161
+ cognito_identity_provider_client: Aws::CognitoIdentityProvider::Client
151
162
  }
152
163
 
153
164
  CLIENT_OPTIONS = {
@@ -0,0 +1,15 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module CognitoIdentityPool
4
+ def find_identitypool_by_name(pool_name)
5
+ cognito_identity_client.list_identity_pools(max_results: 60).each do |response|
6
+ pools = response.identity_pools
7
+ pools.each do |pool|
8
+ return pool if pool.identity_pool_name == pool_name
9
+ end
10
+ end
11
+ nil
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module CognitoUserPool
4
+ def find_userpool_by_name(pool_name)
5
+ cognito_identity_provider_client.list_user_pools(max_results: 60).each do |response|
6
+ pools = response.user_pools
7
+ pools.each do |pool|
8
+ return pool if pool.name == pool_name
9
+ end
10
+ end
11
+ nil
12
+ end
13
+ end
14
+ end
15
+ end
@@ -43,7 +43,7 @@ module Awspec::Helper
43
43
  end
44
44
 
45
45
  # find_internet_gateway find_vpn_gateway find_customer_gateway
46
- gateway_types = %w(internet vpn customer)
46
+ gateway_types = %w(internet vpn customer transit)
47
47
  gateway_types.each do |type|
48
48
  define_method 'find_' + type + '_gateway' do |*args|
49
49
  gateway_id = args.first
@@ -198,6 +198,15 @@ module Awspec::Helper
198
198
  launch_template_name: id
199
199
  })
200
200
  end
201
+
202
+ def find_tgw_attachments_by_tgw_id(tgw_id)
203
+ res = ec2_client.describe_transit_gateway_attachments({
204
+ filters: [
205
+ { name: 'transit-gateway-id', values: [tgw_id] }
206
+ ]
207
+ })
208
+ res.transit_gateway_attachments
209
+ end
201
210
  end
202
211
  end
203
212
  end
@@ -5,6 +5,10 @@ module Awspec::Helper
5
5
  res = ecr_client.describe_repositories(repository_names: [repository_name])
6
6
  res.repositories.first if res.repositories.count == 1
7
7
  end
8
+
9
+ def get_policy_text(repository_name)
10
+ res = ecr_client.get_repository_policy(repository_name: repository_name)[:policy_text]
11
+ end
8
12
  end
9
13
  end
10
14
  end
@@ -0,0 +1,15 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module Msk
4
+ def find_msk_cluster_by_name(cluster_name)
5
+ res = msk_client.list_clusters(
6
+ {
7
+ cluster_name_filter: cluster_name,
8
+ max_results: 1
9
+ }
10
+ )
11
+ res.cluster_info_list[0]
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module VpcEndpoints
4
+ def find_vpc_endpoint(id)
5
+ res = ec2_client.describe_vpc_endpoints({ vpc_endpoint_ids: [id] })
6
+
7
+ ret = res.vpc_endpoints.select do |vpce|
8
+ vpce.vpc_endpoint_id == id
9
+ end
10
+
11
+ ret.single_resource(id)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -20,7 +20,7 @@ module Awspec
20
20
  elastictranscoder_pipeline waf_web_acl wafregional_web_acl customer_gateway vpn_gateway vpn_connection
21
21
  internet_gateway acm cloudwatch_logs dynamodb_table eip sqs ssm_parameter cloudformation_stack
22
22
  codebuild sns_topic redshift redshift_cluster_parameter_group codedeploy codedeploy_deployment_group
23
- secretsmanager
23
+ secretsmanager msk transit_gateway cognito_identity_pool cognito_user_pool vpc_endpoints
24
24
  )
25
25
 
26
26
  ACCOUNT_ATTRIBUTES = %w(
@@ -0,0 +1,16 @@
1
+ Aws.config[:cognitoidentity] = {
2
+ stub_responses: {
3
+ list_identity_pools: {
4
+ identity_pools: [
5
+ {
6
+ identity_pool_id: 'us-east-1:adsfkjaekljnfg234',
7
+ identity_pool_name: 'my-cognito-identity-pool'
8
+ },
9
+ {
10
+ identity_pool_id: 'us-east-1:gfdksjg87sfna943knbj',
11
+ identity_pool_name: 'My_Identity_Pool'
12
+ }
13
+ ], next_token: 'akvjnkjndgoierhteuh7sfdnre9erglkwnroijsdfinewr=='
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,47 @@
1
+ Aws.config[:cognitoidentityprovider] = {
2
+ stub_responses: {
3
+ list_user_pools: {
4
+ user_pools: [
5
+ {
6
+ id: 'us-east-1_6adfkj4ju',
7
+ name: 'my-cognito-user-pool',
8
+ lambda_config: {
9
+ pre_sign_up: nil,
10
+ custom_message: nil,
11
+ post_confirmation: nil,
12
+ pre_authentication: nil,
13
+ post_authentication: nil,
14
+ define_auth_challenge: nil,
15
+ create_auth_challenge: nil,
16
+ verify_auth_challenge_response: nil,
17
+ pre_token_generation: nil,
18
+ user_migration: nil
19
+ },
20
+ status: nil,
21
+ last_modified_date: Time.new(2016, 5, 5, 5, 00, 00, '+00:00'),
22
+ creation_date: Time.new(2015, 1, 2, 10, 00, 00, '+00:00')
23
+ },
24
+ {
25
+ id: 'us-east-1_12345adsf',
26
+ name: 'test-pool',
27
+ lambda_config: {
28
+ pre_sign_up: nil,
29
+ custom_message: nil,
30
+ post_confirmation: nil,
31
+ pre_authentication: nil,
32
+ post_authentication: nil,
33
+ define_auth_challenge: nil,
34
+ create_auth_challenge: nil,
35
+ verify_auth_challenge_response: nil,
36
+ pre_token_generation: nil,
37
+ user_migration: nil
38
+ },
39
+ status: nil,
40
+ last_modified_date: Time.new(2019, 1, 2, 10, 00, 00, '+00:00'),
41
+ creation_date: Time.new(2018, 1, 2, 10, 00, 00, '+00:00')
42
+ }
43
+ ],
44
+ next_token: 'aoeijfasdnvakldsjfgoai'
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,84 @@
1
+ Aws.config[:kafka] = {
2
+ stub_responses: {
3
+ list_clusters: {
4
+ cluster_info_list: [
5
+ {
6
+ active_operation_arn: nil,
7
+ broker_node_group_info: {
8
+ broker_az_distribution: 'DEFAULT',
9
+ client_subnets: [
10
+ 'subnet-12345678909876543',
11
+ 'subnet-90876543212345678'
12
+ ],
13
+ instance_type: 'kafka.t3.small',
14
+ security_groups: [
15
+ 'sg-65432123456789098'
16
+ ],
17
+ storage_info: {
18
+ ebs_storage_info: {
19
+ volume_size: 1
20
+ }
21
+ }
22
+ },
23
+ client_authentication: nil,
24
+ cluster_arn: 'arn:aws:kafka:us-east-1:123456789098:cluster/did-inventory/\
25
+ a12345b6-123c-1de2-1234-f1g23h45i678-9',
26
+ cluster_name: 'my-msk',
27
+ creation_time: Time.new(2019, 1, 2, 10, 10, 00, '+00:00'),
28
+ current_broker_software_info: {
29
+ configuration_arn: nil,
30
+ configuration_revision: nil,
31
+ kafka_version: '2.2.1'
32
+ },
33
+ logging_info: {
34
+ broker_logs: {
35
+ cloud_watch_logs: {
36
+ enabled: false,
37
+ log_group: nil
38
+ },
39
+ firehose: {
40
+ delivery_stream: nil,
41
+ enabled: false
42
+ },
43
+ s3: {
44
+ bucket: nil,
45
+ enabled: false,
46
+ prefix: nil
47
+ }
48
+ }
49
+ },
50
+ current_version: 'A1BCDEFGHI23JK',
51
+ encryption_info: {
52
+ encryption_at_rest: {
53
+ data_volume_kms_key_id: 'arn:aws:kms:us-east-1:123456789098:key/ab1c2345-6789-01d2-3ee4-f56gh7i890jk'
54
+ },
55
+ encryption_in_transit: {
56
+ client_broker: 'TLS_PLAINTEXT',
57
+ in_cluster: true
58
+ }
59
+ },
60
+ enhanced_monitoring: 'DEFAULT',
61
+ number_of_broker_nodes: 2,
62
+ open_monitoring: {
63
+ prometheus: {
64
+ jmx_exporter: {
65
+ enabled_in_broker: false
66
+ },
67
+ node_exporter: {
68
+ enabled_in_broker: false
69
+ }
70
+ }
71
+ },
72
+ state: 'ACTIVE',
73
+ tags: {
74
+ 'Name' => 'my-msk'
75
+ },
76
+ zookeeper_connect_string: 'z-3.my-msk.1a23bc.d4.kafka.us-east-1.amazonaws.com:\
77
+ 1234,z-2.my-msk.1a23bc.d4.kafka.us-east-1.amazonaws.com:1234,z-1.my-msk.\
78
+ 1a23bc.d4.kafka.us-east-1.amazonaws.com:1234'
79
+ }
80
+ ],
81
+ next_token: nil
82
+ }
83
+ }
84
+ }
@@ -0,0 +1,52 @@
1
+ Aws.config[:ec2] = {
2
+ stub_responses: {
3
+ describe_transit_gateways: {
4
+ transit_gateways: [
5
+ {
6
+ transit_gateway_id: 'tgw-1234567890abcdefg',
7
+ transit_gateway_arn: 'arn:aws:ec2:us-east-2:123456789012:transit-gateway/tgw-1234567890abcdefg',
8
+ owner_id: '123456789012',
9
+ options: {
10
+ amazon_side_asn: 64_516,
11
+ auto_accept_shared_attachments: 'enable',
12
+ default_route_table_association: 'enable',
13
+ default_route_table_propagation: 'enable',
14
+ dns_support: 'enable',
15
+ vpn_ecmp_support: 'enable',
16
+ association_default_route_table_id: 'tgw-rtb-0123456789abcdefg',
17
+ propagation_default_route_table_id: 'tgw-rtb-0123456789abcdefg'
18
+ },
19
+ tags: [
20
+ {
21
+ key: 'Name',
22
+ value: 'my-transit-gateway'
23
+ }
24
+ ]
25
+ }
26
+ ]
27
+ },
28
+ describe_transit_gateway_attachments: {
29
+ transit_gateway_attachments: [
30
+ {
31
+ transit_gateway_attachment_id: 'tgw-attach-1234567890abcdefg',
32
+ transit_gateway_id: 'tgw-1234567890abcdefg',
33
+ transit_gateway_owner_id: '123456789012',
34
+ resource_owner_id: '123456789012',
35
+ resource_type: 'vpc',
36
+ resource_id: 'vpc-12345678',
37
+ state: 'available',
38
+ association: {
39
+ transit_gateway_route_table_id: 'tgw-rtb-0123456789abcdefg',
40
+ state: 'associated'
41
+ },
42
+ tags: [
43
+ {
44
+ key: 'Name',
45
+ value: 'my-transit-gateway-attachment'
46
+ }
47
+ ]
48
+ }
49
+ ]
50
+ }
51
+ }
52
+ }
@@ -0,0 +1,64 @@
1
+ Aws.config[:ec2] = {
2
+ stub_responses: {
3
+ describe_vpc_endpoints: {
4
+ vpc_endpoints: [
5
+ {
6
+ vpc_endpoint_id: 'vpce-abc123',
7
+ vpc_endpoint_type: 'Gateway',
8
+ vpc_id: 'vpc-12345678',
9
+ service_name: 'com.amazonaws.us-east-1.s3',
10
+ state: 'available',
11
+ policy_document: '{"Version": "2008-10-17", "Statement": [{' \
12
+ '"Effect": "Allow", "Principal": "*", "Action": "*",' \
13
+ '"Resource": "*"}]}',
14
+ route_table_ids: ['rtb-0123456789abcdefg'],
15
+ subnet_ids: [],
16
+ groups: [],
17
+ private_dns_enabled: false,
18
+ requester_managed: false,
19
+ network_interface_ids: [],
20
+ dns_entries: [],
21
+ creation_timestamp: Time.new(2020, 8, 13, 9, 00, 00, '+00:00'),
22
+ tags: [
23
+ {
24
+ key: 'Name',
25
+ value: 'my_vpc_endpoint'
26
+ }
27
+ ],
28
+ owner_id: '112233445566'
29
+ },
30
+ {
31
+ vpc_endpoint_id: 'vpce-abc124',
32
+ vpc_endpoint_type: 'Interface',
33
+ vpc_id: 'vpc-12345678',
34
+ service_name: 'com.amazonaws.eu-west-1.codebuild',
35
+ state: 'available',
36
+ policy_document: '{"Version": "2008-10-17", "Statement": [{' \
37
+ '"Effect": "Allow", "Principal": "*", "Action": "*",' \
38
+ '"Resource": "*"}]}',
39
+ route_table_ids: [],
40
+ subnet_ids: ['subnet-abc123'],
41
+ groups: [{ group_id: 'sg-abc123', group_name: 'default' }],
42
+ private_dns_enabled: true,
43
+ requester_managed: false,
44
+ network_interface_ids: ['eni-06f28a949cb88b84c'],
45
+ dns_entries: [
46
+ {
47
+ dns_name: 'vpce-05907f23265b25f20-wwafshom.codebuild.eu-west-1.vpce.amazonaws.com',
48
+ hosted_zone_id: 'Z38GZ743OKFT7T'
49
+ }
50
+ ],
51
+ creation_timestamp: Time.new(2020, 8, 13, 9, 00, 00, '+00:00'),
52
+ tags: [
53
+ {
54
+ key: 'Name',
55
+ value: 'my_vpc_endpoint'
56
+ }
57
+ ],
58
+ owner_id: '112233445566'
59
+ }
60
+ ],
61
+ next_token: nil
62
+ }
63
+ }
64
+ }