---
modules:
  - name: {{appName}}-srv
    type: {{language}}
    path: {{& srvPath}}
    requires:
      - name: {{appName}}-ias
        parameters:
          config:
            credential-type: X509_GENERATED
            app-identifier: srv
    parameters:
      routes:
        - route: "${default-url}"
        - route: "${default-host}.cert.${default-domain}"
    provides:
      - name: srv-api
        properties:
          srv-cert-url: '${protocol}://${default-host}.cert.${default-domain}'

  - name: {{appName}}
    type: approuter.nodejs
    path: {{& approuterPath}}
    requires:
      - name: {{appName}}-ias
        parameters:
          config:
            credential-type: X509_GENERATED
            app-identifier: approuter
      - name: srv-api
        group: destinations
        properties:
          url: ~{srv-cert-url}
          forwardAuthCertificates: true
          forwardAuthToken: true
          strictSSL: true

  - name: {{appName}}-mtx
    type: nodejs
    path: {{#isNodejs}}gen/{{/isNodejs}}mtx/sidecar
    requires:
      - name: {{appName}}-ias
        parameters:
          config:
            credential-type: X509_GENERATED
            app-identifier: mtx

resources:
  - name: {{appName}}-ias
    type: org.cloudfoundry.managed-service
    {{#hasApprouter}}
    requires:
      - name: app-api
    {{/hasApprouter}}
    parameters:
      service: identity
      service-name: {{appName}}-ias
      service-plan: application
      config:
        provided-apis:
          - name: {{appName}}-ias-api
            description: API exposed by the application
        display-name: {{appName}}
        oauth2-configuration:
          token-policy:
            access-token-format: "jwt"
        {{#hasApprouter}}
          redirect-uris:
            - http://localhost:5000/login/callback?authType=ias
            - ~{app-api/app-protocol}://*~{app-api/app-uri}/login/callback
          post-logout-redirect-uris:
            - ~{app-api/app-protocol}://*~{app-api/app-uri}/*/logout.html
        {{/hasApprouter}}
        {{#hasAms}}
        authorization:
          enabled: true
        {{/hasAms}}
        {{#hasMultitenancy}}
        multi-tenant: true
        {{/hasMultitenancy}}
        xsuaa-cross-consumption: true
