# File lib/fog/compute/requests/aws/associate_address.rb, line 35
        def associate_address(instance_id, public_ip)
          response = Excon::Response.new
          response.status = 200
          instance = self.data[:instances][instance_id]
          address = self.data[:addresses][public_ip]
          if instance && address
            address['instanceId'] = instance_id
            instance['originalIpAddress'] = instance['ipAddress']
            # detach other address (if any)
            if self.data[:addresses][instance['originalIpAddress']]
              self.data[:addresses][instance['originalIpAddress']]['instanceId'] = nil
            end
            instance['ipAddress'] = public_ip
            instance['dnsName'] = Fog::AWS::Mock.dns_name_for(public_ip)
            response.status = 200
            response.body = {
              'requestId' => Fog::AWS::Mock.request_id,
              'return'    => true
            }
            response
          elsif !instance
            raise Fog::Compute::AWS::NotFound.new("The instance ID '#{instance_id}' does not exist")
          elsif !address
            raise Fog::Compute::AWS::Error.new("AuthFailure => The address '#{public_ip}' does not belong to you.")
          end
        end