---
modules:
  - name: {{appName}}-srv
    type: {{language}}
    path: {{& srvPath}}
    {{#isJava}}
    {{#hasMultitenancy}}
    properties:
      CDS_MULTITENANCY_APPUI_TENANTSEPARATOR: "-"
    {{/hasMultitenancy}}
    {{/isJava}}
    requires:
    {{#isJava}}
      - name: app-api{{#hasMultitenancy}}
        properties:
          CDS_MULTITENANCY_APPUI_URL: ~{url}{{/hasMultitenancy}}
    {{/isJava}}

  - name: {{appName}}
    type: approuter.nodejs
    path: {{& approuterPath}}
    parameters:
      keep-existing-routes: true
      disk-quota: 256M
      memory: 256M
    {{#hasMultitenancy}}
    properties:
      TENANT_HOST_PATTERN: "^(.*)-${default-uri}"
    {{/hasMultitenancy}}
    requires:
      - name: srv-api
        group: destinations
        properties:
          name: srv-api # must be used in xs-app.json as well
          url: ~{srv-url}
          forwardAuthToken: true
      {{#hasMultitenancy}}
      - name: mtx-api
        group: destinations
        properties:
          name: mtx-api # must be used in xs-app.json as well
          url: ~{mtx-url}
      {{/hasMultitenancy}}
    {{#isNodejs}}
    provides:
      - name: app-api
        properties:
          app-protocol: ${protocol}
          app-uri: ${default-uri}
    {{/isNodejs}}
    {{#isJava}}
    provides:
      - name: app-api
        properties:
          app-protocol: ${protocol}
          app-uri: ${default-uri}
          url: ${default-url}
    {{/isJava}}

  - name: {{appName}}-mtx
    type: nodejs
    path: {{#isNodejs}}gen/{{/isNodejs}}mtx/sidecar{{#isNodejs}}
    requires:
      - name: app-api
        properties:
          SUBSCRIPTION_URL: ~{app-protocol}://\${tenant_subdomain}-~{app-uri}
    {{/isNodejs}}

resources:
  - name: {{appName}}-auth
    type: org.cloudfoundry.managed-service
    requires:
      - name: app-api
    parameters:
      service: xsuaa
      path: ./xs-security.json
      config:
        xsappname: {{appName}}-${org}-${space}
        tenant-mode: {{#hasMultitenancy}}shared{{/hasMultitenancy}}{{^hasMultitenancy}}dedicated{{/hasMultitenancy}}
        oauth2-configuration:
          redirect-uris:
            - https://*~{app-api/app-uri}/**

  - name: {{appName}}-ias
    type: org.cloudfoundry.managed-service
    requires:
      - name: app-api
    parameters:
      service: identity
