# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
version: "1.0"
module:
  meta:
    type: remote
  spec:
    functions:
      - function:
          meta:
            kind: http
            type: k8s-demo/greeter
          spec:
            endpoint: http://statefun-python:8000/statefun
            states:
              - seen_count
            maxNumBatchRequests: 500
            timeout: 2min
    ingresses:
      - ingress:
          meta:
            type: statefun.kafka.io/routable-protobuf-ingress
            id: k8s-demo/names-ingress
          spec:
            address: kafka-service:9092
            consumerGroupId: my-group-id
            topics:
              - topic: logins
                typeUrl: com.googleapis/k8s.demo.LoginEvent
                targets:
                  - k8s-demo/greeter
    egresses:
      - egress:
          meta:
            type: statefun.kafka.io/generic-egress
            id: k8s-demo/greets-egress
          spec:
            address: kafka-service:9092
            deliverySemantic:
              type: exactly-once
              transactionTimeoutMillis: 100000

