class ApiGatewayStageParser

Public Instance Methods

parse(cfn_model:, resource:) click to toggle source
# File lib/cfn-model/parser/api_gateway_stage_parser.rb, line 9
def parse(cfn_model:, resource:)
  api_stage = resource

  attach_usage_plan_to_api_stage(cfn_model: cfn_model, api_stage: api_stage)
  attach_deployment_id_to_api_stage(cfn_model: cfn_model, api_stage: api_stage)
  api_stage
end

Private Instance Methods

attach_deployment_id_to_api_stage(cfn_model:, api_stage:) click to toggle source
# File lib/cfn-model/parser/api_gateway_stage_parser.rb, line 31
def attach_deployment_id_to_api_stage(cfn_model:, api_stage:)
  api_deployments = cfn_model.resources_by_type 'AWS::ApiGateway::Deployment'
  api_deployments.each do |deployment|
    next if api_stage.deploymentId.nil?
    if References.resolve_resource_id(api_stage.deploymentId) == deployment.logical_resource_id
      api_stage.deployment = deployment.logical_resource_id
    end
  end
end
attach_usage_plan_to_api_stage(cfn_model:, api_stage:) click to toggle source
# File lib/cfn-model/parser/api_gateway_stage_parser.rb, line 19
def attach_usage_plan_to_api_stage(cfn_model:, api_stage:)
  usage_plans = cfn_model.resources_by_type 'AWS::ApiGateway::UsagePlan'
  usage_plans.each do |usage_plan|
    next if usage_plan.apiStages.nil?
    usage_plan.apiStages.each do |up_api_stage|
      if References.resolve_resource_id(up_api_stage['Stage']) == api_stage.logical_resource_id
          api_stage.usage_plan_ids << usage_plan.logical_resource_id
      end
    end
  end
end