-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmanifest_template.yml
More file actions
104 lines (104 loc) · 3.27 KB
/
manifest_template.yml
File metadata and controls
104 lines (104 loc) · 3.27 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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
SERVICE_NAME: nhs-website-content-api
PRODUCT_DISPLAY_NAME: NHS Website Content API
DESCRIPTION: Provides content from the NHS website as JSON data
APIGEE_ENVIRONMENTS:
- name: internal-dev
display_name: Internal Development
has_mock_auth: true
ratelimit: 60pm # 1 request per second
quota: 60
- name: internal-qa
display_name: Internal QA
has_mock_auth: true
ratelimit: 60pm # 1 request per second
quota: 60
- name: ref
display_name: Reference
has_mock_auth: true
ratelimit: 60pm # 1 request per second
quota: 60
- name: internal-dev-sandbox
display_name: Internal Development Sandbox
portal_visibility: false
ratelimit: 60pm # 1 request per second
quota: 60
- name: internal-qa-sandbox
display_name: Internal QA Sandbox
portal_visibility: false
ratelimit: 60pm # 1 request per second
quota: 60
- name: sandbox
display_name: Sandbox
portal_visibility: false
ratelimit: 60pm # 1 request per second
quota: 60
- name: int
display_name: Integration Testing
ratelimit: 120pm # 2 requests per second
quota: 120 # 2 requests per second
- name: prod
display_name: Production
has_mock_auth: false
portal_visibility: true
ratelimit: 1200pm # 20 requests per second
quota: 1200 # 20 requests per second
---
meta:
api:
name: nhs-website-content-api
guid: 94e8af2f-7173-4bf7-88a2-110ee0ae0d17
spec_guids:
- 1634ea25-8aac-4d73-8928-bcc3155be013
schema_version: 1.3
apigee:
environments:
{% 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: 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: {{ ENV.quota | default(300)}}
interval: 1
timeunit: minute
spikeArrest:
enabled: true
ratelimit: {{ ENV.ratelimit | default('300pm') }}
app:
quota:
enabled: false
spikeArrest:
enabled: false
description: {{ DESCRIPTION }}
displayName: {{ TITLE }}
environments: [ {{ ENV.name }} ]
proxies:
- {{ NAME }}
- identity-service-{{ ENV.name }}
scopes:
- 'urn:nhsd:apim:user-nhs-cis2:aal3:{{ SERVICE_NAME }}'
- 'urn:nhsd:apim:app:level3:{{ SERVICE_NAME }}'
- 'urn:nhsd:apim:user-nhs-id:aal3:{{ SERVICE_NAME }}'
specs:
- name: {{ NAME }}
path: {{ SERVICE_NAME }}.json
api_catalog:
- edgeAPIProductName: {{ NAME }}
anonAllowed: true
description: {{ DESCRIPTION }}
requireCallbackUrl: false
title: {{ TITLE }}
visibility: {{ ENV.portal_visibility | default(true) }}
specId: {{ NAME }}
{% endfor %}