class AwsVpc

def fetch_from_api

def fetch_from_api
  backend = BackendFactory.create(inspec_runner)
  if @vpc_id.nil?
    filter = { name: 'isDefault', values: ['true'] }
  else
    filter = { name: 'vpc-id', values: [@vpc_id] }
  end
  resp = backend.describe_vpcs({ filters: [filter] })
  vpc = resp.vpcs[0].to_h
  @exists = !vpc.empty?
  return unless @exists
  @cidr_block = vpc[:cidr_block]
  @dhcp_options_id = vpc[:dhcp_options_id]
  @instance_tenancy = vpc[:instance_tenancy]
  @is_default = vpc[:is_default]
  @state = vpc[:state]
  @vpc_id = vpc[:vpc_id]
end

def to_s

def to_s
  "VPC #{vpc_id}"
end

def validate_params(raw_params)

def validate_params(raw_params)
  validated_params = check_resource_param_names(
    raw_params: raw_params,
    allowed_params: [:vpc_id],
    allowed_scalar_name: :vpc_id,
    allowed_scalar_type: String,
  )
  if validated_params.key?(:vpc_id) && validated_params[:vpc_id] !~ /^vpc\-([0-9a-f]{8})|(^vpc\-[0-9a-f]{17})$/
    raise ArgumentError, 'aws_vpc VPC ID must be in the format "vpc-" followed by 8 or 17 hexadecimal characters.'
  end
  validated_params
end