# File lib/fog/rackspace/requests/storage/put_static_obj_manifest.rb, line 56
        def put_static_obj_manifest(container, object, segments, options = {})
          c = mock_container! container

          # Verify paths.
          errors = []
          segments.each do |segment|
            cname, oname = segment[:path].split('/', 2)
            target_container = mock_container(cname)

            raise Fog::Storage::Rackspace::NotFound.new unless target_container

            target_object = target_container.mock_object oname
            unless target_object
              errors << [segment[:path], '404 Not Found']
              next
            end

            unless target_object.hash == segment[:etag]
              errors << [segment[:path], 'Etag Mismatch']
            end

            unless target_object.bytes_used == segment[:size_bytes]
              errors << [segment[:path], 'Size Mismatch']
            end
          end

          unless errors.empty?
            response = Excon::Response.new
            response.status = 400
            response.body = Fog::JSON.encode({ 'Errors' => errors })

            error = Excon::Errors.status_error({}, response)
            raise Fog::Storage::Rackspace::BadRequest.slurp(error)
          end

          data = Fog::JSON.encode(segments)
          o = c.add_object object, data
          o.static_manifest = true

          response = Excon::Response.new
          response.status = 201
          response
        end