Sha256: 7eda191080e5860254c6446348190b25fa94cf183cf2ef264d57a1fe46cd7738

Contents?: true

Size: 1.65 KB

Versions: 37

Compression:

Stored size: 1.65 KB

Contents

module Fog
  module AWS
    class Compute
      class Real
        require 'fog/aws/parsers/compute/restore_address_to_classic'

        # Move address from VPC to Classic
        #
        # === Returns
        # * response<~Excon::Response>:
        #   * body<~<Hash>:
        #     * 'publicIp'<~String> - IP address
        #     * 'requestId'<~String> - Id of the request
        #     * 'status'<~String> - The status of the move of the IP address (MoveInProgress | InVpc | InClassic)

        def restore_address_to_classic(public_ip)
          request(
            'Action' => 'RestoreAddressToClassic',
            'PublicIp' => public_ip,
            :idempotent => true,
            :parser => Fog::Parsers::AWS::Compute::RestoreAddressToClassic.new
          )
        end
      end

      class Mock
        def restore_address_to_classic(public_ip)
          response      = Excon::Response.new

          address = self.data[:addresses][public_ip]

          if address
            if address[:origin] == 'vpc'
              raise Fog::AWS::Compute::Error.new("InvalidState => You cannot migrate an Elastic IP address that was originally allocated for use in EC2-VPC to EC2-Classic.")
            end

            address['domain']       = 'standard'
            address.delete("allocationId")

            response.status = 200
            response.body = {
              'requestId' => Fog::AWS::Mock.request_id,
              'publicIp'  => public_ip,
              'status'    => "InClassic"
            }

            response
          else
            raise Fog::AWS::Compute::NotFound.new("Address does not exist")
          end
        end
      end
    end
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
fog-aws-3.30.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.29.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.28.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.27.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.26.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.25.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.24.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.23.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.22.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.21.1 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.21.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.20.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.19.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.18.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.17.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.16.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.15.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.14.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.13.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb
fog-aws-3.12.0 lib/fog/aws/requests/compute/restore_address_to_classic.rb