---
x-rie-lambda-common: &rie-lambda-common
  platform: linux/amd64
  env_file:
    - path: .env
      required: false
  environment:
    ENVIRONMENT: qa
    AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-}
    AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-}
    AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN:-}
    AWS_REGION: us-east-1
    SNOWFLAKE_ACCOUNT: ${SNOWFLAKE_ACCOUNT:-}
    SNOWFLAKE_DATABASE: ${SNOWFLAKE_DATABASE:-}
    SNOWFLAKE_SCHEMA: ${SNOWFLAKE_SCHEMA:-}
    SNOWFLAKE_ROLE: ${SNOWFLAKE_ROLE:-}
    SNOWFLAKE_WAREHOUSE: ${SNOWFLAKE_WAREHOUSE:-}
    SNOWFLAKE_USER: ${SNOWFLAKE_USER:-}
    OWS_PROFILE_TYPE: ${OWS_PROFILE_TYPE:-}
    OWS_PROFILE_ID: ${OWS_PROFILE_ID:-}
  healthcheck:
    test: ["CMD-SHELL", "bash -c '</dev/tcp/localhost/8080'"]
    interval: 60s
    timeout: 3s
    retries: 5
    start_period: 24s
    start_interval: 6s

services:
  lambda-integration-tests:
    platform: linux/amd64
    build:
      context: .
      dockerfile: Dockerfile
    command: ./lambda-integration-tests.sh
    volumes:
      - ./report:/tests/report
      - ./integration:/tests/integration
      - ./src:/tests/src
    environment:
      - AWS_ACCESS_KEY_ID
      - AWS_SECRET_ACCESS_KEY
      - AWS_SESSION_TOKEN
      - AWS_REGION
      - FUNCTION_NAME=${function:-}
      - LAMBDA_ENDPOINT_URL=${LAMBDA_ENDPOINT_URL:-}
    depends_on:
      custom-reports-lambda:
        condition: service_healthy
        required: false
      generate-attachments-lambda:
        condition: service_healthy
        required: false

  custom-reports-lambda:
    <<: *rie-lambda-common
    ports: ["9001:8080"]
    profiles: [custom_reports]
    build:
      context: ../lambda/custom_reports
      dockerfile: Dockerfile

  generate-attachments-lambda:
    <<: *rie-lambda-common
    ports: ["9002:8080"]
    profiles: [generate_attachments]
    build:
      context: ../lambda/generate_attachments
      dockerfile: Dockerfile
