1
1
# APIM subnet
2
2
module "apim_snet" {
3
3
source = " github.com/pagopa/terraform-azurerm-v3.git//subnet?ref=v8.18.0"
4
- name = format (" %s-apim-v2-snet" , local. project )
5
- resource_group_name = format (" %s-vnet-rg" , local. project )
4
+ name = format (" %s-apim-v2-snet" , local. project )
5
+ resource_group_name = format (" %s-vnet-rg" , local. project )
6
6
virtual_network_name = data. azurerm_virtual_network . vnet . name
7
7
address_prefixes = var. cidr_subnet_apim
8
8
9
9
private_endpoint_network_policies_enabled = true
10
- service_endpoints = [" Microsoft.Web" ]
10
+ service_endpoints = [" Microsoft.Web" ]
11
11
}
12
12
13
13
resource "azurerm_network_security_group" "nsg_apim" {
14
- name = format (" %s-apim-v2-nsg" , local. project )
14
+ name = format (" %s-apim-v2-nsg" , local. project )
15
15
resource_group_name = format (" %s-vnet-rg" , local. project )
16
- location = var. location
16
+ location = var. location
17
17
18
18
security_rule {
19
19
name = " managementapim"
@@ -36,39 +36,39 @@ resource "azurerm_subnet_network_security_group_association" "snet_nsg" {
36
36
}
37
37
38
38
resource "azurerm_resource_group" "rg_api" {
39
- name = format (" %s-api-v2-rg" , local. project )
39
+ name = format (" %s-api-v2-rg" , local. project )
40
40
location = var. location
41
41
42
42
tags = var. tags
43
43
}
44
44
45
45
locals {
46
46
apim_cert_name_proxy_endpoint = format (" %s-proxy-endpoint-cert" , local. project )
47
- api_domain = format (" api.%s.%s" , var. dns_zone_prefix , var. external_domain )
48
- logo_api_domain = format (" %s.%s" , var. dns_zone_prefix , var. external_domain )
49
- apim_base_url = " ${ azurerm_api_management_custom_domain . api_custom_domain . gateway [0 ]. host_name } /external"
47
+ api_domain = format (" api.%s.%s" , var. dns_zone_prefix , var. external_domain )
48
+ logo_api_domain = format (" %s.%s" , var. dns_zone_prefix , var. external_domain )
49
+ apim_base_url = " ${ azurerm_api_management_custom_domain . api_custom_domain . gateway [0 ]. host_name } /external"
50
50
}
51
51
52
52
resource "azurerm_key_vault_access_policy" "api_management_policy" {
53
53
key_vault_id = data. azurerm_key_vault . key_vault . id
54
54
tenant_id = data. azurerm_client_config . current . tenant_id
55
55
object_id = module. apim . principal_id
56
56
57
- key_permissions = []
58
- secret_permissions = [" Get" , " List" ]
57
+ key_permissions = []
58
+ secret_permissions = [" Get" , " List" ]
59
59
certificate_permissions = [" Get" , " List" ]
60
- storage_permissions = []
60
+ storage_permissions = []
61
61
}
62
62
63
63
resource "azurerm_key_vault_access_policy" "api_management_policy_pnpg" {
64
64
key_vault_id = data. azurerm_key_vault . key_vault_pnpg . id
65
65
tenant_id = data. azurerm_client_config . current . tenant_id
66
66
object_id = module. apim . principal_id
67
67
68
- key_permissions = []
69
- secret_permissions = [" Get" , " List" ]
68
+ key_permissions = []
69
+ secret_permissions = [" Get" , " List" ]
70
70
certificate_permissions = [" Get" , " List" ]
71
- storage_permissions = []
71
+ storage_permissions = []
72
72
}
73
73
74
74
resource "azurerm_api_management_custom_domain" "api_custom_domain" {
@@ -92,15 +92,15 @@ module "apim" {
92
92
source = " github.com/pagopa/terraform-azurerm-v3.git//api_management?ref=v8.18.0"
93
93
subnet_id = module. apim_snet . id
94
94
location = azurerm_resource_group. rg_api . location
95
- name = format (" %s-apim-v2" , local. project )
95
+ name = format (" %s-apim-v2" , local. project )
96
96
resource_group_name = azurerm_resource_group. rg_api . name
97
97
publisher_name = var. apim_publisher_name
98
98
publisher_email = data. azurerm_key_vault_secret . apim_publisher_email . value
99
99
sku_name = var. apim_sku
100
100
virtual_network_type = " Internal"
101
101
102
102
redis_connection_string = null
103
- redis_cache_id = null
103
+ redis_cache_id = null
104
104
105
105
# This enables the Username and Password Identity Provider
106
106
sign_up_enabled = false
@@ -123,14 +123,14 @@ module "apim" {
123
123
# # monitor ##
124
124
module "monitor" {
125
125
source = " github.com/pagopa/terraform-azurerm-v3.git//api_management_api?ref=v8.18.0"
126
- name = format (" %s-monitor" , var. env_short )
126
+ name = format (" %s-monitor" , var. env_short )
127
127
api_management_name = module. apim . name
128
128
resource_group_name = azurerm_resource_group. rg_api . name
129
129
130
130
description = " Monitor"
131
131
display_name = " Monitor"
132
132
path = " external/status"
133
- protocols = [" https" ]
133
+ protocols = [" https" ]
134
134
135
135
service_url = null
136
136
@@ -146,21 +146,21 @@ module "monitor" {
146
146
api_operation_policies = [
147
147
{
148
148
operation_id = " get"
149
- xml_content = file (" ./api/monitor/mock_policy.xml" )
149
+ xml_content = file (" ./api/monitor/mock_policy.xml" )
150
150
}
151
151
]
152
152
}
153
153
154
154
resource "azurerm_api_management_api_version_set" "apim_external_api_onboarding_auto" {
155
- name = format (" %s-external-api-onboarding-auto" , var. env_short )
155
+ name = format (" %s-external-api-onboarding-auto" , var. env_short )
156
156
resource_group_name = azurerm_resource_group. rg_api . name
157
157
api_management_name = module. apim . name
158
158
display_name = " SelfCare Onboarding"
159
159
versioning_scheme = " Segment"
160
160
}
161
161
162
162
resource "azurerm_api_management_api_version_set" "apim_external_api_onboarding_io" {
163
- name = format (" %s-external-api-onboarding-io" , var. env_short )
163
+ name = format (" %s-external-api-onboarding-io" , var. env_short )
164
164
resource_group_name = azurerm_resource_group. rg_api . name
165
165
api_management_name = module. apim . name
166
166
display_name = " SelfCare Onboarding PA prod-io"
@@ -169,7 +169,7 @@ resource "azurerm_api_management_api_version_set" "apim_external_api_onboarding_
169
169
170
170
module "apim_external_api_onboarding_auto_v1" {
171
171
source = " github.com/pagopa/terraform-azurerm-v3.git//api_management_api?ref=v8.18.0"
172
- name = format (" %s-external-api-onboarding-auto" , local. project )
172
+ name = format (" %s-external-api-onboarding-auto" , local. project )
173
173
api_management_name = module. apim . name
174
174
resource_group_name = azurerm_resource_group. rg_api . name
175
175
version_set_id = azurerm_api_management_api_version_set. apim_external_api_onboarding_auto . id
@@ -201,7 +201,7 @@ module "apim_external_api_onboarding_auto_v1" {
201
201
202
202
module "apim_external_api_onboarding_io_v1" {
203
203
source = " github.com/pagopa/terraform-azurerm-v3.git//api_management_api?ref=v8.18.0"
204
- name = format (" %s-external-api-onboarding-io" , local. project )
204
+ name = format (" %s-external-api-onboarding-io" , local. project )
205
205
api_management_name = module. apim . name
206
206
resource_group_name = azurerm_resource_group. rg_api . name
207
207
version_set_id = azurerm_api_management_api_version_set. apim_external_api_onboarding_io . id
@@ -232,7 +232,7 @@ module "apim_external_api_onboarding_io_v1" {
232
232
}
233
233
234
234
resource "azurerm_api_management_api_version_set" "apim_external_api_ms" {
235
- name = format (" %s-ms-external-api" , var. env_short )
235
+ name = format (" %s-ms-external-api" , var. env_short )
236
236
resource_group_name = azurerm_resource_group. rg_api . name
237
237
api_management_name = module. apim . name
238
238
display_name = " External API Service"
@@ -241,7 +241,7 @@ resource "azurerm_api_management_api_version_set" "apim_external_api_ms" {
241
241
242
242
module "apim_external_api_ms_v2" {
243
243
source = " github.com/pagopa/terraform-azurerm-v3.git//api_management_api?ref=v8.18.0"
244
- name = format (" %s-ms-external-api" , local. project )
244
+ name = format (" %s-ms-external-api" , local. project )
245
245
api_management_name = module. apim . name
246
246
resource_group_name = azurerm_resource_group. rg_api . name
247
247
version_set_id = azurerm_api_management_api_version_set. apim_external_api_ms . id
@@ -401,17 +401,17 @@ module "apim_external_api_ms_v2" {
401
401
{
402
402
operation_id = " messageAcknowledgmentUsingPOST"
403
403
xml_content = templatefile (" ./api/api_key_fn_op_policy_message.xml.tpl" , {
404
- BACKEND_BASE_URL = " https://selc-${ var . env_short } -onboarding-fn.azurewebsites.net"
405
- FN_KEY = data.azurerm_key_vault_secret.fn- onboarding- primary- key.value
406
- EXTERNAL-OAUTH2-ISSUER = data.azurerm_key_vault_secret.external- oauth2- issuer.value
407
- TENANT_ID = data.azurerm_client_config.current.tenant_id
404
+ BACKEND_BASE_URL = " https://selc-${ var . env_short } -onboarding-fn.azurewebsites.net"
405
+ FN_KEY = data.azurerm_key_vault_secret.fn- onboarding- primary- key.value
406
+ EXTERNAL-OAUTH2-ISSUER = data.azurerm_key_vault_secret.external- oauth2- issuer.value
407
+ TENANT_ID = data.azurerm_client_config.current.tenant_id
408
408
})
409
409
}
410
410
]
411
411
}
412
412
413
413
resource "azurerm_api_management_api_version_set" "apim_internal_api_ms" {
414
- name = format (" %s-ms-internal-api" , var. env_short )
414
+ name = format (" %s-ms-internal-api" , var. env_short )
415
415
resource_group_name = azurerm_resource_group. rg_api . name
416
416
api_management_name = module. apim . name
417
417
display_name = " Internal API Service"
@@ -420,7 +420,7 @@ resource "azurerm_api_management_api_version_set" "apim_internal_api_ms" {
420
420
421
421
module "apim_internal_api_ms_v1" {
422
422
source = " github.com/pagopa/terraform-azurerm-v3.git//api_management_api?ref=v8.18.0"
423
- name = format (" %s-ms-internal-api" , local. project )
423
+ name = format (" %s-ms-internal-api" , local. project )
424
424
api_management_name = module. apim . name
425
425
resource_group_name = azurerm_resource_group. rg_api . name
426
426
version_set_id = azurerm_api_management_api_version_set. apim_internal_api_ms . id
@@ -503,12 +503,18 @@ module "apim_internal_api_ms_v1" {
503
503
xml_content = templatefile (" ./api/base_ms_url_policy.xml" , {
504
504
MS_BACKEND_URL = " https://selc-${ var . env_short } -ms-core-ca.${ var . ca_suffix_dns_private_name } /"
505
505
})
506
+ },
507
+ {
508
+ operation_id = " onboardingImportUsingPOST"
509
+ xml_content = templatefile (" ./api/base_ms_url_policy.xml" , {
510
+ MS_BACKEND_URL = " https://selc-${ var . env_short } -ext-api-backend-ca.${ var . ca_suffix_dns_private_name } /v2/"
511
+ })
506
512
}
507
513
]
508
514
}
509
515
510
516
resource "azurerm_api_management_api_version_set" "apim_selfcare_support_service" {
511
- name = format (" %s-selfcare-support-api-service" , var. env_short )
517
+ name = format (" %s-selfcare-support-api-service" , var. env_short )
512
518
resource_group_name = azurerm_resource_group. rg_api . name
513
519
api_management_name = module. apim . name
514
520
display_name = " SelfCare Support API Service"
@@ -517,7 +523,7 @@ resource "azurerm_api_management_api_version_set" "apim_selfcare_support_service
517
523
518
524
module "apim_selfcare_support_service_v1" {
519
525
source = " github.com/pagopa/terraform-azurerm-v3.git//api_management_api?ref=v8.18.0"
520
- name = format (" %s-selfcare-support-api-service" , local. project )
526
+ name = format (" %s-selfcare-support-api-service" , local. project )
521
527
api_management_name = module. apim . name
522
528
resource_group_name = azurerm_resource_group. rg_api . name
523
529
version_set_id = azurerm_api_management_api_version_set. apim_selfcare_support_service . id
@@ -599,14 +605,14 @@ module "apim_selfcare_support_service_v1" {
599
605
operation_id = " completeOnboardingTokenConsume"
600
606
xml_content = templatefile (" ./api/base_ms_url_policy.xml" , {
601
607
MS_BACKEND_URL = " https://selc-${ var . env_short } -onboarding-ms-ca.${ var . ca_suffix_dns_private_name } /v1/"
602
- }
608
+ }
603
609
)
604
610
},
605
611
{
606
612
operation_id = " onboardingInstitutionUsingGET"
607
613
xml_content = templatefile (" ./api/base_ms_url_policy.xml" , {
608
614
MS_BACKEND_URL = " https://selc-${ var . env_short } -onboarding-ms-ca.${ var . ca_suffix_dns_private_name } /v1/"
609
- }
615
+ }
610
616
)
611
617
},
612
618
{
@@ -639,7 +645,7 @@ module "apim_selfcare_support_service_v1" {
639
645
}
640
646
641
647
resource "azurerm_api_management_api_version_set" "apim_notification_event_api" {
642
- name = format (" %s-notification-event-api" , var. env_short )
648
+ name = format (" %s-notification-event-api" , var. env_short )
643
649
resource_group_name = azurerm_resource_group. rg_api . name
644
650
api_management_name = module. apim . name
645
651
display_name = " Notification Event API Service"
@@ -648,7 +654,7 @@ resource "azurerm_api_management_api_version_set" "apim_notification_event_api"
648
654
649
655
module "apim_notification_event_api_v1" {
650
656
source = " github.com/pagopa/terraform-azurerm-v3.git//api_management_api?ref=v8.18.0"
651
- name = format (" %s-notification-event-api" , local. project )
657
+ name = format (" %s-notification-event-api" , local. project )
652
658
api_management_name = module. apim . name
653
659
resource_group_name = azurerm_resource_group. rg_api . name
654
660
version_set_id = azurerm_api_management_api_version_set. apim_notification_event_api . id
@@ -705,7 +711,7 @@ module "apim_notification_event_api_v1" {
705
711
]
706
712
}
707
713
resource "azurerm_api_management_api_version_set" "apim_external_api_contract" {
708
- name = format (" %s-external-api-contract" , var. env_short )
714
+ name = format (" %s-external-api-contract" , var. env_short )
709
715
resource_group_name = azurerm_resource_group. rg_api . name
710
716
api_management_name = module. apim . name
711
717
display_name = " External API Contract limited by IP source"
@@ -714,7 +720,7 @@ resource "azurerm_api_management_api_version_set" "apim_external_api_contract" {
714
720
715
721
module "apim_external_api_contract_v1" {
716
722
source = " github.com/pagopa/terraform-azurerm-v3.git//api_management_api?ref=v8.18.0"
717
- name = format (" %s-external-api-contract-service" , local. project )
723
+ name = format (" %s-external-api-contract-service" , local. project )
718
724
api_management_name = module. apim . name
719
725
resource_group_name = azurerm_resource_group. rg_api . name
720
726
version_set_id = azurerm_api_management_api_version_set. apim_external_api_contract . id
@@ -756,7 +762,7 @@ module "apim_external_api_contract_v1" {
756
762
}
757
763
758
764
resource "azurerm_api_management_api_version_set" "apim_external_api_contracts_public" {
759
- name = format (" %s-external-api-contracts-public" , var. env_short )
765
+ name = format (" %s-external-api-contracts-public" , var. env_short )
760
766
resource_group_name = azurerm_resource_group. rg_api . name
761
767
api_management_name = module. apim . name
762
768
display_name = " External API Contracts Public"
@@ -765,7 +771,7 @@ resource "azurerm_api_management_api_version_set" "apim_external_api_contracts_p
765
771
766
772
module "apim_external_api_contract_public_v1" {
767
773
source = " github.com/pagopa/terraform-azurerm-v3.git//api_management_api?ref=v8.18.0"
768
- name = format (" %s-external-api-contracts-public" , local. project )
774
+ name = format (" %s-external-api-contracts-public" , local. project )
769
775
api_management_name = module. apim . name
770
776
resource_group_name = azurerm_resource_group. rg_api . name
771
777
version_set_id = azurerm_api_management_api_version_set. apim_external_api_contracts_public . id
@@ -817,7 +823,7 @@ module "apim_billing_portal_v1" {
817
823
protocols = [
818
824
" https"
819
825
]
820
-
826
+
821
827
service_url = " https://selc-${ var . env_short } -onboarding-ms-ca.${ var . ca_suffix_dns_private_name } /v1/"
822
828
823
829
content_format = " openapi+json"
@@ -845,7 +851,7 @@ module "apim_billing_portal_v1" {
845
851
operation_id = " checkRecipientCodeUsingGET"
846
852
xml_content = templatefile (" ./api/base_policy_config.xml.tpl" , {
847
853
MS_BACKEND_URL = " https://selc-${ var . env_short } -onboardingbackend-ca.${ var . ca_suffix_dns_private_name } /v2/"
848
- })
854
+ })
849
855
}
850
856
]
851
857
}
0 commit comments