44# $ cd /path/to/local/api-management-utils/ansible
55# $ DIST_DIR=/path/to/this/repo make template-manifest
66#
7+ # The only way to test changes in here is to run the deployment and regression test each environment.
8+ # If making changes to this file,
9+ # generate and save the full maninfest.yml file before making any changes
10+ # to compare against your changed file.
711#
812APIGEE_ENVIRONMENTS :
9- - display_name : Internal Development
10- name : internal-dev
13+ - name : internal-dev
14+ additional_proxies :
15+ - identity-service-mock-internal-dev
1116 variants :
12- - name : alpha
13- - name : rc
14- - name : fix
15- - name : ft01
16- service : fti
17- - name : ft04
18- service : ftiv
19- - name : ft05
20- service : ftv
21- - name : ft09
22- service : ftix
23- - name : ft22
24- service : ftxxii
25- - display_name : Internal Development Sandbox
26- name : internal-dev-sandbox
27- - display_name : Integration Testing
28- name : int
29- - display_name : Internal QA
30- name : internal-qa
31- - display_name : Internal QA Sandbox
32- name : internal-qa-sandbox
33- - display_name : Sandbox
34- name : sandbox
35- - display_name : Dev
36- name : dev
17+ - name : alpha-internal-dev
18+ display_name : Internal Development - alpha
19+ - name : rc-internal-dev
20+ display_name : Internal Development - rc
21+ - name : fix-internal-dev
22+ display_name : Internal Development - fix
23+ - name : fti-internal-dev
24+ display_name : Internal Development - ft01
25+ - name : ftiv-internal-dev
26+ display_name : Internal Development - ft04
27+ - name : ftv-internal-dev
28+ display_name : Internal Development - ft05
29+ - name : ftix-internal-dev
30+ display_name : Internal Development - ft09
31+ - name : ftxxii-internal-dev
32+ display_name : Internal Development - ft22
33+
34+ - name : internal-dev-sandbox
35+ variants :
36+ - name : internal-dev-sandbox
37+ display_name : Internal Development Sandbox
38+
39+ - name : int
40+ additional_proxies :
41+ - identity-service-int-no-smartcard
42+ - identity-service-mock-int
43+ variants :
44+ - name : int
45+ display_name : Integration Testing
46+
47+ - name : internal-qa
48+ additional_proxies :
49+ - identity-service-internal-qa-int
50+ - identity-service-mock-internal-qa
51+ variants :
52+ - name : internal-qa
53+ display_name : Internal QA
54+
55+ - name : internal-qa-sandbox
3756 variants :
38- - name : dep
57+ - name : internal-qa-sandbox
58+ display_name : Internal QA Sandbox
59+
60+ - name : sandbox
61+ variants :
62+ - name : sandbox
63+ display_name : Sandbox
64+
65+ - name : dev
66+ additional_proxies :
67+ - identity-service-dep-dev
68+ variants :
69+ - name : dep-dev
70+ display_name : Dev - dep
71+
3972- name : prod
4073 approval_type : manual
41- display_name : Production
74+ variants :
75+ - name : prod
76+ display_name : Production
4277
4378ACCESS_MODES :
4479 - name : healthcare-worker
@@ -47,13 +82,17 @@ ACCESS_MODES:
4782 scopes : ['urn:nhsd:apim:user-nhs-id:aal3:e-referrals-service-api']
4883 requireCallbackUrl : true
4984 description : User restricted
85+
5086 - name : application-restricted
5187 nameSuffix : -application-restricted
5288 displayName : Application Restricted
5389 scopes : ['urn:nhsd:apim:app:level3:e-referrals-service-api']
5490 requireCallbackUrl : false
5591 description : Application Restricted
5692---
93+ {% import 'macros/manifest_macros.yml' as macros %}
94+ {% set TITLE = 'e-Referral Service' %}
95+
5796meta :
5897 api :
5998 name : e-referrals-service-api
@@ -62,128 +101,25 @@ meta:
62101 schema_version : 1
63102apigee :
64103 environments :
65-
66104{% for ENV in APIGEE_ENVIRONMENTS %}
67- {% set portal_visibility = ENV.portal_visibility | default(true) %}
68- {% set TITLE = 'e-Referral Service' %}
69- {% set NAME = 'e-referrals-service-api-' + ENV.name %}
70- {% if ENV.name == 'internal-dev' or ENV.name == 'dev' %}
71- - name : {{ ENV.name }}
72- products :
73- {% for VARIANT in ENV.variants %}
74- {% for MODE in ACCESS_MODES %}
75- - name : e-referrals-service-api-{{ VARIANT.service | default(VARIANT.name) }}-{{ ENV.name }}{{ MODE.nameSuffix }}
76- approvalType : {{ ENV.approval_type | default('auto') }}
77- attributes :
78- - name : access
79- value : public
80- - name : ratelimiting
81- value :
82- e-referrals-service-api-{{ VARIANT.service | default(VARIANT.name) }}-{{ ENV.name }} :
83- quota :
84- enabled : false
85- spikeArrest :
86- enabled : false
87- app :
88- quota :
89- enabled : true
90- interval : 1
91- limit : 600
92- timeunit : minute
93- spikeArrest :
94- enabled : true
95- ratelimit : 720pm
96- description : {{ MODE.description }}
97- displayName : {{ TITLE }} - {{ MODE.displayName }} ( {{ ENV.display_name}} - {{ VARIANT.name }} )
98- environments : [ {{ ENV.name }} ]
99- proxies :
100- - e-referrals-service-api-{{ VARIANT.service | default(VARIANT.name) }}-{{ ENV.name }}
101- - identity-service-{{ ENV.name }}
102- {% if ENV.name == 'dev' %}
103- - identity-service-dep-{{ ENV.name }}
104- {% endif %}
105- {% if ENV.name == 'internal-dev' %}
106- - identity-service-mock-{{ ENV.name }}
107- {% endif %}
108- scopes : {{ MODE.scopes }}
109- quota : 600
110- quotaInterval : 1
111- quotaTimeUnit : minute
112- {% endfor %}
113- {% endfor %}
114- specs :
115- {% for VARIANT in ENV.variants %}
116- - name : e-referrals-service-api-{{ VARIANT.service | default(VARIANT.name) }}-{{ ENV.name }}
117- path : e-referrals-service-api.json
118- {% endfor %}
119- api_catalog :
120- {% for VARIANT in ENV.variants %}
121- {% for MODE in ACCESS_MODES %}
122- - edgeAPIProductName : e-referrals-service-api-{{ VARIANT.service | default(VARIANT.name) }}-{{ ENV.name }}{{ MODE.nameSuffix }}
123- anonAllowed : true
124- description : {{ TITLE }} FHIR API - {{ MODE.displayName|lower }} access mode - {{ ENV.display_name|lower }} - {{ VARIANT.name }} environment
125- requireCallbackUrl : {{ MODE.requireCallbackUrl | default(true) }}
126- title : {{ TITLE }} - {{ MODE.displayName }} ( {{ ENV.display_name}} - {{ VARIANT.name }} )
127- visibility : {{ portal_visibility }}
128- specId : e-referrals-service-api-{{ VARIANT.service | default(VARIANT.name) }}-{{ ENV.name }}
129- {% endfor %}
130- {% endfor %}
131- {% else %}
132- - name : {{ ENV.name }}
133- products :
134- {% for MODE in ACCESS_MODES %}
135- - name : e-referrals-service-api-{{ ENV.name }}{{ MODE.nameSuffix }}
136- approvalType : {{ ENV.approval_type | default('auto') }}
137- attributes :
138- - name : access
139- value : public
140- - name : ratelimiting
141- value :
142- e-referrals-service-api-{{ ENV.name }} :
143- quota :
144- enabled : false
145- spikeArrest :
146- enabled : false
147- app :
148- quota :
149- enabled : true
150- interval : 1
151- limit : 600
152- timeunit : minute
153- spikeArrest :
154- enabled : true
155- ratelimit : 720pm
156- description : {{ MODE.description }}
157- displayName : {{ TITLE }} - {{ MODE.displayName }} ( {{ ENV.display_name}} )
158- environments : [ {{ ENV.name }} ]
159- proxies :
160- - e-referrals-service-api-{{ ENV.name }}
161- - identity-service-{{ ENV.name }}
162- {% if ENV.name == 'int' %}
163- - identity-service-int-no-smartcard
164- - identity-service-mock-{{ ENV.name }}
165- {% endif %}
166- {% if ENV.name == 'internal-qa' %}
167- - identity-service-{{ ENV.name }}-int
168- - identity-service-mock-{{ ENV.name }}
169- {% endif %}
170- scopes : {{ MODE.scopes }}
171- quota : 600
172- quotaInterval : 1
173- quotaTimeUnit : minute
174- {% endfor %}
105+ {{ macros.environment(ENV) }}
106+
107+ {% for VARIANT in ENV.variants %}
108+ {% for MODE in ACCESS_MODES %}
109+ {{ macros.product(ENV, MODE, TITLE, VARIANT.name, VARIANT.display_name) }}
110+ {% endfor %}
111+ {% endfor %}
112+
175113 specs :
176- - name : {{ NAME }}
177- path : e-referrals-service-api.json
114+ {% for VARIANT in ENV.variants %}
115+ {{ macros.specs(VARIANT.name) }}
116+ {% endfor %}
117+
178118 api_catalog :
179- {% for MODE in ACCESS_MODES %}
180- - edgeAPIProductName : e-referrals-service-api-{{ ENV.name }}{{ MODE.nameSuffix }}
181- anonAllowed : true
182- description : {{ TITLE }} FHIR API - {{ MODE.displayName|lower }} access mode - {{ ENV.display_name|lower }} environment
183- requireCallbackUrl : {{ MODE.requireCallbackUrl | default(true) }}
184- title : {{ TITLE }} - {{ MODE.displayName }} ( {{ ENV.display_name}} )
185- visibility : {{ portal_visibility }}
186- specId : {{ NAME }}
187- {% endfor %}
188- {% endif %}
119+ {% for VARIANT in ENV.variants %}
120+ {% for MODE in ACCESS_MODES %}
121+ {{ macros.api_catalog(MODE, TITLE, VARIANT.name, VARIANT.display_name) }}
122+ {% endfor %}
123+ {% endfor %}
124+
189125{% endfor %}
0 commit comments