awspec 1.6.1 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/_resource_types/iam_group.md +1 -1
- data/doc/_resource_types/ssm_parameter.md +33 -0
- data/doc/resource_types.md +45 -2
- data/lib/awspec/generator/doc/type/ssm_parameter.rb +17 -0
- data/lib/awspec/helper/finder.rb +3 -0
- data/lib/awspec/helper/finder/ssm_parameter.rb +32 -0
- data/lib/awspec/helper/type.rb +1 -1
- data/lib/awspec/stub/ssm_parameter.rb +16 -0
- data/lib/awspec/type/ssm_parameter.rb +26 -0
- data/lib/awspec/version.rb +1 -1
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e556799c2201a9daccf7462ad8f9ca83d59bbe10
|
4
|
+
data.tar.gz: 650f89151631592d2d5b4adaf07e1d4f2968624e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d4c5c36524c93a129ab2fcf110c210121759f49e953f5ff547b2bec6ae6d3a6849fd8348fda7129b0420c9ece46df56fcaf9cb2e2934de5b5257bbb168dc0ee
|
7
|
+
data.tar.gz: d6c628e4ca7ddf3baf3a24facb92dd528afdf96d184520ae5ff6600e26e3fe4b49fdb47870041d6dfb08c52075f58dd92bf6bbdef7162086080b49cc3ea68605
|
@@ -0,0 +1,33 @@
|
|
1
|
+
### exist
|
2
|
+
|
3
|
+
```ruby
|
4
|
+
describe ssm_parameter('my-parameter') do
|
5
|
+
it { should exist }
|
6
|
+
end
|
7
|
+
```
|
8
|
+
|
9
|
+
### be_encrypted
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
describe ssm_parameter('my-parameter') do
|
13
|
+
it { should be_encrypted }
|
14
|
+
end
|
15
|
+
```
|
16
|
+
|
17
|
+
### have_tag
|
18
|
+
|
19
|
+
```ruby
|
20
|
+
describe ssm_parameter('my-parameter') do
|
21
|
+
it { should have_tag('my-key').value('my-value') }
|
22
|
+
end
|
23
|
+
```
|
24
|
+
|
25
|
+
### advanced
|
26
|
+
|
27
|
+
```ruby
|
28
|
+
describe ssm_parameter('my-parameter') do
|
29
|
+
its(:key_id) { should be_eql('6a81f446-27b0-4d51-a04f-af7ddeea2e22') }
|
30
|
+
its(:description) { should be_eql('Some string description') }
|
31
|
+
its(:version) { should be_eql(1) }
|
32
|
+
end
|
33
|
+
```
|
data/doc/resource_types.md
CHANGED
@@ -53,6 +53,7 @@
|
|
53
53
|
| [security_group](#security_group)
|
54
54
|
| [ses_identity](#ses_identity)
|
55
55
|
| [sqs](#sqs)
|
56
|
+
| [ssm_parameter](#ssm_parameter)
|
56
57
|
| [subnet](#subnet)
|
57
58
|
| [vpc](#vpc)
|
58
59
|
| [vpn_connection](#vpn_connection)
|
@@ -1390,7 +1391,7 @@ end
|
|
1390
1391
|
|
1391
1392
|
```ruby
|
1392
1393
|
describe iam_group('my-iam-group') do
|
1393
|
-
its('users.count) { should eq 5 }
|
1394
|
+
its('users.count') { should eq 5 }
|
1394
1395
|
end
|
1395
1396
|
```
|
1396
1397
|
|
@@ -2197,7 +2198,7 @@ end
|
|
2197
2198
|
```
|
2198
2199
|
|
2199
2200
|
|
2200
|
-
### its(:vpc_id), its(:db_instance_identifier), its(:db_instance_class), its(:engine), its(:db_instance_status), its(:master_username), its(:db_name), its(:endpoint), its(:allocated_storage), its(:instance_create_time), its(:preferred_backup_window), its(:backup_retention_period), its(:db_security_groups), its(:availability_zone), its(:preferred_maintenance_window), its(:pending_modified_values), its(:latest_restorable_time), its(:multi_az), its(:engine_version), its(:auto_minor_version_upgrade), its(:read_replica_source_db_instance_identifier), its(:read_replica_db_instance_identifiers), its(:read_replica_db_cluster_identifiers), its(:license_model), its(:iops), its(:character_set_name), its(:secondary_availability_zone), its(:publicly_accessible), its(:status_infos), its(:storage_type), its(:tde_credential_arn), its(:db_instance_port), its(:db_cluster_identifier), its(:storage_encrypted), its(:kms_key_id), its(:dbi_resource_id), its(:ca_certificate_identifier), its(:domain_memberships), its(:copy_tags_to_snapshot), its(:monitoring_interval), its(:enhanced_monitoring_resource_arn), its(:monitoring_role_arn), its(:promotion_tier), its(:db_instance_arn), its(:timezone), its(:iam_database_authentication_enabled), its(:performance_insights_enabled), its(:performance_insights_kms_key_id), its(:enabled_cloudwatch_logs_exports), its(:processor_features)
|
2201
|
+
### its(:vpc_id), its(:db_instance_identifier), its(:db_instance_class), its(:engine), its(:db_instance_status), its(:master_username), its(:db_name), its(:endpoint), its(:allocated_storage), its(:instance_create_time), its(:preferred_backup_window), its(:backup_retention_period), its(:db_security_groups), its(:availability_zone), its(:preferred_maintenance_window), its(:pending_modified_values), its(:latest_restorable_time), its(:multi_az), its(:engine_version), its(:auto_minor_version_upgrade), its(:read_replica_source_db_instance_identifier), its(:read_replica_db_instance_identifiers), its(:read_replica_db_cluster_identifiers), its(:license_model), its(:iops), its(:character_set_name), its(:secondary_availability_zone), its(:publicly_accessible), its(:status_infos), its(:storage_type), its(:tde_credential_arn), its(:db_instance_port), its(:db_cluster_identifier), its(:storage_encrypted), its(:kms_key_id), its(:dbi_resource_id), its(:ca_certificate_identifier), its(:domain_memberships), its(:copy_tags_to_snapshot), its(:monitoring_interval), its(:enhanced_monitoring_resource_arn), its(:monitoring_role_arn), its(:promotion_tier), its(:db_instance_arn), its(:timezone), its(:iam_database_authentication_enabled), its(:performance_insights_enabled), its(:performance_insights_kms_key_id), its(:performance_insights_retention_period), its(:enabled_cloudwatch_logs_exports), its(:processor_features)
|
2201
2202
|
### :unlock: Advanced use
|
2202
2203
|
|
2203
2204
|
`rds` can use `Aws::RDS::DBInstance` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/RDS/DBInstance.html).
|
@@ -2614,6 +2615,48 @@ end
|
|
2614
2615
|
```
|
2615
2616
|
|
2616
2617
|
### its(:queue_arn), its(:approximate_number_of_messages), its(:approximate_number_of_messages_not_visible), its(:approximate_number_of_messages_delayed), its(:created_timestamp), its(:last_modified_timestamp), its(:visibility_timeout), its(:maximum_message_size), its(:message_retention_period), its(:delay_seconds), its(:receive_message_wait_time_seconds), its(:queue_url)
|
2618
|
+
## <a name="ssm_parameter">ssm_parameter</a>
|
2619
|
+
|
2620
|
+
SsmParameter resource type.
|
2621
|
+
|
2622
|
+
### exist
|
2623
|
+
|
2624
|
+
```ruby
|
2625
|
+
describe ssm_parameter('my-parameter') do
|
2626
|
+
it { should exist }
|
2627
|
+
end
|
2628
|
+
```
|
2629
|
+
|
2630
|
+
|
2631
|
+
### be_encrypted
|
2632
|
+
|
2633
|
+
```ruby
|
2634
|
+
describe ssm_parameter('my-parameter') do
|
2635
|
+
it { should be_encrypted }
|
2636
|
+
end
|
2637
|
+
```
|
2638
|
+
|
2639
|
+
|
2640
|
+
### have_tag
|
2641
|
+
|
2642
|
+
```ruby
|
2643
|
+
describe ssm_parameter('my-parameter') do
|
2644
|
+
it { should have_tag('my-key').value('my-value') }
|
2645
|
+
end
|
2646
|
+
```
|
2647
|
+
|
2648
|
+
|
2649
|
+
### its(:name), its(:type), its(:key_id), its(:last_modified_date), its(:last_modified_user), its(:description), its(:allowed_pattern), its(:version)
|
2650
|
+
### :unlock: Advanced use
|
2651
|
+
|
2652
|
+
```ruby
|
2653
|
+
describe ssm_parameter('my-parameter') do
|
2654
|
+
its(:key_id) { should be_eql('6a81f446-27b0-4d51-a04f-af7ddeea2e22') }
|
2655
|
+
its(:description) { should be_eql('Some string description') }
|
2656
|
+
its(:version) { should be_eql(1) }
|
2657
|
+
end
|
2658
|
+
```
|
2659
|
+
|
2617
2660
|
## <a name="subnet">subnet</a>
|
2618
2661
|
|
2619
2662
|
Subnet resource type.
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Awspec::Generator
|
2
|
+
module Doc
|
3
|
+
module Type
|
4
|
+
class SsmParameter < Base
|
5
|
+
def initialize
|
6
|
+
super
|
7
|
+
@type_name = 'SsmParameter'
|
8
|
+
@type = Awspec::Type::SsmParameter.new('my-ssm')
|
9
|
+
@ret = @type.resource_via_client
|
10
|
+
@matchers = []
|
11
|
+
@ignore_matchers = []
|
12
|
+
@describes = []
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/awspec/helper/finder.rb
CHANGED
@@ -34,6 +34,7 @@ require 'awspec/helper/finder/cloudwatch_logs'
|
|
34
34
|
require 'awspec/helper/finder/dynamodb'
|
35
35
|
require 'awspec/helper/finder/sqs'
|
36
36
|
require 'awspec/helper/finder/cloudformation'
|
37
|
+
require 'awspec/helper/finder/ssm_parameter'
|
37
38
|
|
38
39
|
require 'awspec/helper/finder/account_attributes'
|
39
40
|
|
@@ -76,6 +77,7 @@ module Awspec::Helper
|
|
76
77
|
include Awspec::Helper::Finder::CloudwatchLogs
|
77
78
|
include Awspec::Helper::Finder::Dynamodb
|
78
79
|
include Awspec::Helper::Finder::Sqs
|
80
|
+
include Awspec::Helper::Finder::SsmParameter
|
79
81
|
include Awspec::Helper::Finder::Cloudformation
|
80
82
|
|
81
83
|
CLIENTS = {
|
@@ -108,6 +110,7 @@ module Awspec::Helper
|
|
108
110
|
cloudwatch_logs_client: Aws::CloudWatchLogs::Client,
|
109
111
|
dynamodb_client: Aws::DynamoDB::Client,
|
110
112
|
sqs_client: Aws::SQS::Client,
|
113
|
+
ssm_client: Aws::SSM::Client,
|
111
114
|
cloudformation_client: Aws::CloudFormation::Client
|
112
115
|
}
|
113
116
|
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Awspec::Helper
|
2
|
+
module Finder
|
3
|
+
module SsmParameter
|
4
|
+
def find_ssm_parameter(name)
|
5
|
+
ssm_client.describe_parameters(
|
6
|
+
{
|
7
|
+
filters: [
|
8
|
+
{
|
9
|
+
key: 'Name',
|
10
|
+
values: [name]
|
11
|
+
}
|
12
|
+
]
|
13
|
+
}).parameters[0]
|
14
|
+
end
|
15
|
+
|
16
|
+
def find_parameter_tag(id, tag_key)
|
17
|
+
tag = nil
|
18
|
+
begin
|
19
|
+
response = ssm_client.list_tags_for_resource(
|
20
|
+
resource_type: 'Parameter',
|
21
|
+
resource_id: id
|
22
|
+
)
|
23
|
+
tag_set = response.tag_list
|
24
|
+
tag = tag_set.find { |tag_obj| tag_obj.key == tag_key }
|
25
|
+
rescue Aws::SSM::Errors::ServiceError
|
26
|
+
nil
|
27
|
+
end
|
28
|
+
return tag if tag
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/lib/awspec/helper/type.rb
CHANGED
@@ -17,7 +17,7 @@ module Awspec
|
|
17
17
|
rds rds_db_cluster_parameter_group rds_db_parameter_group route53_hosted_zone
|
18
18
|
route_table s3_bucket security_group ses_identity subnet vpc cloudfront_distribution
|
19
19
|
elastictranscoder_pipeline waf_web_acl customer_gateway vpn_gateway vpn_connection internet_gateway acm
|
20
|
-
cloudwatch_logs dynamodb_table eip sqs cloudformation_stack
|
20
|
+
cloudwatch_logs dynamodb_table eip sqs ssm_parameter cloudformation_stack
|
21
21
|
)
|
22
22
|
|
23
23
|
ACCOUNT_ATTRIBUTES = %w(
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Aws.config[:ssm] = {
|
2
|
+
stub_responses: {
|
3
|
+
describe_parameters: {
|
4
|
+
parameters: [
|
5
|
+
{
|
6
|
+
name: 'my-parameter',
|
7
|
+
type: 'SecureString',
|
8
|
+
key_id: 'alias/aws/ssm',
|
9
|
+
description: 'Some description',
|
10
|
+
version: 1,
|
11
|
+
next_token: nil
|
12
|
+
}
|
13
|
+
]
|
14
|
+
}
|
15
|
+
}
|
16
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Awspec::Type
|
2
|
+
class SsmParameter < ResourceBase
|
3
|
+
def initialize(name)
|
4
|
+
super
|
5
|
+
@display_name = name
|
6
|
+
end
|
7
|
+
|
8
|
+
def resource_via_client
|
9
|
+
@resource_via_client ||= find_ssm_parameter(@display_name)
|
10
|
+
end
|
11
|
+
|
12
|
+
def id
|
13
|
+
@id ||= @display_name if resource_via_client
|
14
|
+
end
|
15
|
+
|
16
|
+
def encrypted?
|
17
|
+
resource_via_client.type.eql? 'SecureString'
|
18
|
+
end
|
19
|
+
|
20
|
+
def has_tag?(key, value)
|
21
|
+
tag = find_parameter_tag(id, key)
|
22
|
+
return nil if tag.value != value
|
23
|
+
tag
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/awspec/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- k1LoW
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-06-
|
11
|
+
date: 2018-06-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -269,6 +269,7 @@ files:
|
|
269
269
|
- doc/_resource_types/ses_identity.md
|
270
270
|
- doc/_resource_types/ses_send_quota.md
|
271
271
|
- doc/_resource_types/sqs.md
|
272
|
+
- doc/_resource_types/ssm_parameter.md
|
272
273
|
- doc/_resource_types/subnet.md
|
273
274
|
- doc/_resource_types/vpc.md
|
274
275
|
- doc/_resource_types/vpn_connection.md
|
@@ -349,6 +350,7 @@ files:
|
|
349
350
|
- lib/awspec/generator/doc/type/ses_identity.rb
|
350
351
|
- lib/awspec/generator/doc/type/ses_send_quota.rb
|
351
352
|
- lib/awspec/generator/doc/type/sqs.rb
|
353
|
+
- lib/awspec/generator/doc/type/ssm_parameter.rb
|
352
354
|
- lib/awspec/generator/doc/type/subnet.rb
|
353
355
|
- lib/awspec/generator/doc/type/vpc.rb
|
354
356
|
- lib/awspec/generator/doc/type/vpn_connection.rb
|
@@ -424,6 +426,7 @@ files:
|
|
424
426
|
- lib/awspec/helper/finder/security_group.rb
|
425
427
|
- lib/awspec/helper/finder/ses.rb
|
426
428
|
- lib/awspec/helper/finder/sqs.rb
|
429
|
+
- lib/awspec/helper/finder/ssm_parameter.rb
|
427
430
|
- lib/awspec/helper/finder/subnet.rb
|
428
431
|
- lib/awspec/helper/finder/vpc.rb
|
429
432
|
- lib/awspec/helper/finder/waf.rb
|
@@ -523,6 +526,7 @@ files:
|
|
523
526
|
- lib/awspec/stub/security_group.rb
|
524
527
|
- lib/awspec/stub/ses_identity.rb
|
525
528
|
- lib/awspec/stub/sqs.rb
|
529
|
+
- lib/awspec/stub/ssm_parameter.rb
|
526
530
|
- lib/awspec/stub/subnet.rb
|
527
531
|
- lib/awspec/stub/vpc.rb
|
528
532
|
- lib/awspec/stub/vpn_connection.rb
|
@@ -591,6 +595,7 @@ files:
|
|
591
595
|
- lib/awspec/type/ses_identity.rb
|
592
596
|
- lib/awspec/type/ses_send_quota.rb
|
593
597
|
- lib/awspec/type/sqs.rb
|
598
|
+
- lib/awspec/type/ssm_parameter.rb
|
594
599
|
- lib/awspec/type/subnet.rb
|
595
600
|
- lib/awspec/type/vpc.rb
|
596
601
|
- lib/awspec/type/vpn_connection.rb
|
@@ -617,7 +622,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
617
622
|
version: '0'
|
618
623
|
requirements: []
|
619
624
|
rubyforge_project:
|
620
|
-
rubygems_version: 2.
|
625
|
+
rubygems_version: 2.5.2
|
621
626
|
signing_key:
|
622
627
|
specification_version: 4
|
623
628
|
summary: RSpec tests for your AWS resources.
|