-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmanifest_template.yml
More file actions
83 lines (83 loc) · 2.61 KB
/
manifest_template.yml
File metadata and controls
83 lines (83 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
SERVICE_NAME: {{ SERVICE_NAME }}
PRODUCT_DISPLAY_NAME: {{ PRODUCT_DISPLAY_NAME | default(SERVICE_NAME) }}
DESCRIPTION: {{ PRODUCT_DESCRIPTION }}
APIGEE_ENVIRONMENTS:
- name: internal-dev
display_name: Internal Development
has_mock_auth: true
- name: internal-qa
display_name: Internal QA
has_mock_auth: true
- name: ref
display_name: Reference
has_mock_auth: true
# Enable environments when ready by uncommenting:
# - name: internal-dev-sandbox
# display_name: Internal Development Sandbox
# product_visibility: private
# - name: internal-qa
# display_name: Internal QA
# has_mock_auth: true
# product_visibility: private
# - name: internal-qa-sandbox
# display_name: Internal QA Sandbox
# product_visibility: private
# - name: sandbox
# display_name: Sandbox
# product_visibility: private
# - name: int
# display_name: Integration Testing
---
meta:
api:
name: {{ SERVICE_NAME }}
guid: {{ GUID }}
spec_guids:
- {{ SPEC_GUID }}
schema_version: 1.3
apigee:
environments:
{% raw %}{% for ENV in APIGEE_ENVIRONMENTS %}
{% set TITLE = PRODUCT_DISPLAY_NAME + ' (' + ENV.display_name + ' Environment)' %}
{% set NAME = SERVICE_NAME + '-' + ENV.name %}
- name: {{ ENV.name }}
products:
- name: {{ NAME }}
approvalType: auto
attributes:
- name: access
value: {{ ENV.product_visibility | default('public') }}
# For a parameterised example of rate limiting per environment,
# see https://github.com/NHSDigital/personal-demographics-service-api/blob/master/manifest_template.yml
- name: ratelimiting
value:
{{ NAME }}:
quota:
enabled: true
limit: 300
interval: 1
timeunit: minute
spikeArrest:
enabled: true
ratelimit: 600pm # 10 requests per second
app:
quota:
enabled: false
spikeArrest:
enabled: false
description: {{ DESCRIPTION }}
displayName: {{ TITLE }}
environments: [ {{ ENV.name }} ]
proxies:
- {{ NAME }}
- identity-service-{{ ENV.name }}
{% if ENV.has_mock_auth | default(false) %}
- identity-service-mock-{{ ENV.name }}
{% endif %}
scopes:
- 'urn:nhsd:apim:app:level3:{{ SERVICE_NAME }}'
- 'urn:nhsd:apim:user-nhs-cis2:aal3:{{ SERVICE_NAME }}'
specs:
- name: {{ NAME }}
path: {{ SERVICE_NAME }}.json
{% endfor %}{% endraw %}