def deploy(environment_options)
      environment_parameter_guard(environment_options)
      if no_op?
        puts 'Nothing to deploy.'
        return
      end

      deployment_start_message = 'Deploying '
      deployment_start_message += "#{dynamo_tables.length} Dynamo Tables, " unless dynamo_tables.empty?
      deployment_start_message += "#{lambdas.length} Lambdas, " unless lambdas.empty?
      deployment_start_message += "#{api_gateways.length} API Gateways " unless api_gateways.empty?
      deployment_start_message += "to Environment: #{environment_options.name}"
      puts deployment_start_message

      total_time_start = Time.now

      services_time_start = total_time_start
      dynamo_tables.each { |table| table.deploy(environment_options, @dynamo_client, @region) }
      services_time_end = Time.now

      unless dynamo_tables.empty?
        puts "Deploying #{dynamo_tables.length} Table(s) took: \
        #{Time.at(services_time_end - services_time_start).utc.strftime('%H:%M:%S')}"
      end

      services_time_start = Time.now
      lambdas.each { |lambda| lambda.deploy(environment_options, @lambda_client, @region) }
      services_time_end = Time.now

      unless lambdas.empty?
        puts "Deploying #{lambdas.length} Lambda(s) took: \
        #{Time.at(services_time_end - services_time_start).utc.strftime('%H:%M:%S')}"
      end

      services_time_start = Time.now
      api_gateways.each { |apig| apig.deploy(environment_options, @api_gateway_client, @region) }
      services_time_end = Time.now

      unless api_gateways.empty?
        puts "Deploying #{api_gateways.length} API Gateway(s) took: \
        #{Time.at(services_time_end - services_time_start).utc.strftime('%H:%M:%S')}"
      end

      total_time_end = Time.now

      puts "Total API Deployment took: \
      #{Time.at(total_time_end - total_time_start).utc.strftime('%H:%M:%S')}"
      puts "Successfully deployed API to #{environment_options.name}"

      true
    end
def deploy(environment_options)
      environment_parameter_guard(environment_options)
      if no_op?
        puts 'Nothing to deploy.'
        return
      end

      deployment_start_message = 'Deploying '
      deployment_start_message += "#{dynamo_tables.length} Dynamo Tables, " unless dynamo_tables.empty?
      deployment_start_message += "#{lambdas.length} Lambdas, " unless lambdas.empty?
      deployment_start_message += "#{api_gateways.length} API Gateways " unless api_gateways.empty?
      deployment_start_message += "to Environment: #{environment_options.name}"
      puts deployment_start_message

      total_time_start = Time.now

      services_time_start = total_time_start
      dynamo_tables.each { |table| table.deploy(environment_options, @dynamo_client, @region) }
      services_time_end = Time.now

      unless dynamo_tables.empty?
        puts "Deploying #{dynamo_tables.length} Table(s) took: \
        #{Time.at(services_time_end - services_time_start).utc.strftime('%H:%M:%S')}"
      end

      services_time_start = Time.now
      lambdas.each { |lambda| lambda.deploy(environment_options, @lambda_client, @region) }
      services_time_end = Time.now

      unless lambdas.empty?
        puts "Deploying #{lambdas.length} Lambda(s) took: \
        #{Time.at(services_time_end - services_time_start).utc.strftime('%H:%M:%S')}"
      end

      services_time_start = Time.now
      api_gateways.each { |apig| apig.deploy(environment_options, @api_gateway_client, @region) }
      services_time_end = Time.now

      unless api_gateways.empty?
        puts "Deploying #{api_gateways.length} API Gateway(s) took: \
        #{Time.at(services_time_end - services_time_start).utc.strftime('%H:%M:%S')}"
      end

      total_time_end = Time.now

      puts "Total API Deployment took: \
      #{Time.at(total_time_end - total_time_start).utc.strftime('%H:%M:%S')}"
      puts "Successfully deployed API to #{environment_options.name}"

      true
    end
Deploys all services to the specified environment.

 @param [LambdaWrap::Environment] environment_options the Environment to deploy