diff --git a/codegenerator/common/rust.py b/codegenerator/common/rust.py
index fde08aa..45ed64a 100644
--- a/codegenerator/common/rust.py
+++ b/codegenerator/common/rust.py
@@ -1132,13 +1132,19 @@ class TypeManager:
         return False
 
 
-def sanitize_rust_docstrings(doc: str | None) -> str | None:
+def sanitize_rust_docstrings(doc: str | list[str] | None) -> str | None:
     """Sanitize the string to be a valid rust docstring"""
     if not doc:
         return None
     code_block_open: bool = False
     lines: list[str] = []
-    for line in doc.split("\n"):
+    doc_lines: list[str] = []
+    if isinstance(doc, list):
+        for line in doc:
+            doc_lines.extend(line.split("\n"))
+    else:
+        doc_lines = doc.split("\n")
+    for line in doc_lines:
         m = re.search(CODEBLOCK_RE, line)
         if m and m.groups():
             if not code_block_open:
diff --git a/codegenerator/openapi/keystone_schemas/federation.py b/codegenerator/openapi/keystone_schemas/federation.py
index 3ea9f4c..44edc61 100644
--- a/codegenerator/openapi/keystone_schemas/federation.py
+++ b/codegenerator/openapi/keystone_schemas/federation.py
@@ -218,66 +218,6 @@ MAPPING_CREATE_SCHEMA: dict[str, Any] = {
     "properties": {"mapping": MAPPING_PROPERTIES},
 }
 
-FEDERATION_SERVICE_PROVIDER_SCHEMA: dict[str, Any] = {
-    "type": "object",
-    "properties": {
-        "auth_url": {
-            "type": "string",
-            "description": "The URL to authenticate against",
-        },
-        "description": {
-            "type": ["string", "null"],
-            "description": "The description of the Service Provider",
-        },
-        "id": {
-            "type": "string",
-            "description": "The Service Provider unique ID",
-        },
-        "enabled": {
-            "type": "boolean",
-            "description": "Whether the Service Provider is enabled or not",
-        },
-        "relay_state_prefix": {
-            "type": ["string", "null"],
-            "description": "The prefix of the RelayState SAML attribute",
-        },
-        "sp_url": {
-            "type": "string",
-            "description": "The Service Provider’s URL",
-        },
-    },
-    "required": ["auth_url", "sp_url"],
-}
-
-FEDERATION_SERVICE_PROVIDER_CONTAINER_SCHEMA: dict[str, Any] = {
-    "type": "object",
-    "properties": {"service_provider": FEDERATION_SERVICE_PROVIDER_SCHEMA},
-}
-
-FEDERATION_SERVICE_PROVIDERS_SCHEMA: dict[str, Any] = {
-    "type": "object",
-    "properties": {
-        "service_providers": {
-            "type": "array",
-            "items": FEDERATION_SERVICE_PROVIDER_SCHEMA,
-        }
-    },
-}
-
-FEDERATION_SERVICE_PROVIDER_CREATE_SCHEMA: dict[str, Any] = {
-    "type": "object",
-    "properties": {
-        "service_provider": federation_schema.service_provider_create
-    },
-}
-
-FEDERATION_SERVICE_PROVIDER_UPDATE_SCHEMA: dict[str, Any] = {
-    "type": "object",
-    "properties": {
-        "service_provider": federation_schema.service_provider_update
-    },
-}
-
 
 def _post_process_operation_hook(
     openapi_spec, operation_spec, path: str | None = None
@@ -431,31 +371,6 @@ def _get_schema_ref(
             name, TypeSchema(**MAPPING_CREATE_SCHEMA)
         )
         ref = f"#/components/schemas/{name}"
-    # ### Identity provider service provider
-    elif name == "Os_FederationService_ProvidersGetResponse":
-        openapi_spec.components.schemas.setdefault(
-            name, TypeSchema(**FEDERATION_SERVICE_PROVIDERS_SCHEMA)
-        )
-        ref = f"#/components/schemas/{name}"
-    elif name in [
-        "Os_FederationService_ProviderGetResponse",
-        "Os_FederationService_ProviderPutResponse",
-        "Os_FederationService_ProviderPatchResponse",
-    ]:
-        openapi_spec.components.schemas.setdefault(
-            name, TypeSchema(**FEDERATION_SERVICE_PROVIDER_CONTAINER_SCHEMA)
-        )
-        ref = f"#/components/schemas/{name}"
-    elif name == "Os_FederationService_ProviderPutRequest":
-        openapi_spec.components.schemas.setdefault(
-            name, TypeSchema(**FEDERATION_SERVICE_PROVIDER_CREATE_SCHEMA)
-        )
-        ref = f"#/components/schemas/{name}"
-    elif name == "Os_FederationService_ProviderPatchRequest":
-        openapi_spec.components.schemas.setdefault(
-            name, TypeSchema(**FEDERATION_SERVICE_PROVIDER_UPDATE_SCHEMA)
-        )
-        ref = f"#/components/schemas/{name}"
     # SAML2 Metadata
     elif name == "Os_FederationSaml2MetadataGetResponse":
         mime_type = "text/xml"
diff --git a/metadata/identity_metadata.yaml b/metadata/identity_metadata.yaml
index 6af0f8a..043ebc4 100644
--- a/metadata/identity_metadata.yaml
+++ b/metadata/identity_metadata.yaml
@@ -1514,7 +1514,7 @@ resources:
           rust-sdk:
             module_name: head
       show:
-        operation_id: OS-FEDERATION/service_providers/sp_id:get
+        operation_id: OS-FEDERATION/service_providers/service_provider_id:get
         operation_type: show
         targets:
           rust-sdk:
@@ -1524,7 +1524,7 @@ resources:
             sdk_mod_name: get
             cli_full_command: federation service-provider show
       create:
-        operation_id: OS-FEDERATION/service_providers/sp_id:put
+        operation_id: OS-FEDERATION/service_providers/service_provider_id:put
         operation_type: create
         targets:
           rust-sdk:
@@ -1534,7 +1534,7 @@ resources:
             sdk_mod_name: create
             cli_full_command: federation service-provider create
       delete:
-        operation_id: OS-FEDERATION/service_providers/sp_id:delete
+        operation_id: OS-FEDERATION/service_providers/service_provider_id:delete
         operation_type: delete
         targets:
           rust-sdk:
@@ -1544,7 +1544,7 @@ resources:
             sdk_mod_name: delete
             cli_full_command: federation service-provider delete
       update:
-        operation_id: OS-FEDERATION/service_providers/sp_id:patch
+        operation_id: OS-FEDERATION/service_providers/service_provider_id:patch
         operation_type: set
         targets:
           rust-sdk: