# Welcome to Serverless!
#
# This file is the main config file for your service.
# It's very minimal at this point and uses default values.
# You can always add more config options for more control.
# We've included some commented out config examples here.
# Just uncomment any of them to get that config option.
#
# For full config options, check the docs:
#    docs.serverless.com
#
# Happy Coding!

service: azure-python # NOTE: update this with your service name

# You can pin your service to only deploy with a specific Serverless version
# Check out our docs for more details
frameworkVersion: '2'

provider:
  name: azure
  region: West Europe
  runtime: python3.6 # python3.7 or python3.8 also available
  # os: linux  # linux is the only operating system available for python
  # prefix: "sample"  # prefix of generated resource name
  # subscriptionId: A356AC8C-E310-44F4-BF85-C7F29044AF99
  # stage: dev
  # type: premium  # premium azure functions

  environment: # these will be created as application settings
    VARIABLE_FOO: 'foo'

  # you can define apim configuration here
  # apim:
  #   apis:
  #     - name: v1
  #       subscriptionRequired: false # if true must provide an api key
  #       displayName: v1
  #       description: V1 sample app APIs
  #       protocols:
  #         - https
  #       path: v1
  #       tags:
  #         - tag1
  #         - tag2
  #       authorization: none
  #   cors:
  #     allowCredentials: false
  #     allowedOrigins:
  #       - "*"
  #     allowedMethods:
  #       - GET
  #       - POST
  #       - PUT
  #       - DELETE
  #       - PATCH
  #     allowedHeaders:
  #       - "*"
  #     exposeHeaders:
  #       - "*"

plugins: # look for additional plugins in the community plugins repo: https://github.com/serverless/plugins
  - serverless-azure-functions

# you can add packaging information here
package:
  patterns:
    - '!env/**'
    - '!.env/**'
    - '!local.settings.json'
    - '!.vscode/**'
    - '!__pycache__/**'
    - '!node_modules/**'
    - '!.python_packages/**'
    - '!.funcignore'
    - '!package.json'
    - '!package-lock.json'
    - '!.gitignore'
    - '!.git/**'
  # - '!exclude-me.py'
  # - '!exclude-me-dir/**'
  #   - include-me.py
  #   - include-me-dir/**

functions:
  hello:
    handler: src/handlers/hello.main
    events:
      - http: true
        methods:
          - GET
        authLevel: anonymous

  goodbye:
    handler: src/handlers/goodbye.main
    events:
      - http: true
        methods:
          - GET
        authLevel: anonymous
  # The following are a few examples of other events you can configure:
  # storageBlob:
  #   handler: src/handlers/storageBlob
  #   events:
  #     - blob:
  #       x-azure-settings:
  #         name: blob # Specifies which name is available on `context`
  #         path: blob-sample/{blobName}
  #         connection: AzureWebJobsStorage # App Setting/environment variable which contains Storage Account Connection String
  # storageQueue:
  #   handler: src/handlers/storageQueue
  #   events:
  #     - queue: queue-sample
  #       x-azure-settings:
  #         name: message # Specifies which name is available on `context`
  #         connection: AzureWebJobsStorage
  # timer:
  #   handler: src/handlers/timer
  #   events:
  #     - timer:
  #       x-azure-settings:
  #         schedule: '*/10 * * * * *'
  # eventhub:
  #   handler: src/handlers/eventHub
  #   events:
  #     - eventHub:
  #       x-azure-settings:
  #         name: eventHubMessages # Specifies which name it's available on `context`
  #         eventHubName: sample-hub # Specifies the Name of the Event Hub
  #         consumerGroup: $Default # Specifies the consumerGroup to listen with
  #         connection: EVENT_HUBS_CONNECTION # App Setting/environment variable which contains Event Hubs Namespace Connection String
  # serviceBusQueue:
  #   handler: src/handlers/serviceBusQueue
  #   events:
  #     - serviceBus:
  #       x-azure-settings:
  #         name: message # Specifies which name is available on `context`
  #         queueName: sample-queue # Name of the service bus queue to consume
  #         connection: SERVICE_BUS_CONNECTION # App Setting/environment variable variable which contains Service Bus Namespace Connection String
  # serviceBusTopic:
  #   handler: src/handlers/serviceBusTopic
  #   events:
  #     - serviceBus:
  #       x-azure-settings:
  #         name: message # Specifies which name it's available on `context`
  #         topicName: sample-topic # Name of the service bus topic to consume
  #         subscriptionName: sample-subscription # Name of the topic subscription to retrieve from
  #         connection: SERVICE_BUS_CONNECTION # App Setting/environment variable variable which contains Service Bus Namespace Connection String
