From 71ac26eac431307616d0449fda0083fecb0ae99c Mon Sep 17 00:00:00 2001 From: anttorre Date: Fri, 14 Jan 2022 11:57:38 +0100 Subject: [PATCH] removed apim --- src/core/.terraform.lock.hcl | 7 + src/core/README.md | 5 - src/core/api/base_policy.tpl | 25 - src/core/api/base_policy.xml | 26 - .../dashboard/v1/dashboard-openapi.json.tpl | 344 ------- .../v1/metadata_policy.xml.tpl | 10 - .../v1/postacs_policy.xml.tpl | 12 - .../api/hubspidlogin_api/v1/swagger.json.tpl | 142 --- src/core/api/monitor/mock_policy.xml | 27 - src/core/api/monitor/openapi.json.tpl | 43 - .../v1/getOrganizationById_policy.xml | 33 - .../v1/party-management.yml.tpl | 941 ------------------ .../v1/confirmOnboarding_policy.xml | 80 -- .../v1/getOnBoardingInfo_policy.xml | 405 -------- .../v1/invalidateOnboarding_policy.xml | 36 - .../v1/onboardingOrganization_policy.xml | 47 - .../party_process/v1/party-process.yml.tpl | 769 -------------- .../v1/retrieveInstitutionProducts_policy.xml | 40 - .../v1/getInstitutionById_policy.xml | 133 --- .../v1/party-registry-proxy.yml.tpl | 286 ------ .../v1/searchInstitution_policy.xml | 93 -- src/core/apim.tf | 346 ------- src/core/env/dev/terraform.tfvars | 5 - src/core/env/prod/terraform.tfvars | 5 - src/core/env/uat/terraform.tfvars | 5 - src/core/mongodb.tf | 2 +- src/core/security_kv.tf | 12 - src/core/spid_testenv_conf/config.yaml | 4 +- src/core/variables.tf | 15 - 29 files changed, 10 insertions(+), 3888 deletions(-) delete mode 100644 src/core/api/base_policy.tpl delete mode 100644 src/core/api/base_policy.xml delete mode 100644 src/core/api/dashboard/v1/dashboard-openapi.json.tpl delete mode 100644 src/core/api/hubspidlogin_api/v1/metadata_policy.xml.tpl delete mode 100644 src/core/api/hubspidlogin_api/v1/postacs_policy.xml.tpl delete mode 100644 src/core/api/hubspidlogin_api/v1/swagger.json.tpl delete mode 100644 src/core/api/monitor/mock_policy.xml delete mode 100644 src/core/api/monitor/openapi.json.tpl delete mode 100644 src/core/api/party_management/v1/getOrganizationById_policy.xml delete mode 100644 src/core/api/party_management/v1/party-management.yml.tpl delete mode 100644 src/core/api/party_process/v1/confirmOnboarding_policy.xml delete mode 100644 src/core/api/party_process/v1/getOnBoardingInfo_policy.xml delete mode 100644 src/core/api/party_process/v1/invalidateOnboarding_policy.xml delete mode 100644 src/core/api/party_process/v1/onboardingOrganization_policy.xml delete mode 100644 src/core/api/party_process/v1/party-process.yml.tpl delete mode 100644 src/core/api/party_process/v1/retrieveInstitutionProducts_policy.xml delete mode 100644 src/core/api/party_registry_proxy/v1/getInstitutionById_policy.xml delete mode 100644 src/core/api/party_registry_proxy/v1/party-registry-proxy.yml.tpl delete mode 100644 src/core/api/party_registry_proxy/v1/searchInstitution_policy.xml delete mode 100644 src/core/apim.tf diff --git a/src/core/.terraform.lock.hcl b/src/core/.terraform.lock.hcl index 60cb5b77b..703f22a2a 100644 --- a/src/core/.terraform.lock.hcl +++ b/src/core/.terraform.lock.hcl @@ -6,6 +6,7 @@ provider "registry.terraform.io/chilicat/pkcs12" { constraints = "0.0.7" hashes = [ "h1:LFd43VGi5SWWP8KX8hkPVmNBk0BBC46nOPEk7qjqMbA=", + "h1:zaF83pVyNkqAL55dZmDJi2yODaQkMyaQr5OLDmTMxeo=", "zh:0890343e35d99263280abb8c8e035aa7ae0e201619a134b4a01076b27614124b", "zh:13aabd4e1d383990d0bc7520b46710c3774b19bf63cb2e7a1065e6bfea6c91e8", "zh:1aa060e180359f216c05b8f9d24bff290b489f1d21c0c9afc0d723244168c5db", @@ -27,6 +28,7 @@ provider "registry.terraform.io/hashicorp/azuread" { version = "2.5.0" constraints = "2.5.0" hashes = [ + "h1:Er35+K+GSrfZEJId/OqCWvOUa0idXQYyTrA2+I9KfI4=", "h1:cP+I2Al57vjojNckyHEjJ7nG7RBbbhQ2g8HBlhdd9XY=", "zh:08e0ae5f1fde389a3cb9b32d3910fd0fe7cb6d361cf1133a22e803b7a7e66b8f", "zh:093e70b0b4245605b6798be089defe385ac20e3a7f8aea64a7095bd4f762c5e9", @@ -46,6 +48,7 @@ provider "registry.terraform.io/hashicorp/azurerm" { version = "2.91.0" constraints = "2.91.0" hashes = [ + "h1:FD9MUqGFEWy1SfkzacwRolsrNXoqBgR3avVz0wpW+nA=", "h1:JpJCgETSFOW1VX9MwlMEtJtZi6LdvBL7lZ4aeVqPUHs=", "zh:17102231bc42ac91260489377fb0344408185f9233f126b825c0d0bdc873c8ec", "zh:2454e0683fd8b230c7f30da2afc26bb0e9d699b85409d175a25cd094e4bf7089", @@ -64,6 +67,7 @@ provider "registry.terraform.io/hashicorp/azurerm" { provider "registry.terraform.io/hashicorp/local" { version = "2.1.0" hashes = [ + "h1:/OpJKWupvFd8WJX1mTt8vi01pP7dkA6e//4l4C3TExE=", "h1:KfieWtVyGWwplSoLIB5usKAUnrIkDQBkWaR5TI+4WYg=", "zh:0f1ec65101fa35050978d483d6e8916664b7556800348456ff3d09454ac1eae2", "zh:36e42ac19f5d68467aacf07e6adcf83c7486f2e5b5f4339e9671f68525fc87ab", @@ -83,6 +87,7 @@ provider "registry.terraform.io/hashicorp/null" { version = "3.1.0" constraints = "3.1.0" hashes = [ + "h1:SFT7X3zY18CLWjoH2GfQyapxsRv6GDKsy9cF1aRwncc=", "h1:xhbHC6in3nQryvTQBWKxebi3inG5OCgHgc4fRxL0ymc=", "zh:02a1675fd8de126a00460942aaae242e65ca3380b5bb192e8773ef3da9073fd2", "zh:53e30545ff8926a8e30ad30648991ca8b93b6fa496272cd23b26763c8ee84515", @@ -101,6 +106,7 @@ provider "registry.terraform.io/hashicorp/null" { provider "registry.terraform.io/hashicorp/random" { version = "3.1.0" hashes = [ + "h1:EPIax4Ftp2SNdB9pUfoSjxoueDoLc/Ck3EUoeX0Dvsg=", "h1:rKYu5ZUbXwrLG1w81k7H3nce/Ys6yAxXhWcbtk36HjY=", "zh:2bbb3339f0643b5daa07480ef4397bd23a79963cc364cdfbb4e86354cb7725bc", "zh:3cd456047805bf639fbf2c761b1848880ea703a054f76db51852008b11008626", @@ -120,6 +126,7 @@ provider "registry.terraform.io/hashicorp/tls" { version = "3.1.0" hashes = [ "h1:XTU9f6sGMZHOT8r/+LWCz2BZOPH127FBTPjMMEAAu1U=", + "h1:ekOxs6MjdIElt8h9crEVaOwWbEqtfUUfArtA13Jkk6A=", "zh:3d46616b41fea215566f4a957b6d3a1aa43f1f75c26776d72a98bdba79439db6", "zh:623a203817a6dafa86f1b4141b645159e07ec418c82fe40acd4d2a27543cbaa2", "zh:668217e78b210a6572e7b0ecb4134a6781cc4d738f4f5d09eb756085b082592e", diff --git a/src/core/README.md b/src/core/README.md index 398c04890..e85c1e627 100644 --- a/src/core/README.md +++ b/src/core/README.md @@ -16,8 +16,6 @@ | Name | Source | Version | |------|--------|---------| -| [apim](#module\_apim) | git::https://github.com/pagopa/azurerm.git//api_management | v1.0.58 | -| [apim\_snet](#module\_apim\_snet) | git::https://github.com/pagopa/azurerm.git//subnet | v1.0.58 | | [appgateway\_snet](#module\_appgateway\_snet) | git::https://github.com/pagopa/azurerm.git//subnet | v1.0.58 | | [key\_vault](#module\_key\_vault) | git::https://github.com/pagopa/azurerm.git//key_vault | v1.0.58 | | [monitor](#module\_monitor) | git::https://github.com/pagopa/azurerm.git//api_management_api | v1.0.58 | @@ -62,15 +60,12 @@ | Name | Description | Type | Default | Required | |------|-------------|------|---------|:--------:| -| [apim\_publisher\_name](#input\_apim\_publisher\_name) | apim | `string` | n/a | yes | -| [apim\_sku](#input\_apim\_sku) | n/a | `string` | n/a | yes | | [app\_gateway\_api\_certificate\_name](#input\_app\_gateway\_api\_certificate\_name) | Application gateway api certificate name on Key Vault | `string` | n/a | yes | | [cidr\_subnet\_appgateway](#input\_cidr\_subnet\_appgateway) | Application gateway address space. | `list(string)` | n/a | yes | | [cidr\_vnet](#input\_cidr\_vnet) | Virtual network address space. | `list(string)` | n/a | yes | | [cidr\_vnet\_integration](#input\_cidr\_vnet\_integration) | Virtual network to peer with sia subscription. It should host apim | `list(string)` | n/a | yes | | [env\_short](#input\_env\_short) | n/a | `string` | n/a | yes | | [azdo\_sp\_tls\_cert\_enabled](#input\_azdo\_sp\_tls\_cert\_enabled) | Enable Azure DevOps connection for TLS cert management | `string` | `false` | no | -| [cidr\_subnet\_apim](#input\_cidr\_subnet\_apim) | Address prefixes subnet api management. | `list(string)` | `null` | no | | [cidr\_subnet\_redis](#input\_cidr\_subnet\_redis) | Redis network address space. | `list(string)` | `[]` | no | | [dns\_default\_ttl\_sec](#input\_dns\_default\_ttl\_sec) | value | `number` | `3600` | no | | [dns\_zone\_prefix](#input\_dns\_zone\_prefix) | The dns subdomain. | `string` | `null` | no | diff --git a/src/core/api/base_policy.tpl b/src/core/api/base_policy.tpl deleted file mode 100644 index 9b6e8953d..000000000 --- a/src/core/api/base_policy.tpl +++ /dev/null @@ -1,25 +0,0 @@ - - - - - %{ for origin in origins ~} - ${origin} - %{ endfor ~} - - - * - - -
*
-
- -
*
-
-
-
- - - - - -
diff --git a/src/core/api/base_policy.xml b/src/core/api/base_policy.xml deleted file mode 100644 index ce1df461e..000000000 --- a/src/core/api/base_policy.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/src/core/api/dashboard/v1/dashboard-openapi.json.tpl b/src/core/api/dashboard/v1/dashboard-openapi.json.tpl deleted file mode 100644 index 611ca453a..000000000 --- a/src/core/api/dashboard/v1/dashboard-openapi.json.tpl +++ /dev/null @@ -1,344 +0,0 @@ -{ - "openapi": "3.0.3", - "info": { - "title": "selc-dashboard", - "description": "Self Care Dashboard API documentation", - "version": "0.0.1-SNAPSHOT" - }, - "servers": [ - { - "url": 'https://${host}/${basePath}', - "description": "Inferred Url" - } - ], - "tags": [ - { - "name": "institutions", - "description": "Institution operations" - }, - { - "name": "products", - "description": "Product operations" - } - ], - "paths": { - "/institutions/{institutionId}": { - "get": { - "tags": [ - "institutions" - ], - "summary": "getInstitution", - "description": "The service allows the recovery of an Entity based on its id", - "operationId": "getInstitutionUsingGET", - "parameters": [ - { - "name": "institutionId", - "in": "path", - "description": "Institution's unique identifier", - "required": true, - "style": "simple", - "schema": { - "type": "string" - } - }, - { - "name": "x-selc-institutionId", - "in": "header", - "description": "Institution's unique identifier", - "required": true, - "allowReserved": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InstitutionResource" - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "403": { - "description": "Forbidden" - }, - "404": { - "description": "Not Found" - } - }, - "security": [ - { - "bearerAuth": [ - "global" - ] - } - ] - } - }, - "/institutions/{institutionId}/logo": { - "put": { - "tags": [ - "institutions" - ], - "summary": "saveInstitutionLogo", - "description": "Service to upload and store the institution's logo", - "operationId": "saveInstitutionLogoUsingPUT", - "parameters": [ - { - "name": "institutionId", - "in": "path", - "description": "swagger.dashboard.model.id", - "required": true, - "style": "simple", - "schema": { - "type": "string" - } - }, - { - "name": "x-selc-institutionId", - "in": "header", - "description": "Institution's unique identifier", - "required": true, - "allowReserved": false, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "logo" - ], - "type": "object", - "properties": { - "logo": { - "type": "string", - "description": "Institution's logo", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object" - } - }, - "multipart/form-data": { - "schema": { - "type": "object" - } - } - } - }, - "201": { - "description": "Created" - }, - "401": { - "description": "Unauthorized" - }, - "403": { - "description": "Forbidden" - }, - "404": { - "description": "Not Found" - } - }, - "security": [ - { - "bearerAuth": [ - "global" - ] - } - ] - } - }, - "/products/": { - "get": { - "tags": [ - "products" - ], - "summary": "getProducts", - "description": "Service that returns the list of PagoPA products", - "operationId": "getProductsUsingGET", - "parameters": [ - { - "name": "x-selc-institutionId", - "in": "header", - "description": "Institution's unique identifier", - "required": true, - "allowReserved": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ProductsResource" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "403": { - "description": "Forbidden" - }, - "404": { - "description": "Not Found" - } - }, - "security": [ - { - "bearerAuth": [ - "global" - ] - } - ] - } - } - }, - "components": { - "schemas": { - "InstitutionResource": { - "title": "InstitutionResource", - "required": [ - "IPACode", - "category", - "fiscalCode", - "id", - "mailAddress", - "name", - "status", - "userRole" - ], - "type": "object", - "properties": { - "IPACode": { - "type": "string", - "description": "IPA code" - }, - "category": { - "type": "string", - "description": "Institution's category" - }, - "fiscalCode": { - "type": "string", - "description": "Fiscal code corresponding to the institution" - }, - "id": { - "type": "string", - "description": "Institution's unique identifier" - }, - "mailAddress": { - "type": "string", - "description": "Institution's email address" - }, - "name": { - "type": "string", - "description": "Institution's name" - }, - "status": { - "type": "string", - "description": "Institution's status" - }, - "userRole": { - "type": "string", - "description": "Logged user's role" - } - } - }, - "ProductsResource": { - "title": "ProductsResource", - "required": [ - "activationDateTime", - "active", - "authorized", - "code", - "id", - "title", - "urlBO" - ], - "type": "object", - "properties": { - "activationDateTime": { - "type": "string", - "description": "Date the products was activated/created", - "format": "date-time" - }, - "active": { - "type": "boolean", - "description": "flag indicating whether the institution has a valid contract related to the product", - "example": false - }, - "authorized": { - "type": "boolean", - "description": "flag indicating whether the logged user has the authorization to manage the product", - "example": false - }, - "code": { - "type": "string", - "description": "Product's code" - }, - "description": { - "type": "string", - "description": "Product's description" - }, - "id": { - "type": "string", - "description": "Product's unique identifier" - }, - "logo": { - "type": "string", - "description": "Product's logo" - }, - "title": { - "type": "string", - "description": "Product's title" - }, - "urlBO": { - "type": "string", - "description": "URL that redirects to the back-office section, where is possible to manage the product" - }, - "urlPublic": { - "type": "string", - "description": "URL that redirects to the public information webpage of the product" - } - } - } - }, - "securitySchemes": { - "bearerAuth": { - "type": "http", - "description": "A bearer token in the format of a JWS and conformed to the specifications included in [RFC8725](https://tools.ietf.org/html/RFC8725)", - "scheme": "bearer", - "bearerFormat": "JWT" - } - } - } -} diff --git a/src/core/api/hubspidlogin_api/v1/metadata_policy.xml.tpl b/src/core/api/hubspidlogin_api/v1/metadata_policy.xml.tpl deleted file mode 100644 index 1c60f6a64..000000000 --- a/src/core/api/hubspidlogin_api/v1/metadata_policy.xml.tpl +++ /dev/null @@ -1,10 +0,0 @@ - - - - - * - - - - - diff --git a/src/core/api/hubspidlogin_api/v1/postacs_policy.xml.tpl b/src/core/api/hubspidlogin_api/v1/postacs_policy.xml.tpl deleted file mode 100644 index 3bf1181ef..000000000 --- a/src/core/api/hubspidlogin_api/v1/postacs_policy.xml.tpl +++ /dev/null @@ -1,12 +0,0 @@ - - - - - %{ for origin in origins ~} - ${origin} - %{ endfor ~} - - - - - diff --git a/src/core/api/hubspidlogin_api/v1/swagger.json.tpl b/src/core/api/hubspidlogin_api/v1/swagger.json.tpl deleted file mode 100644 index 95986e2f1..000000000 --- a/src/core/api/hubspidlogin_api/v1/swagger.json.tpl +++ /dev/null @@ -1,142 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "HUB Login SPID", - "version": "1.0", - "description": "Login SPID Service Provider" - }, - "host": "${host}", - "basePath": "/spid/v1", - "schemes": [ - "http", - "https" - ], - "securityDefinitions": {}, - "security": [], - "paths": { - "/acs": { - "post": { - "description": "postACS", - "operationId": "postACS", - "summary": "postACS", - "responses": { - "200": { - "description": "ok" - } - } - } - }, - "/error": { - "get": { - "description": "getError", - "operationId": "getError", - "summary": "getError", - "responses": { - "200": { - "description": "ok" - } - } - } - }, - "/invalidate": { - "post": { - "description": "postInvalidate", - "operationId": "postInvalidate", - "summary": "postInvalidate", - "responses": { - "200": { - "description": "ok" - } - } - } - }, - "/introspect": { - "post": { - "description": "postIntrospect", - "operationId": "postIntrospect", - "summary": "postIntrospect", - "responses": { - "200": { - "description": "ok" - } - } - } - }, - "/login": { - "get": { - "description": "getLogin", - "operationId": "getLogin", - "summary": "getLogin", - "responses": { - "200": { - "description": "ok" - }, - "400": { - "description": "" - } - } - } - }, - "/logout": { - "post": { - "description": "postLogout", - "operationId": "postLogout", - "summary": "postLogout", - "responses": { - "200": { - "description": "ok" - } - } - } - }, - "/metadata": { - "get": { - "description": "getMetadata", - "operationId": "getMetadata", - "summary": "getMetadata", - "responses": { - "200": { - "description": "ok" - } - } - } - }, - "/refresh": { - "get": { - "description": "getRefresh", - "operationId": "getRefresh", - "summary": "getRefresh", - "responses": { - "200": { - "description": "ok" - } - } - } - }, - "/success": { - "get": { - "description": "getSuccess", - "operationId": "getSuccess", - "summary": "getSuccess", - "responses": { - "200": { - "description": "ok" - } - } - } - }, - "/upgradeToken": { - "post": { - "description": "postUpgradeToken", - "operationId": "postUpgradeToken", - "summary": "postUpgradeToken", - "responses": { - "200": { - "description": "ok" - } - } - } - } - }, - "tags": [] -} diff --git a/src/core/api/monitor/mock_policy.xml b/src/core/api/monitor/mock_policy.xml deleted file mode 100644 index 9ab5d3f6b..000000000 --- a/src/core/api/monitor/mock_policy.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/src/core/api/monitor/openapi.json.tpl b/src/core/api/monitor/openapi.json.tpl deleted file mode 100644 index 5a85227d1..000000000 --- a/src/core/api/monitor/openapi.json.tpl +++ /dev/null @@ -1,43 +0,0 @@ -{ - "openapi": "3.0.1", - "info": { - "title": "monitor", - "description": "", - "version": "1.0" - }, - "servers": [{ - "url": "https://${host}" - }], - "paths": { - "/*": { - "get": { - "summary": "GET", - "operationId": "get", - "responses": { - "200": { - "description": null - } - } - } - } - }, - "components": { - "securitySchemes": { - "apiKeyHeader": { - "type": "apiKey", - "name": "Ocp-Apim-Subscription-Key", - "in": "header" - }, - "apiKeyQuery": { - "type": "apiKey", - "name": "subscription-key", - "in": "query" - } - } - }, - "security": [{ - "apiKeyHeader": [] - }, { - "apiKeyQuery": [] - }] -} diff --git a/src/core/api/party_management/v1/getOrganizationById_policy.xml b/src/core/api/party_management/v1/getOrganizationById_policy.xml deleted file mode 100644 index 6b38b10dc..000000000 --- a/src/core/api/party_management/v1/getOrganizationById_policy.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - application/json - - - { - "id": "97c0f418-bcb3-48d4-825a-fe8b29ae68e5", - "institutionId": "aoo=c_f205,o=c_f205,c=it", - "taxCode": "FISCALCODE" - "description": "AGENCY X", - "digitalAddress": "email@pec.mail.org", - "attributes": [ - "string" - ] - } - - - - - - - - - - - - - diff --git a/src/core/api/party_management/v1/party-management.yml.tpl b/src/core/api/party_management/v1/party-management.yml.tpl deleted file mode 100644 index 93f79cf54..000000000 --- a/src/core/api/party_management/v1/party-management.yml.tpl +++ /dev/null @@ -1,941 +0,0 @@ -openapi: 3.0.3 -info: - title: Party Management Micro Service - description: This service is the party manager - version: 'v1' - contact: - name: API Support - url: 'http://www.example.com/support' - email: support@example.com - termsOfService: 'http://swagger.io/terms/' - x-api-id: an x-api-id - x-summary: an x-summary -servers: - - url: 'https://${host}/${basePath}' - description: This service is the party manager -tags: - - name: party - description: Manipulate party information - externalDocs: - description: Find out more - url: 'http://swagger.io' - - name: health - description: Verify service status - externalDocs: - description: Find out more - url: 'http://swagger.io' -security: - - bearerAuth: [ ] -paths: - '/persons/{id}': - get: - summary: Retrieves Person by ID - tags: - - party - operationId: getPersonById - description: 'returns the identified person, if any.' - parameters: - - name: id - in: path - schema: - type: string - format: uuid - required: true - description: Person ID - responses: - '200': - description: Person - content: - application/json: - schema: - $ref: '#/components/schemas/Person' - '400': - description: Bad Request - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '404': - description: Person not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - head: - tags: - - party - summary: Verify if a Person exists for a given ID - description: Return ok - operationId: existsPersonById - parameters: - - name: id - in: path - description: The ID of the Person to check - required: true - schema: - description: The Person ID. - type: string - format: uuid - example: e72dd279-5f52-4039-afbe-2b7e432c490e - responses: - '200': - description: Person exists - '404': - description: Person not found - /persons: - post: - tags: - - party - summary: Create a new person - description: Return ok - operationId: createPerson - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/PersonSeed' - responses: - '201': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/Person' - '400': - description: Invalid ID supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /organizations: - post: - tags: - - party - summary: Create an organization - description: Return ok - operationId: createOrganization - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/OrganizationSeed' - responses: - '201': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/Organization' - '400': - description: Invalid ID supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /organizations/{id}: - get: - summary: Retrieves Organization by ID - tags: - - party - operationId: getOrganizationById - description: 'returns the identified organization, if any.' - parameters: - - schema: - type: string - format: uuid - name: id - in: path - required: true - description: Organization ID - responses: - '200': - description: Organization - content: - application/json: - schema: - $ref: '#/components/schemas/Organization' - '400': - description: Bad Request - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '404': - description: Organization not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - head: - tags: - - party - summary: Verify if an organization exists for a given organizationId - description: Return ok - operationId: existsOrganizationById - parameters: - - name: id - in: path - description: The ID of the Organization to check - required: true - schema: - description: to be defined - type: string - format: uuid - example: e72dd279-5f52-4039-afbe-2b7e432c490e - responses: - '200': - description: successful operation - '404': - description: Organization not found - /organizations/external/{id}: - parameters: - - schema: - type: string - name: id - in: path - required: true - description: External Organization ID - get: - summary: Retrieves Organization by ID - tags: - - party - responses: - '200': - description: Organization - content: - application/json: - schema: - $ref: '#/components/schemas/Organization' - '400': - description: Bad Request - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '404': - description: Organization not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - operationId: getOrganizationByExternalId - description: 'returns the identified organization, if any.' - /organizations/{id}/attributes: - parameters: - - schema: - type: string - format: uuid - example: e72dd279-5f52-4039-afbe-2b7e432c490e - name: id - in: path - required: true - description: Organization ID - get: - summary: Retrieves attributes - tags: - - party - responses: - '200': - description: Party Attributes - content: - application/json: - schema: - $ref: '#/components/schemas/Attributes' - '400': - description: Bad Request - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '404': - description: Party not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - operationId: getPartyAttributes - description: 'returns the attributes of the identified party, if any.' - post: - tags: - - party - summary: Retrieve the organization attributes for the given organizationId - description: Return ok - operationId: addOrganizationAttributes - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Attributes' - responses: - '200': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/Organization' - '404': - description: Organization not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /relationships: - post: - tags: - - party - summary: Create a new relationship between a Person and an Organization - description: Return ok - operationId: createRelationship - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RelationshipSeed' - responses: - '201': - description: Created Relationship - content: - application/json: - schema: - $ref: '#/components/schemas/Relationship' - '400': - description: Invalid ID supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - get: - tags: - - party - summary: Return a list of relationships - description: Return ok - operationId: getRelationships - parameters: - - in: query - name: from - schema: - type: string - format: uuid - - in: query - name: to - schema: - type: string - format: uuid - - in: query - name: roles - description: comma separated sequence of role to filter the response with - schema: - type: array - items: - $ref: '#/components/schemas/PartyRole' - default: [ ] - explode: false - - in: query - name: states - description: comma separated sequence of states to filter the response with - schema: - type: array - items: - $ref: '#/components/schemas/RelationshipState' - default: [ ] - explode: false - - in: query - name: products - description: comma separated sequence of products to filter the response with - schema: - type: array - items: - type: string - default: [ ] - explode: false - - in: query - name: productRoles - description: comma separated sequence of product roles to filter the response with - schema: - type: array - items: - type: string - default: [ ] - explode: false - responses: - '200': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/Relationships' - '400': - description: Invalid ID supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /relationships/{relationshipId}: - delete: - tags: - - party - summary: Deletes relationship - description: Deletes the relationship identified by relationshipId - operationId: deleteRelationshipById - parameters: - - name: relationshipId - in: path - description: The ID of the Relationship to delete - required: true - schema: - type: string - format: uuid - responses: - '204': - description: relationship deleted - '400': - description: Bad Request - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '404': - description: Relationship not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - get: - tags: - - party - summary: Retrieve the relationship for the given relationshipId - description: Return relationship - operationId: getRelationshipById - parameters: - - name: relationshipId - in: path - description: The ID of the Relationship to retrieve - required: true - schema: - type: string - format: uuid - responses: - '200': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/Relationship' - '400': - description: Bad Request - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '404': - description: Relationship not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '/relationships/{relationshipId}/suspend': - parameters: - - schema: - type: string - format: uuid - name: relationshipId - in: path - required: true - description: Relationship ID - post: - summary: Suspend Relationship by ID - tags: - - party - responses: - '204': - description: Relationship suspended - '404': - description: Relationship not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - operationId: suspendPartyRelationshipById - description: 'Suspend relationship by ID' - '/relationships/{relationshipId}/activate': - parameters: - - schema: - type: string - format: uuid - name: relationshipId - in: path - required: true - description: Relationship ID - post: - summary: Activate Relationship by plaftorm ID - tags: - - party - responses: - '204': - description: Relationship activated - '404': - description: Relationship not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - operationId: activatePartyRelationshipById - description: 'Activate Relationship by ID' - /tokens: - post: - tags: - - party - summary: Create a new token - description: Return ok - operationId: createToken - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TokenSeed' - responses: - '201': - description: successful operation - content: - application/octet-stream: - schema: - $ref: '#/components/schemas/TokenText' - '400': - description: Invalid ID supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /tokens/{token}: - head: - tags: - - party - summary: Retrieve token info - description: Return ok - operationId: verifyToken - parameters: - - name: token - in: path - description: The token to verify - required: true - schema: - description: to be defined - type: string - responses: - '200': - description: successful operation - '404': - description: Token not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '400': - description: Invalid ID supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - post: - tags: - - party - summary: Consume a token - description: Return ok - operationId: consumeToken - parameters: - - name: token - in: path - description: The token to consume - required: true - schema: - description: to be defined - type: string - requestBody: - description: onboarding signed document - content: - multipart/form-data: - schema: - type: object - required: - - doc - properties: - doc: - type: string - format: binary - required: true - responses: - '201': - description: successful operation - '400': - description: Invalid ID supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - delete: - tags: - - party - summary: Invalidate a token - description: Return ok - operationId: invalidateToken - parameters: - - name: token - in: path - description: The token to invalidate - required: true - schema: - type: string - responses: - '200': - description: successful operation - '400': - description: Invalid ID supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /status: - get: - tags: - - health - summary: Health status endpoint - description: Return ok - operationId: getStatus - responses: - '200': - description: successful operation - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '/bulk/organizations': - post: - summary: Retrieves a collection of organizations - tags: - - party - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkPartiesSeed' - responses: - '200': - description: collection of organizations - content: - application/json: - schema: - $ref: '#/components/schemas/BulkOrganizations' - '400': - description: Bad Request - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '404': - description: Organizations not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - operationId: bulkOrganizations - description: 'returns a collection of all the parties for the corresponding identifiers.' -components: - schemas: - PersonSeed: - type: object - properties: - id: - description: Internal id. - type: string - format: uuid - required: - - id - additionalProperties: false - Person: - type: object - properties: - id: - type: string - format: uuid - example: 97c0f418-bcb3-48d4-825a-fe8b29ae68e5 - required: - - id - additionalProperties: false - OrganizationSeed: - type: object - properties: - institutionId: - description: organization id (e.g iPA code) - example: 'c_f205' - type: string - description: - type: string - example: AGENCY X - digitalAddress: - example: email@pec.mail.org - format: email - type: string - taxCode: - description: organization tax code - type: string - products: - type: array - items: - type: string - description: product names associated to this organization - uniqueItems: true - attributes: - $ref: '#/components/schemas/Attributes' - required: - - institutionId - - description - - digitalAddress - - taxCode - - attributes - - products - additionalProperties: false - Organization: - type: object - properties: - id: - type: string - format: uuid - example: 97c0f418-bcb3-48d4-825a-fe8b29ae68e5 - institutionId: - description: organization id (e.g iPA code) - example: 'c_f205' - type: string - description: - type: string - example: AGENCY X - digitalAddress: - example: email@pec.mail.org - format: email - type: string - taxCode: - description: organization tax code - type: string - attributes: - $ref: '#/components/schemas/Attributes' - required: - - id - - institutionId - - description - - digitalAddress - - taxCode - - attributes - additionalProperties: false - BulkOrganizations: - type: object - required: - - found - - notFound - properties: - found: - type: array - description: the collection of organizations found. - items: - $ref: '#/components/schemas/Organization' - notFound: - type: array - items: - type: string - description: the identifiers of organizations not found. - BulkPartiesSeed: - type: object - required: - - partyIdentifiers - properties: - partyIdentifiers: - type: array - items: - type: string - format: uuid - description: the identifiers of party - PartyRole: - type: string - description: Represents the generic available role types for the relationship - enum: - - MANAGER - - DELEGATE - - SUB_DELEGATE - - OPERATOR - RelationshipState: - type: string - description: Represents the party relationship state - enum: - - PENDING - - ACTIVE - - SUSPENDED - - DELETED - - REJECTED - Attributes: - type: array - items: - type: string - RelationshipProductSeed: - type: object - properties: - id: - type: string - role: - type: string - required: - - id - - role - RelationshipSeed: - type: object - properties: - from: - type: string - format: uuid - description: person ID - to: - type: string - format: uuid - description: organization ID - role: - $ref: '#/components/schemas/PartyRole' - product: - $ref: '#/components/schemas/RelationshipProductSeed' - additionalProperties: false - required: - - from - - to - - role - - product - RelationshipProduct: - type: object - properties: - id: - type: string - role: - type: string - createdAt: - type: string - format: date-time - required: - - id - - role - - createdAt - Relationship: - type: object - properties: - id: - type: string - format: uuid - from: - type: string - format: uuid - description: person ID - to: - type: string - format: uuid - description: organization ID - filePath: - type: string - description: path of the file containing the signed onboarding document - fileName: - type: string - description: name of the file containing the signed onboarding document - contentType: - type: string - description: content type of the file containing the signed onboarding document - role: - $ref: '#/components/schemas/PartyRole' - product: - $ref: '#/components/schemas/RelationshipProduct' - state: - $ref: '#/components/schemas/RelationshipState' - createdAt: - type: string - format: date-time - updatedAt: - type: string - format: date-time - additionalProperties: false - required: - - id - - from - - to - - role - - product - - state - - createdAt - Relationships: - type: object - properties: - items: - type: array - items: - $ref: '#/components/schemas/Relationship' - additionalProperties: false - required: - - items - RelationshipsSeed: - type: object - properties: - items: - type: array - items: - $ref: '#/components/schemas/RelationshipSeed' - additionalProperties: false - required: - - items - TokenSeed: - type: object - properties: - seed: - type: string - example: 97c0f418-bcb3-48d4-825a-fe8b29ae68e5 - relationships: - $ref: '#/components/schemas/RelationshipsSeed' - checksum: - type: string - additionalProperties: false - required: - - seed - - relationships - - checksum - TokenText: - properties: - token: - type: string - additionalProperties: false - required: - - token - Problem: - properties: - detail: - description: A human readable explanation specific to this occurrence of the problem. - example: Request took too long to complete. - type: string - status: - description: The HTTP status code generated by the origin server for this occurrence of the problem. - example: 503 - exclusiveMaximum: true - format: int32 - maximum: 600 - minimum: 100 - type: integer - title: - description: - A short, summary of the problem type. Written in english and readable - example: Service Unavailable - type: string - additionalProperties: false - required: - - status - - title - securitySchemes: - bearerAuth: - type: http - description: 'A bearer token in the format of a JWS and comformed to the specifications included in [RFC8725](https://tools.ietf.org/html/RFC8725).' - scheme: bearer - bearerFormat: JWT diff --git a/src/core/api/party_process/v1/confirmOnboarding_policy.xml b/src/core/api/party_process/v1/confirmOnboarding_policy.xml deleted file mode 100644 index be57ec3f7..000000000 --- a/src/core/api/party_process/v1/confirmOnboarding_policy.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - application/json - - - { - "detail": "Request took too long to complete.", - "status": 503, - "title": "Service Unavailable" - } - - - - - - - - application/problem+json - - - { - "type": "string", - "status": 409, - "title": "Document validation failed", - "detail": "string", - "errors": [ - { - "code": "002-100", - "detail": "document validation fails" - } - ] - } - - - - - - - - application/problem+json - - - { - "type": "string", - "status": 409, - "title": "Document validation failed", - "detail": "string", - "errors": [ - { - "code": "002-102", - "detail": "signature is invalid" - } - ] - } - - - - - - - - - - - - - - - - - - diff --git a/src/core/api/party_process/v1/getOnBoardingInfo_policy.xml b/src/core/api/party_process/v1/getOnBoardingInfo_policy.xml deleted file mode 100644 index db5fbeeaf..000000000 --- a/src/core/api/party_process/v1/getOnBoardingInfo_policy.xml +++ /dev/null @@ -1,405 +0,0 @@ - - - - - - - - - - - application/json - - { - "detail": "Request took too long to complete.", - "status": 503, - "title": "Service Unavailable" - } - - - - - - - application/json - - { - "person": { - "name": "name", - "surname": "surname", - "taxCode": "AAAAAA00A00A000A" - }, - "institutions": [ - { - "institutionId": "onboarded", - "description": "AGENCY ONBOARDED", - "taxCode":"onboardedFiscalCode", - "digitalAddress": "digitalAddress", - "state": "ACTIVE", - "role": "MANAGER", - "productInfo": { - "id": "pagoPA", - "role": "ADMIN", - "createdAt": "2021-12-02T16:57:02.300Z" - }, - "attributes": [ - { - "id":"attId", - "name":"attName", - "description":"attDescription" - } - ] - } - ] - } - - - - - - - application/json - - { - "person": { - "name": "name", - "surname": "surname", - "taxCode": "AAAAAA00A00A000A" - }, - "institutions": [ - { - "institutionId": "pending", - "description": "AGENCY PENDING", - "taxCode":"pendingFiscalCode", - "digitalAddress": "digitalAddress", - "state": "PENDING", - "role": "MANAGER", - "productInfo": { - "id": "pagoPA", - "role": "LIMITED", - "createdAt": "2021-12-02T16:57:02.300Z" - }, - "attributes": [ - { - "id":"attId", - "name":"attName", - "description":"attDescription" - } - ] - } - ] - } - - - - - - - application/json - - { - "person": { - "name": "name", - "surname": "surname", - "taxCode": "AAAAAA00A00A000A" - }, - "institutions": [] - } - - - - - - - application/json - - { - "person": { - "name": "name", - "surname": "surname", - "taxCode": "AAAAAA00A00A000A" - }, - "institutions": [] - } - - - - - - - application/json - - { - "person": { - "name": "string", - "surname": "string", - "taxCode": "string" - }, - "institutions": [ - { - "institutionId": "pippo", - "description": "string", - "taxCode": "string", - "digitalAddress": "string", - "state": "ACTIVE", - "role": "MANAGER", - "productInfo": { - "id": "productId", - "role": "ADMIN", - "createdAt": "2021-12-01T17:15:38.101Z" - }, - "attributes": [ - { - "id": "string", - "name": "string", - "description": "category" - } - ] - } - ] - } - - - - - - - application/json - - { - "person": { - "name": "string", - "surname": "string", - "taxCode": "string" - }, - "institutions": [ - { - "institutionId": "pluto", - "description": "string", - "taxCode": "string", - "digitalAddress": "string", - "state": "ACTIVE", - "role": "OPERATOR", - "productInfo": { - "id": "productId", - "role": "LIMITED", - "createdAt": "2021-12-01T17:15:38.101Z" - }, - "attributes": [ - { - "id": "string", - "name": "string", - "description": "category" - } - ] - } - ] - } - - - - - - - application/json - - { - "person": { - "name": "string", - "surname": "string", - "taxCode": "string" - }, - "institutions": [ - { - "institutionId": "paperino", - "description": "string", - "taxCode": "string", - "digitalAddress": "string", - "state": "ACTIVE", - "role": "MANAGER", - "productInfo": { - "id": "productId1", - "role": "ADMIN", - "createdAt": "2021-12-01T17:15:38.101Z" - }, - "attributes": [ - { - "id": "string", - "name": "string", - "description": "category" - } - ] - }, - { - "institutionId": "paperino", - "description": "string", - "taxCode": "string", - "digitalAddress": "string", - "state": "ACTIVE", - "role": "OPERATOR", - "productInfo": { - "id": "productId2", - "role": "LIMITED", - "createdAt": "2021-12-01T17:15:38.101Z" - }, - "attributes": [ - { - "id": "string", - "name": "string", - "description": "category" - } - ] - } - ] - } - - - - - - - application/json - - { - "person": { - "name": "name", - "surname": "surname", - "taxCode": "AAAAAA00A00A000A" - }, - "institutions": [ - { - "role": "MANAGER", - "description": "Comune di Bari", - "taxCode":"ComunediBariFiscalCode", - "state": "PENDING", - "institutionId": "1", - "attributes": [ - { - "id":"attId1", - "name":"attName1", - "description":"category1" - } - ], - "digitalAddress": "", - "productInfo": { - "id":"pagoPA", - "role":"ADMIN", - "createdAt":"2021-12-02T16:57:02.300Z" - } - }, - { - "role": "MANAGER", - "description": "Comune di Milano", - "taxCode":"ComunediMilanoFiscalCode", - "state": "PENDING", - "institutionId": "2", - "attributes": [ - { - "id":"attId2", - "name":"attName2", - "description":"category2" - } - ], - "digitalAddress": "", - "productInfo": { - "id":"pagoPA", - "role":"LIMITED", - "createdAt":"2021-12-02T16:57:02.300Z" - } - }, - { - "role": "MANAGER", - "description": "Comune di Roma", - "taxCode":"ComunediRomaFiscalCode", - "state": "ACTIVE", - "institutionId": "3", - "attributes": [ - { - "id":"attId3", - "name":"attName3", - "description":"category3" - } - ], - "digitalAddress": "", - "productInfo": { - "id":"pagoPA", - "role":"ADMIN", - "createdAt":"2021-12-02T16:57:02.300Z" - } - }, - { - "role": "MANAGER", - "description": "Comune di Napoli", - "taxCode":"ComunediNapoliFiscalCode", - "state": "ACTIVE", - "institutionId": "4", - "attributes": [ - { - "id":"attId4", - "name":"attName4", - "description":"category4" - } - ], - "digitalAddress": "", - "productInfo": { - "id":"pagoPA", - "role":"LIMITED", - "createdAt":"2021-12-02T16:57:02.300Z" - } - }, - { - "role": "OPERATOR", - "description": "Comune di Napoli", - "taxCode":"ComunediNapoliFiscalCode", - "state": "PENDING", - "institutionId": "5", - "attributes": [ - { - "id":"attId5", - "name":"attName5", - "description":"category5" - } - ], - "digitalAddress": "", - "productInfo": { - "id":"PDND", - "role":"LIMITED", - "createdAt":"2021-12-02T16:57:02.300Z" - } - }, - { - "institutionId": "onboarded", - "description": "AGENCY ONBOARDED", - "taxCode":"onboardedFiscalCode", - "digitalAddress": "digitalAddress", - "state": "ACTIVE", - "role": "MANAGER", - "productInfo": { - "id":"pagoPA", - "role":"ADMIN", - "createdAt":"2021-12-02T16:57:02.300Z" - }, - "attributes": [ - { - "id":"attId", - "name":"attName", - "description":"category" - } - ] - } - ] - } - - - - - - - - - - - - - - diff --git a/src/core/api/party_process/v1/invalidateOnboarding_policy.xml b/src/core/api/party_process/v1/invalidateOnboarding_policy.xml deleted file mode 100644 index 7a4e56f74..000000000 --- a/src/core/api/party_process/v1/invalidateOnboarding_policy.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - application/json - - - { - "detail": "Request took too long to complete.", - "status": 503, - "title": "Service Unavailable" - } - - - - - - - - - - - - - - - - - - diff --git a/src/core/api/party_process/v1/onboardingOrganization_policy.xml b/src/core/api/party_process/v1/onboardingOrganization_policy.xml deleted file mode 100644 index 3130b9ab5..000000000 --- a/src/core/api/party_process/v1/onboardingOrganization_policy.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - application/json - - - { - "detail": "Request took too long to complete.", - "status": 503, - "title": "Service Unavailable" - } - - - - - - - - application/json - - - { - "token": "string", - "document": "string" - } - - - - - - - - - - - - - - - diff --git a/src/core/api/party_process/v1/party-process.yml.tpl b/src/core/api/party_process/v1/party-process.yml.tpl deleted file mode 100644 index 344a9bfd4..000000000 --- a/src/core/api/party_process/v1/party-process.yml.tpl +++ /dev/null @@ -1,769 +0,0 @@ -openapi: 3.0.3 -info: - title: Party Process Micro Service - description: This service is the party process - version: 'v1' - contact: - name: API Support - url: 'http://www.example.com/support' - email: support@example.com - termsOfService: 'http://swagger.io/terms/' - x-api-id: an x-api-id - x-summary: an x-summary -servers: - - url: 'https://${host}/${basePath}' - description: This service is the party process -security: - - bearerAuth: [ ] -tags: - - name: process - description: Implements party process - externalDocs: - description: Find out more - url: 'http://swagger.io' - - name: health - description: Verify service status - externalDocs: - description: Find out more - url: 'http://swagger.io' -paths: - '/onboarding/info': - get: - security: - - bearerAuth: [ ] - tags: - - process - summary: get on boarding info - description: Return ok - operationId: getOnboardingInfo - parameters: - - name: institutionId - description: UUID of an institution you can filter the retrieval with - in: query - schema: - type: string - responses: - '200': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/OnboardingInfo' - '400': - description: Invalid ID supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /onboarding/organization: - post: - security: - - bearerAuth: [ ] - tags: - - process - summary: Organization onboarding on the platform - description: it performs the onboarding of a new organization on the platform - operationId: onboardingOrganization - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/OnboardingRequest' - responses: - '201': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/OnboardingResponse' - '400': - description: Invalid ID supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /onboarding/legals: - post: - security: - - bearerAuth: [ ] - tags: - - process - summary: legals onboarding - description: creates legals entries on already onboarded institution - operationId: onboardingLegalsOnOrganization - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/OnboardingRequest' - responses: - '200': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/OnboardingResponse' - '400': - description: Invalid ID supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /onboarding/subdelegates: - post: - security: - - bearerAuth: [ ] - tags: - - process - summary: subdelegates onboarding - description: creates subdelegates entries on already onboarded institution - operationId: onboardingSubDelegatesOnOrganization - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/OnboardingRequest' - responses: - '200': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/OnboardingResponse' - '400': - description: Invalid ID supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /onboarding/operators: - post: - security: - - bearerAuth: [ ] - tags: - - process - summary: operators onboarding - description: performs operators onboarding on an already existing organization - operationId: onboardingOperators - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/OnboardingRequest' - responses: - '201': - description: successful operation - '400': - description: Invalid ID supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /institutions/{institutionId}/relationships: - get: - security: - - bearerAuth: [ ] - tags: - - process - summary: returns the relationships related to the institution - description: Return ok - operationId: getUserInstitutionRelationships - parameters: - - name: institutionId - in: path - description: The identifier of the institution - required: true - schema: - type: string - format: uuid - - in: query - name: roles - description: comma separated sequence of role to filter the response with - schema: - type: array - items: - $ref: '#/components/schemas/PartyRole' - default: [ ] - explode: false - - in: query - name: states - description: comma separated sequence of states to filter the response with - schema: - type: array - items: - $ref: '#/components/schemas/RelationshipState' - default: [ ] - explode: false - - in: query - name: products - description: comma separated sequence of products to filter the response with - schema: - type: array - items: - type: string - default: [ ] - explode: false - - in: query - name: productRoles - description: comma separated sequence of product roles to filter the response with - schema: - type: array - items: - type: string - default: [ ] - explode: false - responses: - '200': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/RelationshipsResponse' - '400': - description: Invalid institution id supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /institutions/{institutionId}/products: - get: - security: - - bearerAuth: [ ] - tags: - - process - summary: institution products retrieval - description: retrieves the products this institution is related to. - operationId: retrieveInstitutionProducts - parameters: - - name: institutionId - in: path - description: The identifier of the institution - required: true - schema: - type: string - format: uuid - responses: - '200': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/Products' - '404': - description: Institution not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /relationships/{relationshipId}: - get: - security: - - bearerAuth: [ ] - tags: - - process - summary: Gets the corresponding relationship - description: Gets relationship - operationId: getRelationship - parameters: - - name: relationshipId - in: path - description: The identifier of the relationship - required: true - schema: - type: string - format: uuid - responses: - '200': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/RelationshipInfo' - '400': - description: Invalid id supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '404': - description: Not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - delete: - security: - - bearerAuth: [ ] - tags: - - process - summary: Relationship deletion - description: Given a relationship identifier, it deletes the corresponding relationship. - operationId: deleteRelationshipById - parameters: - - name: relationshipId - description: the identifier of the relationship to be deleted - required: true - in: path - schema: - type: string - format: uuid - responses: - '204': - description: relationship deleted - '400': - description: Bad request - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '404': - description: Relationship not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /relationships/{relationshipId}/activate: - post: - security: - - bearerAuth: [ ] - tags: - - process - summary: Activate the relationship - description: Activate relationship - operationId: activateRelationship - parameters: - - name: relationshipId - in: path - description: The identifier of the relationship - required: true - schema: - type: string - format: uuid - responses: - '204': - description: Successful operation - '400': - description: Invalid id supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '404': - description: Not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /relationships/{relationshipId}/suspend: - post: - security: - - bearerAuth: [ ] - tags: - - process - summary: Suspend the relationship - description: Suspend relationship - operationId: suspendRelationship - parameters: - - name: relationshipId - in: path - description: The identifier of the relationship - required: true - schema: - type: string - format: uuid - responses: - '204': - description: Successful operation - '400': - description: Invalid id supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '404': - description: Not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '/onboarding/complete/{token}': - post: - security: - - bearerAuth: [ ] - tags: - - process - summary: create an onboarding entry - description: Return ok - operationId: confirmOnboarding - parameters: - - name: token - in: path - description: the token containing the onboardind information - required: true - schema: - type: string - requestBody: - description: A E-Service seed - content: - multipart/form-data: - schema: - type: object - required: - - contract - properties: - contract: - type: string - format: binary - encoding: - contract: - contentType: application/octet-stream - required: true - responses: - '200': - description: successful operation - '400': - description: Invalid ID supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '409': - description: Document validation failed - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - delete: - security: - - bearerAuth: [ ] - tags: - - process - summary: invalidate an onboarding request - description: Return ok - operationId: invalidateOnboarding - parameters: - - name: token - in: path - description: The token to invalidate - required: true - schema: - type: string - responses: - '200': - description: successful operation - '400': - description: Invalid ID supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /onboarding/relationship/{relationshipId}/document: - get: - security: - - bearerAuth: [ ] - tags: - - process - summary: Get an onboarding document - operationId: getOnboardingDocument - parameters: - - name: relationshipId - in: path - description: the relationship id - required: true - schema: - type: string - responses: - "200": - description: Signed onboarding document retrieved - content: - application/octet-stream: - schema: - type: string - format: binary - "404": - description: Document not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - "400": - description: Bad request - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /status: - get: - security: - - bearerAuth: [ ] - tags: - - health - summary: Health status endpoint - description: Return ok - operationId: getStatus - responses: - '200': - description: successful operation - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' -components: - schemas: - OnboardingRequest: - properties: - users: - type: array - items: - $ref: '#/components/schemas/User' - institutionId: - type: string - additionalProperties: false - required: - - users - - institutionId - OnboardingResponse: - properties: - token: - type: string - document: - type: string - format: binary - additionalProperties: false - required: - - token - - document - RelationshipInfo: - type: object - properties: - id: - type: string - format: uuid - from: - type: string - format: uuid - name: - type: string - surname: - type: string - email: - type: string - role: - $ref: '#/components/schemas/PartyRole' - product: - $ref: '#/components/schemas/ProductInfo' - state: - $ref: '#/components/schemas/RelationshipState' - createdAt: - type: string - format: date-time - updatedAt: - type: string - format: date-time - additionalProperties: false - required: - - id - - from - - name - - surname - - role - - product - - state - - createdAt - RelationshipsResponse: - type: array - items: - $ref: '#/components/schemas/RelationshipInfo' - User: - properties: - name: - type: string - surname: - type: string - taxCode: - type: string - role: - $ref: '#/components/schemas/PartyRole' - email: - type: string - product: - type: string - productRole: - type: string - additionalProperties: false - required: - - name - - surname - - taxCode - - role - - product - - productRole - PersonInfo: - properties: - name: - type: string - surname: - type: string - taxCode: - type: string - additionalProperties: false - required: - - name - - surname - - taxCode - ProductInfo: - type: object - properties: - id: - type: string - role: - type: string - createdAt: - type: string - format: date-time - required: - - id - - role - - createdAt - OnboardingData: - properties: - institutionId: - type: string - description: - type: string - taxCode: - type: string - digitalAddress: - type: string - state: - $ref: '#/components/schemas/RelationshipState' - role: - $ref: '#/components/schemas/PartyRole' - productInfo: - $ref: '#/components/schemas/ProductInfo' - attributes: - type: array - description: certified attributes bound to this institution - items: - $ref: '#/components/schemas/Attribute' - additionalProperties: false - required: - - institutionId - - taxCode - - description - - digitalAddress - - state - - role - - productInfo - - attributes - Attribute: - type: object - properties: - id: - type: string - name: - type: string - description: - type: string - required: - - id - - name - - description - OnboardingInfo: - properties: - person: - $ref: '#/components/schemas/PersonInfo' - institutions: - type: array - items: - $ref: '#/components/schemas/OnboardingData' - additionalProperties: false - required: - - person - - institutions - Products: - type: object - properties: - products: - type: array - items: - $ref: '#/components/schemas/ProductInfo' - required: - - products - ProductRolesResponse: - title: ProductRolesResponse - type: object - description: This payload contains the currently defined bindings between roles and platform roles. - properties: - managerRoles: - type: array - description: binding between manager and its platform roles - items: - type: string - delegateRoles: - type: array - description: binding between delegate and its platform roles - items: - type: string - operatorRoles: - type: array - description: binding between operator and its platform roles - items: - type: string - required: - - managerRoles - - delegateRoles - - operatorRoles - PartyRole: - type: string - description: Represents the generic available role types for the relationship - enum: - - MANAGER - - DELEGATE - - SUB_DELEGATE - - OPERATOR - RelationshipState: - type: string - description: Represents the party relationship state - enum: - - PENDING - - ACTIVE - - SUSPENDED - - DELETED - - REJECTED - Problem: - properties: - detail: - description: A human readable explanation specific to this occurrence of the problem. - example: Request took too long to complete. - maxLength: 4096 - pattern: '^.{0,1024}$' - type: string - status: - description: The HTTP status code generated by the origin server for this occurrence of the problem. - example: 503 - exclusiveMaximum: true - format: int32 - maximum: 600 - minimum: 100 - type: integer - title: - description: 'A short, summary of the problem type. Written in english and readable' - example: Service Unavailable - maxLength: 64 - pattern: '^[ -~]{0,64}$' - type: string - additionalProperties: false - required: - - status - - title - securitySchemes: - bearerAuth: - type: http - description: 'A bearer token in the format of a JWS and comformed to the specifications included in [RFC8725](https://tools.ietf.org/html/RFC8725).' - scheme: bearer - bearerFormat: JWT diff --git a/src/core/api/party_process/v1/retrieveInstitutionProducts_policy.xml b/src/core/api/party_process/v1/retrieveInstitutionProducts_policy.xml deleted file mode 100644 index e0246316a..000000000 --- a/src/core/api/party_process/v1/retrieveInstitutionProducts_policy.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - application/json - - { - "products": [ - { - "id": "productId1", - "role": "string", - "createdAt": "2021-12-03T17:00:48.638Z" - }, - { - "id": "productId2", - "role": "string", - "createdAt": "2021-12-03T17:00:48.638Z" - }, - { - "id": "productId3", - "role": "string", - "createdAt": "2021-12-03T17:00:48.638Z" - } - ] - } - - - - - - - - - - - - diff --git a/src/core/api/party_registry_proxy/v1/getInstitutionById_policy.xml b/src/core/api/party_registry_proxy/v1/getInstitutionById_policy.xml deleted file mode 100644 index 01836c154..000000000 --- a/src/core/api/party_registry_proxy/v1/getInstitutionById_policy.xml +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - application/json - - - { - "id": "id", - "o": "o", - "ou": "ou", - "aoo": "aoo", - "taxCode": "00000000000", - "administrationCode": "00000000000", - "category": "c7", - "managerName": "Mario", - "managerSurname": "Rossi", - "description": "AGENCY X", - "digitalAddress": "mail@pec.mail.org" - } - - - - - - - - application/json - - - { - "id": "error", - "o": "errorO", - "ou": "errorUu", - "aoo": "errorAoo", - "taxCode": "11111111111", - "administrationCode": "11111111111", - "category": "c7", - "managerName": "Mario:ERROR", - "managerSurname": "Rossi_ERROR", - "description": "AGENCY ERROR", - "digitalAddress": "mail_ERROR_@pec.mail.org" - } - - - - - - - - application/json - - - { - "id": "onboarded", - "o": "onboardedO", - "ou": "onboardedUu", - "aoo": "onboardedAoo", - "taxCode": "22222222222", - "administrationCode": "22222222222", - "category": "c7", - "managerName": "Mario_ONBOARDED", - "managerSurname": "Rossi_ONBOARDED", - "description": "AGENCY ONBOARDED", - "digitalAddress": "mail_ONBOARDED_@pec.mail.org" - } - - - - - - - - application/json - - - { - "id": "pending", - "o": "pendingO", - "ou": "pendingUu", - "aoo": "pendingAoo", - "taxCode": "33333333333", - "administrationCode": "33333333333", - "category": "c7", - "managerName": "Mario_PENDING", - "managerSurname": "Rossi_PENDING", - "description": "AGENCY PENDING", - "digitalAddress": "mail_PENDING_@pec.mail.org" - } - - - - - - - - application/json - - - { - "id": "infoError", - "o": "infoErrorO", - "ou": "infoErrorUu", - "aoo": "infoErrorAoo", - "taxCode": "99999999999", - "administrationCode": "99999999999", - "category": "c7", - "managerName": "Mario_INFOERROR", - "managerSurname": "Rossi_INFOERROR", - "description": "AGENCY INFO ERROR", - "digitalAddress": "mail_INFOERROR_@pec.mail.org" - } - - - - - - - - - - - - - - - diff --git a/src/core/api/party_registry_proxy/v1/party-registry-proxy.yml.tpl b/src/core/api/party_registry_proxy/v1/party-registry-proxy.yml.tpl deleted file mode 100644 index bd0430af6..000000000 --- a/src/core/api/party_registry_proxy/v1/party-registry-proxy.yml.tpl +++ /dev/null @@ -1,286 +0,0 @@ -openapi: 3.0.3 -info: - title: Party Registry Proxy Server - description: This service is the proxy to the party registry - version: 'v1' - contact: - name: API Support - url: http://www.example.com/support - email: support@example.com - termsOfService: http://localhost/terms - x-api-id: an x-api-id - x-summary: an x-summary -servers: - - url: 'https://${host}/${basePath}' - description: This service is the proxy to the party registry -tags: - - name: institution - description: Retrieve information about institution - externalDocs: - description: Find out more - url: http://swagger.io - - name: health - description: Verify service status - externalDocs: - description: Find out more - url: http://swagger.io - -paths: - /institutions/{institutionId}: - get: - tags: - - institution - summary: Find institution by ID - description: Returns a single institution - operationId: getInstitutionById - parameters: - - name: institutionId - in: path - description: ID of institution to return - required: true - schema: - type: string - maxLength: 32 - responses: - '200': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/Institution' - '400': - description: Invalid ID supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '404': - description: Institution not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /institutions: - get: - tags: - - institution - summary: Find institution by ID - description: Returns a single institution - operationId: searchInstitution - parameters: - - in: query - name: search - required: true - schema: - type: string - - in: query - name: page - required: true - schema: - type: integer - format: int32 - - in: query - name: limit - required: true - schema: - type: integer - format: int32 - responses: - '200': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/Institutions' - '400': - description: Invalid ID supplied - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - '404': - description: Institution not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /categories: - get: - tags: - - institution - summary: Get all ipa categories - description: Returns the ipa categories list - operationId: getCategories - responses: - '200': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/Categories' - '404': - description: Categories not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' - /status: - get: - tags: - - health - summary: Health status endpoint - description: Return ok - operationId: getStatus - responses: - '200': - description: successful operation - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Problem' -components: - schemas: - Institution: - type: object - additionalProperties: false - properties: - id: - type: string - description: iPA code - example: age - pattern: '^[a-z]{1,12}$' - maxLength: 12 - o: - type: string - description: o - example: age - pattern: '^[a-z]{1,12}$' - maxLength: 12 - ou: - type: string - description: ou - example: age - pattern: '^[a-z]{1,12}$' - maxLength: 12 - aoo: - type: string - description: aoo - example: age - pattern: '^[a-z]{1,12}$' - maxLength: 12 - taxCode: - type: string - description: institution fiscal code - example: '00000000000' - pattern: '[\d]{10,13}' - maxLength: 13 - category: - type: string - description: institution category - example: 'c7' - pattern: '[a-zA-Z\d]{1,12}' - maxLength: 13 - manager: - $ref: '#/components/schemas/Manager' - description: - type: string - description: institution description - example: AGENCY X - format: '^[A-Za-z èàòùìÈÀÒÙÌ]{2,30}$' - maxLength: 30 - digitalAddress: - type: string - description: digital institution address - example: mail@pec.mail.org - format: mail - maxLength: 20 - required: - - id - - category - - taxCode - - digitalAddress - - description - - manager - Institutions: - properties: - items: - type: array - items: - $ref: '#/components/schemas/Institution' - count: - type: integer - format: int64 - required: - - items - - count - Category: - type: object - additionalProperties: false - properties: - code: - type: string - name: - type: string - kind: - type: string - required: - - code - - kind - - name - Categories: - properties: - items: - type: array - items: - $ref: '#/components/schemas/Category' - required: - - items - Manager: - type: object - additionalProperties: false - properties: - givenName: - type: string - description: manager name - example: Mario - format: '^[A-Za-z èàòùìÈÀÒÙÌ]{2,30}$' - maxLength: 30 - familyName: - type: string - description: manager surname - example: Rossi - format: '^[A-Za-z èàòùìÈÀÒÙÌ]{2,30}$' - maxLength: 30 - required: - - givenName - - familyName - Problem: - properties: - detail: - description: - A human readable explanation specific to this occurrence of the problem. - example: Request took too long to complete. - maxLength: 4096 - pattern: '^.{0,1024}$' - type: string - status: - description: - The HTTP status code generated by the origin server for this occurrence - of the problem. - example: 503 - exclusiveMaximum: true - format: int32 - maximum: 600 - minimum: 100 - type: integer - title: - description: - A short, summary of the problem type. Written in english and readable - example: Service Unavailable - maxLength: 64 - pattern: '^[ -~]{0,64}$' - type: string - additionalProperties: false - required: - - status - - title diff --git a/src/core/api/party_registry_proxy/v1/searchInstitution_policy.xml b/src/core/api/party_registry_proxy/v1/searchInstitution_policy.xml deleted file mode 100644 index 7509e06b0..000000000 --- a/src/core/api/party_registry_proxy/v1/searchInstitution_policy.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - application/json - - - { - "items": [ - { - "id": "id", - "o": "o", - "ou": "ou", - "aoo": "aoo", - "taxCode": "00000000000", - "administrationCode": "00000000000", - "category": "c7", - "managerName": "Mario", - "managerSurname": "Rossi", - "description": "AGENCY X", - "digitalAddress": "mail@pec.mail.org" - }, - { - "id": "error", - "o": "errorO", - "ou": "errorUu", - "aoo": "errorAoo", - "taxCode": "11111111111", - "administrationCode": "11111111111", - "category": "c7", - "managerName": "Mario:ERROR", - "managerSurname": "Rossi_ERROR", - "description": "AGENCY ERROR", - "digitalAddress": "mail_ERROR_@pec.mail.org" - }, - { - "id": "onboarded", - "o": "onboardedO", - "ou": "onboardedUu", - "aoo": "onboardedAoo", - "taxCode": "22222222222", - "administrationCode": "22222222222", - "category": "c7", - "managerName": "Mario_ONBOARDED", - "managerSurname": "Rossi_ONBOARDED", - "description": "AGENCY ONBOARDED", - "digitalAddress": "mail_ONBOARDED_@pec.mail.org" - }, - { - "id": "pending", - "o": "pendingO", - "ou": "pendingUu", - "aoo": "pendingAoo", - "taxCode": "33333333333", - "administrationCode": "33333333333", - "category": "c7", - "managerName": "Mario_PENDING", - "managerSurname": "Rossi_PENDING", - "description": "AGENCY PENDING", - "digitalAddress": "mail_PENDING_@pec.mail.org" - }, - { - "id": "infoError", - "o": "infoErrorO", - "ou": "infoErrorUu", - "aoo": "infoErrorAoo", - "taxCode": "99999999999", - "administrationCode": "99999999999", - "category": "c7", - "managerName": "Mario_INFOERROR", - "managerSurname": "Rossi_INFOERROR", - "description": "AGENCY INFO ERROR", - "digitalAddress": "mail_INFOERROR_@pec.mail.org" - } - ], - "count": 5 - } - - - - - - - - - - - - - diff --git a/src/core/apim.tf b/src/core/apim.tf deleted file mode 100644 index f24fabd98..000000000 --- a/src/core/apim.tf +++ /dev/null @@ -1,346 +0,0 @@ -# APIM subnet -module "apim_snet" { - source = "git::https://github.com/pagopa/azurerm.git//subnet?ref=v1.0.58" - name = format("%s-apim-snet", local.project) - resource_group_name = azurerm_resource_group.rg_vnet.name - virtual_network_name = module.vnet.name - address_prefixes = var.cidr_subnet_apim - - enforce_private_link_endpoint_network_policies = true - service_endpoints = ["Microsoft.Web"] -} - -resource "azurerm_resource_group" "rg_api" { - name = format("%s-api-rg", local.project) - location = var.location - - tags = var.tags -} - -locals { - - origins = { - base = concat( - [ - format("https://api.%s.%s", var.dns_zone_prefix, var.external_domain), - format("https://%s.%s", var.dns_zone_prefix, var.external_domain), - ], - var.env_short != "p" ? ["https://localhost:3000", "http://localhost:3000", "https://localhost:3001", "http://localhost:3001"] : [] - ), - spidAcsOrigins = concat( - var.enable_spid_test ? [format("https://%s", module.spid-test-env.spid_testenv_url)] : [], - [ - "https://id.lepida.it", - "https://identity.infocert.it", - "https://identity.sieltecloud.it", - "https://idp.namirialtsp.com", - "https://login.id.tim.it", - "https://loginspid.aruba.it", - "https://posteid.poste.it", - "https://spid.intesa.it", - "https://spid.register.it" - ] - ) - } -} - -########################### -## Api Management (apim) ## -########################### - -module "apim" { - source = "git::https://github.com/pagopa/azurerm.git//api_management?ref=v1.0.58" - subnet_id = module.apim_snet.id - location = azurerm_resource_group.rg_api.location - name = format("%s-apim", local.project) - resource_group_name = azurerm_resource_group.rg_api.name - publisher_name = var.apim_publisher_name - publisher_email = data.azurerm_key_vault_secret.apim_publisher_email.value - sku_name = var.apim_sku - virtual_network_type = "External" - - redis_connection_string = null - redis_cache_id = null - - # This enables the Username and Password Identity Provider - sign_up_enabled = false - lock_enable = false - - application_insights_instrumentation_key = azurerm_application_insights.application_insights.instrumentation_key - - xml_content = templatefile("./api/base_policy.tpl", { - origins = local.origins.base - }) - - tags = var.tags - - depends_on = [ - azurerm_application_insights.application_insights - ] -} - -######### -## API ## -######### - -## monitor ## -module "monitor" { - source = "git::https://github.com/pagopa/azurerm.git//api_management_api?ref=v1.0.58" - name = format("%s-monitor", var.env_short) - api_management_name = module.apim.name - resource_group_name = azurerm_resource_group.rg_api.name - - description = "Monitor" - display_name = "Monitor" - path = "" - protocols = ["https"] - - service_url = null - - content_format = "openapi" - content_value = templatefile("./api/monitor/openapi.json.tpl", { - host = "selc-d-apim.azure-api.net" //azurerm_api_management_custom_domain.api_custom_domain.proxy[0].host_name - }) - - xml_content = file("./api/base_policy.xml") - - subscription_required = false - - api_operation_policies = [ - { - operation_id = "get" - xml_content = file("./api/monitor/mock_policy.xml") - } - ] -} - -resource "azurerm_api_management_api_version_set" "apim_hub_spid_login_api" { - name = format("%s-spid-login-api", var.env_short) - resource_group_name = azurerm_resource_group.rg_api.name - api_management_name = module.apim.name - display_name = "SPID" - versioning_scheme = "Segment" -} - -module "apim_hub_spid_login_api_v1" { - source = "git::https://github.com/pagopa/azurerm.git//api_management_api?ref=v1.0.58" - name = format("%s-spid-login-api-v1", local.project) - api_management_name = module.apim.name - resource_group_name = azurerm_resource_group.rg_api.name - version_set_id = azurerm_api_management_api_version_set.apim_hub_spid_login_api.id - - - description = "Login SPID Service Provider" - display_name = "SPID V1" - path = "spid" - api_version = "v1" - protocols = ["https"] - - service_url = format("http://%s/spid/v1", var.reverse_proxy_ip) - - content_format = "swagger-json" - content_value = templatefile("./api/hubspidlogin_api/v1/swagger.json.tpl", { - host = "selc-d-apim.azure-api.net" //azurerm_api_management_custom_domain.api_custom_domain.proxy[0].host_name - }) - - xml_content = file("./api/base_policy.xml") - - subscription_required = false - - - api_operation_policies = [ - { - operation_id = "postACS" - xml_content = templatefile("./api/hubspidlogin_api/v1/postacs_policy.xml.tpl", { - origins = local.origins.spidAcsOrigins - }) - }, - { - operation_id = "getMetadata" - xml_content = file("./api/hubspidlogin_api/v1/metadata_policy.xml.tpl") - } - ] -} - -resource "azurerm_api_management_api_version_set" "apim_uservice_party_process" { - name = format("%s-party-prc-api", var.env_short) - resource_group_name = azurerm_resource_group.rg_api.name - api_management_name = module.apim.name - display_name = "Party Process Micro Service" - versioning_scheme = "Segment" -} - -module "apim_uservice_party_process_v1" { - source = "git::https://github.com/pagopa/azurerm.git//api_management_api?ref=v1.0.58" - name = format("%s-party-prc-api-v1", local.project) - api_management_name = module.apim.name - resource_group_name = azurerm_resource_group.rg_api.name - version_set_id = azurerm_api_management_api_version_set.apim_uservice_party_process.id - - - description = "This service is the party process" - display_name = "Party Process Micro Service V1" - path = "party-process" - api_version = "v1" - protocols = ["https"] - - service_url = format("http://%s/party-process/v1", var.reverse_proxy_ip) - - content_format = "openapi" - content_value = templatefile("./api/party_process/v1/party-process.yml.tpl", { - host = "selc-d-apim.azure-api.net" //azurerm_api_management_custom_domain.api_custom_domain.proxy[0].host_name - basePath = "party-process/v1" - }) - - xml_content = file("./api/base_policy.xml") - - subscription_required = false - - // TODO these are mocks! remove me after integration - api_operation_policies = [ - { - operation_id = "getOnboardingInfo" - xml_content = file("./api/party_process/v1/getOnBoardingInfo_policy.xml") - }, - { - operation_id = "invalidateOnboarding" - xml_content = file("./api/party_process/v1/invalidateOnboarding_policy.xml") - }, - { - operation_id = "confirmOnboarding" - xml_content = file("./api/party_process/v1/confirmOnboarding_policy.xml") - }, - { - operation_id = "retrieveInstitutionProducts" - xml_content = file("./api/party_process/v1/retrieveInstitutionProducts_policy.xml") - }, - { - operation_id = "onboardingOrganization" - xml_content = file("./api/party_process/v1/onboardingOrganization_policy.xml") - }, - ] -} - -resource "azurerm_api_management_api_version_set" "apim_uservice_party_management" { - name = format("%s-party-mgmt-api", var.env_short) - resource_group_name = azurerm_resource_group.rg_api.name - api_management_name = module.apim.name - display_name = "Party Management Micro Service" - versioning_scheme = "Segment" -} - -module "apim_uservice_party_management_v1" { - source = "git::https://github.com/pagopa/azurerm.git//api_management_api?ref=v1.0.58" - name = format("%s-party-mgmt-api-v1", local.project) - api_management_name = module.apim.name - resource_group_name = azurerm_resource_group.rg_api.name - version_set_id = azurerm_api_management_api_version_set.apim_uservice_party_management.id - - - description = "This service is the party manager" - display_name = "Party Management Micro Service V1" - path = "party-management" - api_version = "v1" - protocols = ["https"] - - service_url = format("http://%s/party-management/v1", var.reverse_proxy_ip) - - content_format = "openapi" - content_value = templatefile("./api/party_management/v1/party-management.yml.tpl", { - host = "selc-d-apim.azure-api.net" // azurerm_api_management_custom_domain.api_custom_domain.proxy[0].host_name - basePath = "party-management/v1" - }) - - xml_content = file("./api/base_policy.xml") - - subscription_required = false - - // TODO these are mocks! remove me after integration - api_operation_policies = [ - { - operation_id = "getOrganizationById" - xml_content = file("./api/party_management/v1/getOrganizationById_policy.xml") - } - ] -} - -resource "azurerm_api_management_api_version_set" "apim_uservice_party_registry_proxy" { - name = format("%s-party-reg-proxy-api", var.env_short) - resource_group_name = azurerm_resource_group.rg_api.name - api_management_name = module.apim.name - display_name = "Party Registry Proxy Server" - versioning_scheme = "Segment" -} - -module "apim_uservice_party_registry_proxy_v1" { - source = "git::https://github.com/pagopa/azurerm.git//api_management_api?ref=v1.0.58" - name = format("%s-party-reg-proxy-api-v1", local.project) - api_management_name = module.apim.name - resource_group_name = azurerm_resource_group.rg_api.name - version_set_id = azurerm_api_management_api_version_set.apim_uservice_party_registry_proxy.id - - - description = "This service is the proxy to the party registry" - display_name = "Party Registry Proxy Server V1" - path = "party-registry-proxy" - api_version = "v1" - protocols = ["https"] - - service_url = format("http://%s/party-registry-proxy/v1", var.reverse_proxy_ip) - - content_format = "openapi" - content_value = templatefile("./api/party_registry_proxy/v1/party-registry-proxy.yml.tpl", { - host = "selc-d-apim.azure-api.net" //azurerm_api_management_custom_domain.api_custom_domain.proxy[0].host_name - basePath = "party-registry-proxy/v1" - }) - - xml_content = file("./api/base_policy.xml") - - subscription_required = false - - // TODO these are mocks! remove me after integration - api_operation_policies = [ - { - operation_id = "searchInstitution" - xml_content = file("./api/party_registry_proxy/v1/searchInstitution_policy.xml") - }, { - operation_id = "getInstitutionById" - xml_content = file("./api/party_registry_proxy/v1/getInstitutionById_policy.xml") - } - ] -} - -resource "azurerm_api_management_api_version_set" "apim_b4f_dashboard" { - name = format("%s-b4f-dashboard-api", var.env_short) - resource_group_name = azurerm_resource_group.rg_api.name - api_management_name = module.apim.name - display_name = "Self Care Dashboard" - versioning_scheme = "Segment" -} - -module "apim_b4f_dashboard_v1" { - source = "git::https://github.com/pagopa/azurerm.git//api_management_api?ref=v1.0.58" - name = format("%s-b4f-dashboard-api-v1", local.project) - api_management_name = module.apim.name - resource_group_name = azurerm_resource_group.rg_api.name - version_set_id = azurerm_api_management_api_version_set.apim_b4f_dashboard.id - - - description = "Self Care Dashboard API documentation" - display_name = "Self Care Dashboard V1" - path = "dashboard" - api_version = "v1" - protocols = ["https"] - - service_url = format("http://%s/dashboard/v1", var.reverse_proxy_ip) - - content_format = "openapi" - content_value = templatefile("./api/dashboard/v1/dashboard-openapi.json.tpl", { - host = "selc-d-apim.azure-api.net" //azurerm_api_management_custom_domain.api_custom_domain.proxy[0].host_name - basePath = "dashboard/v1" - }) - - xml_content = file("./api/base_policy.xml") - - subscription_required = false -} diff --git a/src/core/env/dev/terraform.tfvars b/src/core/env/dev/terraform.tfvars index 4a8b67d5e..3464cd984 100644 --- a/src/core/env/dev/terraform.tfvars +++ b/src/core/env/dev/terraform.tfvars @@ -22,7 +22,6 @@ cidr_subnet_redis = ["10.1.132.0/24"] cidr_subnet_vpn = ["10.1.133.0/24"] cidr_subnet_dns_forwarder = ["10.1.134.0/29"] cidr_subnet_cosmosdb_mongodb = ["10.1.135.0/24"] -cidr_subnet_apim = ["10.1.136.0/24"] cidr_subnet_contract_storage = ["10.1.137.0/24"] # dns @@ -34,10 +33,6 @@ azdo_sp_tls_cert_enabled = true enable_azdoa = true enable_iac_pipeline = true -# apim -apim_publisher_name = "pagoPA SelfCare DEV" -apim_sku = "Developer_1" - # app_gateway app_gateway_api_certificate_name = "api-dev-selfcare-pagopa-it" diff --git a/src/core/env/prod/terraform.tfvars b/src/core/env/prod/terraform.tfvars index 151b190b8..f417e5818 100644 --- a/src/core/env/prod/terraform.tfvars +++ b/src/core/env/prod/terraform.tfvars @@ -22,7 +22,6 @@ cidr_subnet_redis = ["10.1.132.0/24"] cidr_subnet_vpn = ["10.1.133.0/24"] cidr_subnet_dns_forwarder = ["10.1.134.0/29"] cidr_subnet_cosmosdb_mongodb = ["10.1.135.0/24"] -cidr_subnet_apim = ["10.1.136.0/24"] cidr_subnet_contract_storage = ["10.1.137.0/24"] # dns @@ -34,10 +33,6 @@ azdo_sp_tls_cert_enabled = true enable_azdoa = true enable_iac_pipeline = true -# apim -apim_publisher_name = "pagoPA SelfCare PROD" -apim_sku = "Developer_1" - # app_gateway app_gateway_api_certificate_name = "api-selfcare-pagopa-it" app_gateway_min_capacity = 0 # todo change to at least 1 diff --git a/src/core/env/uat/terraform.tfvars b/src/core/env/uat/terraform.tfvars index 3d916f9a7..81e4481d2 100644 --- a/src/core/env/uat/terraform.tfvars +++ b/src/core/env/uat/terraform.tfvars @@ -22,7 +22,6 @@ cidr_subnet_redis = ["10.1.132.0/24"] cidr_subnet_vpn = ["10.1.133.0/24"] cidr_subnet_dns_forwarder = ["10.1.134.0/29"] cidr_subnet_cosmosdb_mongodb = ["10.1.135.0/24"] -cidr_subnet_apim = ["10.1.136.0/24"] cidr_subnet_contract_storage = ["10.1.137.0/24"] # dns @@ -34,10 +33,6 @@ azdo_sp_tls_cert_enabled = true enable_azdoa = true enable_iac_pipeline = true -# apim -apim_publisher_name = "pagoPA SelfCare UAT" -apim_sku = "Developer_1" - # app_gateway app_gateway_api_certificate_name = "api-uat-selfcare-pagopa-it" diff --git a/src/core/mongodb.tf b/src/core/mongodb.tf index 5a530d006..5774b04bf 100644 --- a/src/core/mongodb.tf +++ b/src/core/mongodb.tf @@ -11,7 +11,7 @@ locals { ] } -# APIM subnet +# cosmosdb-Mongo subnet module "cosmosdb_mongodb_snet" { source = "git::https://github.com/pagopa/azurerm.git//subnet?ref=v1.0.58" name = format("%s-cosmosb-mongodb-snet", local.project) diff --git a/src/core/security_kv.tf b/src/core/security_kv.tf index bcd420d73..1ff65bf8c 100644 --- a/src/core/security_kv.tf +++ b/src/core/security_kv.tf @@ -20,18 +20,6 @@ module "key_vault" { tags = var.tags } -# ## api management policy ## -resource "azurerm_key_vault_access_policy" "api_management_policy" { - key_vault_id = module.key_vault.id - tenant_id = data.azurerm_client_config.current.tenant_id - object_id = module.apim.principal_id - - key_permissions = [] - secret_permissions = ["Get", "List"] - certificate_permissions = ["Get", "List"] - storage_permissions = [] -} - ## user assined identity: (application gateway) ## resource "azurerm_key_vault_access_policy" "app_gateway_policy" { key_vault_id = module.key_vault.id diff --git a/src/core/spid_testenv_conf/config.yaml b/src/core/spid_testenv_conf/config.yaml index 708fe0292..191e43d6f 100644 --- a/src/core/spid_testenv_conf/config.yaml +++ b/src/core/spid_testenv_conf/config.yaml @@ -3,7 +3,7 @@ ######################### # The base URL where spid-testenv2 is reachable at. -base_url: "https://selc-u-spid-testenv.westeurope.azurecontainer.io" +base_url: "https://selc-d-spid-testenv.westeurope.azurecontainer.io" # Key and certificate used to sign SAML messages. key_file: "./conf/idp.key" @@ -16,7 +16,7 @@ cert_file: "./conf/idp.crt" # using different sources. metadata: remote: - - "https://api.uat.selfcare.pagopa.it/spid/v1/metadata" + - "https://api.dev.selfcare.pagopa.it/spid/v1/metadata" # Application configuration diff --git a/src/core/variables.tf b/src/core/variables.tf index b6328f79c..6cd2bc756 100644 --- a/src/core/variables.tf +++ b/src/core/variables.tf @@ -403,12 +403,6 @@ variable "cidr_vnet" { description = "Virtual network address space." } -variable "cidr_subnet_apim" { - type = list(string) - description = "Address prefixes subnet api management." - default = null -} - variable "cidr_subnet_appgateway" { type = list(string) description = "Application gateway address space." @@ -458,15 +452,6 @@ variable "dns_zone_prefix" { description = "The dns subdomain." } -# apim -variable "apim_publisher_name" { - type = string -} - -variable "apim_sku" { - type = string -} - # cdn variable "azuread_service_principal_azure_cdn_frontdoor_id" { type = string