class GeoEngineer::Resources::AwsIamPolicyAttachment
AwsIamPolicyAttachment
aws_iam_policy_attachment
terrform resource,
{www.terraform.io/docs/providers/aws/r/iam_policy_attachment.html Terraform Docs}
Public Instance Methods
build_remote_resource_params(arn, entities)
click to toggle source
# File lib/geoengineer/resources/aws_iam_policy_attachment.rb, line 84 def build_remote_resource_params(arn, entities) { name: _policy.name, _terraform_id: arn, _geo_id: _policy.name, policy_arn: arn, users: entities[:policy_users].map(&:user_name), groups: entities[:policy_groups].map(&:group_name), roles: entities[:policy_roles].map(&:role_name) } end
find_remote_as_individual?()
click to toggle source
# File lib/geoengineer/resources/aws_iam_policy_attachment.rb, line 71 def find_remote_as_individual? true end
remote_resource_params()
click to toggle source
# File lib/geoengineer/resources/aws_iam_policy_attachment.rb, line 75 def remote_resource_params return {} unless _policy return {} unless _policy.remote_resource arn = _policy.remote_resource._terraform_id entities = AwsClients.iam(provider).list_entities_for_policy({ policy_arn: arn }) build_remote_resource_params(arn, entities) end
terraform_groups_attributes()
click to toggle source
# File lib/geoengineer/resources/aws_iam_policy_attachment.rb, line 49 def terraform_groups_attributes return {} if groups.nil? groups_attributes = { 'groups.#' => groups.count.to_s } groups.each_with_index { |g, i| groups_attributes["groups.#{i}"] = g } groups_attributes end
terraform_roles_attributes()
click to toggle source
# File lib/geoengineer/resources/aws_iam_policy_attachment.rb, line 58 def terraform_roles_attributes return {} if roles.nil? roles_attributes = { 'roles.#' => roles.count.to_s } roles.each_with_index { |r, i| roles_attributes["roles.#{i}"] = r } roles_attributes end
terraform_users_attributes()
click to toggle source
# File lib/geoengineer/resources/aws_iam_policy_attachment.rb, line 40 def terraform_users_attributes return {} if users.nil? user_attributes = { 'users.#' => users.count.to_s } users.each_with_index { |u, i| user_attributes["users.#{i}"] = u } user_attributes end
to_terraform_state()
click to toggle source
Calls superclass method
GeoEngineer::Resource#to_terraform_state
# File lib/geoengineer/resources/aws_iam_policy_attachment.rb, line 25 def to_terraform_state tfstate = super attributes = { 'name' => name.to_s } attributes['policy_arn'] = remote_resource.policy_arn if remote_resource attributes = attributes .merge(terraform_users_attributes) .merge(terraform_groups_attributes) .merge(terraform_roles_attributes) tfstate[:primary][:attributes] = attributes tfstate end