# encoding: utf-8
# copyright: 2018, The Authors

title 'Sample Section'

gcp_project_id = attribute('gcp_project_id')

# you add controls here
control 'gcp-single-region-1.0' do                                                    # A unique ID for this control
  impact 1.0                                                                          # The criticality, if this control fails.
  title 'Ensure single region has the correct properties.'                            # A human-readable title
  desc 'An optional description...'
  describe google_compute_region(project: gcp_project_id, name: 'europe-west2') do    # The actual test
    its('zone_names') { should include 'europe-west2-a' }
  end
end

# plural resources can be leveraged to loop across many resources
control 'gcp-regions-loop-1.0' do                                                     # A unique ID for this control
  impact 1.0                                                                          # The criticality, if this control fails.
  title 'Ensure regions have the correct properties in bulk.'                         # A human-readable title
  desc 'An optional description...'
  google_compute_regions(project: gcp_project_id).region_names.each do |region_name|  # Loop across all regions by name
    describe google_compute_region(project: gcp_project_id, name: region_name) do     # The test for a single region
      it { should be_up }
    end
  end
end
