{"openapi":"3.0.0","info":{"version":"1.0.0","title":"Event Endpoint Management Admin API","description":"The Admin API provides programmatic access to your Event Endpoint Management deployment and features from other systems."},"servers":[{"url":"/admin","description":"This is the base path for the Admin API URL on the server endpoint, which is also available in the Event Endpoint Management UI."}],"components":{"headers":{"etag":{"required":false,"schema":{"type":"string"},"description":"An identifier that can be supplied with the If-None-Match header to indicate that unchanged results should return 304 with no data."},"authorization":{"required":true,"schema":{"type":"string"}},"ei-pagination-total":{"description":"Total number of items available for retrieval (including current page).","schema":{"type":"integer"}}},"parameters":{"catalogId":{"in":"path","name":"catalogId","required":true,"schema":{"type":"string"},"description":"The ID of the catalog."},"credentialsId":{"in":"path","name":"credentialsId","required":true,"schema":{"type":"string","maxLength":100,"minLength":1},"description":"The ID of the application credentials."},"entryId":{"in":"path","name":"entryId","required":true,"schema":{"type":"string"},"description":"The ID of the catalog entry."},"clusterId":{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"},"description":"The ID of the cluster."},"subscriptionId":{"in":"path","name":"subscriptionId","required":true,"schema":{"type":"string"},"description":"The ID of the subscription."},"optionId":{"in":"path","name":"optionId","required":true,"schema":{"type":"string"},"description":"The ID of the option in the source topic."},"virtualTopicId":{"in":"path","name":"virtualTopicId","required":true,"schema":{"type":"string"},"description":"The ID of the virtual topic."},"sourceTopicId":{"in":"path","name":"sourceTopicId","required":true,"schema":{"type":"string"},"description":"The ID of the source topic."},"applicationId":{"in":"path","name":"applicationId","required":true,"schema":{"type":"string","maxLength":100,"minLength":1},"description":"The ID of the application."},"page":{"in":"query","name":"page","required":false,"schema":{"type":"integer","minimum":1},"description":"The page number of results to retrieve. If this number exceeds the available data, then the last page is returned."},"maxPageSize":{"in":"query","name":"maxPageSize","required":false,"schema":{"type":"integer","minimum":1,"maximum":50},"description":"The maximum number of entries to return per page. If not specified, all data items are returned."},"filterBy":{"in":"query","name":"filterBy","required":false,"schema":{"type":"string","enum":["consume","produce"]},"description":"Capability to filter by."},"disableValidation":{"in":"query","name":"disableValidation","required":false,"schema":{"type":"boolean"},"description":"Disable immediate validation against the remote server."},"filterByStatus":{"in":"query","name":"filterByStatus","required":false,"schema":{"type":"string","enum":["pending","approved","rejected","fulfilled"]},"description":"Approval status to filter by."},"filterByName":{"in":"query","name":"filterByName","required":false,"schema":{"type":"string"},"description":"Name prefix to filter by."},"exclude":{"in":"query","name":"exclude","required":false,"schema":{"type":"string","enum":["options","virtualtopics","clusters","eventsources","sourcetopics"]},"description":"Object type to exclude. The values \"eventsources\" and \"options\" are deprecated; use \"sourcetopics\" and \"virtualtopics\" instead."},"gatewayGroup":{"in":"path","name":"gatewayGroup","required":true,"schema":{"type":"string"},"description":"Event gateway group name."},"gatewayId":{"in":"path","name":"gatewayId","required":true,"schema":{"type":"string"},"description":"ID for an event gateway instance."}},"securitySchemes":{"eemAccessToken":{"description":"To use the API, create an access token in the Event Endpoint Management UI.","type":"http","scheme":"bearer"}}},"paths":{"/clusters":{"post":{"operationId":"createCluster","description":"Create a new cluster.","parameters":[{"$ref":"#/components/parameters/disableValidation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","bootstrapServers"],"properties":{"bootstrapServers":{"description":"Bootstrap servers for this cluster.","type":"array","minItems":1,"uniqueItems":true,"items":{"type":"object","required":["host","port"],"properties":{"host":{"description":"Kafka server host name.","type":"string"},"port":{"description":"Kafka server port.","type":"integer"},"ssl":{"description":"Connect over SSL.","type":"boolean","default":false},"certificates":{"description":"Certificates or CAs to trust, required to connect to the server via SSL.","type":"array","uniqueItems":true,"items":{"type":"object","description":"X509 certificate presented by an endpoint","required":["pem"],"properties":{"pem":{"description":"Certificate in PEM format","type":"string"},"subject":{"description":"Subject name of the certificate","type":"string"},"sans":{"description":"A list of subject alternative names of the certificate","type":"array","items":{"type":"string"}},"issuer":{"description":"Issuer of the certificate","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}}}}},"name":{"description":"Cluster name.","type":"string"},"lastUpdated":{"description":"Time in ms since the epoch which represents the last time the cluster information was updated.","type":"integer"},"credentials":{"type":"object","required":["type","data"],"description":"Credentials to be used by the gateway to connect to Kafka.","properties":{"type":{"description":"The type of credentials.","type":"string","enum":["NONE","SASL","MTLS","MTLS_SASL"]},"data":{"description":"Details of the SASL credential data to authenticate with Kafka.","type":"object","properties":{"username":{"description":"SASL username to authenticate with Kafka.","type":"string","maxLength":1024},"password":{"description":"SASL password to authenticate with Kafka.","type":"string","maxLength":1024},"mechanism":{"description":"SASL mechanism to authenticate with Kafka.","type":"string","enum":["PLAIN","SCRAM-SHA-256","SCRAM-SHA-512","OAUTHBEARER","OAUTHBEARER.AWS_MSK_IAM"]},"region":{"description":"Optional field containing the AWS MSK Region.","type":"string","minLength":1,"maxLength":200},"scope":{"description":"Optional field containing the scope for requesting the token from the token endpoint.","type":"string","minLength":1,"maxLength":200},"audience":{"description":"Optional field containing the audience for requesting the token from the token endpoint.","type":"string","minLength":1,"maxLength":200},"oauthTokenUri":{"description":"Optional URI of the OAuth token endpoint.","type":"string","minLength":1,"maxLength":500},"trustedCertificates":{"description":"Certificates or CAs to trust. Required to connect to OAuth server.","type":"array","uniqueItems":true,"items":{"type":"object","description":"X509 certificate presented by an endpoint","required":["pem"],"properties":{"pem":{"description":"Certificate in PEM format","type":"string"},"subject":{"description":"Subject name of the certificate","type":"string"},"sans":{"description":"A list of subject alternative names of the certificate","type":"array","items":{"type":"string"}},"issuer":{"description":"Issuer of the certificate","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}},"clientCertificateAndKey":{"type":"object","description":"Client certificate and key to use in mTLS","required":["pem","key"],"additionalProperties":false,"properties":{"pem":{"description":"Client certificate in PEM format","type":"string"},"key":{"description":"Client key in PEM format","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}}}}},"collaborators":{"type":"object","additionalProperties":false,"required":["groups"],"properties":{"groups":{"description":"List of collaborators for this cluster.","type":"array","items":{"type":"string","minLength":1,"maxLength":200}}}}}}}}},"responses":{"200":{"description":"Cluster successfully created.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"description":"The ID of your newly created cluster.","type":"string"}}}}}},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"409":{"description":"A cluster with the specified ID or name already exists."},"422":{"description":"The specified cluster could not be validated by using Kafka discovery mechanisms. For example, connection fails, certs mis-matched, SASL mis-match."},"500":{"description":"Internal error."}}},"get":{"operationId":"readAllClusters","description":"List all clusters within an organization.","parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/maxPageSize"}],"responses":{"200":{"description":"Clusters successfully listed.","headers":{"ei-pagination-total":{"$ref":"#/components/headers/ei-pagination-total"},"etag":{"$ref":"#/components/headers/etag"}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["id","owner","organization","name","collaborators","validation"],"additionalProperties":false,"properties":{"bootstrapServers":{"description":"Bootstrap servers for this cluster - only viewable with permissions.","type":"array","minItems":1,"uniqueItems":true,"items":{"type":"object","required":["host","port"],"properties":{"host":{"description":"Kafka server host name.","type":"string"},"port":{"description":"Kafka server port.","type":"integer"},"ssl":{"description":"Connect over SSL.","type":"boolean","default":false},"certificates":{"description":"Certificates or CAs to trust, required to connect to the server via SSL.","type":"array","uniqueItems":true,"items":{"type":"object","description":"X509 certificate presented by an endpoint","required":["pem"],"properties":{"pem":{"description":"Certificate in PEM format","type":"string"},"subject":{"description":"Subject name of the certificate","type":"string"},"sans":{"description":"A list of subject alternative names of the certificate","type":"array","items":{"type":"string"}},"issuer":{"description":"Issuer of the certificate","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}}}}},"id":{"description":"Unique cluster ID.","type":"string"},"name":{"description":"Cluster name.","type":"string"},"owner":{"description":"Cluster owner.","type":"string"},"organization":{"description":"Organization this cluster belongs to.","type":"string"},"lastUpdated":{"description":"Time in ms since the epoch which represents the last time the cluster information was updated.","type":"integer"},"credentials":{"type":"object","required":["type","data"],"description":"Credentials to be used by the gateway to connect to Kafka.","additionalProperties":false,"properties":{"type":{"description":"The type of credentials. Used by parsers to determine how to handle the other fields.","type":"string","enum":["NONE","SASL","MTLS","MTLS_SASL"]},"data":{"description":"Details of the SASL credential data to authenticate with Kafka.","type":"object","additionalProperties":false,"properties":{"username":{"description":"SASL username to authenticate with Kafka.","type":"string"},"mechanism":{"description":"SASL mechanism to authenticate with Kafka.","type":"string","enum":["PLAIN","SCRAM-SHA-256","SCRAM-SHA-512","OAUTHBEARER","OAUTHBEARER.AWS_MSK_IAM"]},"region":{"description":"Optional field containing the AWS MSK Region.","type":"string"},"scope":{"description":"Optional field containing the scope for requesting the token from the token endpoint.","type":"string"},"audience":{"description":"Optional field containing the audience for requesting the token from the token endpoint.","type":"string"},"oauthTokenUri":{"description":"Optional URI of the OAuth token endpoint.","type":"string"},"trustedCertificates":{"description":"Certificates or CAs to trust, required to connect to OAuth server.","type":"array","uniqueItems":true,"items":{"type":"object","description":"X509 certificate presented by an endpoint","required":["pem"],"properties":{"pem":{"description":"Certificate in PEM format","type":"string"},"subject":{"description":"Subject name of the certificate","type":"string"},"sans":{"description":"A list of subject alternative names of the certificate","type":"array","items":{"type":"string"}},"issuer":{"description":"Issuer of the certificate","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}},"clientCertificateAndKey":{"type":"object","description":"Client certificate and key to use in mTLS","required":["pem"],"additionalProperties":false,"properties":{"pem":{"description":"Client certificate in PEM format","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}}}}},"collaborators":{"type":"object","additionalProperties":false,"required":["groups"],"properties":{"groups":{"description":"List of collaborators for this cluster.","type":"array","items":{"type":"string"}}}},"validation":{"type":"object","required":["status","gatewayGroups"],"description":"Details of the visibility of this cluster amongst the gateways.","additionalProperties":false,"properties":{"status":{"type":"string","description":"Overall status of all of the gateways. | `pending` = Pending validation - we are waiting for gateways to report a status | `error` = No Gateways can see a Cluster/Topic - error state - either the configuration is incorrect, or there is a network issue | `success/partial` = success state - Some Gateways can see a Cluster/Topic | `success` = success state - All Gateways can see a Cluster/Topic.","enum":["pending","error","success/partial","success"]},"gatewayGroups":{"type":"array","description":"Gateway group names and if they can connect to this cluster.","items":{"type":"object","required":["name","gateways","status"],"additionalProperties":false,"properties":{"name":{"type":"string"},"status":{"type":"string","description":"Status on whether this gateway group can access the associated cluster. | `pending` = Pending validation - waiting for gateways to report a status | `error` = error state - No Gateways can access the cluster | `success/partial` = success state - Some Gateways can access the cluster | `success` = success state - All Gateways can access the cluster.","enum":["pending","error","success/partial","success"]},"gateways":{"type":"array","items":{"type":"object","required":["id","validationErrors"],"additionalProperties":false,"properties":{"id":{"type":"string"},"validationErrors":{"type":"array","description":"List of failed validation stages. If this array is empty, then this gateway group can access the cluster.","items":{"type":"string","description":"`network` = cannot resolve this address | `certificates/tls` = address is not trusted | `securityConfig` = this endpoint does not support the configured type of security (MTLS, SASL Plain etc) | `credentials` = provided username/password not accepted | `notKafka` = server is resolvable but is not responding as a Kafka server | `unsupported` = version of current gateway does not support required capability.","enum":["network","certificates/tls","securityConfig","credentials","notKafka","unsupported"]}}}}}}}}}}}}}}}},"304":{"description":"Data not changed."},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}}},"/clusters/{clusterId}":{"put":{"operationId":"updateCluster","description":"Update a cluster. Use the ID as the identifier.<br><br>\nNote - You can view all of the clusters (including their ID) by using GET /clusters\n","parameters":[{"$ref":"#/components/parameters/clusterId"},{"$ref":"#/components/parameters/disableValidation"}],"requestBody":{"description":"Update a cluster definition.","required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","bootstrapServers"],"properties":{"bootstrapServers":{"description":"Bootstrap servers for this cluster.","type":"array","minItems":1,"uniqueItems":true,"items":{"type":"object","required":["host","port"],"properties":{"host":{"description":"Kafka server host name.","type":"string"},"port":{"description":"Kafka server port.","type":"integer"},"ssl":{"description":"Connect over SSL.","type":"boolean","default":false},"certificates":{"description":"Certificates or CAs to trust, required to connect to the server via SSL.","type":"array","uniqueItems":true,"items":{"type":"object","description":"X509 certificate presented by an endpoint","required":["pem"],"properties":{"pem":{"description":"Certificate in PEM format","type":"string"},"subject":{"description":"Subject name of the certificate","type":"string"},"sans":{"description":"A list of subject alternative names of the certificate","type":"array","items":{"type":"string"}},"issuer":{"description":"Issuer of the certificate","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}}}}},"name":{"description":"Cluster name.","type":"string"},"lastUpdated":{"description":"Time in ms since the epoch which represents the last time the cluster information was updated.","type":"integer"},"credentials":{"type":"object","required":["type","data"],"description":"Credentials to be used by the gateway to connect to Kafka.","properties":{"type":{"description":"The type of credentials.","type":"string","enum":["NONE","SASL","MTLS","MTLS_SASL"]},"data":{"description":"Details of the SASL credential data to authenticate with Kafka.","type":"object","properties":{"username":{"description":"SASL username to authenticate with Kafka.","type":"string","maxLength":1024},"password":{"description":"SASL password to authenticate with Kafka.","type":"string","maxLength":1024},"mechanism":{"description":"SASL mechanism to authenticate with Kafka.","type":"string","enum":["PLAIN","SCRAM-SHA-256","SCRAM-SHA-512","OAUTHBEARER","OAUTHBEARER.AWS_MSK_IAM"]},"region":{"description":"Optional field containing the AWS MSK Region.","type":"string","minLength":1,"maxLength":200},"scope":{"description":"Optional field containing the scope for requesting the token from the token endpoint.","type":"string","minLength":1,"maxLength":200},"audience":{"description":"Optional field containing the audience for requesting the token from the token endpoint.","type":"string","minLength":1,"maxLength":200},"oauthTokenUri":{"description":"Optional URI of the OAuth token endpoint.","type":"string","minLength":1,"maxLength":500},"trustedCertificates":{"description":"Certificates or CAs to trust. Required to connect to OAuth server.","type":"array","uniqueItems":true,"items":{"type":"object","description":"X509 certificate presented by an endpoint","required":["pem"],"properties":{"pem":{"description":"Certificate in PEM format","type":"string"},"subject":{"description":"Subject name of the certificate","type":"string"},"sans":{"description":"A list of subject alternative names of the certificate","type":"array","items":{"type":"string"}},"issuer":{"description":"Issuer of the certificate","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}},"clientCertificateAndKey":{"type":"object","description":"Client certificate and key to use in mTLS","required":["pem","key"],"additionalProperties":false,"properties":{"pem":{"description":"Client certificate in PEM format","type":"string"},"key":{"description":"Client key in PEM format","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}}}}},"collaborators":{"type":"object","additionalProperties":false,"required":["groups"],"properties":{"groups":{"description":"List of collaborators for this cluster.","type":"array","items":{"type":"string","minLength":1,"maxLength":200}}}}}}}}},"responses":{"200":{"description":"Cluster updated."},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"Cluster not found."},"409":{"description":"Cluster with the specified name already exists."},"422":{"description":"The specified cluster could not be validated using Kafka discovery mechanisms. For example, connection fails, certs mis-matched, SASL mis-match."},"500":{"description":"Internal error."}}},"get":{"operationId":"readCluster","description":"Get details about a cluster.","parameters":[{"$ref":"#/components/parameters/clusterId"}],"responses":{"200":{"description":"Cluster successfully read.","content":{"application/json":{"schema":{"type":"object","required":["id","owner","organization","name","collaborators","validation"],"additionalProperties":false,"properties":{"bootstrapServers":{"description":"Bootstrap servers for this cluster - only viewable with permissions.","type":"array","minItems":1,"uniqueItems":true,"items":{"type":"object","required":["host","port"],"properties":{"host":{"description":"Kafka server host name.","type":"string"},"port":{"description":"Kafka server port.","type":"integer"},"ssl":{"description":"Connect over SSL.","type":"boolean","default":false},"certificates":{"description":"Certificates or CAs to trust, required to connect to the server via SSL.","type":"array","uniqueItems":true,"items":{"type":"object","description":"X509 certificate presented by an endpoint","required":["pem"],"properties":{"pem":{"description":"Certificate in PEM format","type":"string"},"subject":{"description":"Subject name of the certificate","type":"string"},"sans":{"description":"A list of subject alternative names of the certificate","type":"array","items":{"type":"string"}},"issuer":{"description":"Issuer of the certificate","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}}}}},"id":{"description":"Unique cluster ID.","type":"string"},"name":{"description":"Cluster name.","type":"string"},"owner":{"description":"Cluster owner.","type":"string"},"organization":{"description":"Organization this cluster belongs to.","type":"string"},"lastUpdated":{"description":"Time in ms since the epoch which represents the last time the cluster information was updated.","type":"integer"},"credentials":{"type":"object","required":["type","data"],"description":"Credentials to be used by the gateway to connect to Kafka.","additionalProperties":false,"properties":{"type":{"description":"The type of credentials. Used by parsers to determine how to handle the other fields.","type":"string","enum":["NONE","SASL","MTLS","MTLS_SASL"]},"data":{"description":"Details of the SASL credential data to authenticate with Kafka.","type":"object","additionalProperties":false,"properties":{"username":{"description":"SASL username to authenticate with Kafka.","type":"string"},"mechanism":{"description":"SASL mechanism to authenticate with Kafka.","type":"string","enum":["PLAIN","SCRAM-SHA-256","SCRAM-SHA-512","OAUTHBEARER","OAUTHBEARER.AWS_MSK_IAM"]},"region":{"description":"Optional field containing the AWS MSK Region.","type":"string"},"scope":{"description":"Optional field containing the scope for requesting the token from the token endpoint.","type":"string"},"audience":{"description":"Optional field containing the audience for requesting the token from the token endpoint.","type":"string"},"oauthTokenUri":{"description":"Optional URI of the OAuth token endpoint.","type":"string"},"trustedCertificates":{"description":"Certificates or CAs to trust, required to connect to OAuth server.","type":"array","uniqueItems":true,"items":{"type":"object","description":"X509 certificate presented by an endpoint","required":["pem"],"properties":{"pem":{"description":"Certificate in PEM format","type":"string"},"subject":{"description":"Subject name of the certificate","type":"string"},"sans":{"description":"A list of subject alternative names of the certificate","type":"array","items":{"type":"string"}},"issuer":{"description":"Issuer of the certificate","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}},"clientCertificateAndKey":{"type":"object","description":"Client certificate and key to use in mTLS","required":["pem"],"additionalProperties":false,"properties":{"pem":{"description":"Client certificate in PEM format","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}}}}},"collaborators":{"type":"object","additionalProperties":false,"required":["groups"],"properties":{"groups":{"description":"List of collaborators for this cluster.","type":"array","items":{"type":"string"}}}},"validation":{"type":"object","required":["status","gatewayGroups"],"description":"Details of the visibility of this cluster amongst the gateways.","additionalProperties":false,"properties":{"status":{"type":"string","description":"Overall status of all of the gateways. | `pending` = Pending validation - we are waiting for gateways to report a status | `error` = No Gateways can see a Cluster/Topic - error state - either the configuration is incorrect, or there is a network issue | `success/partial` = success state - Some Gateways can see a Cluster/Topic | `success` = success state - All Gateways can see a Cluster/Topic.","enum":["pending","error","success/partial","success"]},"gatewayGroups":{"type":"array","description":"Gateway group names and if they can connect to this cluster.","items":{"type":"object","required":["name","gateways","status"],"additionalProperties":false,"properties":{"name":{"type":"string"},"status":{"type":"string","description":"Status on whether this gateway group can access the associated cluster. | `pending` = Pending validation - waiting for gateways to report a status | `error` = error state - No Gateways can access the cluster | `success/partial` = success state - Some Gateways can access the cluster | `success` = success state - All Gateways can access the cluster.","enum":["pending","error","success/partial","success"]},"gateways":{"type":"array","items":{"type":"object","required":["id","validationErrors"],"additionalProperties":false,"properties":{"id":{"type":"string"},"validationErrors":{"type":"array","description":"List of failed validation stages. If this array is empty, then this gateway group can access the cluster.","items":{"type":"string","description":"`network` = cannot resolve this address | `certificates/tls` = address is not trusted | `securityConfig` = this endpoint does not support the configured type of security (MTLS, SASL Plain etc) | `credentials` = provided username/password not accepted | `notKafka` = server is resolvable but is not responding as a Kafka server | `unsupported` = version of current gateway does not support required capability.","enum":["network","certificates/tls","securityConfig","credentials","notKafka","unsupported"]}}}}}}}}}}}}}}},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"Cluster not found."},"500":{"description":"Internal error."}}},"delete":{"description":"Delete a cluster.<br><br>\nAll related catalog entries must be deleted before you delete a cluster. Note - You must be the owner to delete a cluster. You can view all of the clusters that you own (including their ID) by using GET /clusters\n","operationId":"deleteCluster","parameters":[{"$ref":"#/components/parameters/clusterId"}],"responses":{"200":{"description":"Cluster successfully deleted."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"Cluster not found."},"409":{"description":"Catalog entries are still using this cluster and it cannot be deleted."},"500":{"description":"Internal error."}}}},"/subscriptions":{"post":{"deprecated":true,"description":"Create a subscription to a catalog entry. This endpoint is now deprecated. Use /applications/{applicationId}/subscriptions instead.","operationId":"createSubscription","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["entryId","credentials","contact"],"properties":{"entryId":{"description":"The list of entry IDs this subscription gives access to. Currently only supports 1.","type":"array","uniqueItems":true,"minItems":1,"maxItems":1,"items":{"type":"string"}},"credentials":{"type":"object","required":["type","data"],"description":"Credentials a client uses to connect to an event gateway.","additionalProperties":false,"properties":{"type":{"description":"The type of credentials.","type":"string","enum":["NONE","SASL","SASL_APIC","MTLS"]},"data":{"description":"Details of the SASL credential data to authenticate with an event gateway.","type":"object","additionalProperties":false,"properties":{"username":{"description":"SASL username to authenticate with an event gateway.","type":"string"},"password":{"description":"SASL password to authenticate with an event gateway.","type":"string"},"mechanism":{"description":"SASL mechanism to authenticate with Kafka.","type":"string","enum":["PLAIN","OAUTHBEARER"]},"hashedPasswords":{"description":"Hashed passwords from APIC to authenticate clients against an event gateway.","type":"array","uniqueItems":true,"items":{"type":"string"}},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200}}}}},"clientId":{"description":"Optional client ID if this subscription is a legacy API Connect subscription.","type":"string"},"contact":{"description":"Subscription contact details.","type":"string"},"gateways":{"description":"A list of gateway IDs that can access this data. If this property is missing or contains an empty list then this subscription has no gateway restrictions.","type":"array","uniqueItems":true,"items":{"type":"string"}}}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"description":"The ID of your newly created subscription.","type":"string"}}}}},"description":"Subscription successfully created."},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"409":{"description":"Subscription with the specified ID already exists."},"422":{"description":"Subscription to invalid topic."},"500":{"description":"Internal error."}}},"get":{"deprecated":true,"description":"List all subscriptions created by the current user in an organization. This endpoint is now deprecated. Use /applications instead.\n","operationId":"readAllSubscriptions","parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/maxPageSize"}],"responses":{"200":{"description":"Subscriptions are successfully listed.","headers":{"ei-pagination-total":{"$ref":"#/components/headers/ei-pagination-total"},"etag":{"$ref":"#/components/headers/etag"}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["id","organization","owner","entryId","contact"],"properties":{"id":{"description":"Unique subscription ID.","type":"string"},"owner":{"description":"Subscription owner.","type":"string"},"entryId":{"description":"The list of entry IDs this subscription gives access to. Currently only supports 1.","type":"array","uniqueItems":true,"minItems":1,"maxItems":1,"items":{"type":"string"}},"organization":{"description":"Organization this subscription belongs to.","type":"string"},"credentials":{"type":"object","required":["type","data"],"description":"Credentials a client uses to connect to an event gateway.","additionalProperties":false,"properties":{"type":{"description":"The type of credentials. Used by parsers to determine how to handle the other fields.","type":"string","enum":["NONE","SASL","SASL_APIC","MTLS"]},"data":{"description":"Details of the SASL credential data to authenticate with an event gateway.","type":"object","additionalProperties":false,"properties":{"username":{"description":"SASL username to authenticate with an event gateway.","type":"string"},"mechanism":{"description":"SASL mechanism to authenticate with Kafka.","type":"string","enum":["PLAIN","OAUTHBEARER"]},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200}}}}},"clientId":{"description":"Optional client ID if this subscription is a legacy API Connect subscription.","type":"string"},"contact":{"description":"Subscription contact details.","type":"string"},"gateways":{"description":"A list of gateway IDs that can access this data. If this property is missing or contains an empty list then this subscription has no gateway restrictions.","type":"array","uniqueItems":true,"items":{"type":"string"}}}}}}}},"304":{"description":"Data not changed."},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}}},"/subscriptions/{subscriptionId}":{"delete":{"deprecated":true,"description":"Delete a subscription. This endpoint is now deprecated. Use /applications/{applicationId}/subscription/${virtualTopicId} instead.","parameters":[{"$ref":"#/components/parameters/subscriptionId"}],"operationId":"deleteSubscription","responses":{"200":{"description":"Subscription successfully deleted."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"Subscription not found."},"500":{"description":"Internal error."}}}},"/gateways":{"post":{"description":"Create an event gateway instance.","operationId":"createGateway","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["gatewayGroup","gatewayId"],"properties":{"gatewayGroup":{"description":"The required gateway group. If the specified group does not exist, then it is created.","type":"string"},"gatewayId":{"description":"The ID of the gateway. The ID must be unique within the gateway group.","type":"string"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Event gateway created with the Event Manager.","content":{"application/json":{"schema":{"type":"object","description":"Returns values to deploy a gateway.","required":["apiKey"],"properties":{"apiKey":{"description":"The API key for the event gateway.","type":"string"},"name":{"description":"The name for the event gateway.","type":"string"},"managerClientUrl":{"description":"The secure backend gateway registration endpoint.","type":"string"},"managerClientCACertificates":{"description":"The inlined CA certificates required for the secure gateway registration endpoint.","type":"string"},"licenceKey":{"description":"The license that the gateway should be running under.","type":"string"},"imageUrl":{"description":"The url of the gateway container image.","type":"string"}},"additionalProperties":false}}}},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"426":{"description":"Limit reached, upgrade required to your service plan."},"500":{"description":"Internal error."}}},"get":{"description":"List all registered event gateways in an organization.","operationId":"readAllGateways","parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/maxPageSize"}],"responses":{"200":{"description":"Event gateways successfully listed.","headers":{"ei-pagination-total":{"$ref":"#/components/headers/ei-pagination-total"},"etag":{"$ref":"#/components/headers/etag"}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","description":"Detailed information about any registered gateways.","required":["name","gateways"],"properties":{"name":{"description":"Unique gateway group name.","type":"string"},"gateways":{"type":"array","items":{"type":"object","required":["id","owner","organization","gatewayId","group","organizations","servedOrganizations","endpoints","lastContact"],"additionalProperties":false,"properties":{"id":{"description":"Unique event gateway ID.","type":"string","minLength":1,"maxLength":200},"owner":{"description":"Owner of the event gateway.","type":"string","minLength":1,"maxLength":100},"organization":{"description":"Organization this event gateway belongs to.","type":"string"},"gatewayId":{"description":"Unique event gateway ID within this group.","type":"string","minLength":1,"maxLength":100},"group":{"description":"Event gateway group name.","type":"string","minLength":1,"maxLength":100},"organizations":{"description":"Organizations this event gateway serves.","type":"array","deprecated":true,"items":{"type":"string","minLength":1,"maxLength":100}},"servedOrganizations":{"description":"Organizations this event gateway serves.","type":"array","items":{"type":"string","minLength":1,"maxLength":100}},"contact":{"description":"The contact information for this event gateway.","type":"string","minLength":1,"maxLength":200},"lastContact":{"description":"Epoch time in ms of the last contact from this gateway.","type":"integer","minimum":0},"endpoints":{"description":"Endpoints that the gateway is listening on.","type":"array","items":{"type":"object","required":["host","port"],"properties":{"host":{"description":"Kafka server host name.","type":"string"},"port":{"description":"Kafka server port.","type":"integer"},"ssl":{"description":"Connect over SSL.","type":"boolean","default":false},"certificates":{"description":"Certificates or CAs to trust, required to connect to the server via SSL.","type":"array","uniqueItems":true,"items":{"type":"object","description":"X509 certificate presented by an endpoint","required":["pem"],"properties":{"pem":{"description":"Certificate in PEM format","type":"string"},"subject":{"description":"Subject name of the certificate","type":"string"},"sans":{"description":"A list of subject alternative names of the certificate","type":"array","items":{"type":"string"}},"issuer":{"description":"Issuer of the certificate","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}}}}},"version":{"type":"string","description":"Version of the gateway.","minLength":1,"maxLength":20},"productVersion":{"type":"string","description":"EEM product version.","minLength":1,"maxLength":100},"features":{"type":"array","description":"Feature set in use by gateway.","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":20}},"deploymentMode":{"type":"string","description":"Type of gateway deployment."},"capabilities":{"type":"object","additionalProperties":true,"description":"Description of what capabilities the gateway has."}}}}}}}}}},"304":{"description":"Data not changed."},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}}},"/gateways/{gatewayGroup}/{gatewayId}":{"delete":{"description":"Delete an existing event gateway registration.","operationId":"deleteGateway","parameters":[{"$ref":"#/components/parameters/gatewayGroup"},{"$ref":"#/components/parameters/gatewayId"}],"responses":{"200":{"description":"Event gateway deleted successfully."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"No event gateway found with this group and ID."},"409":{"description":"Event gateway is not deleted due to virtual topics published or archived on the event gateway group."},"500":{"description":"Internal error."}}}},"/eventsources":{"get":{"deprecated":true,"operationId":"readAllEventSources","description":"List all source topics created by the current user in an organization. This endpoint is now deprecated. Use /sourcetopics instead.","parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/maxPageSize"},{"$ref":"#/components/parameters/filterBy"}],"responses":{"200":{"description":"Source topics successfully listed.","headers":{"ei-pagination-total":{"$ref":"#/components/headers/ei-pagination-total"},"etag":{"$ref":"#/components/headers/etag"}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["id","owner","organization","clusterId","type","encoding","name","contact","capabilities","collaborators"],"additionalProperties":false,"properties":{"id":{"description":"Unique source topic ID.","type":"string"},"owner":{"description":"Source topic owner.","type":"string"},"organization":{"description":"Organization that this source topic belongs to.","type":"string"},"clusterId":{"description":"ID for the cluster that contains the connection details for this source topic.","type":"string"},"type":{"description":"Type of source topic.","type":"string","enum":["kafka"]},"encoding":{"description":"The encoding of the data on this source topic.","type":"string","enum":["unknown","text/plain","application/octet-stream","application/json","avro/binary","avro/json"]},"name":{"description":"Source topic name.","type":"string"},"contact":{"description":"Who to contact for more information about this source topic.","type":"string"},"description":{"description":"A description for this source topic.","type":"string","maxLength":1500},"topic":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"Actual topic name in the cluster.","type":"string"},"partitions":{"description":"The number of partitions for this topic. Discovered from the Kafka cluster.","type":"number"},"replicas":{"description":"The number of replicas for this topic. Discovered from the Kafka cluster.","type":"number"},"uuid":{"description":"The UUID of the topic. Discovered from the Kafka cluster.","type":"string"}},"required":["name"]},"schema":{"type":"object","properties":{"type":{"description":"Type of schema from the list of valid types.","type":"string","enum":["avro","json","unknown"]},"content":{"description":"Contents of the schema.","type":"string","maxLength":1048576},"description":{"description":"Description of the data available on the source topic.","type":"string","maxLength":1500}},"additionalProperties":false},"tags":{"description":"List of tags associated with this source topic.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":50}},"sampleMessages":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"description":"Capabilities enum.","type":"string","enum":["consume","produce"]}},"validation":{"type":"object","required":["status","gatewayGroups"],"description":"Details of the visibility of this source topic amongst the gateway groups.","additionalProperties":false,"properties":{"status":{"type":"string","description":"Status for all of the gateway groups. Can they see the topic associated with this source topic? | `pending` = Pending validation - waiting for gateways to report a status | `error` = error state - No gateway groups can access the topic | `success/partial` = success state - Some gateway groups can access the topic | `success` = success state - All gateway groups can access the topic.","enum":["pending","error","success/partial","success"]},"gatewayGroups":{"type":"array","description":"Gateway group names and if they can connect to this cluster and find the associated topic.","items":{"type":"object","required":["name","status","gateways"],"additionalProperties":false,"properties":{"name":{"type":"string"},"status":{"type":"string","description":"Status on whether this gateway group can see the topic associated with this source topic. | `pending` = Pending validation - waiting for gateways to report a status | `error` = error state - No gateways can see the topic | `success/partial` = success state - Some gateways can access the topic | `success` = success state - All gateways can access the topic.","enum":["pending","error","success/partial","success"]},"gateways":{"type":"array","items":{"type":"object","required":["id","validationErrors"],"properties":{"id":{"type":"string"},"validationErrors":{"type":"array","description":"List of failed validation stages. If this array is empty, then gateway group can access the topic.","items":{"type":"string","description":"`notFound` = topic not found in cluster.","enum":["notFound"]}}}}}}}}}},"collaborators":{"type":"object","additionalProperties":false,"required":["groups","contacts"],"properties":{"groups":{"description":"List of collaborators for this source topic.","type":"array","items":{"type":"string"}},"contacts":{"description":"List of contacts for this source topic.","type":"array","items":{"type":"string"}}}}}}}}}},"304":{"description":"Data not changed."},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}},"post":{"deprecated":true,"operationId":"createEventSource","description":"Create a source topic.","parameters":[{"$ref":"#/components/parameters/disableValidation"}],"requestBody":{"description":"Source topic data.","required":true,"content":{"application/json":{"schema":{"type":"object","required":["clusterId","type","encoding","name","contact"],"properties":{"clusterId":{"description":"ID for the cluster that contains the connection details for this source topic.","type":"string","minLength":1,"maxLength":50},"type":{"description":"Type of source topic.","type":"string","enum":["kafka"]},"encoding":{"description":"The encoding of the data on this source topic.","type":"string","enum":["unknown","text/plain","application/octet-stream","application/json","avro/binary","avro/json"]},"name":{"description":"Source topic name.","type":"string","minLength":1,"maxLength":200},"contact":{"description":"Who to contact for more information about this source topic.","type":"string","minLength":1,"maxLength":200},"description":{"description":"A description for this source topic.","type":"string","maxLength":1500},"topic":{"type":"object","properties":{"name":{"description":"Actual topic name in the cluster.","type":"string","minLength":1,"maxLength":200},"partitions":{"description":"The number of partitions for this topic, updated by discovery.","type":"number"},"replicas":{"description":"The number of replicas for this topic, updated by discovery.","type":"number"},"uuid":{"description":"The UUID of the topic, updated by discovery.","type":"string","minLength":20,"maxLength":24}},"required":["name"]},"schema":{"type":"object","properties":{"type":{"description":"Type of schema from the list of valid types.","type":"string","enum":["avro","json","unknown"]},"content":{"description":"Contents of the schema.","type":"string","maxLength":1048576},"description":{"description":"Description of the data available on the source topic.","type":"string","maxLength":1500}},"anyOf":[{"required":["content","type"]},{"required":["description"]}]},"tags":{"description":"List of tags associated with this source topic.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":50}},"sampleMessages":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"description":"Capabilities enum.","type":"string","enum":["consume","produce"]}},"collaborators":{"type":"object","additionalProperties":false,"required":["groups","contacts"],"properties":{"groups":{"description":"List of collaborators for this source topic.","type":"array","items":{"type":"string","minLength":1,"maxLength":200}},"contacts":{"description":"List of contacts for this source topic.","type":"array","items":{"type":"string","minLength":1,"maxLength":200}}}}}}}}},"responses":{"200":{"description":"The ID of the created source topic.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}}}}}},"400":{"description":"Invalid request, request data does not match the schema."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"409":{"description":"Source topic could not be created due to a conflict."},"422":{"description":"Source topic could not be created as it does not map to a valid cluster."},"500":{"description":"Internal error."}}}},"/sourcetopics":{"get":{"operationId":"readAllSourceTopics","description":"List all source topics created by the current user in an organization.","parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/maxPageSize"},{"$ref":"#/components/parameters/filterBy"}],"responses":{"200":{"description":"Source topics successfully listed.","headers":{"ei-pagination-total":{"$ref":"#/components/headers/ei-pagination-total"},"etag":{"$ref":"#/components/headers/etag"}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["id","owner","organization","clusterId","type","encoding","name","contact","capabilities","collaborators"],"additionalProperties":false,"properties":{"id":{"description":"Unique source topic ID.","type":"string"},"owner":{"description":"Source topic owner.","type":"string"},"organization":{"description":"Organization that this source topic belongs to.","type":"string"},"clusterId":{"description":"ID for the cluster that contains the connection details for this source topic.","type":"string"},"type":{"description":"Type of source topic.","type":"string","enum":["kafka"]},"encoding":{"description":"The encoding of the data on this source topic.","type":"string","enum":["unknown","text/plain","application/octet-stream","application/json","avro/binary","avro/json"]},"name":{"description":"Source topic name.","type":"string"},"contact":{"description":"Who to contact for more information about this source topic.","type":"string"},"description":{"description":"A description for this source topic.","type":"string","maxLength":1500},"topic":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"Actual topic name in the cluster.","type":"string"},"partitions":{"description":"The number of partitions for this topic. Discovered from the Kafka cluster.","type":"number"},"replicas":{"description":"The number of replicas for this topic. Discovered from the Kafka cluster.","type":"number"},"uuid":{"description":"The UUID of the topic. Discovered from the Kafka cluster.","type":"string"}},"required":["name"]},"schema":{"type":"object","properties":{"type":{"description":"Type of schema from the list of valid types.","type":"string","enum":["avro","json","unknown"]},"content":{"description":"Contents of the schema.","type":"string","maxLength":1048576},"description":{"description":"Description of the data available on the source topic.","type":"string","maxLength":1500}},"additionalProperties":false},"tags":{"description":"List of tags associated with this source topic.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":50}},"sampleMessages":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"description":"Capabilities enum.","type":"string","enum":["consume","produce"]}},"validation":{"type":"object","required":["status","gatewayGroups"],"description":"Details of the visibility of this source topic amongst the gateway groups.","additionalProperties":false,"properties":{"status":{"type":"string","description":"Status for all of the gateway groups. Can they see the topic associated with this source topic? | `pending` = Pending validation - waiting for gateways to report a status | `error` = error state - No gateway groups can access the topic | `success/partial` = success state - Some gateway groups can access the topic | `success` = success state - All gateway groups can access the topic.","enum":["pending","error","success/partial","success"]},"gatewayGroups":{"type":"array","description":"Gateway group names and if they can connect to this cluster and find the associated topic.","items":{"type":"object","required":["name","status","gateways"],"additionalProperties":false,"properties":{"name":{"type":"string"},"status":{"type":"string","description":"Status on whether this gateway group can see the topic associated with this source topic. | `pending` = Pending validation - waiting for gateways to report a status | `error` = error state - No gateways can see the topic | `success/partial` = success state - Some gateways can access the topic | `success` = success state - All gateways can access the topic.","enum":["pending","error","success/partial","success"]},"gateways":{"type":"array","items":{"type":"object","required":["id","validationErrors"],"properties":{"id":{"type":"string"},"validationErrors":{"type":"array","description":"List of failed validation stages. If this array is empty, then gateway group can access the topic.","items":{"type":"string","description":"`notFound` = topic not found in cluster.","enum":["notFound"]}}}}}}}}}},"collaborators":{"type":"object","additionalProperties":false,"required":["groups","contacts"],"properties":{"groups":{"description":"List of collaborators for this source topic.","type":"array","items":{"type":"string"}},"contacts":{"description":"List of contacts for this source topic.","type":"array","items":{"type":"string"}}}}}}}}}},"304":{"description":"Data not changed."},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}},"post":{"operationId":"createSourceTopic","description":"Create a source topic.","parameters":[{"$ref":"#/components/parameters/disableValidation"}],"requestBody":{"description":"Source topic data.","required":true,"content":{"application/json":{"schema":{"type":"object","required":["clusterId","type","encoding","name","contact"],"properties":{"clusterId":{"description":"ID for the cluster that contains the connection details for this source topic.","type":"string","minLength":1,"maxLength":50},"type":{"description":"Type of source topic.","type":"string","enum":["kafka"]},"encoding":{"description":"The encoding of the data on this source topic.","type":"string","enum":["unknown","text/plain","application/octet-stream","application/json","avro/binary","avro/json"]},"name":{"description":"Source topic name.","type":"string","minLength":1,"maxLength":200},"contact":{"description":"Who to contact for more information about this source topic.","type":"string","minLength":1,"maxLength":200},"description":{"description":"A description for this source topic.","type":"string","maxLength":1500},"topic":{"type":"object","properties":{"name":{"description":"Actual topic name in the cluster.","type":"string","minLength":1,"maxLength":200},"partitions":{"description":"The number of partitions for this topic, updated by discovery.","type":"number"},"replicas":{"description":"The number of replicas for this topic, updated by discovery.","type":"number"},"uuid":{"description":"The UUID of the topic, updated by discovery.","type":"string","minLength":20,"maxLength":24}},"required":["name"]},"schema":{"type":"object","properties":{"type":{"description":"Type of schema from the list of valid types.","type":"string","enum":["avro","json","unknown"]},"content":{"description":"Contents of the schema.","type":"string","maxLength":1048576},"description":{"description":"Description of the data available on the source topic.","type":"string","maxLength":1500}},"anyOf":[{"required":["content","type"]},{"required":["description"]}]},"tags":{"description":"List of tags associated with this source topic.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":50}},"sampleMessages":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"description":"Capabilities enum.","type":"string","enum":["consume","produce"]}},"collaborators":{"type":"object","additionalProperties":false,"required":["groups","contacts"],"properties":{"groups":{"description":"List of collaborators for this source topic.","type":"array","items":{"type":"string","minLength":1,"maxLength":200}},"contacts":{"description":"List of contacts for this source topic.","type":"array","items":{"type":"string","minLength":1,"maxLength":200}}}}}}}}},"responses":{"200":{"description":"The ID of the created source topic.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}}}}}},"400":{"description":"Invalid request, request data does not match the schema."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"409":{"description":"Source topic could not be created due to a conflict."},"422":{"description":"Source topic could not be created as it does not map to a valid cluster."},"500":{"description":"Internal error."}}}},"/eventsources/{eventSourceId}":{"get":{"deprecated":true,"operationId":"readEventSource","description":"Read a source topic. This endpoint is now deprecated. Use /sourcetopics/{sourceTopicId} instead.","parameters":[{"in":"path","name":"eventSourceId","required":true,"schema":{"type":"string"},"description":"The ID of the source topic to read."}],"responses":{"200":{"description":"The data for the requested source topic.","content":{"application/json":{"schema":{"type":"object","required":["id","owner","organization","clusterId","type","encoding","name","contact","capabilities","collaborators"],"additionalProperties":false,"properties":{"id":{"description":"Unique source topic ID.","type":"string"},"owner":{"description":"Source topic owner.","type":"string"},"organization":{"description":"Organization that this source topic belongs to.","type":"string"},"clusterId":{"description":"ID for the cluster that contains the connection details for this source topic.","type":"string"},"type":{"description":"Type of source topic.","type":"string","enum":["kafka"]},"encoding":{"description":"The encoding of the data on this source topic.","type":"string","enum":["unknown","text/plain","application/octet-stream","application/json","avro/binary","avro/json"]},"name":{"description":"Source topic name.","type":"string"},"contact":{"description":"Who to contact for more information about this source topic.","type":"string"},"description":{"description":"A description for this source topic.","type":"string","maxLength":1500},"topic":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"Actual topic name in the cluster.","type":"string"},"partitions":{"description":"The number of partitions for this topic. Discovered from the Kafka cluster.","type":"number"},"replicas":{"description":"The number of replicas for this topic. Discovered from the Kafka cluster.","type":"number"},"uuid":{"description":"The UUID of the topic. Discovered from the Kafka cluster.","type":"string"}},"required":["name"]},"schema":{"type":"object","properties":{"type":{"description":"Type of schema from the list of valid types.","type":"string","enum":["avro","json","unknown"]},"content":{"description":"Contents of the schema.","type":"string","maxLength":1048576},"description":{"description":"Description of the data available on the source topic.","type":"string","maxLength":1500}},"additionalProperties":false},"tags":{"description":"List of tags associated with this source topic.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":50}},"sampleMessages":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"description":"Capabilities enum.","type":"string","enum":["consume","produce"]}},"validation":{"type":"object","required":["status","gatewayGroups"],"description":"Details of the visibility of this source topic amongst the gateway groups.","additionalProperties":false,"properties":{"status":{"type":"string","description":"Status for all of the gateway groups. Can they see the topic associated with this source topic? | `pending` = Pending validation - waiting for gateways to report a status | `error` = error state - No gateway groups can access the topic | `success/partial` = success state - Some gateway groups can access the topic | `success` = success state - All gateway groups can access the topic.","enum":["pending","error","success/partial","success"]},"gatewayGroups":{"type":"array","description":"Gateway group names and if they can connect to this cluster and find the associated topic.","items":{"type":"object","required":["name","status","gateways"],"additionalProperties":false,"properties":{"name":{"type":"string"},"status":{"type":"string","description":"Status on whether this gateway group can see the topic associated with this source topic. | `pending` = Pending validation - waiting for gateways to report a status | `error` = error state - No gateways can see the topic | `success/partial` = success state - Some gateways can access the topic | `success` = success state - All gateways can access the topic.","enum":["pending","error","success/partial","success"]},"gateways":{"type":"array","items":{"type":"object","required":["id","validationErrors"],"properties":{"id":{"type":"string"},"validationErrors":{"type":"array","description":"List of failed validation stages. If this array is empty, then gateway group can access the topic.","items":{"type":"string","description":"`notFound` = topic not found in cluster.","enum":["notFound"]}}}}}}}}}},"collaborators":{"type":"object","additionalProperties":false,"required":["groups","contacts"],"properties":{"groups":{"description":"List of collaborators for this source topic.","type":"array","items":{"type":"string"}},"contacts":{"description":"List of contacts for this source topic.","type":"array","items":{"type":"string"}}}}}}}}},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This source topic does not exist."},"500":{"description":"Internal error."}}},"put":{"deprecated":true,"operationId":"updateEventSource","description":"Update a source topic.","parameters":[{"in":"path","name":"eventSourceId","required":true,"schema":{"type":"string"},"description":"The ID of the source topic to update."},{"$ref":"#/components/parameters/disableValidation"}],"requestBody":{"description":"Source topic data.","required":true,"content":{"application/json":{"schema":{"type":"object","required":["clusterId","type","encoding","name","contact"],"properties":{"clusterId":{"description":"ID for the cluster that contains the connection details for this source topic.","type":"string","minLength":1,"maxLength":50},"type":{"description":"Type of source topic.","type":"string","enum":["kafka"]},"encoding":{"description":"The encoding of the data on this source topic.","type":"string","enum":["unknown","text/plain","application/octet-stream","application/json","avro/binary","avro/json"]},"name":{"description":"Source topic name.","type":"string","minLength":1,"maxLength":200},"contact":{"description":"Who to contact for more information about this source topic.","type":"string","minLength":1,"maxLength":200},"description":{"description":"A description for this source topic.","type":"string","maxLength":1500},"topic":{"type":"object","properties":{"name":{"description":"Actual topic name in the cluster.","type":"string","minLength":1,"maxLength":200},"partitions":{"description":"The number of partitions for this topic, updated by discovery.","type":"number"},"replicas":{"description":"The number of replicas for this topic, updated by discovery.","type":"number"},"uuid":{"description":"The UUID of the topic, updated by discovery.","type":"string","minLength":20,"maxLength":24}},"required":["name"]},"schema":{"type":"object","properties":{"type":{"description":"Type of schema from the list of valid types.","type":"string","enum":["avro","json","unknown"]},"content":{"description":"Contents of the schema.","type":"string","maxLength":1048576},"description":{"description":"Description of the data available on the source topic.","type":"string","maxLength":1500}},"anyOf":[{"required":["content","type"]},{"required":["description"]}]},"tags":{"description":"List of tags associated with this source topic.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":50}},"sampleMessages":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"description":"Capabilities enum.","type":"string","enum":["consume","produce"]}},"collaborators":{"type":"object","additionalProperties":false,"required":["groups","contacts"],"properties":{"groups":{"description":"List of collaborators for this source topic.","type":"array","items":{"type":"string","minLength":1,"maxLength":200}},"contacts":{"description":"List of contacts for this source topic.","type":"array","items":{"type":"string","minLength":1,"maxLength":200}}}}}}}}},"responses":{"200":{"description":"Source topic successfully updated."},"400":{"description":"Invalid request, request data does not match the schema."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This source topic does not exist."},"409":{"description":"Source topic could not be updated due to a conflict."},"422":{"description":"Source topic could not be created as it does not map to a valid cluster."},"500":{"description":"Internal error."}}},"delete":{"deprecated":true,"operationId":"deleteEventSource","description":"Delete a source topic<br><br> The source topic must have no attached published or archived virtual topics. Note - You must be the owner to delete a source topic. You can view all of the source topics that you own (including their ID) by using GET /eventsources\n","parameters":[{"in":"path","name":"eventSourceId","required":true,"schema":{"type":"string"},"description":"The ID of the source topic to delete."}],"responses":{"200":{"description":"Source topic successfully deleted."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This source topic does not exist."},"409":{"description":"Source topic could not be deleted due to a conflict."},"500":{"description":"Internal error."}}}},"/sourcetopics/{sourceTopicId}":{"get":{"operationId":"readSourceTopic","description":"Read a source topic.","parameters":[{"$ref":"#/components/parameters/sourceTopicId"}],"responses":{"200":{"description":"The data for the requested source topic.","content":{"application/json":{"schema":{"type":"object","required":["id","owner","organization","clusterId","type","encoding","name","contact","capabilities","collaborators"],"additionalProperties":false,"properties":{"id":{"description":"Unique source topic ID.","type":"string"},"owner":{"description":"Source topic owner.","type":"string"},"organization":{"description":"Organization that this source topic belongs to.","type":"string"},"clusterId":{"description":"ID for the cluster that contains the connection details for this source topic.","type":"string"},"type":{"description":"Type of source topic.","type":"string","enum":["kafka"]},"encoding":{"description":"The encoding of the data on this source topic.","type":"string","enum":["unknown","text/plain","application/octet-stream","application/json","avro/binary","avro/json"]},"name":{"description":"Source topic name.","type":"string"},"contact":{"description":"Who to contact for more information about this source topic.","type":"string"},"description":{"description":"A description for this source topic.","type":"string","maxLength":1500},"topic":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"Actual topic name in the cluster.","type":"string"},"partitions":{"description":"The number of partitions for this topic. Discovered from the Kafka cluster.","type":"number"},"replicas":{"description":"The number of replicas for this topic. Discovered from the Kafka cluster.","type":"number"},"uuid":{"description":"The UUID of the topic. Discovered from the Kafka cluster.","type":"string"}},"required":["name"]},"schema":{"type":"object","properties":{"type":{"description":"Type of schema from the list of valid types.","type":"string","enum":["avro","json","unknown"]},"content":{"description":"Contents of the schema.","type":"string","maxLength":1048576},"description":{"description":"Description of the data available on the source topic.","type":"string","maxLength":1500}},"additionalProperties":false},"tags":{"description":"List of tags associated with this source topic.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":50}},"sampleMessages":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"description":"Capabilities enum.","type":"string","enum":["consume","produce"]}},"validation":{"type":"object","required":["status","gatewayGroups"],"description":"Details of the visibility of this source topic amongst the gateway groups.","additionalProperties":false,"properties":{"status":{"type":"string","description":"Status for all of the gateway groups. Can they see the topic associated with this source topic? | `pending` = Pending validation - waiting for gateways to report a status | `error` = error state - No gateway groups can access the topic | `success/partial` = success state - Some gateway groups can access the topic | `success` = success state - All gateway groups can access the topic.","enum":["pending","error","success/partial","success"]},"gatewayGroups":{"type":"array","description":"Gateway group names and if they can connect to this cluster and find the associated topic.","items":{"type":"object","required":["name","status","gateways"],"additionalProperties":false,"properties":{"name":{"type":"string"},"status":{"type":"string","description":"Status on whether this gateway group can see the topic associated with this source topic. | `pending` = Pending validation - waiting for gateways to report a status | `error` = error state - No gateways can see the topic | `success/partial` = success state - Some gateways can access the topic | `success` = success state - All gateways can access the topic.","enum":["pending","error","success/partial","success"]},"gateways":{"type":"array","items":{"type":"object","required":["id","validationErrors"],"properties":{"id":{"type":"string"},"validationErrors":{"type":"array","description":"List of failed validation stages. If this array is empty, then gateway group can access the topic.","items":{"type":"string","description":"`notFound` = topic not found in cluster.","enum":["notFound"]}}}}}}}}}},"collaborators":{"type":"object","additionalProperties":false,"required":["groups","contacts"],"properties":{"groups":{"description":"List of collaborators for this source topic.","type":"array","items":{"type":"string"}},"contacts":{"description":"List of contacts for this source topic.","type":"array","items":{"type":"string"}}}}}}}}},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This source topic does not exist."},"500":{"description":"Internal error."}}},"put":{"operationId":"updateSourceTopic","description":"Update a source topic.","parameters":[{"$ref":"#/components/parameters/sourceTopicId"},{"$ref":"#/components/parameters/disableValidation"}],"requestBody":{"description":"Source topic data.","required":true,"content":{"application/json":{"schema":{"type":"object","required":["clusterId","type","encoding","name","contact"],"properties":{"clusterId":{"description":"ID for the cluster that contains the connection details for this source topic.","type":"string","minLength":1,"maxLength":50},"type":{"description":"Type of source topic.","type":"string","enum":["kafka"]},"encoding":{"description":"The encoding of the data on this source topic.","type":"string","enum":["unknown","text/plain","application/octet-stream","application/json","avro/binary","avro/json"]},"name":{"description":"Source topic name.","type":"string","minLength":1,"maxLength":200},"contact":{"description":"Who to contact for more information about this source topic.","type":"string","minLength":1,"maxLength":200},"description":{"description":"A description for this source topic.","type":"string","maxLength":1500},"topic":{"type":"object","properties":{"name":{"description":"Actual topic name in the cluster.","type":"string","minLength":1,"maxLength":200},"partitions":{"description":"The number of partitions for this topic, updated by discovery.","type":"number"},"replicas":{"description":"The number of replicas for this topic, updated by discovery.","type":"number"},"uuid":{"description":"The UUID of the topic, updated by discovery.","type":"string","minLength":20,"maxLength":24}},"required":["name"]},"schema":{"type":"object","properties":{"type":{"description":"Type of schema from the list of valid types.","type":"string","enum":["avro","json","unknown"]},"content":{"description":"Contents of the schema.","type":"string","maxLength":1048576},"description":{"description":"Description of the data available on the source topic.","type":"string","maxLength":1500}},"anyOf":[{"required":["content","type"]},{"required":["description"]}]},"tags":{"description":"List of tags associated with this source topic.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":50}},"sampleMessages":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"description":"Capabilities enum.","type":"string","enum":["consume","produce"]}},"collaborators":{"type":"object","additionalProperties":false,"required":["groups","contacts"],"properties":{"groups":{"description":"List of collaborators for this source topic.","type":"array","items":{"type":"string","minLength":1,"maxLength":200}},"contacts":{"description":"List of contacts for this source topic.","type":"array","items":{"type":"string","minLength":1,"maxLength":200}}}}}}}}},"responses":{"200":{"description":"Source topic successfully updated."},"400":{"description":"Invalid request, request data does not match the schema."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This source topic does not exist."},"409":{"description":"Source topic could not be updated due to a conflict."},"422":{"description":"Source topic could not be created as it does not map to a valid cluster."},"500":{"description":"Internal error."}}},"delete":{"operationId":"deleteSourceTopic","description":"Delete a source topic<br><br> The source topic must have no attached published or archived virtual topics. Note - You must be the owner to delete a source topic. You can view all of the source topics that you own (including their ID) by using GET /sourcetopics\n","parameters":[{"$ref":"#/components/parameters/sourceTopicId"}],"responses":{"200":{"description":"Source topic successfully deleted."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This source topic does not exist."},"409":{"description":"Source topic could not be deleted due to a conflict."},"500":{"description":"Internal error."}}}},"/eventsources/{eventSourceId}/subscriptions":{"get":{"deprecated":true,"operationId":"readEventSourceSubscriptions","description":"Read a list of subscriptions to this source topic. This endpoint is now deprecated. Use /sourcetopics/{sourceTopicId}/applicationsubscriptions instead.","parameters":[{"in":"path","name":"eventSourceId","required":true,"schema":{"type":"string"},"description":"The ID of the source topic to read subscriptions for."},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/maxPageSize"}],"responses":{"200":{"description":"Source topic subscriptions read successfully.","headers":{"ei-pagination-total":{"$ref":"#/components/headers/ei-pagination-total"},"etag":{"$ref":"#/components/headers/etag"}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["id","username","contact","eventSource","option"],"additionalProperties":false,"properties":{"id":{"description":"Unique subscription ID.","type":"string"},"username":{"description":"Username created for this subscription.","type":"string"},"contact":{"description":"The contact details of the owner of this subscription.","type":"string"},"eventSource":{"description":"Information about the source topic this subscription is for.","type":"object","required":["id","name"],"additionalProperties":false,"properties":{"id":{"description":"Unique source topic ID.","type":"string"},"name":{"description":"Source topic name.","type":"string"}}},"option":{"description":"Information about the option this subscription is for.","type":"object","required":["id","name"],"additionalProperties":false,"properties":{"id":{"description":"Unique virtual topic ID.","type":"string"},"name":{"description":"Virtual topic name.","type":"string"}}},"apicSubscription":{"description":"Subscription added by API Connect.","type":"boolean"}}}}}}},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This source topic does not exist."},"500":{"description":"Internal error."}}}},"/sourcetopics/{sourceTopicId}/applicationsubscriptions":{"get":{"operationId":"readSourceTopicApplicationSubscriptions","description":"Read a list of application subscriptions to this source topic.","parameters":[{"$ref":"#/components/parameters/sourceTopicId"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/maxPageSize"}],"responses":{"200":{"description":"Source topic application subscriptions read successfully.","headers":{"ei-pagination-total":{"$ref":"#/components/headers/ei-pagination-total"},"etag":{"$ref":"#/components/headers/etag"}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["id","name","usernames","contact","sourceTopic","virtualTopic"],"additionalProperties":false,"properties":{"id":{"description":"Unique Application ID.","type":"string"},"name":{"description":"Application Name.","type":"string"},"usernames":{"description":"Usernames, subjects or common names for this Application.","type":"array","items":{"description":"The username, subject or common name for the application","type":"string"}},"contact":{"description":"The contact details of the owner of this Application Subscription.","type":"string"},"sourceTopic":{"description":"Information about the Source Topic this Application Subscription is for.","type":"object","required":["id","name"],"additionalProperties":false,"properties":{"id":{"description":"Unique Source Topic ID.","type":"string"},"name":{"description":"Source Topic name.","type":"string"}}},"virtualTopic":{"description":"Information about the Virtual Topic this Application Subscription is for.","type":"object","required":["id","name"],"additionalProperties":false,"properties":{"id":{"description":"Unique Virtual Topic ID.","type":"string"},"name":{"description":"Virtual Topic name.","type":"string"}}}}}}}}},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This source topic does not exist."},"500":{"description":"Internal error."}}}},"/options":{"get":{"deprecated":true,"operationId":"readAllOptions","description":"List all options created by the current user in an organization. This endpoint is now deprecated. Use /virtualtopics instead.","parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/maxPageSize"}],"responses":{"200":{"description":"Options successfully listed.","headers":{"ei-pagination-total":{"$ref":"#/components/headers/ei-pagination-total"},"etag":{"$ref":"#/components/headers/etag"}},"content":{"application/vnd.ibm.eem.v2+json":{"schema":{"type":"array","items":{"type":"object","required":["id","owner","organization","eventSourceId","name","controls","alias","gatewayGroups","allowSubscriptions","hidden","groupVisibility"],"additionalProperties":false,"properties":{"id":{"description":"Unique option ID.","type":"string"},"owner":{"description":"Option owner.","type":"string"},"organization":{"description":"Organization this option belongs to.","type":"string"},"eventSourceId":{"description":"Source topic that this option belongs to.","type":"string"},"alias":{"description":"Unique, descriptive alias for this option.","type":"string","minLength":1,"maxLength":200},"name":{"description":"Descriptive name for this option.","type":"string","minLength":1,"maxLength":200},"description":{"description":"Longer description used to describe what this option is used for.","type":"string","maxLength":1500},"gatewayGroups":{"description":"List of gateway groups this option should be published to.","type":"array","uniqueItems":true,"items":{"type":"string"}},"catalogs":{"description":"List of catalogs to which the option is published.","type":"array","uniqueItems":true,"items":{"type":"object","minLength":1,"maxLength":200,"additionalProperties":false,"properties":{"id":{"description":"Unique catalog ID.","type":"string"},"state":{"description":"Indicates if this option is published, unpublished or archived.","type":"string","enum":["published","unpublished","archived"]}},"required":["id"]}},"hidden":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this option is visible in the catalog.","type":"boolean"},"allowSubscriptions":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this option is allowing new subscriptions.","type":"boolean"},"controls":{"description":"Controls on this virtual topic.","type":"array","items":{"anyOf":[{"type":"object","required":["id","requests","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["approval"]},"requests":{"type":"array","items":{"type":"object","required":["id","owner","status","description","contact"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"owner":{"description":"Approval request owner.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of last update to approval request.","type":"integer"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"description":{"description":"Description of why the request was created.","type":"string","minLength":1,"maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string","minLength":1,"maxLength":250},"outcome":{"description":"Description of the outcome of this request.","type":"string","maxLength":250},"subscriptionId":{"description":"The id of the subscription associated with this request.","type":"string","deprecated":true,"maxLength":250},"applicationId":{"description":"The id of the application associated with this request.","type":"string","maxLength":250}}}}}},{"allOf":[{"type":"object","required":["id","redactions","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["redaction"]},"redactions":{"type":"array","items":{"anyOf":[{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceString"]},"replaceWith":{"description":"The value to replace with.","type":"string","maxLength":200}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceIntegral","replaceDouble"]},"replaceWith":{"description":"The value to replace with.","type":"number"}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["algorithm","type"],"properties":{"type":{"description":"Type of redaction.","enum":["hash"]},"algorithm":{"type":"string","description":"Algorithm to use for hashing the current value.","enum":["SHA-256","SHA-512"]}}}]}],"discriminator":{"propertyName":"type"}}}}}]},{"type":"object","required":["id","schema","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["schema-filtering"]},"schema":{"type":"object","required":["filtered"],"properties":{"filtered":{"description":"If true, any schema associated with the source topic will be used to filter records sent to applications.","type":"boolean"}}}}},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["quota"]}},"anyOf":[{"type":"object","required":["megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond","megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}}]},{"allOf":[{"oneOf":[{"type":"object","required":["trustPem"],"deprecated":true,"properties":{"trustPem":{"description":"Certificate Authority in PEM format.","type":"string"}}},{"anyOf":[{"type":"object","required":["acceptProfileCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptOrgCa"],"properties":{"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptProfileCa","acceptOrgCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"},"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}}]}]},{"type":"object","required":["type","id","subjectCommonName"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["mtls"]},"identificationType":{"description":"The type of identification users will use to distinguish between subscriptions. Defaults to MTLS when not provided.","deprecated":true,"type":"string","enum":["MTLS","SASL"]},"identificationSubjectFields":{"description":"Certificate subject fields to identify users by if using MTLS identificationType.","type":"array","items":{"type":"string","enum":["subjectCommonName","subjectOrganization","subjectCountry","subjectStateOrProvince","subjectLocality"]}},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200},"approvedCipherSuites":{"description":"Cipher suites that are approved for use.","type":"array","items":{"type":"string"}},"disapprovedCipherSuites":{"description":"Cipher suites that are not approved for use.","type":"array","items":{"type":"string"}},"notValidBefore":{"description":"Certificate not valid before time.","type":"integer"},"notValidAfter":{"description":"Certificate not valid after time.","type":"integer"}}}]},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-oauth"]}},"additionalProperties":false},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-credentials"]}},"additionalProperties":false},{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["content-filtering"]},"filterCondition":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["simple"]},"eventProperty":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","description":"JSONPath to the field."},"source":{"type":"string","enum":["body"],"description":"Location of the property in the event."}},"required":["path","source"]},"operator":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","enum":["equal"]},"type":{"type":"string","enum":["string","integer","double","boolean"]}},"required":["name","type"]},"value":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["literal"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"description":"Literal comparison value."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["reference"]},"value":{"type":"string","enum":["USER_ID","CLIENT_ID"],"description":"Reference to a Kafka connection metadata property."}},"required":["type","value"],"additionalProperties":false}]}},"required":["type","eventProperty","operator","value"]}},"required":["id","type","filterCondition"]}],"discriminator":{"propertyName":"type"}}},"groupVisibility":{"description":"List of groups this option should be visible to in the catalog.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}}}}}},"application/json":{"schema":{"type":"array","items":{"type":"object","required":["id","owner","organization","eventSourceId","name","controls","alias","gatewayGroups","allowSubscriptions","hidden","groupVisibility"],"additionalProperties":false,"properties":{"id":{"description":"Unique option ID.","type":"string"},"owner":{"description":"Option owner.","type":"string"},"organization":{"description":"Organization this option belongs to.","type":"string"},"eventSourceId":{"description":"Source topic that this option belongs to.","type":"string"},"alias":{"description":"Unique, descriptive alias for this option.","type":"string","minLength":1,"maxLength":200},"name":{"description":"Descriptive name for this option.","type":"string","minLength":1,"maxLength":200},"description":{"description":"Longer description used to describe what this option is used for.","type":"string","maxLength":1500},"gatewayGroups":{"description":"List of gateway groups this option should be published to.","type":"array","uniqueItems":true,"items":{"type":"string"}},"hidden":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this option is visible in the catalog.","type":"boolean"},"allowSubscriptions":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this option is allowing new subscriptions.","type":"boolean"},"catalogs":{"description":"List of catalogs to which the option is published.","type":"array","uniqueItems":true,"items":{"type":"object","minLength":1,"maxLength":200,"additionalProperties":false,"properties":{"id":{"description":"Unique catalog ID.","type":"string"},"state":{"description":"Indicates if this option is published, unpublished or archived.","type":"string","enum":["published","unpublished","archived"]}},"required":["id"]}},"controls":{"description":"Controls on this virtual topic.","type":"array","items":{"anyOf":[{"type":"object","required":["id","requests","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["approval"]},"requests":{"type":"array","items":{"type":"object","required":["id","owner","status","description","contact"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"owner":{"description":"Approval request owner.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of last update to approval request.","type":"integer"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"description":{"description":"Description of why the request was created.","type":"string","minLength":1,"maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string","minLength":1,"maxLength":250},"outcome":{"description":"Description of the outcome of this request.","type":"string","maxLength":250},"subscriptionId":{"description":"The id of the subscription associated with this request.","type":"string","deprecated":true,"maxLength":250},"applicationId":{"description":"The id of the application associated with this request.","type":"string","maxLength":250}}}}}},{"allOf":[{"type":"object","required":["id","redactions","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["redaction"]},"redactions":{"type":"array","items":{"anyOf":[{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceString"]},"replaceWith":{"description":"The value to replace with.","type":"string","maxLength":200}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceIntegral","replaceDouble"]},"replaceWith":{"description":"The value to replace with.","type":"number"}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["algorithm","type"],"properties":{"type":{"description":"Type of redaction.","enum":["hash"]},"algorithm":{"type":"string","description":"Algorithm to use for hashing the current value.","enum":["SHA-256","SHA-512"]}}}]}],"discriminator":{"propertyName":"type"}}}}}]},{"type":"object","required":["id","schema","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["schema-filtering"]},"schema":{"type":"object","required":["filtered"],"properties":{"filtered":{"description":"If true, any schema associated with the source topic will be used to filter records sent to applications.","type":"boolean"}}}}},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["quota"]}},"anyOf":[{"type":"object","required":["megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond","megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}}]},{"allOf":[{"oneOf":[{"type":"object","required":["trustPem"],"deprecated":true,"properties":{"trustPem":{"description":"Certificate Authority in PEM format.","type":"string"}}},{"anyOf":[{"type":"object","required":["acceptProfileCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptOrgCa"],"properties":{"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptProfileCa","acceptOrgCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"},"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}}]}]},{"type":"object","required":["type","id","subjectCommonName"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["mtls"]},"identificationType":{"description":"The type of identification users will use to distinguish between subscriptions. Defaults to MTLS when not provided.","deprecated":true,"type":"string","enum":["MTLS","SASL"]},"identificationSubjectFields":{"description":"Certificate subject fields to identify users by if using MTLS identificationType.","type":"array","items":{"type":"string","enum":["subjectCommonName","subjectOrganization","subjectCountry","subjectStateOrProvince","subjectLocality"]}},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200},"approvedCipherSuites":{"description":"Cipher suites that are approved for use.","type":"array","items":{"type":"string"}},"disapprovedCipherSuites":{"description":"Cipher suites that are not approved for use.","type":"array","items":{"type":"string"}},"notValidBefore":{"description":"Certificate not valid before time.","type":"integer"},"notValidAfter":{"description":"Certificate not valid after time.","type":"integer"}}}]},{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["content-filtering"]},"filterCondition":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["simple"]},"eventProperty":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","description":"JSONPath to the field."},"source":{"type":"string","enum":["body"],"description":"Location of the property in the event."}},"required":["path","source"]},"operator":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","enum":["equal"]},"type":{"type":"string","enum":["string","integer","double","boolean"]}},"required":["name","type"]},"value":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["literal"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"description":"Literal comparison value."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["reference"]},"value":{"type":"string","enum":["USER_ID","CLIENT_ID"],"description":"Reference to a Kafka connection metadata property."}},"required":["type","value"],"additionalProperties":false}]}},"required":["type","eventProperty","operator","value"]}},"required":["id","type","filterCondition"]}],"discriminator":{"propertyName":"type"}}},"groupVisibility":{"description":"List of groups this option should be visible to in the catalog.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}}}}}}}},"304":{"description":"Data not changed."},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"406":{"description":"Not Acceptable. The requested media type is not supported."},"500":{"description":"Internal error."}}},"post":{"deprecated":true,"operationId":"createOption","description":"Create an option. This endpoint is now deprecated. Use /virtualtopics instead.","requestBody":{"description":"Option data.","required":true,"content":{"application/json":{"schema":{"type":"object","required":["eventSourceId","name","controls","alias","gatewayGroups","allowSubscriptions","hidden"],"additionalProperties":false,"properties":{"eventSourceId":{"description":"Source topic that this option belongs to.","type":"string"},"alias":{"description":"Unique, descriptive alias for this option.","type":"string","minLength":1,"maxLength":200},"name":{"description":"Descriptive name for this option.","type":"string","minLength":1,"maxLength":200},"description":{"description":"Longer description used to describe what this option is used for.","type":"string","maxLength":1500},"gatewayGroups":{"description":"List of gateway groups this option should be published to.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}},"catalogs":{"description":"List of catalogs to which the option is published.","type":"array","uniqueItems":true,"items":{"type":"object","minLength":1,"maxLength":200,"additionalProperties":false,"properties":{"id":{"description":"Unique catalog ID.","type":"string"},"state":{"description":"Indicates if this option is published, unpublished or archived.","type":"string","enum":["published","unpublished","archived"]}},"required":["id"]}},"hidden":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this option is visible in the catalog.","type":"boolean"},"allowSubscriptions":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this option is allowing new subscriptions.","type":"boolean"},"controls":{"description":"Controls on this virtual topic.","type":"array","items":{"anyOf":[{"type":"object","required":["id","requests","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["approval"]},"requests":{"type":"array","items":{"type":"object","required":["id","owner","status","description","contact"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"owner":{"description":"Approval request owner.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of last update to approval request.","type":"integer"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"description":{"description":"Description of why the request was created.","type":"string","minLength":1,"maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string","minLength":1,"maxLength":250},"outcome":{"description":"Description of the outcome of this request.","type":"string","maxLength":250},"subscriptionId":{"description":"The id of the subscription associated with this request.","type":"string","deprecated":true,"maxLength":250},"applicationId":{"description":"The id of the application associated with this request.","type":"string","maxLength":250}}}}}},{"allOf":[{"type":"object","required":["id","redactions","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["redaction"]},"redactions":{"type":"array","items":{"anyOf":[{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceString"]},"replaceWith":{"description":"The value to replace with.","type":"string","maxLength":200}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceIntegral","replaceDouble"]},"replaceWith":{"description":"The value to replace with.","type":"number"}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["algorithm","type"],"properties":{"type":{"description":"Type of redaction.","enum":["hash"]},"algorithm":{"type":"string","description":"Algorithm to use for hashing the current value.","enum":["SHA-256","SHA-512"]}}}]}],"discriminator":{"propertyName":"type"}}}}}]},{"type":"object","required":["id","schema","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["schema-filtering"]},"schema":{"type":"object","required":["filtered"],"properties":{"filtered":{"description":"If true, any schema associated with the source topic will be used to filter records sent to applications.","type":"boolean"}}}}},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["quota"]}},"anyOf":[{"type":"object","required":["megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond","megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}}]},{"allOf":[{"oneOf":[{"type":"object","required":["trustPem"],"deprecated":true,"properties":{"trustPem":{"description":"Certificate Authority in PEM format.","type":"string"}}},{"anyOf":[{"type":"object","required":["acceptProfileCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptOrgCa"],"properties":{"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptProfileCa","acceptOrgCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"},"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}}]}]},{"type":"object","required":["type","id","subjectCommonName"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["mtls"]},"identificationType":{"description":"The type of identification users will use to distinguish between subscriptions. Defaults to MTLS when not provided.","deprecated":true,"type":"string","enum":["MTLS","SASL"]},"identificationSubjectFields":{"description":"Certificate subject fields to identify users by if using MTLS identificationType.","type":"array","items":{"type":"string","enum":["subjectCommonName","subjectOrganization","subjectCountry","subjectStateOrProvince","subjectLocality"]}},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200},"approvedCipherSuites":{"description":"Cipher suites that are approved for use.","type":"array","items":{"type":"string"}},"disapprovedCipherSuites":{"description":"Cipher suites that are not approved for use.","type":"array","items":{"type":"string"}},"notValidBefore":{"description":"Certificate not valid before time.","type":"integer"},"notValidAfter":{"description":"Certificate not valid after time.","type":"integer"}}}]},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-oauth"]}},"additionalProperties":false},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-credentials"]}},"additionalProperties":false},{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["content-filtering"]},"filterCondition":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["simple"]},"eventProperty":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","description":"JSONPath to the field."},"source":{"type":"string","enum":["body"],"description":"Location of the property in the event."}},"required":["path","source"]},"operator":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","enum":["equal"]},"type":{"type":"string","enum":["string","integer","double","boolean"]}},"required":["name","type"]},"value":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["literal"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"description":"Literal comparison value."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["reference"]},"value":{"type":"string","enum":["USER_ID","CLIENT_ID"],"description":"Reference to a Kafka connection metadata property."}},"required":["type","value"],"additionalProperties":false}]}},"required":["type","eventProperty","operator","value"]}},"required":["id","type","filterCondition"]}],"discriminator":{"propertyName":"type"}}},"groupVisibility":{"description":"List of groups this option should be visible to in the catalog.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}}}}}}},"responses":{"200":{"description":"The ID of the created option.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}}}}}},"400":{"description":"Invalid request, request data does not match schema or Controls specified not compatible with gateway group."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"426":{"description":"Limit reached, upgrade required to your service plan."},"500":{"description":"Internal error."}}}},"/options/{optionId}":{"get":{"deprecated":true,"operationId":"readOption","description":"Read an option. This endpoint is now deprecated. Use /virtualtopics/{virtualTopicId} instead.","parameters":[{"in":"path","name":"optionId","required":true,"schema":{"type":"string"},"description":"The ID of the option to read."}],"responses":{"200":{"description":"The data for the requested option.","content":{"application/vnd.ibm.eem.v2+json":{"schema":{"type":"object","required":["id","owner","organization","eventSourceId","name","controls","alias","gatewayGroups","allowSubscriptions","hidden","groupVisibility"],"additionalProperties":false,"properties":{"id":{"description":"Unique option ID.","type":"string"},"owner":{"description":"Option owner.","type":"string"},"organization":{"description":"Organization this option belongs to.","type":"string"},"eventSourceId":{"description":"Source topic that this option belongs to.","type":"string"},"alias":{"description":"Unique, descriptive alias for this option.","type":"string","minLength":1,"maxLength":200},"name":{"description":"Descriptive name for this option.","type":"string","minLength":1,"maxLength":200},"description":{"description":"Longer description used to describe what this option is used for.","type":"string","maxLength":1500},"gatewayGroups":{"description":"List of gateway groups this option should be published to.","type":"array","uniqueItems":true,"items":{"type":"string"}},"catalogs":{"description":"List of catalogs to which the option is published.","type":"array","uniqueItems":true,"items":{"type":"object","minLength":1,"maxLength":200,"additionalProperties":false,"properties":{"id":{"description":"Unique catalog ID.","type":"string"},"state":{"description":"Indicates if this option is published, unpublished or archived.","type":"string","enum":["published","unpublished","archived"]}},"required":["id"]}},"hidden":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this option is visible in the catalog.","type":"boolean"},"allowSubscriptions":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this option is allowing new subscriptions.","type":"boolean"},"controls":{"description":"Controls on this virtual topic.","type":"array","items":{"anyOf":[{"type":"object","required":["id","requests","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["approval"]},"requests":{"type":"array","items":{"type":"object","required":["id","owner","status","description","contact"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"owner":{"description":"Approval request owner.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of last update to approval request.","type":"integer"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"description":{"description":"Description of why the request was created.","type":"string","minLength":1,"maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string","minLength":1,"maxLength":250},"outcome":{"description":"Description of the outcome of this request.","type":"string","maxLength":250},"subscriptionId":{"description":"The id of the subscription associated with this request.","type":"string","deprecated":true,"maxLength":250},"applicationId":{"description":"The id of the application associated with this request.","type":"string","maxLength":250}}}}}},{"allOf":[{"type":"object","required":["id","redactions","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["redaction"]},"redactions":{"type":"array","items":{"anyOf":[{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceString"]},"replaceWith":{"description":"The value to replace with.","type":"string","maxLength":200}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceIntegral","replaceDouble"]},"replaceWith":{"description":"The value to replace with.","type":"number"}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["algorithm","type"],"properties":{"type":{"description":"Type of redaction.","enum":["hash"]},"algorithm":{"type":"string","description":"Algorithm to use for hashing the current value.","enum":["SHA-256","SHA-512"]}}}]}],"discriminator":{"propertyName":"type"}}}}}]},{"type":"object","required":["id","schema","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["schema-filtering"]},"schema":{"type":"object","required":["filtered"],"properties":{"filtered":{"description":"If true, any schema associated with the source topic will be used to filter records sent to applications.","type":"boolean"}}}}},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["quota"]}},"anyOf":[{"type":"object","required":["megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond","megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}}]},{"allOf":[{"oneOf":[{"type":"object","required":["trustPem"],"deprecated":true,"properties":{"trustPem":{"description":"Certificate Authority in PEM format.","type":"string"}}},{"anyOf":[{"type":"object","required":["acceptProfileCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptOrgCa"],"properties":{"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptProfileCa","acceptOrgCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"},"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}}]}]},{"type":"object","required":["type","id","subjectCommonName"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["mtls"]},"identificationType":{"description":"The type of identification users will use to distinguish between subscriptions. Defaults to MTLS when not provided.","deprecated":true,"type":"string","enum":["MTLS","SASL"]},"identificationSubjectFields":{"description":"Certificate subject fields to identify users by if using MTLS identificationType.","type":"array","items":{"type":"string","enum":["subjectCommonName","subjectOrganization","subjectCountry","subjectStateOrProvince","subjectLocality"]}},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200},"approvedCipherSuites":{"description":"Cipher suites that are approved for use.","type":"array","items":{"type":"string"}},"disapprovedCipherSuites":{"description":"Cipher suites that are not approved for use.","type":"array","items":{"type":"string"}},"notValidBefore":{"description":"Certificate not valid before time.","type":"integer"},"notValidAfter":{"description":"Certificate not valid after time.","type":"integer"}}}]},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-oauth"]}},"additionalProperties":false},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-credentials"]}},"additionalProperties":false},{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["content-filtering"]},"filterCondition":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["simple"]},"eventProperty":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","description":"JSONPath to the field."},"source":{"type":"string","enum":["body"],"description":"Location of the property in the event."}},"required":["path","source"]},"operator":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","enum":["equal"]},"type":{"type":"string","enum":["string","integer","double","boolean"]}},"required":["name","type"]},"value":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["literal"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"description":"Literal comparison value."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["reference"]},"value":{"type":"string","enum":["USER_ID","CLIENT_ID"],"description":"Reference to a Kafka connection metadata property."}},"required":["type","value"],"additionalProperties":false}]}},"required":["type","eventProperty","operator","value"]}},"required":["id","type","filterCondition"]}],"discriminator":{"propertyName":"type"}}},"groupVisibility":{"description":"List of groups this option should be visible to in the catalog.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}}}}},"application/json":{"schema":{"type":"object","required":["id","owner","organization","eventSourceId","name","controls","alias","gatewayGroups","allowSubscriptions","hidden","groupVisibility"],"additionalProperties":false,"properties":{"id":{"description":"Unique option ID.","type":"string"},"owner":{"description":"Option owner.","type":"string"},"organization":{"description":"Organization this option belongs to.","type":"string"},"eventSourceId":{"description":"Source topic that this option belongs to.","type":"string"},"alias":{"description":"Unique, descriptive alias for this option.","type":"string","minLength":1,"maxLength":200},"name":{"description":"Descriptive name for this option.","type":"string","minLength":1,"maxLength":200},"description":{"description":"Longer description used to describe what this option is used for.","type":"string","maxLength":1500},"gatewayGroups":{"description":"List of gateway groups this option should be published to.","type":"array","uniqueItems":true,"items":{"type":"string"}},"hidden":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this option is visible in the catalog.","type":"boolean"},"allowSubscriptions":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this option is allowing new subscriptions.","type":"boolean"},"catalogs":{"description":"List of catalogs to which the option is published.","type":"array","uniqueItems":true,"items":{"type":"object","minLength":1,"maxLength":200,"additionalProperties":false,"properties":{"id":{"description":"Unique catalog ID.","type":"string"},"state":{"description":"Indicates if this option is published, unpublished or archived.","type":"string","enum":["published","unpublished","archived"]}},"required":["id"]}},"controls":{"description":"Controls on this virtual topic.","type":"array","items":{"anyOf":[{"type":"object","required":["id","requests","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["approval"]},"requests":{"type":"array","items":{"type":"object","required":["id","owner","status","description","contact"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"owner":{"description":"Approval request owner.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of last update to approval request.","type":"integer"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"description":{"description":"Description of why the request was created.","type":"string","minLength":1,"maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string","minLength":1,"maxLength":250},"outcome":{"description":"Description of the outcome of this request.","type":"string","maxLength":250},"subscriptionId":{"description":"The id of the subscription associated with this request.","type":"string","deprecated":true,"maxLength":250},"applicationId":{"description":"The id of the application associated with this request.","type":"string","maxLength":250}}}}}},{"allOf":[{"type":"object","required":["id","redactions","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["redaction"]},"redactions":{"type":"array","items":{"anyOf":[{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceString"]},"replaceWith":{"description":"The value to replace with.","type":"string","maxLength":200}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceIntegral","replaceDouble"]},"replaceWith":{"description":"The value to replace with.","type":"number"}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["algorithm","type"],"properties":{"type":{"description":"Type of redaction.","enum":["hash"]},"algorithm":{"type":"string","description":"Algorithm to use for hashing the current value.","enum":["SHA-256","SHA-512"]}}}]}],"discriminator":{"propertyName":"type"}}}}}]},{"type":"object","required":["id","schema","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["schema-filtering"]},"schema":{"type":"object","required":["filtered"],"properties":{"filtered":{"description":"If true, any schema associated with the source topic will be used to filter records sent to applications.","type":"boolean"}}}}},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["quota"]}},"anyOf":[{"type":"object","required":["megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond","megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}}]},{"allOf":[{"oneOf":[{"type":"object","required":["trustPem"],"deprecated":true,"properties":{"trustPem":{"description":"Certificate Authority in PEM format.","type":"string"}}},{"anyOf":[{"type":"object","required":["acceptProfileCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptOrgCa"],"properties":{"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptProfileCa","acceptOrgCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"},"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}}]}]},{"type":"object","required":["type","id","subjectCommonName"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["mtls"]},"identificationType":{"description":"The type of identification users will use to distinguish between subscriptions. Defaults to MTLS when not provided.","deprecated":true,"type":"string","enum":["MTLS","SASL"]},"identificationSubjectFields":{"description":"Certificate subject fields to identify users by if using MTLS identificationType.","type":"array","items":{"type":"string","enum":["subjectCommonName","subjectOrganization","subjectCountry","subjectStateOrProvince","subjectLocality"]}},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200},"approvedCipherSuites":{"description":"Cipher suites that are approved for use.","type":"array","items":{"type":"string"}},"disapprovedCipherSuites":{"description":"Cipher suites that are not approved for use.","type":"array","items":{"type":"string"}},"notValidBefore":{"description":"Certificate not valid before time.","type":"integer"},"notValidAfter":{"description":"Certificate not valid after time.","type":"integer"}}}]},{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["content-filtering"]},"filterCondition":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["simple"]},"eventProperty":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","description":"JSONPath to the field."},"source":{"type":"string","enum":["body"],"description":"Location of the property in the event."}},"required":["path","source"]},"operator":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","enum":["equal"]},"type":{"type":"string","enum":["string","integer","double","boolean"]}},"required":["name","type"]},"value":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["literal"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"description":"Literal comparison value."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["reference"]},"value":{"type":"string","enum":["USER_ID","CLIENT_ID"],"description":"Reference to a Kafka connection metadata property."}},"required":["type","value"],"additionalProperties":false}]}},"required":["type","eventProperty","operator","value"]}},"required":["id","type","filterCondition"]}],"discriminator":{"propertyName":"type"}}},"groupVisibility":{"description":"List of groups this option should be visible to in the catalog.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}}}}}}},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This option does not exist."},"406":{"description":"Not Acceptable. The requested media type is not supported."},"500":{"description":"Internal error."}}},"put":{"deprecated":true,"operationId":"updateOption","description":"Update an option. This endpoint is now deprecated. Use /virtualtopics/{virtualTopicId} instead.","parameters":[{"in":"path","name":"optionId","required":true,"schema":{"type":"string"},"description":"The ID of the option to update."}],"requestBody":{"description":"Option data.","required":true,"content":{"application/json":{"schema":{"type":"object","required":["eventSourceId","name","controls","alias","gatewayGroups","allowSubscriptions","hidden"],"additionalProperties":false,"properties":{"eventSourceId":{"description":"Source topic that this option belongs to.","type":"string"},"alias":{"description":"Unique, descriptive alias for this option.","type":"string","minLength":1,"maxLength":200},"name":{"description":"Descriptive name for this option.","type":"string","minLength":1,"maxLength":200},"description":{"description":"Longer description used to describe what this option is used for.","type":"string","maxLength":1500},"gatewayGroups":{"description":"List of gateway groups this option should be published to.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}},"catalogs":{"description":"List of catalogs to which the option is published.","type":"array","uniqueItems":true,"items":{"type":"object","minLength":1,"maxLength":200,"additionalProperties":false,"properties":{"id":{"description":"Unique catalog ID.","type":"string"},"state":{"description":"Indicates if this option is published, unpublished or archived.","type":"string","enum":["published","unpublished","archived"]}},"required":["id"]}},"hidden":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this option is visible in the catalog.","type":"boolean"},"allowSubscriptions":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this option is allowing new subscriptions.","type":"boolean"},"controls":{"description":"Controls on this virtual topic.","type":"array","items":{"anyOf":[{"type":"object","required":["id","requests","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["approval"]},"requests":{"type":"array","items":{"type":"object","required":["id","owner","status","description","contact"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"owner":{"description":"Approval request owner.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of last update to approval request.","type":"integer"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"description":{"description":"Description of why the request was created.","type":"string","minLength":1,"maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string","minLength":1,"maxLength":250},"outcome":{"description":"Description of the outcome of this request.","type":"string","maxLength":250},"subscriptionId":{"description":"The id of the subscription associated with this request.","type":"string","deprecated":true,"maxLength":250},"applicationId":{"description":"The id of the application associated with this request.","type":"string","maxLength":250}}}}}},{"allOf":[{"type":"object","required":["id","redactions","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["redaction"]},"redactions":{"type":"array","items":{"anyOf":[{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceString"]},"replaceWith":{"description":"The value to replace with.","type":"string","maxLength":200}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceIntegral","replaceDouble"]},"replaceWith":{"description":"The value to replace with.","type":"number"}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["algorithm","type"],"properties":{"type":{"description":"Type of redaction.","enum":["hash"]},"algorithm":{"type":"string","description":"Algorithm to use for hashing the current value.","enum":["SHA-256","SHA-512"]}}}]}],"discriminator":{"propertyName":"type"}}}}}]},{"type":"object","required":["id","schema","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["schema-filtering"]},"schema":{"type":"object","required":["filtered"],"properties":{"filtered":{"description":"If true, any schema associated with the source topic will be used to filter records sent to applications.","type":"boolean"}}}}},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["quota"]}},"anyOf":[{"type":"object","required":["megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond","megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}}]},{"allOf":[{"oneOf":[{"type":"object","required":["trustPem"],"deprecated":true,"properties":{"trustPem":{"description":"Certificate Authority in PEM format.","type":"string"}}},{"anyOf":[{"type":"object","required":["acceptProfileCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptOrgCa"],"properties":{"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptProfileCa","acceptOrgCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"},"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}}]}]},{"type":"object","required":["type","id","subjectCommonName"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["mtls"]},"identificationType":{"description":"The type of identification users will use to distinguish between subscriptions. Defaults to MTLS when not provided.","deprecated":true,"type":"string","enum":["MTLS","SASL"]},"identificationSubjectFields":{"description":"Certificate subject fields to identify users by if using MTLS identificationType.","type":"array","items":{"type":"string","enum":["subjectCommonName","subjectOrganization","subjectCountry","subjectStateOrProvince","subjectLocality"]}},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200},"approvedCipherSuites":{"description":"Cipher suites that are approved for use.","type":"array","items":{"type":"string"}},"disapprovedCipherSuites":{"description":"Cipher suites that are not approved for use.","type":"array","items":{"type":"string"}},"notValidBefore":{"description":"Certificate not valid before time.","type":"integer"},"notValidAfter":{"description":"Certificate not valid after time.","type":"integer"}}}]},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-oauth"]}},"additionalProperties":false},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-credentials"]}},"additionalProperties":false},{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["content-filtering"]},"filterCondition":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["simple"]},"eventProperty":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","description":"JSONPath to the field."},"source":{"type":"string","enum":["body"],"description":"Location of the property in the event."}},"required":["path","source"]},"operator":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","enum":["equal"]},"type":{"type":"string","enum":["string","integer","double","boolean"]}},"required":["name","type"]},"value":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["literal"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"description":"Literal comparison value."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["reference"]},"value":{"type":"string","enum":["USER_ID","CLIENT_ID"],"description":"Reference to a Kafka connection metadata property."}},"required":["type","value"],"additionalProperties":false}]}},"required":["type","eventProperty","operator","value"]}},"required":["id","type","filterCondition"]}],"discriminator":{"propertyName":"type"}}},"groupVisibility":{"description":"List of groups this option should be visible to in the catalog.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}}}}}}},"responses":{"200":{"description":"Option successfully updated."},"400":{"description":"Invalid request, request data does not match schema or Controls specified not compatible with gateway group."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This option does not exist."},"500":{"description":"Internal error."}}},"delete":{"deprecated":true,"operationId":"deleteOption","description":"Delete an option. This endpoint is now deprecated. Use /virtualtopics/{virtualTopicId} instead.\n","parameters":[{"in":"path","name":"optionId","required":true,"schema":{"type":"string"},"description":"The ID of the option to delete."}],"responses":{"200":{"description":"Option successfully deleted."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This option does not exist."},"409":{"description":"Option could not be deleted due to a conflict."},"500":{"description":"Internal error."}}}},"/options/{optionId}/apicasyncapi":{"get":{"deprecated":true,"description":"Generate an AsyncAPI document for a selected option with connections added for IBM API Connect. This endpoint is now deprecated. Use /virtualtopics/{virtualTopicId}/apicasyncapi instead.","operationId":"exportAPICAsyncAPI","parameters":[{"$ref":"#/components/parameters/optionId"},{"in":"query","name":"version","required":false,"schema":{"type":"string","default":"2.1.0"},"description":"The version of AsyncAPI."}],"responses":{"200":{"description":"AsyncAPI successfully generated.","content":{"application/yaml":{"schema":{"type":"string"}}}},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"Option not found."},"422":{"description":"Cannot export option with approval control."},"500":{"description":"Internal error."}}}},"/options/{optionId}/asyncapi":{"get":{"deprecated":true,"description":"Generate an AsyncAPI document for a selected option. This endpoint is now deprecated. Use /virtualtopics/{virtualTopicId}/asyncapi instead.","operationId":"exportAsyncAPI","parameters":[{"$ref":"#/components/parameters/optionId"},{"in":"query","name":"version","required":false,"schema":{"type":"string","default":"2.1.0"},"description":"The version of AsyncAPI"}],"responses":{"200":{"description":"AsyncAPI successfully generated.","content":{"application/yaml":{"schema":{"type":"string"}}}},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"Option not found."},"500":{"description":"Internal error."}}}},"/virtualtopics":{"get":{"operationId":"readAllVirtualTopics","description":"List all virtual topics created by the current user in an organization. To view all virtual topics with 11.7.1 or later controls, you must specify the header 'Accept: application/vnd.ibm.eem.v2+json'. If you omit the header or specify 'application/json', then the response includes only virtual topics that can be represented with 11.7.0 or earlier controls.","parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/maxPageSize"}],"responses":{"200":{"description":"Virtual topics successfully listed.","headers":{"ei-pagination-total":{"$ref":"#/components/headers/ei-pagination-total"},"etag":{"$ref":"#/components/headers/etag"}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["id","owner","organization","sourceTopicId","name","controls","alias","gatewayGroups","allowSubscriptions","hidden","groupVisibility"],"additionalProperties":false,"properties":{"id":{"description":"Unique Virtual Topic ID.","type":"string"},"owner":{"description":"Virtual Topic owner.","type":"string"},"organization":{"description":"Organization this Virtual Topic belongs to.","type":"string"},"sourceTopicId":{"description":"Source topic that this virtual topic belongs to","type":"string"},"alias":{"description":"Unique, descriptive alias for this virtual topic","type":"string","minLength":1,"maxLength":200},"name":{"description":"Descriptive name for this virtual topic","type":"string","minLength":1,"maxLength":200},"description":{"description":"Longer description used to describe what this virtual topic is used for","type":"string","maxLength":1500},"gatewayGroups":{"description":"List of gateway groups this virtual topic should be published to","type":"array","uniqueItems":true,"items":{"type":"string"}},"catalogs":{"description":"List of catalogs to which the virtual topic is published","type":"array","uniqueItems":true,"items":{"type":"object","minLength":1,"maxLength":200,"additionalProperties":false,"properties":{"id":{"description":"Unique catalog ID.","type":"string"},"state":{"description":"Indicates if this virtual topic is published, unpublished or archived","type":"string","enum":["published","unpublished","archived"]}},"required":["id"]}},"hidden":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this virtual topic is visible in the catalog","type":"boolean"},"allowSubscriptions":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this virtual topic is allowing new subscriptions","type":"boolean"},"controls":{"description":"Controls on this virtual topic.","type":"array","items":{"anyOf":[{"type":"object","required":["id","requests","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["approval"]},"requests":{"type":"array","items":{"type":"object","required":["id","owner","status","description","contact"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"owner":{"description":"Approval request owner.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of last update to approval request.","type":"integer"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"description":{"description":"Description of why the request was created.","type":"string","minLength":1,"maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string","minLength":1,"maxLength":250},"outcome":{"description":"Description of the outcome of this request.","type":"string","maxLength":250},"subscriptionId":{"description":"The id of the subscription associated with this request.","type":"string","deprecated":true,"maxLength":250},"applicationId":{"description":"The id of the application associated with this request.","type":"string","maxLength":250}}}}}},{"allOf":[{"type":"object","required":["id","redactions","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["redaction"]},"redactions":{"type":"array","items":{"anyOf":[{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceString"]},"replaceWith":{"description":"The value to replace with.","type":"string","maxLength":200}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceIntegral","replaceDouble"]},"replaceWith":{"description":"The value to replace with.","type":"number"}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["algorithm","type"],"properties":{"type":{"description":"Type of redaction.","enum":["hash"]},"algorithm":{"type":"string","description":"Algorithm to use for hashing the current value.","enum":["SHA-256","SHA-512"]}}}]}],"discriminator":{"propertyName":"type"}}}}}]},{"type":"object","required":["id","schema","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["schema-filtering"]},"schema":{"type":"object","required":["filtered"],"properties":{"filtered":{"description":"If true, any schema associated with the source topic will be used to filter records sent to applications.","type":"boolean"}}}}},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["quota"]}},"anyOf":[{"type":"object","required":["megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond","megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}}]},{"allOf":[{"oneOf":[{"type":"object","required":["trustPem"],"deprecated":true,"properties":{"trustPem":{"description":"Certificate Authority in PEM format.","type":"string"}}},{"anyOf":[{"type":"object","required":["acceptProfileCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptOrgCa"],"properties":{"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptProfileCa","acceptOrgCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"},"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}}]}]},{"type":"object","required":["type","id","subjectCommonName"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["mtls"]},"identificationType":{"description":"The type of identification users will use to distinguish between subscriptions. Defaults to MTLS when not provided.","deprecated":true,"type":"string","enum":["MTLS","SASL"]},"identificationSubjectFields":{"description":"Certificate subject fields to identify users by if using MTLS identificationType.","type":"array","items":{"type":"string","enum":["subjectCommonName","subjectOrganization","subjectCountry","subjectStateOrProvince","subjectLocality"]}},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200},"approvedCipherSuites":{"description":"Cipher suites that are approved for use.","type":"array","items":{"type":"string"}},"disapprovedCipherSuites":{"description":"Cipher suites that are not approved for use.","type":"array","items":{"type":"string"}},"notValidBefore":{"description":"Certificate not valid before time.","type":"integer"},"notValidAfter":{"description":"Certificate not valid after time.","type":"integer"}}}]},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-oauth"]}},"additionalProperties":false},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-credentials"]}},"additionalProperties":false},{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["content-filtering"]},"filterCondition":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["simple"]},"eventProperty":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","description":"JSONPath to the field."},"source":{"type":"string","enum":["body"],"description":"Location of the property in the event."}},"required":["path","source"]},"operator":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","enum":["equal"]},"type":{"type":"string","enum":["string","integer","double","boolean"]}},"required":["name","type"]},"value":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["literal"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"description":"Literal comparison value."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["reference"]},"value":{"type":"string","enum":["USER_ID","CLIENT_ID"],"description":"Reference to a Kafka connection metadata property."}},"required":["type","value"],"additionalProperties":false}]}},"required":["type","eventProperty","operator","value"]}},"required":["id","type","filterCondition"]}],"discriminator":{"propertyName":"type"}}},"groupVisibility":{"description":"List of groups this virtual topic should be visible to in the catalog","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}}}}}}}},"304":{"description":"Data not changed."},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"406":{"description":"Not Acceptable. The requested media type is not supported."},"500":{"description":"Internal error."}}},"post":{"operationId":"createVirtualTopic","description":"Create a virtual topic.","requestBody":{"description":"Virtual topic data.","required":true,"content":{"application/json":{"schema":{"type":"object","required":["sourceTopicId","name","controls","alias","gatewayGroups","allowSubscriptions","hidden"],"additionalProperties":false,"properties":{"sourceTopicId":{"description":"Source topic that this virtual topic belongs to","type":"string"},"alias":{"description":"Unique, descriptive alias for this virtual topic","type":"string","minLength":1,"maxLength":200},"name":{"description":"Descriptive name for this virtual topic","type":"string","minLength":1,"maxLength":200},"description":{"description":"Longer description used to describe what this virtual topic is used for","type":"string","maxLength":1500},"gatewayGroups":{"description":"List of gateway groups this virtual topic should be published to","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}},"catalogs":{"description":"List of catalogs to which the virtual topic is published","type":"array","uniqueItems":true,"items":{"type":"object","minLength":1,"maxLength":200,"additionalProperties":false,"properties":{"id":{"description":"Unique catalog ID.","type":"string"},"state":{"description":"Indicates if this virtual topic is published, unpublished or archived","type":"string","enum":["published","unpublished","archived"]}},"required":["id"]}},"hidden":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this virtual topic is visible in the catalog","type":"boolean"},"allowSubscriptions":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this virtual topic is allowing new subscriptions","type":"boolean"},"controls":{"description":"Controls on this virtual topic.","type":"array","items":{"anyOf":[{"type":"object","required":["id","requests","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["approval"]},"requests":{"type":"array","items":{"type":"object","required":["id","owner","status","description","contact"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"owner":{"description":"Approval request owner.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of last update to approval request.","type":"integer"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"description":{"description":"Description of why the request was created.","type":"string","minLength":1,"maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string","minLength":1,"maxLength":250},"outcome":{"description":"Description of the outcome of this request.","type":"string","maxLength":250},"subscriptionId":{"description":"The id of the subscription associated with this request.","type":"string","deprecated":true,"maxLength":250},"applicationId":{"description":"The id of the application associated with this request.","type":"string","maxLength":250}}}}}},{"allOf":[{"type":"object","required":["id","redactions","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["redaction"]},"redactions":{"type":"array","items":{"anyOf":[{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceString"]},"replaceWith":{"description":"The value to replace with.","type":"string","maxLength":200}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceIntegral","replaceDouble"]},"replaceWith":{"description":"The value to replace with.","type":"number"}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["algorithm","type"],"properties":{"type":{"description":"Type of redaction.","enum":["hash"]},"algorithm":{"type":"string","description":"Algorithm to use for hashing the current value.","enum":["SHA-256","SHA-512"]}}}]}],"discriminator":{"propertyName":"type"}}}}}]},{"type":"object","required":["id","schema","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["schema-filtering"]},"schema":{"type":"object","required":["filtered"],"properties":{"filtered":{"description":"If true, any schema associated with the source topic will be used to filter records sent to applications.","type":"boolean"}}}}},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["quota"]}},"anyOf":[{"type":"object","required":["megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond","megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}}]},{"allOf":[{"oneOf":[{"type":"object","required":["trustPem"],"deprecated":true,"properties":{"trustPem":{"description":"Certificate Authority in PEM format.","type":"string"}}},{"anyOf":[{"type":"object","required":["acceptProfileCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptOrgCa"],"properties":{"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptProfileCa","acceptOrgCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"},"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}}]}]},{"type":"object","required":["type","id","subjectCommonName"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["mtls"]},"identificationType":{"description":"The type of identification users will use to distinguish between subscriptions. Defaults to MTLS when not provided.","deprecated":true,"type":"string","enum":["MTLS","SASL"]},"identificationSubjectFields":{"description":"Certificate subject fields to identify users by if using MTLS identificationType.","type":"array","items":{"type":"string","enum":["subjectCommonName","subjectOrganization","subjectCountry","subjectStateOrProvince","subjectLocality"]}},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200},"approvedCipherSuites":{"description":"Cipher suites that are approved for use.","type":"array","items":{"type":"string"}},"disapprovedCipherSuites":{"description":"Cipher suites that are not approved for use.","type":"array","items":{"type":"string"}},"notValidBefore":{"description":"Certificate not valid before time.","type":"integer"},"notValidAfter":{"description":"Certificate not valid after time.","type":"integer"}}}]},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-oauth"]}},"additionalProperties":false},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-credentials"]}},"additionalProperties":false},{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["content-filtering"]},"filterCondition":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["simple"]},"eventProperty":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","description":"JSONPath to the field."},"source":{"type":"string","enum":["body"],"description":"Location of the property in the event."}},"required":["path","source"]},"operator":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","enum":["equal"]},"type":{"type":"string","enum":["string","integer","double","boolean"]}},"required":["name","type"]},"value":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["literal"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"description":"Literal comparison value."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["reference"]},"value":{"type":"string","enum":["USER_ID","CLIENT_ID"],"description":"Reference to a Kafka connection metadata property."}},"required":["type","value"],"additionalProperties":false}]}},"required":["type","eventProperty","operator","value"]}},"required":["id","type","filterCondition"]}],"discriminator":{"propertyName":"type"}}},"groupVisibility":{"description":"List of groups this virtual topic should be visible to in the catalog","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}}}}}}},"responses":{"200":{"description":"The ID of the created virtual topic.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}}}}}},"400":{"description":"Invalid request, request data does not match schema or Controls specified not compatible with gateway group."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"426":{"description":"Limit reached, upgrade required to your service plan."},"500":{"description":"Internal error."}}}},"/virtualtopics/{virtualTopicId}":{"get":{"operationId":"readVirtualTopic","description":"Read a virtual topic. You must specify the header 'Accept: application/vnd.ibm.eem.v2+json'. If you omit the header or specify 'application/json', then the virtual topic is only returned if it can be represented with 11.7.0 or earlier controls.","parameters":[{"$ref":"#/components/parameters/virtualTopicId"}],"responses":{"200":{"description":"The data for the requested virtual topic.","content":{"application/json":{"schema":{"type":"object","required":["id","owner","organization","sourceTopicId","name","controls","alias","gatewayGroups","allowSubscriptions","hidden","groupVisibility"],"additionalProperties":false,"properties":{"id":{"description":"Unique Virtual Topic ID.","type":"string"},"owner":{"description":"Virtual Topic owner.","type":"string"},"organization":{"description":"Organization this Virtual Topic belongs to.","type":"string"},"sourceTopicId":{"description":"Source topic that this virtual topic belongs to","type":"string"},"alias":{"description":"Unique, descriptive alias for this virtual topic","type":"string","minLength":1,"maxLength":200},"name":{"description":"Descriptive name for this virtual topic","type":"string","minLength":1,"maxLength":200},"description":{"description":"Longer description used to describe what this virtual topic is used for","type":"string","maxLength":1500},"gatewayGroups":{"description":"List of gateway groups this virtual topic should be published to","type":"array","uniqueItems":true,"items":{"type":"string"}},"catalogs":{"description":"List of catalogs to which the virtual topic is published","type":"array","uniqueItems":true,"items":{"type":"object","minLength":1,"maxLength":200,"additionalProperties":false,"properties":{"id":{"description":"Unique catalog ID.","type":"string"},"state":{"description":"Indicates if this virtual topic is published, unpublished or archived","type":"string","enum":["published","unpublished","archived"]}},"required":["id"]}},"hidden":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this virtual topic is visible in the catalog","type":"boolean"},"allowSubscriptions":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this virtual topic is allowing new subscriptions","type":"boolean"},"controls":{"description":"Controls on this virtual topic.","type":"array","items":{"anyOf":[{"type":"object","required":["id","requests","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["approval"]},"requests":{"type":"array","items":{"type":"object","required":["id","owner","status","description","contact"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"owner":{"description":"Approval request owner.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of last update to approval request.","type":"integer"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"description":{"description":"Description of why the request was created.","type":"string","minLength":1,"maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string","minLength":1,"maxLength":250},"outcome":{"description":"Description of the outcome of this request.","type":"string","maxLength":250},"subscriptionId":{"description":"The id of the subscription associated with this request.","type":"string","deprecated":true,"maxLength":250},"applicationId":{"description":"The id of the application associated with this request.","type":"string","maxLength":250}}}}}},{"allOf":[{"type":"object","required":["id","redactions","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["redaction"]},"redactions":{"type":"array","items":{"anyOf":[{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceString"]},"replaceWith":{"description":"The value to replace with.","type":"string","maxLength":200}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceIntegral","replaceDouble"]},"replaceWith":{"description":"The value to replace with.","type":"number"}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["algorithm","type"],"properties":{"type":{"description":"Type of redaction.","enum":["hash"]},"algorithm":{"type":"string","description":"Algorithm to use for hashing the current value.","enum":["SHA-256","SHA-512"]}}}]}],"discriminator":{"propertyName":"type"}}}}}]},{"type":"object","required":["id","schema","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["schema-filtering"]},"schema":{"type":"object","required":["filtered"],"properties":{"filtered":{"description":"If true, any schema associated with the source topic will be used to filter records sent to applications.","type":"boolean"}}}}},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["quota"]}},"anyOf":[{"type":"object","required":["megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond","megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}}]},{"allOf":[{"oneOf":[{"type":"object","required":["trustPem"],"deprecated":true,"properties":{"trustPem":{"description":"Certificate Authority in PEM format.","type":"string"}}},{"anyOf":[{"type":"object","required":["acceptProfileCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptOrgCa"],"properties":{"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptProfileCa","acceptOrgCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"},"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}}]}]},{"type":"object","required":["type","id","subjectCommonName"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["mtls"]},"identificationType":{"description":"The type of identification users will use to distinguish between subscriptions. Defaults to MTLS when not provided.","deprecated":true,"type":"string","enum":["MTLS","SASL"]},"identificationSubjectFields":{"description":"Certificate subject fields to identify users by if using MTLS identificationType.","type":"array","items":{"type":"string","enum":["subjectCommonName","subjectOrganization","subjectCountry","subjectStateOrProvince","subjectLocality"]}},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200},"approvedCipherSuites":{"description":"Cipher suites that are approved for use.","type":"array","items":{"type":"string"}},"disapprovedCipherSuites":{"description":"Cipher suites that are not approved for use.","type":"array","items":{"type":"string"}},"notValidBefore":{"description":"Certificate not valid before time.","type":"integer"},"notValidAfter":{"description":"Certificate not valid after time.","type":"integer"}}}]},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-oauth"]}},"additionalProperties":false},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-credentials"]}},"additionalProperties":false},{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["content-filtering"]},"filterCondition":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["simple"]},"eventProperty":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","description":"JSONPath to the field."},"source":{"type":"string","enum":["body"],"description":"Location of the property in the event."}},"required":["path","source"]},"operator":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","enum":["equal"]},"type":{"type":"string","enum":["string","integer","double","boolean"]}},"required":["name","type"]},"value":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["literal"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"description":"Literal comparison value."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["reference"]},"value":{"type":"string","enum":["USER_ID","CLIENT_ID"],"description":"Reference to a Kafka connection metadata property."}},"required":["type","value"],"additionalProperties":false}]}},"required":["type","eventProperty","operator","value"]}},"required":["id","type","filterCondition"]}],"discriminator":{"propertyName":"type"}}},"groupVisibility":{"description":"List of groups this virtual topic should be visible to in the catalog","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}}}}}}},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This virtual topic does not exist."},"406":{"description":"Not Acceptable. The requested media type is not supported."},"500":{"description":"Internal error."}}},"put":{"operationId":"updateVirtualTopic","description":"Update a virtual topic.","parameters":[{"$ref":"#/components/parameters/virtualTopicId"}],"requestBody":{"description":"Virtual topic data.","required":true,"content":{"application/json":{"schema":{"type":"object","required":["sourceTopicId","name","controls","alias","gatewayGroups","allowSubscriptions","hidden"],"additionalProperties":false,"properties":{"sourceTopicId":{"description":"Source topic that this virtual topic belongs to","type":"string"},"alias":{"description":"Unique, descriptive alias for this virtual topic","type":"string","minLength":1,"maxLength":200},"name":{"description":"Descriptive name for this virtual topic","type":"string","minLength":1,"maxLength":200},"description":{"description":"Longer description used to describe what this virtual topic is used for","type":"string","maxLength":1500},"gatewayGroups":{"description":"List of gateway groups this virtual topic should be published to","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}},"catalogs":{"description":"List of catalogs to which the virtual topic is published","type":"array","uniqueItems":true,"items":{"type":"object","minLength":1,"maxLength":200,"additionalProperties":false,"properties":{"id":{"description":"Unique catalog ID.","type":"string"},"state":{"description":"Indicates if this virtual topic is published, unpublished or archived","type":"string","enum":["published","unpublished","archived"]}},"required":["id"]}},"hidden":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this virtual topic is visible in the catalog","type":"boolean"},"allowSubscriptions":{"deprecated":true,"description":"(Deprecated) Use catalogs['eem-catalog'].state instead. Indicates if this virtual topic is allowing new subscriptions","type":"boolean"},"controls":{"description":"Controls on this virtual topic.","type":"array","items":{"anyOf":[{"type":"object","required":["id","requests","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["approval"]},"requests":{"type":"array","items":{"type":"object","required":["id","owner","status","description","contact"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"owner":{"description":"Approval request owner.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of last update to approval request.","type":"integer"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"description":{"description":"Description of why the request was created.","type":"string","minLength":1,"maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string","minLength":1,"maxLength":250},"outcome":{"description":"Description of the outcome of this request.","type":"string","maxLength":250},"subscriptionId":{"description":"The id of the subscription associated with this request.","type":"string","deprecated":true,"maxLength":250},"applicationId":{"description":"The id of the application associated with this request.","type":"string","maxLength":250}}}}}},{"allOf":[{"type":"object","required":["id","redactions","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["redaction"]},"redactions":{"type":"array","items":{"anyOf":[{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceString"]},"replaceWith":{"description":"The value to replace with.","type":"string","maxLength":200}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceIntegral","replaceDouble"]},"replaceWith":{"description":"The value to replace with.","type":"number"}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["algorithm","type"],"properties":{"type":{"description":"Type of redaction.","enum":["hash"]},"algorithm":{"type":"string","description":"Algorithm to use for hashing the current value.","enum":["SHA-256","SHA-512"]}}}]}],"discriminator":{"propertyName":"type"}}}}}]},{"type":"object","required":["id","schema","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["schema-filtering"]},"schema":{"type":"object","required":["filtered"],"properties":{"filtered":{"description":"If true, any schema associated with the source topic will be used to filter records sent to applications.","type":"boolean"}}}}},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["quota"]}},"anyOf":[{"type":"object","required":["megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond","megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}}]},{"allOf":[{"oneOf":[{"type":"object","required":["trustPem"],"deprecated":true,"properties":{"trustPem":{"description":"Certificate Authority in PEM format.","type":"string"}}},{"anyOf":[{"type":"object","required":["acceptProfileCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptOrgCa"],"properties":{"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptProfileCa","acceptOrgCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"},"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}}]}]},{"type":"object","required":["type","id","subjectCommonName"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["mtls"]},"identificationType":{"description":"The type of identification users will use to distinguish between subscriptions. Defaults to MTLS when not provided.","deprecated":true,"type":"string","enum":["MTLS","SASL"]},"identificationSubjectFields":{"description":"Certificate subject fields to identify users by if using MTLS identificationType.","type":"array","items":{"type":"string","enum":["subjectCommonName","subjectOrganization","subjectCountry","subjectStateOrProvince","subjectLocality"]}},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200},"approvedCipherSuites":{"description":"Cipher suites that are approved for use.","type":"array","items":{"type":"string"}},"disapprovedCipherSuites":{"description":"Cipher suites that are not approved for use.","type":"array","items":{"type":"string"}},"notValidBefore":{"description":"Certificate not valid before time.","type":"integer"},"notValidAfter":{"description":"Certificate not valid after time.","type":"integer"}}}]},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-oauth"]}},"additionalProperties":false},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-credentials"]}},"additionalProperties":false},{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["content-filtering"]},"filterCondition":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["simple"]},"eventProperty":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","description":"JSONPath to the field."},"source":{"type":"string","enum":["body"],"description":"Location of the property in the event."}},"required":["path","source"]},"operator":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","enum":["equal"]},"type":{"type":"string","enum":["string","integer","double","boolean"]}},"required":["name","type"]},"value":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["literal"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"description":"Literal comparison value."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["reference"]},"value":{"type":"string","enum":["USER_ID","CLIENT_ID"],"description":"Reference to a Kafka connection metadata property."}},"required":["type","value"],"additionalProperties":false}]}},"required":["type","eventProperty","operator","value"]}},"required":["id","type","filterCondition"]}],"discriminator":{"propertyName":"type"}}},"groupVisibility":{"description":"List of groups this virtual topic should be visible to in the catalog","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}}}}}}},"responses":{"200":{"description":"Virtual topic successfully updated."},"400":{"description":"Invalid request, request data does not match schema or Controls specified not compatible with gateway group."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This virtual topic does not exist."},"500":{"description":"Internal error."}}},"delete":{"operationId":"deleteVirtualTopic","description":"Delete a virtual topic.<br><br> The virtual topic must be unpublished with no remaining subscriptions. Note - You must be the owner to delete a virtual topic. You can view all of the virtual topics that you own (including their ID) by using GET /virtualtopics\n","parameters":[{"$ref":"#/components/parameters/virtualTopicId"}],"responses":{"200":{"description":"Virtual topic successfully deleted."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This virtual topic does not exist."},"409":{"description":"Virtual topic could not be deleted due to a conflict."},"500":{"description":"Internal error."}}}},"/virtualtopics/{virtualTopicId}/apicasyncapi":{"get":{"description":"Generate an AsyncAPI document for a selected virtual topic with connections added for IBM API Connect.","operationId":"exportVirtualTopicAPICAsyncAPI","parameters":[{"$ref":"#/components/parameters/virtualTopicId"},{"in":"query","name":"version","required":false,"schema":{"type":"string","default":"2.1.0"},"description":"The version of AsyncAPI"}],"responses":{"200":{"description":"AsyncAPI successfully generated.","content":{"application/yaml":{"schema":{"type":"string"}}}},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"Virtual topic not found."},"422":{"description":"Cannot export virtual topic with approval control."},"500":{"description":"Internal error."}}}},"/virtualtopics/{virtualTopicId}/asyncapi":{"get":{"description":"Generate an AsyncAPI document for a selected virtual topic.","operationId":"exportVirtualTopicAsyncAPI","parameters":[{"$ref":"#/components/parameters/virtualTopicId"},{"in":"query","name":"version","required":false,"schema":{"type":"string","default":"2.1.0"},"description":"The version of AsyncAPI"}],"responses":{"200":{"description":"AsyncAPI successfully generated.","content":{"application/yaml":{"schema":{"type":"string"}}}},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"Virtual topic not found."},"500":{"description":"Internal error."}}}},"/virtualtopics/{virtualTopicId}/subscriptions/{applicationId}":{"delete":{"operationId":"deleteVirtualTopicApplicationSubscription","description":"Delete an application subscription to this virtual topic. You must be the source topic owner or collaborator for the source topic to be able to delete the subscription.","parameters":[{"$ref":"#/components/parameters/virtualTopicId"},{"$ref":"#/components/parameters/applicationId"}],"responses":{"200":{"description":"Application subscriptions deleted successfully."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This virtual topic or application does not exist."},"500":{"description":"Internal error."}}}},"/groupvisibility":{"post":{"operationId":"addGroupVisibility","description":"Add virtual topics to the provided group visibility.","requestBody":{"description":"Group visibility data.","required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["group","options"],"properties":{"group":{"description":"Group to associate these virtual topics with.","type":"string","minLength":1,"maxLength":200},"options":{"description":"List of virtual topics visible to this group.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}}}},{"type":"object","required":["group","virtualTopics"],"properties":{"group":{"description":"Group to associate these virtual topics with.","type":"string","minLength":1,"maxLength":200},"virtualTopics":{"description":"List of virtual topics visible to this group.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}}}}]}}}},"responses":{"200":{"description":"Virtual topics that have group visibility.","content":{"application/vnd.ibm.eem.v2+json":{"schema":{"type":"object","required":["group","virtualTopics"],"properties":{"group":{"description":"Group associated with these virtual topics.","type":"string"},"virtualTopics":{"description":"List of virtual topics visible to this group.","type":"array","uniqueItems":true,"items":{"type":"object","additionalProperties":false,"required":["id","alias","name","controls","sourceTopicName","topicName","capabilities"],"properties":{"id":{"description":"The ID for this virtual topic.","type":"string"},"alias":{"description":"The alias for this virtual topic.","type":"string"},"name":{"description":"The name for this virtual topic.","type":"string"},"controls":{"type":"array","uniqueItems":true,"items":{"description":"Controls enum.","type":"string","enum":["approval","redaction","schema-filtering","quota","mtls","sasl-oauth","sasl-credentials","content-filtering"]}},"sourceTopicName":{"description":"The source topic name for this virtual topic.","type":"string"},"topicName":{"description":"The Kafka topic for this virtual topic.","type":"string"},"capabilities":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"description":"Capabilities enum.","type":"string","enum":["consume","produce"]}},"hidden":{"description":"Indicates if this virtual topic is visible in the catalog.","type":"boolean"},"allowSubscriptions":{"description":"Indicates if this virtual topic is allowing new subscriptions.","type":"boolean"},"groupVisibility":{"description":"List of groups this virtual topic should be visible to in the catalog.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":0,"maxLength":200}}}}}},"additionalProperties":false}},"application/json":{"schema":{"type":"object","required":["group","options"],"properties":{"group":{"description":"Group associated with these virtual topics.","type":"string"},"options":{"description":"List of virtual topics visible to this group.","type":"array","uniqueItems":true,"items":{"type":"object","additionalProperties":false,"required":["id","alias","name","controls","eventSourceName","topicName","capabilities"],"properties":{"id":{"description":"The ID for this virtual topic.","type":"string"},"alias":{"description":"The alias for this virtual topic.","type":"string"},"name":{"description":"The name for this virtual topic.","type":"string"},"controls":{"type":"array","uniqueItems":true,"items":{"description":"Controls enum.","type":"string","enum":["approval","redaction","schema-filtering","quota","mtls","sasl-oauth","sasl-credentials","content-filtering"]}},"eventSourceName":{"description":"The source topic name for this virtual topic.","type":"string"},"topicName":{"description":"The Kafka topic for this virtual topic.","type":"string"},"capabilities":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"description":"Capabilities enum.","type":"string","enum":["consume","produce"]}},"hidden":{"description":"Indicates if this virtual topic is visible in the catalog.","type":"boolean"},"allowSubscriptions":{"description":"Indicates if this virtual topic is allowing new subscriptions.","type":"boolean"},"groupVisibility":{"description":"List of groups this virtual topic should be visible to in the catalog.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":0,"maxLength":200}}}}}},"additionalProperties":false}}}},"400":{"description":"Invalid request, request data does not match the schema or provided virtual topic ID does not exist."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}}},"/eventendpoints":{"get":{"operationId":"readAllEventEndpoints","description":"List all event endpoints in an organization. To view all virtual topics with 11.7.1 or later controls in an event endpoint, you must specify the header 'Accept: application/vnd.ibm.eem.v2+json'. If you omit the header or specify 'application/json', then the response includes only virtual topics that can be represented with 11.7.0 or earlier controls.","parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/maxPageSize"},{"$ref":"#/components/parameters/filterBy"}],"responses":{"200":{"description":"Event endpoints successfully listed.","headers":{"ei-pagination-total":{"$ref":"#/components/headers/ei-pagination-total"},"etag":{"$ref":"#/components/headers/etag"}},"content":{"application/vnd.ibm.eem.v3+json":{"schema":{"type":"array","items":{"type":"object","required":["id","owner","organization","clusterId","type","encoding","name","contact","capabilities","virtualTopics","collaborators"],"additionalProperties":false,"properties":{"id":{"description":"Unique ID of related source topic.","type":"string"},"owner":{"description":"Owner of the related source topic.","type":"string"},"organization":{"description":"Organization the related source topic belongs to.","type":"string"},"clusterId":{"description":"ID for the cluster that contains the connection details for this source topic.","type":"string","minLength":1,"maxLength":50},"type":{"description":"Type of source topic.","type":"string","enum":["kafka"]},"encoding":{"description":"The encoding of the data on this source topic.","type":"string","enum":["unknown","text/plain","application/octet-stream","application/json","avro/binary","avro/json"]},"name":{"description":"Source topic name.","type":"string","minLength":1,"maxLength":200},"contact":{"description":"Who to contact for more information about this source topic.","type":"string","minLength":1,"maxLength":200},"description":{"description":"A description for this source topic.","type":"string","maxLength":1500},"topic":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"description":"Actual topic name in the cluster.","type":"string","minLength":1,"maxLength":200},"partitions":{"description":"The number of partitions for this topic.","type":"number"},"replicas":{"description":"The number of replicas for this topic.","type":"number"},"uuid":{"description":"The UUID of the topic.","type":"string"}}},"schema":{"type":"object","properties":{"type":{"description":"Type of schema from the list of valid types.","type":"string","enum":["avro","json","unknown"]},"content":{"description":"Contents of the schema.","type":"string","maxLength":1048576},"description":{"description":"Description of the data available on the source topic.","type":"string","maxLength":1500}},"additionalProperties":false},"tags":{"description":"List of tags associated with this source topic.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":50}},"sampleMessages":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"description":"Capabilities enumeration.","type":"string","enum":["consume","produce"]}},"virtualTopics":{"type":"array","items":{"type":"object","required":["id","owner","organization","sourceTopicId","name","controls","alias","gatewayGroups","allowSubscriptions","hidden","gatewaysPublishedTo"],"additionalProperties":false,"properties":{"id":{"description":"Unique virtual topic ID.","type":"string"},"owner":{"description":"Virtual topic owner.","type":"string"},"organization":{"description":"Organization this virtual topic belongs to.","type":"string"},"sourceTopicId":{"description":"Source topic that this virtual topic belongs to.","type":"string"},"alias":{"description":"Unique, descriptive alias for this virtual topic.","type":"string","minLength":1,"maxLength":200},"name":{"description":"Descriptive name for this virtual topic.","type":"string","minLength":1,"maxLength":200},"description":{"description":"Longer description used to describe what this virtual topic is used for.","type":"string","maxLength":1500},"gatewayGroups":{"description":"List of gateway groups this virtual topic should be published to.","type":"array","uniqueItems":true,"items":{"type":"string"}},"hidden":{"description":"Indicates if this virtual topic is visible in the catalog.","type":"boolean"},"allowSubscriptions":{"description":"Indicates if this virtual topic is allowing new subscriptions.","type":"boolean"},"controls":{"description":"Controls on this virtual topic.","type":"array","items":{"anyOf":[{"type":"object","required":["id","requests","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["approval"]},"requests":{"type":"array","items":{"type":"object","required":["id","owner","status","description","contact"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"owner":{"description":"Approval request owner.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of last update to approval request.","type":"integer"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"description":{"description":"Description of why the request was created.","type":"string","minLength":1,"maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string","minLength":1,"maxLength":250},"outcome":{"description":"Description of the outcome of this request.","type":"string","maxLength":250},"subscriptionId":{"description":"The id of the subscription associated with this request.","type":"string","deprecated":true,"maxLength":250},"applicationId":{"description":"The id of the application associated with this request.","type":"string","maxLength":250}}}}}},{"allOf":[{"type":"object","required":["id","redactions","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["redaction"]},"redactions":{"type":"array","items":{"anyOf":[{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceString"]},"replaceWith":{"description":"The value to replace with.","type":"string","maxLength":200}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceIntegral","replaceDouble"]},"replaceWith":{"description":"The value to replace with.","type":"number"}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["algorithm","type"],"properties":{"type":{"description":"Type of redaction.","enum":["hash"]},"algorithm":{"type":"string","description":"Algorithm to use for hashing the current value.","enum":["SHA-256","SHA-512"]}}}]}],"discriminator":{"propertyName":"type"}}}}}]},{"type":"object","required":["id","schema","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["schema-filtering"]},"schema":{"type":"object","required":["filtered"],"properties":{"filtered":{"description":"If true, any schema associated with the source topic will be used to filter records sent to applications.","type":"boolean"}}}}},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["quota"]}},"anyOf":[{"type":"object","required":["megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond","megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}}]},{"allOf":[{"oneOf":[{"type":"object","required":["trustPem"],"deprecated":true,"properties":{"trustPem":{"description":"Certificate Authority in PEM format.","type":"string"}}},{"anyOf":[{"type":"object","required":["acceptProfileCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptOrgCa"],"properties":{"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptProfileCa","acceptOrgCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"},"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}}]}]},{"type":"object","required":["type","id","subjectCommonName"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["mtls"]},"identificationType":{"description":"The type of identification users will use to distinguish between subscriptions. Defaults to MTLS when not provided.","deprecated":true,"type":"string","enum":["MTLS","SASL"]},"identificationSubjectFields":{"description":"Certificate subject fields to identify users by if using MTLS identificationType.","type":"array","items":{"type":"string","enum":["subjectCommonName","subjectOrganization","subjectCountry","subjectStateOrProvince","subjectLocality"]}},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200},"approvedCipherSuites":{"description":"Cipher suites that are approved for use.","type":"array","items":{"type":"string"}},"disapprovedCipherSuites":{"description":"Cipher suites that are not approved for use.","type":"array","items":{"type":"string"}},"notValidBefore":{"description":"Certificate not valid before time.","type":"integer"},"notValidAfter":{"description":"Certificate not valid after time.","type":"integer"}}}]},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-oauth"]}},"additionalProperties":false},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-credentials"]}},"additionalProperties":false},{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["content-filtering"]},"filterCondition":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["simple"]},"eventProperty":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","description":"JSONPath to the field."},"source":{"type":"string","enum":["body"],"description":"Location of the property in the event."}},"required":["path","source"]},"operator":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","enum":["equal"]},"type":{"type":"string","enum":["string","integer","double","boolean"]}},"required":["name","type"]},"value":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["literal"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"description":"Literal comparison value."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["reference"]},"value":{"type":"string","enum":["USER_ID","CLIENT_ID"],"description":"Reference to a Kafka connection metadata property."}},"required":["type","value"],"additionalProperties":false}]}},"required":["type","eventProperty","operator","value"]}},"required":["id","type","filterCondition"]}],"discriminator":{"propertyName":"type"}}},"gatewaysPublishedTo":{"description":"List of gateways that this virtual topic has been published to.","type":"array","items":{"type":"object","required":["id","owner","organization","gatewayId","group","organizations","servedOrganizations","endpoints","lastContact"],"additionalProperties":false,"properties":{"id":{"description":"Unique event gateway ID.","type":"string","minLength":1,"maxLength":200},"owner":{"description":"Owner of the event gateway.","type":"string","minLength":1,"maxLength":100},"organization":{"description":"Organization this event gateway belongs to.","type":"string"},"gatewayId":{"description":"Unique event gateway ID within this group.","type":"string","minLength":1,"maxLength":100},"group":{"description":"Event gateway group name.","type":"string","minLength":1,"maxLength":100},"organizations":{"description":"Organizations this event gateway serves.","type":"array","deprecated":true,"items":{"type":"string","minLength":1,"maxLength":100}},"servedOrganizations":{"description":"Organizations this event gateway serves.","type":"array","items":{"type":"string","minLength":1,"maxLength":100}},"contact":{"description":"The contact information for this event gateway.","type":"string","minLength":1,"maxLength":200},"lastContact":{"description":"Epoch time in ms of the last contact from this gateway.","type":"integer","minimum":0},"endpoints":{"description":"Endpoints that the gateway is listening on.","type":"array","items":{"type":"object","required":["host","port"],"properties":{"host":{"description":"Kafka server host name.","type":"string"},"port":{"description":"Kafka server port.","type":"integer"},"ssl":{"description":"Connect over SSL.","type":"boolean","default":false},"certificates":{"description":"Certificates or CAs to trust, required to connect to the server via SSL.","type":"array","uniqueItems":true,"items":{"type":"object","description":"X509 certificate presented by an endpoint","required":["pem"],"properties":{"pem":{"description":"Certificate in PEM format","type":"string"},"subject":{"description":"Subject name of the certificate","type":"string"},"sans":{"description":"A list of subject alternative names of the certificate","type":"array","items":{"type":"string"}},"issuer":{"description":"Issuer of the certificate","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}}}}},"version":{"type":"string","description":"Version of the gateway.","minLength":1,"maxLength":20},"productVersion":{"type":"string","description":"EEM product version.","minLength":1,"maxLength":100},"features":{"type":"array","description":"Feature set in use by gateway.","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":20}},"deploymentMode":{"type":"string","description":"Type of gateway deployment."},"capabilities":{"type":"object","additionalProperties":true,"description":"Description of what capabilities the gateway has."}}}}}}},"collaborators":{"description":"Collaborators for this endpoint.","type":"object","required":["groups","contacts"],"additionalProperties":false,"properties":{"groups":{"description":"List of groups that collaborate on this event endpoint.","type":"array","items":{"type":"string"}},"contacts":{"description":"List of contacts that collaborate on this event endpoint.","type":"array","items":{"type":"string"}}}}}}}},"application/vnd.ibm.eem.v2+json":{"schema":{"type":"array","items":{"type":"object","required":["id","owner","organization","clusterId","type","encoding","name","contact","capabilities","options","collaborators"],"additionalProperties":false,"properties":{"id":{"description":"Unique ID of related source topic.","type":"string"},"owner":{"description":"Owner of the related source topic.","type":"string"},"organization":{"description":"Organization the related source topic belongs to.","type":"string"},"clusterId":{"description":"ID for the cluster that contains the connection details for this source topic.","type":"string","minLength":1,"maxLength":50},"type":{"description":"Type of source topic.","type":"string","enum":["kafka"]},"encoding":{"description":"The encoding of the data on this source topic.","type":"string","enum":["unknown","text/plain","application/octet-stream","application/json","avro/binary","avro/json"]},"name":{"description":"Source topic name.","type":"string","minLength":1,"maxLength":200},"contact":{"description":"Who to contact for more information about this source topic.","type":"string","minLength":1,"maxLength":200},"description":{"description":"A description for this source topic.","type":"string","maxLength":1500},"topic":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"description":"Actual topic name in the cluster.","type":"string","minLength":1,"maxLength":200},"partitions":{"description":"The number of partitions for this topic.","type":"number"},"replicas":{"description":"The number of replicas for this topic.","type":"number"},"uuid":{"description":"The UUID of the topic.","type":"string"}}},"schema":{"type":"object","properties":{"type":{"description":"Type of schema from the list of valid types.","type":"string","enum":["avro","json","unknown"]},"content":{"description":"Contents of the schema.","type":"string","maxLength":1048576},"description":{"description":"Description of the data available on the source topic.","type":"string","maxLength":1500}},"additionalProperties":false},"tags":{"description":"List of tags associated with this source topic.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":50}},"sampleMessages":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"description":"Capabilities enumeration.","type":"string","enum":["consume","produce"]}},"options":{"type":"array","items":{"type":"object","required":["id","owner","organization","eventSourceId","name","controls","alias","gatewayGroups","allowSubscriptions","hidden","gatewaysPublishedTo"],"additionalProperties":false,"properties":{"id":{"description":"Unique virtual topic ID.","type":"string"},"owner":{"description":"Virtual topic owner.","type":"string"},"organization":{"description":"Organization this virtual topic belongs to.","type":"string"},"eventSourceId":{"description":"Source topic that this virtual topic belongs to.","type":"string"},"alias":{"description":"Unique, descriptive alias for this virtual topic.","type":"string","minLength":1,"maxLength":200},"name":{"description":"Descriptive name for this virtual topic.","type":"string","minLength":1,"maxLength":200},"description":{"description":"Longer description used to describe what this virtual topic is used for.","type":"string","maxLength":1500},"gatewayGroups":{"description":"List of gateway groups this virtual topic should be published to.","type":"array","uniqueItems":true,"items":{"type":"string"}},"hidden":{"description":"Indicates if this virtual topic is visible in the catalog.","type":"boolean"},"allowSubscriptions":{"description":"Indicates if this virtual topic is allowing new subscriptions.","type":"boolean"},"controls":{"description":"Controls on this virtual topic.","type":"array","items":{"anyOf":[{"type":"object","required":["id","requests","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["approval"]},"requests":{"type":"array","items":{"type":"object","required":["id","owner","status","description","contact"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"owner":{"description":"Approval request owner.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of last update to approval request.","type":"integer"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"description":{"description":"Description of why the request was created.","type":"string","minLength":1,"maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string","minLength":1,"maxLength":250},"outcome":{"description":"Description of the outcome of this request.","type":"string","maxLength":250},"subscriptionId":{"description":"The id of the subscription associated with this request.","type":"string","deprecated":true,"maxLength":250},"applicationId":{"description":"The id of the application associated with this request.","type":"string","maxLength":250}}}}}},{"allOf":[{"type":"object","required":["id","redactions","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["redaction"]},"redactions":{"type":"array","items":{"anyOf":[{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceString"]},"replaceWith":{"description":"The value to replace with.","type":"string","maxLength":200}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceIntegral","replaceDouble"]},"replaceWith":{"description":"The value to replace with.","type":"number"}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["algorithm","type"],"properties":{"type":{"description":"Type of redaction.","enum":["hash"]},"algorithm":{"type":"string","description":"Algorithm to use for hashing the current value.","enum":["SHA-256","SHA-512"]}}}]}],"discriminator":{"propertyName":"type"}}}}}]},{"type":"object","required":["id","schema","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["schema-filtering"]},"schema":{"type":"object","required":["filtered"],"properties":{"filtered":{"description":"If true, any schema associated with the source topic will be used to filter records sent to applications.","type":"boolean"}}}}},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["quota"]}},"anyOf":[{"type":"object","required":["megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond","megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}}]},{"allOf":[{"oneOf":[{"type":"object","required":["trustPem"],"deprecated":true,"properties":{"trustPem":{"description":"Certificate Authority in PEM format.","type":"string"}}},{"anyOf":[{"type":"object","required":["acceptProfileCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptOrgCa"],"properties":{"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptProfileCa","acceptOrgCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"},"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}}]}]},{"type":"object","required":["type","id","subjectCommonName"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["mtls"]},"identificationType":{"description":"The type of identification users will use to distinguish between subscriptions. Defaults to MTLS when not provided.","deprecated":true,"type":"string","enum":["MTLS","SASL"]},"identificationSubjectFields":{"description":"Certificate subject fields to identify users by if using MTLS identificationType.","type":"array","items":{"type":"string","enum":["subjectCommonName","subjectOrganization","subjectCountry","subjectStateOrProvince","subjectLocality"]}},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200},"approvedCipherSuites":{"description":"Cipher suites that are approved for use.","type":"array","items":{"type":"string"}},"disapprovedCipherSuites":{"description":"Cipher suites that are not approved for use.","type":"array","items":{"type":"string"}},"notValidBefore":{"description":"Certificate not valid before time.","type":"integer"},"notValidAfter":{"description":"Certificate not valid after time.","type":"integer"}}}]},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-oauth"]}},"additionalProperties":false},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-credentials"]}},"additionalProperties":false},{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["content-filtering"]},"filterCondition":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["simple"]},"eventProperty":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","description":"JSONPath to the field."},"source":{"type":"string","enum":["body"],"description":"Location of the property in the event."}},"required":["path","source"]},"operator":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","enum":["equal"]},"type":{"type":"string","enum":["string","integer","double","boolean"]}},"required":["name","type"]},"value":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["literal"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"description":"Literal comparison value."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["reference"]},"value":{"type":"string","enum":["USER_ID","CLIENT_ID"],"description":"Reference to a Kafka connection metadata property."}},"required":["type","value"],"additionalProperties":false}]}},"required":["type","eventProperty","operator","value"]}},"required":["id","type","filterCondition"]}],"discriminator":{"propertyName":"type"}}},"gatewaysPublishedTo":{"description":"List of gateways that this virtual topic has been published to.","type":"array","items":{"type":"object","required":["id","owner","organization","gatewayId","group","organizations","servedOrganizations","endpoints","lastContact"],"additionalProperties":false,"properties":{"id":{"description":"Unique event gateway ID.","type":"string","minLength":1,"maxLength":200},"owner":{"description":"Owner of the event gateway.","type":"string","minLength":1,"maxLength":100},"organization":{"description":"Organization this event gateway belongs to.","type":"string"},"gatewayId":{"description":"Unique event gateway ID within this group.","type":"string","minLength":1,"maxLength":100},"group":{"description":"Event gateway group name.","type":"string","minLength":1,"maxLength":100},"organizations":{"description":"Organizations this event gateway serves.","type":"array","deprecated":true,"items":{"type":"string","minLength":1,"maxLength":100}},"servedOrganizations":{"description":"Organizations this event gateway serves.","type":"array","items":{"type":"string","minLength":1,"maxLength":100}},"contact":{"description":"The contact information for this event gateway.","type":"string","minLength":1,"maxLength":200},"lastContact":{"description":"Epoch time in ms of the last contact from this gateway.","type":"integer","minimum":0},"endpoints":{"description":"Endpoints that the gateway is listening on.","type":"array","items":{"type":"object","required":["host","port"],"properties":{"host":{"description":"Kafka server host name.","type":"string"},"port":{"description":"Kafka server port.","type":"integer"},"ssl":{"description":"Connect over SSL.","type":"boolean","default":false},"certificates":{"description":"Certificates or CAs to trust, required to connect to the server via SSL.","type":"array","uniqueItems":true,"items":{"type":"object","description":"X509 certificate presented by an endpoint","required":["pem"],"properties":{"pem":{"description":"Certificate in PEM format","type":"string"},"subject":{"description":"Subject name of the certificate","type":"string"},"sans":{"description":"A list of subject alternative names of the certificate","type":"array","items":{"type":"string"}},"issuer":{"description":"Issuer of the certificate","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}}}}},"version":{"type":"string","description":"Version of the gateway.","minLength":1,"maxLength":20},"productVersion":{"type":"string","description":"EEM product version.","minLength":1,"maxLength":100},"features":{"type":"array","description":"Feature set in use by gateway.","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":20}},"deploymentMode":{"type":"string","description":"Type of gateway deployment."},"capabilities":{"type":"object","additionalProperties":true,"description":"Description of what capabilities the gateway has."}}}}}}},"collaborators":{"description":"Collaborators for this endpoint.","type":"object","required":["groups","contacts"],"additionalProperties":false,"properties":{"groups":{"description":"List of groups that collaborate on this event endpoint.","type":"array","items":{"type":"string"}},"contacts":{"description":"List of contacts that collaborate on this event endpoint.","type":"array","items":{"type":"string"}}}}}}}},"application/json":{"schema":{"type":"array","items":{"type":"object","required":["id","owner","organization","clusterId","type","encoding","name","contact","capabilities","options","collaborators"],"additionalProperties":false,"properties":{"id":{"description":"Unique ID of the related source topic.","type":"string"},"owner":{"description":"Owner of the related source topic.","type":"string"},"organization":{"description":"Organization the related source topic belongs to.","type":"string"},"clusterId":{"description":"ID for the cluster that contains the connection details for this source topic.","type":"string","minLength":1,"maxLength":50},"type":{"description":"Type of source topic.","type":"string","enum":["kafka"]},"encoding":{"description":"The encoding of the data on this source topic.","type":"string","enum":["unknown","text/plain","application/octet-stream","application/json","avro/binary","avro/json"]},"name":{"description":"Source topic name.","type":"string","minLength":1,"maxLength":200},"contact":{"description":"Who to contact for more information about this source topic.","type":"string","minLength":1,"maxLength":200},"description":{"description":"A description for this source topic.","type":"string","maxLength":1500},"topic":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"description":"Actual topic name in the cluster.","type":"string","minLength":1,"maxLength":200},"partitions":{"description":"The number of partitions for this topic.","type":"number"},"replicas":{"description":"The number of replicas for this topic.","type":"number"},"uuid":{"description":"The UUID of the topic.","type":"string"}}},"schema":{"type":"object","properties":{"type":{"description":"Type of schema from the list of valid types.","type":"string","enum":["avro","json","unknown"]},"content":{"description":"Contents of the schema.","type":"string","maxLength":1048576},"description":{"description":"Description of the data available on the source topic.","type":"string","maxLength":1500}},"additionalProperties":false},"tags":{"description":"List of tags associated with this source topic.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":50}},"sampleMessages":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"description":"Capabilities enumeration.","type":"string","enum":["consume","produce"]}},"options":{"type":"array","items":{"type":"object","required":["id","owner","organization","eventSourceId","name","controls","alias","gatewayGroups","allowSubscriptions","hidden","gatewaysPublishedTo"],"additionalProperties":false,"properties":{"id":{"description":"Unique virtual topic ID.","type":"string"},"owner":{"description":"Virtual topic owner.","type":"string"},"organization":{"description":"Organization this virtual topic belongs to.","type":"string"},"eventSourceId":{"description":"Source topic that this virtual topic belongs to.","type":"string"},"alias":{"description":"Unique, descriptive alias for this virtual topic.","type":"string","minLength":1,"maxLength":200},"name":{"description":"Descriptive name for this virtual topic.","type":"string","minLength":1,"maxLength":200},"description":{"description":"Longer description used to describe what this virtual topic is used for.","type":"string","maxLength":1500},"gatewayGroups":{"description":"List of gateway groups this virtual topic should be published to.","type":"array","uniqueItems":true,"items":{"type":"string"}},"hidden":{"description":"Indicates if this virtual topic is visible in the catalog.","type":"boolean"},"allowSubscriptions":{"description":"Indicates if this virtual topic is allowing new subscriptions.","type":"boolean"},"controls":{"description":"Controls on this virtual topic.","type":"array","items":{"anyOf":[{"type":"object","required":["id","requests","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["approval"]},"requests":{"type":"array","items":{"type":"object","required":["id","owner","status","description","contact"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"owner":{"description":"Approval request owner.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of last update to approval request.","type":"integer"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"description":{"description":"Description of why the request was created.","type":"string","minLength":1,"maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string","minLength":1,"maxLength":250},"outcome":{"description":"Description of the outcome of this request.","type":"string","maxLength":250},"subscriptionId":{"description":"The id of the subscription associated with this request.","type":"string","deprecated":true,"maxLength":250},"applicationId":{"description":"The id of the application associated with this request.","type":"string","maxLength":250}}}}}},{"allOf":[{"type":"object","required":["id","redactions","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["redaction"]},"redactions":{"type":"array","items":{"anyOf":[{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceString"]},"replaceWith":{"description":"The value to replace with.","type":"string","maxLength":200}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceIntegral","replaceDouble"]},"replaceWith":{"description":"The value to replace with.","type":"number"}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["algorithm","type"],"properties":{"type":{"description":"Type of redaction.","enum":["hash"]},"algorithm":{"type":"string","description":"Algorithm to use for hashing the current value.","enum":["SHA-256","SHA-512"]}}}]}],"discriminator":{"propertyName":"type"}}}}}]},{"type":"object","required":["id","schema","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["schema-filtering"]},"schema":{"type":"object","required":["filtered"],"properties":{"filtered":{"description":"If true, any schema associated with the source topic will be used to filter records sent to applications.","type":"boolean"}}}}},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["quota"]}},"anyOf":[{"type":"object","required":["megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond","megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}}]},{"allOf":[{"oneOf":[{"type":"object","required":["trustPem"],"deprecated":true,"properties":{"trustPem":{"description":"Certificate Authority in PEM format.","type":"string"}}},{"anyOf":[{"type":"object","required":["acceptProfileCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptOrgCa"],"properties":{"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptProfileCa","acceptOrgCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"},"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}}]}]},{"type":"object","required":["type","id","subjectCommonName"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["mtls"]},"identificationType":{"description":"The type of identification users will use to distinguish between subscriptions. Defaults to MTLS when not provided.","deprecated":true,"type":"string","enum":["MTLS","SASL"]},"identificationSubjectFields":{"description":"Certificate subject fields to identify users by if using MTLS identificationType.","type":"array","items":{"type":"string","enum":["subjectCommonName","subjectOrganization","subjectCountry","subjectStateOrProvince","subjectLocality"]}},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200},"approvedCipherSuites":{"description":"Cipher suites that are approved for use.","type":"array","items":{"type":"string"}},"disapprovedCipherSuites":{"description":"Cipher suites that are not approved for use.","type":"array","items":{"type":"string"}},"notValidBefore":{"description":"Certificate not valid before time.","type":"integer"},"notValidAfter":{"description":"Certificate not valid after time.","type":"integer"}}}]},{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["content-filtering"]},"filterCondition":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["simple"]},"eventProperty":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","description":"JSONPath to the field."},"source":{"type":"string","enum":["body"],"description":"Location of the property in the event."}},"required":["path","source"]},"operator":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","enum":["equal"]},"type":{"type":"string","enum":["string","integer","double","boolean"]}},"required":["name","type"]},"value":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["literal"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"description":"Literal comparison value."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["reference"]},"value":{"type":"string","enum":["USER_ID","CLIENT_ID"],"description":"Reference to a Kafka connection metadata property."}},"required":["type","value"],"additionalProperties":false}]}},"required":["type","eventProperty","operator","value"]}},"required":["id","type","filterCondition"]}],"discriminator":{"propertyName":"type"}}},"gatewaysPublishedTo":{"description":"List of gateways that this virtual topic has been published to.","type":"array","items":{"type":"object","required":["id","owner","organization","gatewayId","group","organizations","servedOrganizations","endpoints","lastContact"],"additionalProperties":false,"properties":{"id":{"description":"Unique event gateway ID.","type":"string","minLength":1,"maxLength":200},"owner":{"description":"Owner of the event gateway.","type":"string","minLength":1,"maxLength":100},"organization":{"description":"Organization this event gateway belongs to.","type":"string"},"gatewayId":{"description":"Unique event gateway ID within this group.","type":"string","minLength":1,"maxLength":100},"group":{"description":"Event gateway group name.","type":"string","minLength":1,"maxLength":100},"organizations":{"description":"Organizations this event gateway serves.","type":"array","deprecated":true,"items":{"type":"string","minLength":1,"maxLength":100}},"servedOrganizations":{"description":"Organizations this event gateway serves.","type":"array","items":{"type":"string","minLength":1,"maxLength":100}},"contact":{"description":"The contact information for this event gateway.","type":"string","minLength":1,"maxLength":200},"lastContact":{"description":"Epoch time in ms of the last contact from this gateway.","type":"integer","minimum":0},"endpoints":{"description":"Endpoints that the gateway is listening on.","type":"array","items":{"type":"object","required":["host","port"],"properties":{"host":{"description":"Kafka server host name.","type":"string"},"port":{"description":"Kafka server port.","type":"integer"},"ssl":{"description":"Connect over SSL.","type":"boolean","default":false},"certificates":{"description":"Certificates or CAs to trust, required to connect to the server via SSL.","type":"array","uniqueItems":true,"items":{"type":"object","description":"X509 certificate presented by an endpoint","required":["pem"],"properties":{"pem":{"description":"Certificate in PEM format","type":"string"},"subject":{"description":"Subject name of the certificate","type":"string"},"sans":{"description":"A list of subject alternative names of the certificate","type":"array","items":{"type":"string"}},"issuer":{"description":"Issuer of the certificate","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}}}}},"version":{"type":"string","description":"Version of the gateway.","minLength":1,"maxLength":20},"productVersion":{"type":"string","description":"EEM product version.","minLength":1,"maxLength":100},"features":{"type":"array","description":"Feature set in use by gateway.","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":20}},"deploymentMode":{"type":"string","description":"Type of gateway deployment."},"capabilities":{"type":"object","additionalProperties":true,"description":"Description of what capabilities the gateway has."}}}}}}},"collaborators":{"description":"Collaborators for this endpoint.","type":"object","required":["groups","contacts"],"additionalProperties":false,"properties":{"groups":{"description":"List of groups that collaborate on this event endpoint.","type":"array","items":{"type":"string"}},"contacts":{"description":"List of contacts that collaborate on this event endpoint.","type":"array","items":{"type":"string"}}}}}}}}}},"304":{"description":"Data not changed."},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"406":{"description":"Not Acceptable. The requested media type is not supported."},"500":{"description":"Internal error."}}}},"/eventendpoints/{sourceTopicId}":{"get":{"operationId":"readEventEndpoint","description":"Read an event endpoint. To view all virtual topics with 11.7.1 or later controls in an event endpoint, you must specify the header 'Accept: application/vnd.ibm.eem.v2+json'. If you omit the header or specify 'application/json', then the response includes only virtual topics that can be represented with 11.7.0 or earlier controls.","parameters":[{"$ref":"#/components/parameters/sourceTopicId"}],"responses":{"200":{"description":"Event endpoint successfully retrieved.","content":{"application/vnd.ibm.eem.v3+json":{"schema":{"type":"object","required":["id","owner","organization","clusterId","type","encoding","name","contact","capabilities","virtualTopics","collaborators"],"additionalProperties":false,"properties":{"id":{"description":"Unique ID of related source topic.","type":"string"},"owner":{"description":"Owner of the related source topic.","type":"string"},"organization":{"description":"Organization the related source topic belongs to.","type":"string"},"clusterId":{"description":"ID for the cluster that contains the connection details for this source topic.","type":"string","minLength":1,"maxLength":50},"type":{"description":"Type of source topic.","type":"string","enum":["kafka"]},"encoding":{"description":"The encoding of the data on this source topic.","type":"string","enum":["unknown","text/plain","application/octet-stream","application/json","avro/binary","avro/json"]},"name":{"description":"Source topic name.","type":"string","minLength":1,"maxLength":200},"contact":{"description":"Who to contact for more information about this source topic.","type":"string","minLength":1,"maxLength":200},"description":{"description":"A description for this source topic.","type":"string","maxLength":1500},"topic":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"description":"Actual topic name in the cluster.","type":"string","minLength":1,"maxLength":200},"partitions":{"description":"The number of partitions for this topic.","type":"number"},"replicas":{"description":"The number of replicas for this topic.","type":"number"},"uuid":{"description":"The UUID of the topic.","type":"string"}}},"schema":{"type":"object","properties":{"type":{"description":"Type of schema from the list of valid types.","type":"string","enum":["avro","json","unknown"]},"content":{"description":"Contents of the schema.","type":"string","maxLength":1048576},"description":{"description":"Description of the data available on the source topic.","type":"string","maxLength":1500}},"additionalProperties":false},"tags":{"description":"List of tags associated with this source topic.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":50}},"sampleMessages":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"description":"Capabilities enumeration.","type":"string","enum":["consume","produce"]}},"virtualTopics":{"type":"array","items":{"type":"object","required":["id","owner","organization","sourceTopicId","name","controls","alias","gatewayGroups","allowSubscriptions","hidden","gatewaysPublishedTo"],"additionalProperties":false,"properties":{"id":{"description":"Unique virtual topic ID.","type":"string"},"owner":{"description":"Virtual topic owner.","type":"string"},"organization":{"description":"Organization this virtual topic belongs to.","type":"string"},"sourceTopicId":{"description":"Source topic that this virtual topic belongs to.","type":"string"},"alias":{"description":"Unique, descriptive alias for this virtual topic.","type":"string","minLength":1,"maxLength":200},"name":{"description":"Descriptive name for this virtual topic.","type":"string","minLength":1,"maxLength":200},"description":{"description":"Longer description used to describe what this virtual topic is used for.","type":"string","maxLength":1500},"gatewayGroups":{"description":"List of gateway groups this virtual topic should be published to.","type":"array","uniqueItems":true,"items":{"type":"string"}},"hidden":{"description":"Indicates if this virtual topic is visible in the catalog.","type":"boolean"},"allowSubscriptions":{"description":"Indicates if this virtual topic is allowing new subscriptions.","type":"boolean"},"controls":{"description":"Controls on this virtual topic.","type":"array","items":{"anyOf":[{"type":"object","required":["id","requests","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["approval"]},"requests":{"type":"array","items":{"type":"object","required":["id","owner","status","description","contact"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"owner":{"description":"Approval request owner.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of last update to approval request.","type":"integer"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"description":{"description":"Description of why the request was created.","type":"string","minLength":1,"maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string","minLength":1,"maxLength":250},"outcome":{"description":"Description of the outcome of this request.","type":"string","maxLength":250},"subscriptionId":{"description":"The id of the subscription associated with this request.","type":"string","deprecated":true,"maxLength":250},"applicationId":{"description":"The id of the application associated with this request.","type":"string","maxLength":250}}}}}},{"allOf":[{"type":"object","required":["id","redactions","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["redaction"]},"redactions":{"type":"array","items":{"anyOf":[{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceString"]},"replaceWith":{"description":"The value to replace with.","type":"string","maxLength":200}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceIntegral","replaceDouble"]},"replaceWith":{"description":"The value to replace with.","type":"number"}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["algorithm","type"],"properties":{"type":{"description":"Type of redaction.","enum":["hash"]},"algorithm":{"type":"string","description":"Algorithm to use for hashing the current value.","enum":["SHA-256","SHA-512"]}}}]}],"discriminator":{"propertyName":"type"}}}}}]},{"type":"object","required":["id","schema","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["schema-filtering"]},"schema":{"type":"object","required":["filtered"],"properties":{"filtered":{"description":"If true, any schema associated with the source topic will be used to filter records sent to applications.","type":"boolean"}}}}},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["quota"]}},"anyOf":[{"type":"object","required":["megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond","megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}}]},{"allOf":[{"oneOf":[{"type":"object","required":["trustPem"],"deprecated":true,"properties":{"trustPem":{"description":"Certificate Authority in PEM format.","type":"string"}}},{"anyOf":[{"type":"object","required":["acceptProfileCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptOrgCa"],"properties":{"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptProfileCa","acceptOrgCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"},"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}}]}]},{"type":"object","required":["type","id","subjectCommonName"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["mtls"]},"identificationType":{"description":"The type of identification users will use to distinguish between subscriptions. Defaults to MTLS when not provided.","deprecated":true,"type":"string","enum":["MTLS","SASL"]},"identificationSubjectFields":{"description":"Certificate subject fields to identify users by if using MTLS identificationType.","type":"array","items":{"type":"string","enum":["subjectCommonName","subjectOrganization","subjectCountry","subjectStateOrProvince","subjectLocality"]}},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200},"approvedCipherSuites":{"description":"Cipher suites that are approved for use.","type":"array","items":{"type":"string"}},"disapprovedCipherSuites":{"description":"Cipher suites that are not approved for use.","type":"array","items":{"type":"string"}},"notValidBefore":{"description":"Certificate not valid before time.","type":"integer"},"notValidAfter":{"description":"Certificate not valid after time.","type":"integer"}}}]},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-oauth"]}},"additionalProperties":false},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-credentials"]}},"additionalProperties":false},{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["content-filtering"]},"filterCondition":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["simple"]},"eventProperty":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","description":"JSONPath to the field."},"source":{"type":"string","enum":["body"],"description":"Location of the property in the event."}},"required":["path","source"]},"operator":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","enum":["equal"]},"type":{"type":"string","enum":["string","integer","double","boolean"]}},"required":["name","type"]},"value":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["literal"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"description":"Literal comparison value."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["reference"]},"value":{"type":"string","enum":["USER_ID","CLIENT_ID"],"description":"Reference to a Kafka connection metadata property."}},"required":["type","value"],"additionalProperties":false}]}},"required":["type","eventProperty","operator","value"]}},"required":["id","type","filterCondition"]}],"discriminator":{"propertyName":"type"}}},"gatewaysPublishedTo":{"description":"List of gateways that this virtual topic has been published to.","type":"array","items":{"type":"object","required":["id","owner","organization","gatewayId","group","organizations","servedOrganizations","endpoints","lastContact"],"additionalProperties":false,"properties":{"id":{"description":"Unique event gateway ID.","type":"string","minLength":1,"maxLength":200},"owner":{"description":"Owner of the event gateway.","type":"string","minLength":1,"maxLength":100},"organization":{"description":"Organization this event gateway belongs to.","type":"string"},"gatewayId":{"description":"Unique event gateway ID within this group.","type":"string","minLength":1,"maxLength":100},"group":{"description":"Event gateway group name.","type":"string","minLength":1,"maxLength":100},"organizations":{"description":"Organizations this event gateway serves.","type":"array","deprecated":true,"items":{"type":"string","minLength":1,"maxLength":100}},"servedOrganizations":{"description":"Organizations this event gateway serves.","type":"array","items":{"type":"string","minLength":1,"maxLength":100}},"contact":{"description":"The contact information for this event gateway.","type":"string","minLength":1,"maxLength":200},"lastContact":{"description":"Epoch time in ms of the last contact from this gateway.","type":"integer","minimum":0},"endpoints":{"description":"Endpoints that the gateway is listening on.","type":"array","items":{"type":"object","required":["host","port"],"properties":{"host":{"description":"Kafka server host name.","type":"string"},"port":{"description":"Kafka server port.","type":"integer"},"ssl":{"description":"Connect over SSL.","type":"boolean","default":false},"certificates":{"description":"Certificates or CAs to trust, required to connect to the server via SSL.","type":"array","uniqueItems":true,"items":{"type":"object","description":"X509 certificate presented by an endpoint","required":["pem"],"properties":{"pem":{"description":"Certificate in PEM format","type":"string"},"subject":{"description":"Subject name of the certificate","type":"string"},"sans":{"description":"A list of subject alternative names of the certificate","type":"array","items":{"type":"string"}},"issuer":{"description":"Issuer of the certificate","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}}}}},"version":{"type":"string","description":"Version of the gateway.","minLength":1,"maxLength":20},"productVersion":{"type":"string","description":"EEM product version.","minLength":1,"maxLength":100},"features":{"type":"array","description":"Feature set in use by gateway.","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":20}},"deploymentMode":{"type":"string","description":"Type of gateway deployment."},"capabilities":{"type":"object","additionalProperties":true,"description":"Description of what capabilities the gateway has."}}}}}}},"collaborators":{"description":"Collaborators for this endpoint.","type":"object","required":["groups","contacts"],"additionalProperties":false,"properties":{"groups":{"description":"List of groups that collaborate on this event endpoint.","type":"array","items":{"type":"string"}},"contacts":{"description":"List of contacts that collaborate on this event endpoint.","type":"array","items":{"type":"string"}}}}}}},"application/vnd.ibm.eem.v2+json":{"schema":{"type":"object","required":["id","owner","organization","clusterId","type","encoding","name","contact","capabilities","options","collaborators"],"additionalProperties":false,"properties":{"id":{"description":"Unique ID of related source topic.","type":"string"},"owner":{"description":"Owner of the related source topic.","type":"string"},"organization":{"description":"Organization the related source topic belongs to.","type":"string"},"clusterId":{"description":"ID for the cluster that contains the connection details for this source topic.","type":"string","minLength":1,"maxLength":50},"type":{"description":"Type of source topic.","type":"string","enum":["kafka"]},"encoding":{"description":"The encoding of the data on this source topic.","type":"string","enum":["unknown","text/plain","application/octet-stream","application/json","avro/binary","avro/json"]},"name":{"description":"Source topic name.","type":"string","minLength":1,"maxLength":200},"contact":{"description":"Who to contact for more information about this source topic.","type":"string","minLength":1,"maxLength":200},"description":{"description":"A description for this source topic.","type":"string","maxLength":1500},"topic":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"description":"Actual topic name in the cluster.","type":"string","minLength":1,"maxLength":200},"partitions":{"description":"The number of partitions for this topic.","type":"number"},"replicas":{"description":"The number of replicas for this topic.","type":"number"},"uuid":{"description":"The UUID of the topic.","type":"string"}}},"schema":{"type":"object","properties":{"type":{"description":"Type of schema from the list of valid types.","type":"string","enum":["avro","json","unknown"]},"content":{"description":"Contents of the schema.","type":"string","maxLength":1048576},"description":{"description":"Description of the data available on the source topic.","type":"string","maxLength":1500}},"additionalProperties":false},"tags":{"description":"List of tags associated with this source topic.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":50}},"sampleMessages":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"description":"Capabilities enumeration.","type":"string","enum":["consume","produce"]}},"options":{"type":"array","items":{"type":"object","required":["id","owner","organization","eventSourceId","name","controls","alias","gatewayGroups","allowSubscriptions","hidden","gatewaysPublishedTo"],"additionalProperties":false,"properties":{"id":{"description":"Unique virtual topic ID.","type":"string"},"owner":{"description":"Virtual topic owner.","type":"string"},"organization":{"description":"Organization this virtual topic belongs to.","type":"string"},"eventSourceId":{"description":"Source topic that this virtual topic belongs to.","type":"string"},"alias":{"description":"Unique, descriptive alias for this virtual topic.","type":"string","minLength":1,"maxLength":200},"name":{"description":"Descriptive name for this virtual topic.","type":"string","minLength":1,"maxLength":200},"description":{"description":"Longer description used to describe what this virtual topic is used for.","type":"string","maxLength":1500},"gatewayGroups":{"description":"List of gateway groups this virtual topic should be published to.","type":"array","uniqueItems":true,"items":{"type":"string"}},"hidden":{"description":"Indicates if this virtual topic is visible in the catalog.","type":"boolean"},"allowSubscriptions":{"description":"Indicates if this virtual topic is allowing new subscriptions.","type":"boolean"},"controls":{"description":"Controls on this virtual topic.","type":"array","items":{"anyOf":[{"type":"object","required":["id","requests","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["approval"]},"requests":{"type":"array","items":{"type":"object","required":["id","owner","status","description","contact"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"owner":{"description":"Approval request owner.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of last update to approval request.","type":"integer"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"description":{"description":"Description of why the request was created.","type":"string","minLength":1,"maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string","minLength":1,"maxLength":250},"outcome":{"description":"Description of the outcome of this request.","type":"string","maxLength":250},"subscriptionId":{"description":"The id of the subscription associated with this request.","type":"string","deprecated":true,"maxLength":250},"applicationId":{"description":"The id of the application associated with this request.","type":"string","maxLength":250}}}}}},{"allOf":[{"type":"object","required":["id","redactions","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["redaction"]},"redactions":{"type":"array","items":{"anyOf":[{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceString"]},"replaceWith":{"description":"The value to replace with.","type":"string","maxLength":200}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceIntegral","replaceDouble"]},"replaceWith":{"description":"The value to replace with.","type":"number"}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["algorithm","type"],"properties":{"type":{"description":"Type of redaction.","enum":["hash"]},"algorithm":{"type":"string","description":"Algorithm to use for hashing the current value.","enum":["SHA-256","SHA-512"]}}}]}],"discriminator":{"propertyName":"type"}}}}}]},{"type":"object","required":["id","schema","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["schema-filtering"]},"schema":{"type":"object","required":["filtered"],"properties":{"filtered":{"description":"If true, any schema associated with the source topic will be used to filter records sent to applications.","type":"boolean"}}}}},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["quota"]}},"anyOf":[{"type":"object","required":["megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond","megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}}]},{"allOf":[{"oneOf":[{"type":"object","required":["trustPem"],"deprecated":true,"properties":{"trustPem":{"description":"Certificate Authority in PEM format.","type":"string"}}},{"anyOf":[{"type":"object","required":["acceptProfileCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptOrgCa"],"properties":{"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptProfileCa","acceptOrgCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"},"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}}]}]},{"type":"object","required":["type","id","subjectCommonName"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["mtls"]},"identificationType":{"description":"The type of identification users will use to distinguish between subscriptions. Defaults to MTLS when not provided.","deprecated":true,"type":"string","enum":["MTLS","SASL"]},"identificationSubjectFields":{"description":"Certificate subject fields to identify users by if using MTLS identificationType.","type":"array","items":{"type":"string","enum":["subjectCommonName","subjectOrganization","subjectCountry","subjectStateOrProvince","subjectLocality"]}},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200},"approvedCipherSuites":{"description":"Cipher suites that are approved for use.","type":"array","items":{"type":"string"}},"disapprovedCipherSuites":{"description":"Cipher suites that are not approved for use.","type":"array","items":{"type":"string"}},"notValidBefore":{"description":"Certificate not valid before time.","type":"integer"},"notValidAfter":{"description":"Certificate not valid after time.","type":"integer"}}}]},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-oauth"]}},"additionalProperties":false},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["sasl-credentials"]}},"additionalProperties":false},{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["content-filtering"]},"filterCondition":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["simple"]},"eventProperty":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","description":"JSONPath to the field."},"source":{"type":"string","enum":["body"],"description":"Location of the property in the event."}},"required":["path","source"]},"operator":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","enum":["equal"]},"type":{"type":"string","enum":["string","integer","double","boolean"]}},"required":["name","type"]},"value":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["literal"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"description":"Literal comparison value."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["reference"]},"value":{"type":"string","enum":["USER_ID","CLIENT_ID"],"description":"Reference to a Kafka connection metadata property."}},"required":["type","value"],"additionalProperties":false}]}},"required":["type","eventProperty","operator","value"]}},"required":["id","type","filterCondition"]}],"discriminator":{"propertyName":"type"}}},"gatewaysPublishedTo":{"description":"List of gateways that this virtual topic has been published to.","type":"array","items":{"type":"object","required":["id","owner","organization","gatewayId","group","organizations","servedOrganizations","endpoints","lastContact"],"additionalProperties":false,"properties":{"id":{"description":"Unique event gateway ID.","type":"string","minLength":1,"maxLength":200},"owner":{"description":"Owner of the event gateway.","type":"string","minLength":1,"maxLength":100},"organization":{"description":"Organization this event gateway belongs to.","type":"string"},"gatewayId":{"description":"Unique event gateway ID within this group.","type":"string","minLength":1,"maxLength":100},"group":{"description":"Event gateway group name.","type":"string","minLength":1,"maxLength":100},"organizations":{"description":"Organizations this event gateway serves.","type":"array","deprecated":true,"items":{"type":"string","minLength":1,"maxLength":100}},"servedOrganizations":{"description":"Organizations this event gateway serves.","type":"array","items":{"type":"string","minLength":1,"maxLength":100}},"contact":{"description":"The contact information for this event gateway.","type":"string","minLength":1,"maxLength":200},"lastContact":{"description":"Epoch time in ms of the last contact from this gateway.","type":"integer","minimum":0},"endpoints":{"description":"Endpoints that the gateway is listening on.","type":"array","items":{"type":"object","required":["host","port"],"properties":{"host":{"description":"Kafka server host name.","type":"string"},"port":{"description":"Kafka server port.","type":"integer"},"ssl":{"description":"Connect over SSL.","type":"boolean","default":false},"certificates":{"description":"Certificates or CAs to trust, required to connect to the server via SSL.","type":"array","uniqueItems":true,"items":{"type":"object","description":"X509 certificate presented by an endpoint","required":["pem"],"properties":{"pem":{"description":"Certificate in PEM format","type":"string"},"subject":{"description":"Subject name of the certificate","type":"string"},"sans":{"description":"A list of subject alternative names of the certificate","type":"array","items":{"type":"string"}},"issuer":{"description":"Issuer of the certificate","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}}}}},"version":{"type":"string","description":"Version of the gateway.","minLength":1,"maxLength":20},"productVersion":{"type":"string","description":"EEM product version.","minLength":1,"maxLength":100},"features":{"type":"array","description":"Feature set in use by gateway.","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":20}},"deploymentMode":{"type":"string","description":"Type of gateway deployment."},"capabilities":{"type":"object","additionalProperties":true,"description":"Description of what capabilities the gateway has."}}}}}}},"collaborators":{"description":"Collaborators for this endpoint.","type":"object","required":["groups","contacts"],"additionalProperties":false,"properties":{"groups":{"description":"List of groups that collaborate on this event endpoint.","type":"array","items":{"type":"string"}},"contacts":{"description":"List of contacts that collaborate on this event endpoint.","type":"array","items":{"type":"string"}}}}}}},"application/json":{"schema":{"type":"object","required":["id","owner","organization","clusterId","type","encoding","name","contact","capabilities","options","collaborators"],"additionalProperties":false,"properties":{"id":{"description":"Unique ID of the related source topic.","type":"string"},"owner":{"description":"Owner of the related source topic.","type":"string"},"organization":{"description":"Organization the related source topic belongs to.","type":"string"},"clusterId":{"description":"ID for the cluster that contains the connection details for this source topic.","type":"string","minLength":1,"maxLength":50},"type":{"description":"Type of source topic.","type":"string","enum":["kafka"]},"encoding":{"description":"The encoding of the data on this source topic.","type":"string","enum":["unknown","text/plain","application/octet-stream","application/json","avro/binary","avro/json"]},"name":{"description":"Source topic name.","type":"string","minLength":1,"maxLength":200},"contact":{"description":"Who to contact for more information about this source topic.","type":"string","minLength":1,"maxLength":200},"description":{"description":"A description for this source topic.","type":"string","maxLength":1500},"topic":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"description":"Actual topic name in the cluster.","type":"string","minLength":1,"maxLength":200},"partitions":{"description":"The number of partitions for this topic.","type":"number"},"replicas":{"description":"The number of replicas for this topic.","type":"number"},"uuid":{"description":"The UUID of the topic.","type":"string"}}},"schema":{"type":"object","properties":{"type":{"description":"Type of schema from the list of valid types.","type":"string","enum":["avro","json","unknown"]},"content":{"description":"Contents of the schema.","type":"string","maxLength":1048576},"description":{"description":"Description of the data available on the source topic.","type":"string","maxLength":1500}},"additionalProperties":false},"tags":{"description":"List of tags associated with this source topic.","type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":50}},"sampleMessages":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"description":"Capabilities enumeration.","type":"string","enum":["consume","produce"]}},"options":{"type":"array","items":{"type":"object","required":["id","owner","organization","eventSourceId","name","controls","alias","gatewayGroups","allowSubscriptions","hidden","gatewaysPublishedTo"],"additionalProperties":false,"properties":{"id":{"description":"Unique virtual topic ID.","type":"string"},"owner":{"description":"Virtual topic owner.","type":"string"},"organization":{"description":"Organization this virtual topic belongs to.","type":"string"},"eventSourceId":{"description":"Source topic that this virtual topic belongs to.","type":"string"},"alias":{"description":"Unique, descriptive alias for this virtual topic.","type":"string","minLength":1,"maxLength":200},"name":{"description":"Descriptive name for this virtual topic.","type":"string","minLength":1,"maxLength":200},"description":{"description":"Longer description used to describe what this virtual topic is used for.","type":"string","maxLength":1500},"gatewayGroups":{"description":"List of gateway groups this virtual topic should be published to.","type":"array","uniqueItems":true,"items":{"type":"string"}},"hidden":{"description":"Indicates if this virtual topic is visible in the catalog.","type":"boolean"},"allowSubscriptions":{"description":"Indicates if this virtual topic is allowing new subscriptions.","type":"boolean"},"controls":{"description":"Controls on this virtual topic.","type":"array","items":{"anyOf":[{"type":"object","required":["id","requests","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["approval"]},"requests":{"type":"array","items":{"type":"object","required":["id","owner","status","description","contact"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"owner":{"description":"Approval request owner.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of last update to approval request.","type":"integer"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"description":{"description":"Description of why the request was created.","type":"string","minLength":1,"maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string","minLength":1,"maxLength":250},"outcome":{"description":"Description of the outcome of this request.","type":"string","maxLength":250},"subscriptionId":{"description":"The id of the subscription associated with this request.","type":"string","deprecated":true,"maxLength":250},"applicationId":{"description":"The id of the application associated with this request.","type":"string","maxLength":250}}}}}},{"allOf":[{"type":"object","required":["id","redactions","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["redaction"]},"redactions":{"type":"array","items":{"anyOf":[{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceString"]},"replaceWith":{"description":"The value to replace with.","type":"string","maxLength":200}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["replaceWith","type"],"properties":{"type":{"description":"Type of redaction.","enum":["replaceIntegral","replaceDouble"]},"replaceWith":{"description":"The value to replace with.","type":"number"}}}]},{"allOf":[{"type":"object","required":["path"],"properties":{"path":{"description":"The JSON path specifying the field to redact. JSON path is currently restricted to just field names (no arrays or functions).","type":"string","maxLength":200,"minLength":2}}},{"type":"object","required":["algorithm","type"],"properties":{"type":{"description":"Type of redaction.","enum":["hash"]},"algorithm":{"type":"string","description":"Algorithm to use for hashing the current value.","enum":["SHA-256","SHA-512"]}}}]}],"discriminator":{"propertyName":"type"}}}}}]},{"type":"object","required":["id","schema","type"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["schema-filtering"]},"schema":{"type":"object","required":["filtered"],"properties":{"filtered":{"description":"If true, any schema associated with the source topic will be used to filter records sent to applications.","type":"boolean"}}}}},{"type":"object","required":["type","id"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["quota"]}},"anyOf":[{"type":"object","required":["megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}},{"type":"object","required":["messagesPerSecond","megabytesPerSecond"],"properties":{"megabytesPerSecond":{"description":"Upper limit to megabytes per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647},"messagesPerSecond":{"description":"Upper limit to messages per second produced/consumed.","type":"number","minimum":1,"maximum":2147483647}}}]},{"allOf":[{"oneOf":[{"type":"object","required":["trustPem"],"deprecated":true,"properties":{"trustPem":{"description":"Certificate Authority in PEM format.","type":"string"}}},{"anyOf":[{"type":"object","required":["acceptProfileCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptOrgCa"],"properties":{"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}},{"type":"object","required":["acceptProfileCa","acceptOrgCa"],"properties":{"acceptProfileCa":{"description":"Boolean indicating whether to include the Author defined CA certificates in the MTLS truststore.","type":"boolean"},"acceptOrgCa":{"description":"Boolean indicating whether to include the Admin defined CA certificates in the MTLS truststore.","type":"boolean"}}}]}]},{"type":"object","required":["type","id","subjectCommonName"],"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["mtls"]},"identificationType":{"description":"The type of identification users will use to distinguish between subscriptions. Defaults to MTLS when not provided.","deprecated":true,"type":"string","enum":["MTLS","SASL"]},"identificationSubjectFields":{"description":"Certificate subject fields to identify users by if using MTLS identificationType.","type":"array","items":{"type":"string","enum":["subjectCommonName","subjectOrganization","subjectCountry","subjectStateOrProvince","subjectLocality"]}},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","maxLength":200},"approvedCipherSuites":{"description":"Cipher suites that are approved for use.","type":"array","items":{"type":"string"}},"disapprovedCipherSuites":{"description":"Cipher suites that are not approved for use.","type":"array","items":{"type":"string"}},"notValidBefore":{"description":"Certificate not valid before time.","type":"integer"},"notValidAfter":{"description":"Certificate not valid after time.","type":"integer"}}}]},{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Unique control ID.","type":"string"},"type":{"type":"string","enum":["content-filtering"]},"filterCondition":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["simple"]},"eventProperty":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","description":"JSONPath to the field."},"source":{"type":"string","enum":["body"],"description":"Location of the property in the event."}},"required":["path","source"]},"operator":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","enum":["equal"]},"type":{"type":"string","enum":["string","integer","double","boolean"]}},"required":["name","type"]},"value":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["literal"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"description":"Literal comparison value."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["reference"]},"value":{"type":"string","enum":["USER_ID","CLIENT_ID"],"description":"Reference to a Kafka connection metadata property."}},"required":["type","value"],"additionalProperties":false}]}},"required":["type","eventProperty","operator","value"]}},"required":["id","type","filterCondition"]}],"discriminator":{"propertyName":"type"}}},"gatewaysPublishedTo":{"description":"List of gateways that this virtual topic has been published to.","type":"array","items":{"type":"object","required":["id","owner","organization","gatewayId","group","organizations","servedOrganizations","endpoints","lastContact"],"additionalProperties":false,"properties":{"id":{"description":"Unique event gateway ID.","type":"string","minLength":1,"maxLength":200},"owner":{"description":"Owner of the event gateway.","type":"string","minLength":1,"maxLength":100},"organization":{"description":"Organization this event gateway belongs to.","type":"string"},"gatewayId":{"description":"Unique event gateway ID within this group.","type":"string","minLength":1,"maxLength":100},"group":{"description":"Event gateway group name.","type":"string","minLength":1,"maxLength":100},"organizations":{"description":"Organizations this event gateway serves.","type":"array","deprecated":true,"items":{"type":"string","minLength":1,"maxLength":100}},"servedOrganizations":{"description":"Organizations this event gateway serves.","type":"array","items":{"type":"string","minLength":1,"maxLength":100}},"contact":{"description":"The contact information for this event gateway.","type":"string","minLength":1,"maxLength":200},"lastContact":{"description":"Epoch time in ms of the last contact from this gateway.","type":"integer","minimum":0},"endpoints":{"description":"Endpoints that the gateway is listening on.","type":"array","items":{"type":"object","required":["host","port"],"properties":{"host":{"description":"Kafka server host name.","type":"string"},"port":{"description":"Kafka server port.","type":"integer"},"ssl":{"description":"Connect over SSL.","type":"boolean","default":false},"certificates":{"description":"Certificates or CAs to trust, required to connect to the server via SSL.","type":"array","uniqueItems":true,"items":{"type":"object","description":"X509 certificate presented by an endpoint","required":["pem"],"properties":{"pem":{"description":"Certificate in PEM format","type":"string"},"subject":{"description":"Subject name of the certificate","type":"string"},"sans":{"description":"A list of subject alternative names of the certificate","type":"array","items":{"type":"string"}},"issuer":{"description":"Issuer of the certificate","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch millis","type":"integer"}}}}}}},"version":{"type":"string","description":"Version of the gateway.","minLength":1,"maxLength":20},"productVersion":{"type":"string","description":"EEM product version.","minLength":1,"maxLength":100},"features":{"type":"array","description":"Feature set in use by gateway.","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":20}},"deploymentMode":{"type":"string","description":"Type of gateway deployment."},"capabilities":{"type":"object","additionalProperties":true,"description":"Description of what capabilities the gateway has."}}}}}}},"collaborators":{"description":"Collaborators for this endpoint.","type":"object","required":["groups","contacts"],"additionalProperties":false,"properties":{"groups":{"description":"List of groups that collaborate on this event endpoint.","type":"array","items":{"type":"string"}},"contacts":{"description":"List of contacts that collaborate on this event endpoint.","type":"array","items":{"type":"string"}}}}}}}}},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This event endpoint does not exist."},"406":{"description":"Not Acceptable. The requested media type is not supported."},"500":{"description":"Internal error."}}}},"/profile/ca":{"get":{"operationId":"readAllProfileCACertificates","parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/maxPageSize"}],"responses":{"200":{"description":"The profile CA certificates for a user.","headers":{"ei-pagination-total":{"$ref":"#/components/headers/ei-pagination-total"}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["id","subject","issuer","expiry","pem","owned"],"properties":{"id":{"description":"ID of CA certificate.","type":"string"},"subject":{"description":"Subject name of the certificate.","type":"string"},"issuer":{"description":"Issuer of the certificate.","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch milliseconds.","type":"integer"},"pem":{"description":"PEM.","type":"string"},"owned":{"description":"Is the requester the owner of this CA certificate.","type":"boolean"}}}}}}},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}},"post":{"operationId":"createProfileCACertificate","description":"Create an author CA certificate.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["trustPem"],"properties":{"trustPem":{"description":"PEM.","type":"string","maxLength":8192,"minLength":500}}}}}},"responses":{"200":{"description":"CA certificates successfully processed. Non-CA certificates will be ignored. If the payload contains any previously uploaded CA certificates, then these certificates will not be processed, and the ID of the original CA certificate will be returned in the response.","content":{"application/json":{"schema":{"type":"object","properties":{"validCACertificates":{"description":"Array of all successfully processed CA certificates.","type":"array","uniqueItems":true,"items":{"type":"object","properties":{"id":{"type":"string","maxLength":100,"minLength":1},"pem":{"description":"PEM.","type":"string","maxLength":8192,"minLength":500},"existingCertificate":{"description":"Indicates if the certificate already exists in the store and the existing record was returned.","type":"boolean","default":true}}}},"invalidCertificates":{"description":"Array of all non CA certificates that were ignored.","type":"array","uniqueItems":true,"items":{"type":"object","properties":{"pem":{"description":"PEM.","type":"string","maxLength":8192,"minLength":500}}}}}}}}},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}}},"/profile/ca/{caId}":{"get":{"operationId":"readProfileCACertificate","parameters":[{"in":"path","name":"caId","required":true,"schema":{"type":"string","maxLength":100,"minLength":1},"description":"The ID of the CA certificate."}],"responses":{"200":{"description":"The profile CA certificate for a user.","content":{"application/json":{"schema":{"type":"object","required":["id","subject","issuer","expiry","pem","owned"],"properties":{"id":{"description":"ID of CA certificate.","type":"string"},"subject":{"description":"Subject name of the certificate.","type":"string"},"issuer":{"description":"Issuer of the certificate.","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch milliseconds.","type":"integer"},"pem":{"description":"PEM.","type":"string"},"owned":{"description":"Is the requester the owner of this CA certificate.","type":"boolean"}}}}}},"304":{"description":"Data not changed."},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}},"delete":{"operationId":"deleteProfileCACertificate","description":"Delete an author CA certificate.","parameters":[{"in":"path","name":"caId","required":true,"schema":{"type":"string","maxLength":100,"minLength":1},"description":"The ID of the CA certificate to be deleted."}],"responses":{"200":{"description":"CA certificate deleted successfully."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"CA certificate does not exist."},"500":{"description":"Internal error."}}}},"/organization/ca":{"get":{"operationId":"readAllOrgCACertificates","parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/maxPageSize"}],"responses":{"200":{"description":"The organization CA certificates.","headers":{"ei-pagination-total":{"$ref":"#/components/headers/ei-pagination-total"}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["id","subject","issuer","expiry","pem","owned"],"properties":{"id":{"description":"ID of CA certificate.","type":"string"},"subject":{"description":"Subject name of the certificate.","type":"string"},"issuer":{"description":"Issuer of the certificate.","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch milliseconds.","type":"integer"},"pem":{"description":"PEM.","type":"string"},"owned":{"description":"Is the requester the owner of this CA certificate.","type":"boolean"}}}}}}},"304":{"description":"Data not changed."},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}},"post":{"operationId":"createOrgCACertificate","description":"Create an organization CA certificate.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["trustPem"],"properties":{"trustPem":{"description":"PEM.","type":"string","maxLength":8192,"minLength":500}}}}}},"responses":{"200":{"description":"Author CA certificate successfully created.","content":{"application/json":{"schema":{"type":"object","properties":{"validCACertificates":{"description":"Array of all successfully processed CA certificates.","type":"array","uniqueItems":true,"items":{"type":"object","properties":{"id":{"type":"string","maxLength":100,"minLength":1},"pem":{"description":"PEM.","type":"string","maxLength":8192,"minLength":500},"existingCertificate":{"description":"Indicates if the certificate already exists in the store and the existing record was returned.","type":"boolean","default":true}}}},"invalidCertificates":{"description":"Array of all non CA certificates that were ignored.","type":"array","uniqueItems":true,"items":{"type":"object","properties":{"pem":{"description":"PEM.","type":"string","maxLength":8192,"minLength":500}}}}}}}}},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}}},"/organization/ca/{caId}":{"get":{"operationId":"readOrgCACertificate","parameters":[{"in":"path","name":"caId","required":true,"schema":{"type":"string","maxLength":100,"minLength":1},"description":"The ID of the CA certificate."}],"responses":{"200":{"description":"The organization CA certificate for a user.","content":{"application/json":{"schema":{"type":"object","required":["id","subject","issuer","expiry","pem","owned"],"properties":{"id":{"description":"ID of CA certificate.","type":"string"},"subject":{"description":"Subject name of the certificate.","type":"string"},"issuer":{"description":"Issuer of the certificate.","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch milliseconds.","type":"integer"},"pem":{"description":"PEM.","type":"string"},"owned":{"description":"Is the requester the owner of this CA certificate.","type":"boolean"}}}}}},"304":{"description":"Data not changed."},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}},"delete":{"operationId":"deleteOrgCACertificate","description":"Delete an organization CA certificate.","parameters":[{"in":"path","name":"caId","required":true,"schema":{"type":"string"},"description":"The ID of the CA certificate to be deleted."}],"responses":{"200":{"description":"CA certificate deleted successfully."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"CA certificate does not exist."},"500":{"description":"Internal error."}}}},"/organization/transferOwnership":{"post":{"operationId":"transferOwnership","description":"Transfer ownership of EEM assets from one user to another.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["ownedBy","targetOwner"],"properties":{"ownedBy":{"description":"Owner of the assets. The subject to transfer from.","type":"string","minLength":1,"maxLength":320},"targetOwner":{"description":"New owner of the assets. The subject to be transferred to.","type":"string","minLength":1,"maxLength":320}}}}}},"responses":{"200":{"description":"Assets successfully transferred."},"400":{"description":"Invalid request."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"Requested owners do not exist."},"409":{"description":"Conflict cannot make transfer between users."},"500":{"description":"Internal error."}}}},"/userassets":{"get":{"operationId":"readAllUserAssets","description":"List all users and all their assets.","parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/maxPageSize"},{"in":"query","name":"includeEmptyUsers","required":false,"schema":{"type":"string"},"description":"Flag to indicate whether to include users that have no assets. True means return all defined users, whether they have assets or not. Default is false."},{"in":"query","name":"search","required":false,"description":"Given a searched field, filter the response to include only users who match in username or in their subject. For example, topics or virtual topics.","schema":{"type":"string","maxLength":200,"minLength":1}}],"responses":{"200":{"description":"List all defined users and their owned assets.","content":{"application/vnd.ibm.eem.v2+json":{"schema":{"type":"array","items":{"type":"object","required":["userId","preferredUsername","displayName","roles","assets"],"additionalProperties":false,"properties":{"userId":{"description":"User identifier.","type":"string"},"preferredUsername":{"description":"Preferred user name.","type":"string"},"displayName":{"description":"Display name.","type":"string"},"roles":{"description":"User roles.","type":"array","items":{"type":"string"}},"assets":{"description":"List of the different asset types and the number of instances of that type owned by the user.","type":"object","additionalProperties":false,"required":["sourcetopic","cluster","virtualtopic","subscription","ca","gateway","application"],"properties":{"sourcetopic":{"type":"number"},"cluster":{"type":"number"},"virtualtopic":{"type":"number"},"subscription":{"type":"number"},"ca":{"type":"number"},"gateway":{"type":"number"},"application":{"type":"number"}}}}}}},"application/json":{"schema":{"type":"array","items":{"type":"object","required":["userId","preferredUsername","displayName","roles","assets"],"additionalProperties":false,"properties":{"userId":{"description":"User identifier.","type":"string"},"preferredUsername":{"description":"Preferred user name.","type":"string"},"displayName":{"description":"Display name.","type":"string"},"roles":{"description":"User roles.","type":"array","items":{"type":"string"}},"assets":{"description":"List of the different asset types and the number of instances of that type owned by the user.","type":"object","additionalProperties":false,"required":["eventsource","cluster","option","subscription","ca","gateway","application"],"properties":{"eventsource":{"type":"number"},"cluster":{"type":"number"},"option":{"type":"number"},"subscription":{"type":"number"},"ca":{"type":"number"},"gateway":{"type":"number"},"application":{"type":"number"}}}}}}}}},"304":{"description":"Data not changed."},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}}},"/eventendpoints/requests":{"get":{"operationId":"eventEndpointApprovalRequestList","description":"Get all the requests created against virtual topics that this author owns.","responses":{"200":{"headers":{"etag":{"$ref":"#/components/headers/etag"}},"description":"List all pending approval requests that this owner can respond to.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["id","contact","justification","status","sourceTopic","virtualTopic"],"additionalProperties":false,"properties":{"id":{"description":"Unique approval Request ID.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of when this approval Request was last updated","type":"integer"},"contact":{"description":"The contact details of the raiser of this approval Request.","type":"string"},"applicationId":{"description":"The application Id if this request is for an application subscription.","type":"string"},"justification":{"description":"The justification for this approval Request.","type":"string"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"sourceTopic":{"description":"Information about the Source Topic this Request is for.","type":"object","required":["id","name"],"properties":{"id":{"description":"Unique Source Topic ID.","type":"string"},"name":{"description":"Source Topic name.","type":"string"}}},"virtualTopic":{"description":"Information about the Virtual Topic this approval Request is for.","type":"object","required":["id","name"],"properties":{"id":{"description":"Unique Virtual Topic ID.","type":"string"},"name":{"description":"Virtual Topic name.","type":"string"}}}}}}}}},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}}},"/eventendpoints/{eventEndpointId}/requests":{"post":{"operationId":"createEventEndpointApprovalRequest","description":"Create a new approval request against this event endpoint.","parameters":[{"in":"path","name":"eventEndpointId","required":true,"schema":{"type":"string"},"description":"The ID of the event endpoint to create an approval request against."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["description","contact"],"properties":{"description":{"description":"Description of why the request was created.","type":"string","minLength":1,"maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string","minLength":1,"maxLength":250},"applicationId":{"description":"Optional application ID if this is for an application subscription.","type":"string","minLength":1,"maxLength":250}}}}}},"responses":{"200":{"description":"Event endpoint approval successfully requested.","content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"description":"Approval request ID.","type":"string"}}}}}},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This event endpoint does not exist."},"500":{"description":"Internal error."}}}},"/eventendpoints/{eventEndpointId}/requests/{requestId}":{"put":{"operationId":"updateEventEndpointApprovalRequest","description":"Update the status of the chosen request.","parameters":[{"in":"path","name":"eventEndpointId","required":true,"schema":{"type":"string"},"description":"The ID of the event endpoint that this request is for."},{"in":"path","name":"requestId","required":true,"schema":{"type":"string"},"description":"The ID of the approval request."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["status"],"properties":{"status":{"description":"Status of the request [pending, approved, rejected, fulfilled].","type":"string","enum":["pending","approved","rejected","fulfilled"]}}}}}},"responses":{"200":{"description":"Request updated."},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}},"delete":{"operationId":"deleteEventEndpointApprovalRequest","description":"Delete the chosen approval request.","parameters":[{"in":"path","name":"eventEndpointId","required":true,"schema":{"type":"string"},"description":"The ID of the event endpoint this delete request is for."},{"in":"path","name":"requestId","required":true,"schema":{"type":"string"},"description":"The ID of the approval request this delete request is for."}],"responses":{"200":{"description":"Approval request deleted."},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}}},"/requests/user":{"get":{"deprecated":true,"operationId":"eventEndpointApprovalRequestViewerList","description":"Get all approval requests created by this user. This endpoint is now deprecated. Use /applications/requests instead.","parameters":[{"$ref":"#/components/parameters/filterByStatus"}],"responses":{"200":{"description":"List that contains information about the user's approval requests.","headers":{"etag":{"$ref":"#/components/headers/etag"}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["id","contact","justification","status","eventSource","eventEndpoint"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of when this approval request was last updated.","type":"integer"},"contact":{"description":"The contact details of the raiser of this approval request.","type":"string"},"applicationId":{"description":"The applicationID if this request is for an application subscription.","type":"string"},"justification":{"description":"The justification for this approval request.","type":"string"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"eventSource":{"description":"Information about the source topic this request is for.","type":"object","required":["id","name"],"properties":{"id":{"description":"Unique source topic ID.","type":"string"},"name":{"description":"source topic name.","type":"string"}}},"eventEndpoint":{"description":"Information about the event endpoint this approval request is for.","type":"object","required":["id","name"],"properties":{"id":{"description":"Unique Event Endpoint ID.","type":"string"},"name":{"description":"Event Endpoint name.","type":"string"}}}}}}}}},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"Option does not exist."},"500":{"description":"Internal error."}}}},"/requests/admin":{"get":{"deprecated":true,"operationId":"eventEndpointApprovalRequestAdminList","description":"Get all the requests created against virtual topics that this author owns. This endpoint is now deprecated. Use /eventendpoints/requests instead.","responses":{"200":{"headers":{"etag":{"$ref":"#/components/headers/etag"}},"description":"List that contains information about requests this owner needs to respond to.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["id","contact","justification","status","eventSource","eventEndpoint"],"properties":{"id":{"description":"Unique approval request ID.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of when this approval request was last updated.","type":"integer"},"contact":{"description":"The contact details of the raiser of this approval request.","type":"string"},"applicationId":{"description":"The applicationID if this request is for an application subscription.","type":"string"},"justification":{"description":"The justification for this approval request.","type":"string"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"eventSource":{"description":"Information about the source topic this request is for.","type":"object","required":["id","name"],"properties":{"id":{"description":"Unique source topic ID.","type":"string"},"name":{"description":"source topic name.","type":"string"}}},"eventEndpoint":{"description":"Information about the event endpoint this approval request is for.","type":"object","required":["id","name"],"properties":{"id":{"description":"Unique Event Endpoint ID.","type":"string"},"name":{"description":"Event Endpoint name.","type":"string"}}}}}}}}},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}}},"/groups":{"get":{"operationId":"readAllGroups","description":"List groups for clusters, source topics, and virtual topics.","parameters":[{"$ref":"#/components/parameters/exclude"}],"responses":{"200":{"description":"List of groups for clusters, source topics, and virtual topics.","content":{"application/vnd.ibm.eem.v2+json":{"schema":{"description":"List of groups and their source topic, cluster, virtual topic and application references.","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"sourceTopicRefs":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false}},"clusterRefs":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false}},"virtualTopicRefs":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false}},"applicationRefs":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}}},"application/json":{"schema":{"description":"List of groups and their source topic, cluster, virtual topic and application references.","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"eventSourceRefs":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false}},"clusterRefs":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false}},"optionRefs":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false}},"applicationRefs":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}}}}},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}}},"/idpservers":{"post":{"description":"Create an IDP server.","operationId":"createIdpServer","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the IDP Server."},"type":{"type":"string","enum":["OAUTH2"],"description":"IDP type."},"description":{"type":"string","description":"Description of the IDP Server."},"userInfoUrl":{"type":"string","format":"uri","description":"The userInfo endpoint of the IDP Server (including protocol)."},"introspectionEndpoint":{"type":"object","description":"The introspection endpoint of the IDP Server.","properties":{"url":{"type":"string","format":"uri","description":"The introspection endpoint of the IDP Server (including protocol)."},"credentials":{"type":"object","description":"Credentials for authenticating to access the introspection endpoint.","properties":{"clientId":{"type":"string"},"clientSecret":{"type":"string"}},"required":["clientId","clientSecret"],"additionalProperties":false}},"required":["url","credentials"],"additionalProperties":false},"trustedCertificates":{"type":"array","description":"Trusted certificates for connecting to endpoints.","items":{"type":"object","required":["pem"],"properties":{"pem":{"description":"PEM.","type":"string"}},"additionalProperties":false}}},"required":["name","type"],"anyOf":[{"required":["userInfoUrl"]},{"required":["introspectionEndpoint"]}],"additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"description":"The ID of your newly created IDP server.","type":"string"}}}}},"description":"IDP server successfully created."},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"409":{"description":"IDP server with the specified userInfo URL already exists."},"500":{"description":"Internal error."}}},"get":{"description":"List all IDP servers created by the current user in an organization.<br><br>\n","operationId":"readAllIdpServers","parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/maxPageSize"}],"responses":{"200":{"description":"IDP servers successfully listed.","headers":{"ei-pagination-total":{"$ref":"#/components/headers/ei-pagination-total"}},"content":{"application/vnd.ibm.eem.v2+json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"description":"Unique IDP server ID.","type":"string"},"organization":{"description":"Organization this IDP server belongs to.","type":"string"},"owner":{"description":"IDP server owner.","type":"string"},"name":{"type":"string","description":"Name of the IDP Server."},"type":{"type":"string","enum":["OAUTH2"],"description":"IDP type."},"description":{"type":"string","description":"Description of the IDP Server."},"userInfoUrl":{"type":"string","format":"uri","description":"The userInfo endpoint of the IDP Server (including protocol)."},"introspectionEndpoint":{"type":"object","description":"The introspection endpoint of the IDP Server.","properties":{"url":{"type":"string","format":"uri","description":"The introspection endpoint of the IDP Server (including protocol)."},"credentials":{"type":"object","description":"Credentials for authenticating to access the introspection endpoint.","properties":{"clientId":{"type":"string"}},"required":["clientId"],"additionalProperties":false}},"required":["url","credentials"],"additionalProperties":false},"trustedCertificates":{"type":"array","description":"Trusted certificates for connecting to endpoints.","items":{"type":"object","required":["subject","issuer","expiry","pem"],"properties":{"subject":{"description":"Subject name of the certificate.","type":"string"},"issuer":{"description":"Issuer of the certificate.","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch ms.","type":"integer"},"pem":{"description":"PEM.","type":"string"}},"additionalProperties":false}},"hasPublishedVirtualTopics":{"type":"boolean","description":"Flag indicating if the IDP Server is being used in published virtual topics."}},"required":["id","organization","owner","name","type","hasPublishedVirtualTopics"],"anyOf":[{"required":["userInfoUrl"]},{"required":["introspectionEndpoint"]}],"additionalProperties":false}}},"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"description":"Unique IDP server ID.","type":"string"},"organization":{"description":"Organization this IDP server belongs to.","type":"string"},"owner":{"description":"IDP server owner.","type":"string"},"name":{"type":"string","description":"Name of the IDP Server."},"type":{"type":"string","enum":["OAUTH2"],"description":"IDP type."},"description":{"type":"string","description":"Description of the IDP Server."},"userInfoUrl":{"type":"string","format":"uri","description":"The userInfo endpoint of the IDP Server (including protocol)."},"introspectionEndpoint":{"type":"object","description":"The introspection endpoint of the IDP Server.","properties":{"url":{"type":"string","format":"uri","description":"The introspection endpoint of the IDP Server (including protocol)."},"credentials":{"type":"object","description":"Credentials for authenticating to access the introspection endpoint.","properties":{"clientId":{"type":"string"}},"required":["clientId"],"additionalProperties":false}},"required":["url","credentials"],"additionalProperties":false},"trustedCertificates":{"type":"array","description":"Trusted certificates for connecting to endpoints.","items":{"type":"object","required":["subject","issuer","expiry","pem"],"properties":{"subject":{"description":"Subject name of the certificate.","type":"string"},"issuer":{"description":"Issuer of the certificate.","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch ms.","type":"integer"},"pem":{"description":"PEM.","type":"string"}},"additionalProperties":false}},"hasPublishedOptions":{"type":"boolean","description":"Flag indicating if the IDP Server is being used in published options."}},"required":["id","organization","owner","name","type","hasPublishedOptions"],"anyOf":[{"required":["userInfoUrl"]},{"required":["introspectionEndpoint"]}],"additionalProperties":false}}}}},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}}},"/idpservers/{idpServerId}":{"get":{"operationId":"readIdpServer","parameters":[{"in":"path","name":"idpServerId","required":true,"schema":{"type":"string","maxLength":100,"minLength":1},"description":"The ID of the IDP server."}],"responses":{"200":{"description":"The IDP server.","content":{"application/vnd.ibm.eem.v2+json":{"schema":{"type":"object","properties":{"id":{"description":"Unique IDP server ID.","type":"string"},"organization":{"description":"Organization this IDP server belongs to.","type":"string"},"owner":{"description":"IDP server owner.","type":"string"},"name":{"type":"string","description":"Name of the IDP Server."},"type":{"type":"string","enum":["OAUTH2"],"description":"IDP type."},"description":{"type":"string","description":"Description of the IDP Server."},"userInfoUrl":{"type":"string","format":"uri","description":"The userInfo endpoint of the IDP Server (including protocol)."},"introspectionEndpoint":{"type":"object","description":"The introspection endpoint of the IDP Server.","properties":{"url":{"type":"string","format":"uri","description":"The introspection endpoint of the IDP Server (including protocol)."},"credentials":{"type":"object","description":"Credentials for authenticating to access the introspection endpoint.","properties":{"clientId":{"type":"string"}},"required":["clientId"],"additionalProperties":false}},"required":["url","credentials"],"additionalProperties":false},"trustedCertificates":{"type":"array","description":"Trusted certificates for connecting to endpoints.","items":{"type":"object","required":["subject","issuer","expiry","pem"],"properties":{"subject":{"description":"Subject name of the certificate.","type":"string"},"issuer":{"description":"Issuer of the certificate.","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch ms.","type":"integer"},"pem":{"description":"PEM.","type":"string"}},"additionalProperties":false}},"hasPublishedVirtualTopics":{"type":"boolean","description":"Flag indicating if the IDP Server is being used in published virtual topics."}},"required":["id","organization","owner","name","type","hasPublishedVirtualTopics"],"anyOf":[{"required":["userInfoUrl"]},{"required":["introspectionEndpoint"]}],"additionalProperties":false}},"application/json":{"schema":{"type":"object","properties":{"id":{"description":"Unique IDP server ID.","type":"string"},"organization":{"description":"Organization this IDP server belongs to.","type":"string"},"owner":{"description":"IDP server owner.","type":"string"},"name":{"type":"string","description":"Name of the IDP Server."},"type":{"type":"string","enum":["OAUTH2"],"description":"IDP type."},"description":{"type":"string","description":"Description of the IDP Server."},"userInfoUrl":{"type":"string","format":"uri","description":"The userInfo endpoint of the IDP Server (including protocol)."},"introspectionEndpoint":{"type":"object","description":"The introspection endpoint of the IDP Server.","properties":{"url":{"type":"string","format":"uri","description":"The introspection endpoint of the IDP Server (including protocol)."},"credentials":{"type":"object","description":"Credentials for authenticating to access the introspection endpoint.","properties":{"clientId":{"type":"string"}},"required":["clientId"],"additionalProperties":false}},"required":["url","credentials"],"additionalProperties":false},"trustedCertificates":{"type":"array","description":"Trusted certificates for connecting to endpoints.","items":{"type":"object","required":["subject","issuer","expiry","pem"],"properties":{"subject":{"description":"Subject name of the certificate.","type":"string"},"issuer":{"description":"Issuer of the certificate.","type":"string"},"expiry":{"description":"Expiration date of the certificate in epoch ms.","type":"integer"},"pem":{"description":"PEM.","type":"string"}},"additionalProperties":false}},"hasPublishedOptions":{"type":"boolean","description":"Flag indicating if the IDP Server is being used in published options."}},"required":["id","organization","owner","name","type","hasPublishedOptions"],"anyOf":[{"required":["userInfoUrl"]},{"required":["introspectionEndpoint"]}],"additionalProperties":false}}}},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}},"put":{"operationId":"updateIdpServer","description":"Update an IDP server.","parameters":[{"in":"path","name":"idpServerId","required":true,"schema":{"type":"string"},"description":"The ID of the IDP server to update."}],"requestBody":{"description":"IDP server data.","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the IDP Server."},"type":{"type":"string","enum":["OAUTH2"],"description":"IDP type."},"description":{"type":"string","description":"Description of the IDP Server."},"userInfoUrl":{"type":"string","format":"uri","description":"The userInfo endpoint of the IDP Server (including protocol)."},"introspectionEndpoint":{"type":"object","description":"The introspection endpoint of the IDP Server.","properties":{"url":{"type":"string","format":"uri","description":"The introspection endpoint of the IDP Server (including protocol)."},"credentials":{"type":"object","description":"Credentials for authenticating to access the introspection endpoint.","properties":{"clientId":{"type":"string"},"clientSecret":{"type":"string"}},"required":["clientId","clientSecret"],"additionalProperties":false}},"required":["url"],"additionalProperties":false},"trustedCertificates":{"type":"array","description":"Trusted certificates for connecting to endpoints.","items":{"type":"object","required":["pem"],"properties":{"pem":{"description":"PEM.","type":"string"}},"additionalProperties":false}}},"required":["name","type"],"anyOf":[{"required":["userInfoUrl"]},{"required":["introspectionEndpoint"]}],"additionalProperties":false}}}},"responses":{"200":{"description":"IDP server successfully updated."},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"IDP server does not exist."},"409":{"description":"IDP server with the specified userInfo URL already exists."},"500":{"description":"Internal error."}}},"delete":{"operationId":"deleteIdpServer","description":"Delete an IDP server","parameters":[{"in":"path","name":"idpServerId","required":true,"schema":{"type":"string"},"description":"The ID of the IDP server to be deleted."}],"responses":{"200":{"description":"IDP server deleted successfully."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"IDP server does not exist."},"500":{"description":"Internal error."}}}},"/clientauthsets":{"post":{"description":"Create a client authentication set.","operationId":"createClientAuthSet","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["controls"],"description":"Set of client authentication controls.","additionalProperties":false,"properties":{"controls":{"type":"array","description":"Array of required client authentication controls.","items":{"type":"string","description":"Client authentication control names.","enum":["sasl-oauth","sasl-credentials","mtls"]}}}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"description":"The ID of your newly created client authentication set.","type":"string"}}}}},"description":"Client authentication set successfully created."},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"409":{"description":"Provided client authentication set has an invalid combination of control types."},"500":{"description":"Internal error."}}},"get":{"description":"List all client authentication sets created by the current user in an organization.<br><br>\n","operationId":"readAllClientAuthSets","parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/maxPageSize"}],"responses":{"200":{"description":"Client authentication sets successfully listed.","headers":{"ei-pagination-total":{"$ref":"#/components/headers/ei-pagination-total"},"etag":{"$ref":"#/components/headers/etag"}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["id","organization","owner","controls"],"description":"Set of client authentication controls.","additionalProperties":false,"properties":{"id":{"description":"Unique client authentication set ID.","type":"string"},"organization":{"description":"Organization this client authentication set belongs to.","type":"string"},"owner":{"description":"Client authentication set owner.","type":"string"},"controls":{"type":"array","description":"Array of required client authentication controls.","items":{"type":"string","description":"Client authentication control names.","enum":["sasl-oauth","sasl-credentials","mtls"]}}}}}}}},"304":{"description":"Data not changed."},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}}},"/clientauthsets/{clientAuthSetId}":{"get":{"operationId":"readClientAuthSet","parameters":[{"in":"path","name":"clientAuthSetId","required":true,"schema":{"type":"string","maxLength":100,"minLength":1},"description":"The ID of the client authentication set."}],"responses":{"200":{"description":"The client authentication set.","content":{"application/json":{"schema":{"type":"object","required":["id","organization","owner","controls"],"description":"Set of client authentication controls.","additionalProperties":false,"properties":{"id":{"description":"Unique client authentication set ID.","type":"string"},"organization":{"description":"Organization this client authentication set belongs to.","type":"string"},"owner":{"description":"Client authentication set owner.","type":"string"},"controls":{"type":"array","description":"Array of required client authentication controls.","items":{"type":"string","description":"Client authentication control names.","enum":["sasl-oauth","sasl-credentials","mtls"]}}}}}}},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}},"delete":{"operationId":"deleteClientAuthSet","description":"Delete a client authentication set","parameters":[{"in":"path","name":"clientAuthSetId","required":true,"schema":{"type":"string"},"description":"The ID of the client authentication set to be deleted."}],"responses":{"200":{"description":"Client authentication set deleted successfully."},"400":{"description":"Unable to delete the final client authentication set. There must be at least one present."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"Client authentication set does not exist."},"500":{"description":"Internal error."}}}},"/developerportal/mappings":{"get":{"description":"List all mappings shared with Developer Portal in an organization.","operationId":"readDeveloperPortalMappings","parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/maxPageSize"}],"responses":{"200":{"description":"Mappings successfully listed.","headers":{"etag":{"$ref":"#/components/headers/etag"}},"content":{"application/json":{"schema":{"type":"object","required":["developerPortalApiToVirtualTopicIds","developerPortalAppToAppIds"],"additionalProperties":false,"properties":{"developerPortalApiToVirtualTopicIds":{"type":"array","items":{"type":"object","required":["developerPortalApi","virtualTopicId"],"additionalProperties":false,"properties":{"developerPortalApi":{"type":"string"},"virtualTopicId":{"type":"object","required":["optionId","eventSourceId"],"additionalProperties":false,"properties":{"optionId":{"type":"string"},"eventSourceId":{"type":"string"}}}}}},"developerPortalAppToAppIds":{"type":"array","items":{"type":"object","required":["developerPortalAppId","appId"],"additionalProperties":false,"properties":{"developerPortalAppId":{"type":"string"},"appId":{"type":"string"}}}}}}}}},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"No mappings exist."},"500":{"description":"Internal error."}}},"delete":{"description":"Delete all mappings that are shared with Developer Portal internally created in an organization.","operationId":"deleteDeveloperPortalMappings","responses":{"200":{"description":"Application subscriptions deleted successfully."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"No mappings exist."},"500":{"description":"Internal error."}}}},"/applications":{"post":{"description":"Create an application.","operationId":"createApplication","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","credentials","contact"],"description":"Application credentials used by a client to connect to one or more virtual topics.","additionalProperties":false,"properties":{"name":{"description":"The name of the application.","type":"string","minLength":1,"maxLength":200},"description":{"description":"The description of the application.","type":"string","maxLength":1500},"contact":{"description":"A contact for the owner of the application.","type":"string","minLength":1,"maxLength":200},"collaborators":{"type":"object","additionalProperties":false,"required":["groups"],"properties":{"groups":{"description":"List of collaborators for this application.","type":"array","items":{"type":"string","minLength":1,"maxLength":200}}}},"credentials":{"type":"object","description":"Application credentials used by a client to connect to one or more virtual topics.","additionalProperties":false,"properties":{"MTLS":{"description":"Details of the mTLS credentials in the application.","type":"array","items":{"type":"object","description":"MTLS credentials for an application.","additionalProperties":false,"required":["subjectCommonName"],"properties":{"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","minLength":1,"maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","minLength":1,"maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","minLength":1,"maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","minLength":1,"maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","minLength":1,"maxLength":200}}}},"SASL":{"description":"Details of the SASL credentials in the application.","type":"array","additionalProperties":false,"items":{"anyOf":[{"type":"object","required":["type","data"],"description":"SASL plain credentials a client uses to connect to an event gateway.","additionalProperties":false,"properties":{"type":{"description":"The type of SASL Credential.","type":"string","enum":["sasl-credentials"]},"data":{"additionalProperties":false,"required":["mechanism"],"description":"Credential data.","properties":{"mechanism":{"description":"SASL mechanism for the credentials.","type":"string","enum":["PLAIN"]}}}}},{"type":"object","required":["type","data"],"description":"SASL OAuth Subject of the OAuth client that is connecting to an event gateway.","additionalProperties":false,"properties":{"type":{"description":"The type of SASL credential.","type":"string","enum":["sasl-oauth"]},"data":{"additionalProperties":false,"required":["subject","mechanism"],"description":"Credential data.","properties":{"subject":{"description":"SASL OAuth subject.","type":"string","minLength":1,"maxLength":200},"mechanism":{"description":"SASL mechanism for the credentials.","type":"string","enum":["OAUTHBEARER"]}}}}}]}}},"anyOf":[{"required":["MTLS"]},{"required":["SASL"]}]}}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["id","name","credentials","virtualTopicIds","contact"],"description":"Application credentials used by a client to connect to one or more virtual topics.","additionalProperties":false,"properties":{"id":{"description":"The id of the application.","type":"string"},"organization":{"description":"Organization this application belongs to.","type":"string"},"owner":{"description":"Application owner.","type":"string"},"name":{"description":"The name of the application.","type":"string","minLength":1,"maxLength":200},"description":{"description":"The description of the application.","type":"string","maxLength":1500},"contact":{"description":"A contact for the owner of the application.","type":"string","minLength":1,"maxLength":200},"collaborators":{"type":"object","additionalProperties":false,"required":["groups"],"properties":{"groups":{"description":"List of collaborators for this application.","type":"array","items":{"type":"string","minLength":1,"maxLength":200}}}},"credentials":{"type":"object","description":"Application credentials used by a client to connect to one or more virtual topics.","additionalProperties":false,"properties":{"MTLS":{"description":"Details of the MTLS credentials in the application.","type":"array","additionalProperties":false,"items":{"type":"object","description":"mTLS credentials for an application.","additionalProperties":false,"required":["id","subjectCommonName"],"properties":{"id":{"description":"ID for this credential.","type":"string"},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","minLength":1,"maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","minLength":1,"maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","minLength":1,"maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","minLength":1,"maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","minLength":1,"maxLength":200}}}},"SASL":{"description":"Details of the SASL credentials in the application.","type":"array","additionalProperties":false,"items":{"anyOf":[{"type":"object","required":["id","type","data"],"description":"SASL plain credentials a client uses to connect to an event gateway. Username and password are generated and returned on create requests. Username only is returned on read requests.","additionalProperties":false,"properties":{"id":{"description":"ID for this credential.","type":"string"},"type":{"description":"The type of SASL credential.","type":"string","enum":["sasl-credentials"]},"data":{"additionalProperties":false,"required":["username","mechanism"],"description":"Credential data.","properties":{"username":{"description":"SASL username to authenticate with an event gateway.","type":"string"},"password":{"description":"SASL password to authenticate with an event gateway (present on CREATE only).","type":"string","minLength":1,"maxLength":200},"mechanism":{"description":"SASL mechanism for the credentials.","type":"string","enum":["PLAIN"]}}}}},{"type":"object","required":["id","type","data"],"description":"SASL OAuth Subject of the OAuth client that is connecting to an event gateway.","additionalProperties":false,"properties":{"id":{"description":"ID for this credential.","type":"string"},"type":{"description":"The type of SASL credential.","type":"string","enum":["sasl-oauth"]},"data":{"additionalProperties":false,"required":["subject","mechanism"],"description":"Credential data.","properties":{"subject":{"description":"SASL OAuth subject.","type":"string","minLength":1,"maxLength":200},"mechanism":{"description":"SASL mechanism for the credentials.","type":"string","minLength":1,"maxLength":200}}}}}]}}}},"virtualTopicIds":{"description":"The list of virtual topic IDs that this application gives access to.","type":"array","uniqueItems":true,"additionalProperties":false,"items":{"type":"string","minLength":1,"maxLength":200}}}}}},"description":"Application successfully created."},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"409":{"description":"Application could not be created due to a conflict."},"500":{"description":"Internal error."}}},"get":{"description":"List all applications created by the current user in an organization.<br><br>\n","operationId":"readAllApplications","parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/maxPageSize"},{"$ref":"#/components/parameters/filterByName"}],"responses":{"200":{"description":"Applications successfully listed.","headers":{"ei-pagination-total":{"$ref":"#/components/headers/ei-pagination-total"},"etag":{"$ref":"#/components/headers/etag"}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["id","name","credentials","virtualTopicIds","contact"],"description":"Application credentials used by a client to connect to one or more virtual topics.","additionalProperties":false,"properties":{"id":{"description":"The id of the application.","type":"string"},"organization":{"description":"Organization this application belongs to.","type":"string"},"owner":{"description":"Application owner.","type":"string"},"name":{"description":"The name of the application.","type":"string","minLength":1,"maxLength":200},"description":{"description":"The description of the application.","type":"string","maxLength":1500},"contact":{"description":"A contact for the owner of the application.","type":"string","minLength":1,"maxLength":200},"collaborators":{"type":"object","additionalProperties":false,"required":["groups"],"properties":{"groups":{"description":"List of collaborators for this application.","type":"array","items":{"type":"string","minLength":1,"maxLength":200}}}},"credentials":{"type":"object","description":"Application credentials used by a client to connect to one or more virtual topics.","additionalProperties":false,"properties":{"MTLS":{"description":"Details of the MTLS credentials in the application.","type":"array","additionalProperties":false,"items":{"type":"object","description":"mTLS credentials for an application.","additionalProperties":false,"required":["id","subjectCommonName"],"properties":{"id":{"description":"ID for this credential.","type":"string"},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","minLength":1,"maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","minLength":1,"maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","minLength":1,"maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","minLength":1,"maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","minLength":1,"maxLength":200}}}},"SASL":{"description":"Details of the SASL credentials in the application.","type":"array","additionalProperties":false,"items":{"anyOf":[{"type":"object","required":["id","type","data"],"description":"SASL plain credentials a client uses to connect to an event gateway. Username and password are generated and returned on create requests. Username only is returned on read requests.","additionalProperties":false,"properties":{"id":{"description":"ID for this credential.","type":"string"},"type":{"description":"The type of SASL credential.","type":"string","enum":["sasl-credentials"]},"data":{"additionalProperties":false,"required":["username","mechanism"],"description":"Credential data.","properties":{"username":{"description":"SASL username to authenticate with an event gateway.","type":"string"},"password":{"description":"SASL password to authenticate with an event gateway (present on CREATE only).","type":"string","minLength":1,"maxLength":200},"mechanism":{"description":"SASL mechanism for the credentials.","type":"string","enum":["PLAIN"]}}}}},{"type":"object","required":["id","type","data"],"description":"SASL OAuth Subject of the OAuth client that is connecting to an event gateway.","additionalProperties":false,"properties":{"id":{"description":"ID for this credential.","type":"string"},"type":{"description":"The type of SASL credential.","type":"string","enum":["sasl-oauth"]},"data":{"additionalProperties":false,"required":["subject","mechanism"],"description":"Credential data.","properties":{"subject":{"description":"SASL OAuth subject.","type":"string","minLength":1,"maxLength":200},"mechanism":{"description":"SASL mechanism for the credentials.","type":"string","minLength":1,"maxLength":200}}}}}]}}}},"virtualTopicIds":{"description":"The list of virtual topic IDs that this application gives access to.","type":"array","uniqueItems":true,"additionalProperties":false,"items":{"type":"string","minLength":1,"maxLength":200}}}}}}}},"304":{"description":"Data not changed."},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}}},"/applications/{applicationId}":{"get":{"operationId":"readApplication","parameters":[{"$ref":"#/components/parameters/applicationId"}],"responses":{"200":{"description":"The application.","content":{"application/json":{"schema":{"type":"object","required":["id","name","credentials","virtualTopicIds","contact"],"description":"Application credentials used by a client to connect to one or more virtual topics.","additionalProperties":false,"properties":{"id":{"description":"The id of the application.","type":"string"},"organization":{"description":"Organization this application belongs to.","type":"string"},"owner":{"description":"Application owner.","type":"string"},"name":{"description":"The name of the application.","type":"string","minLength":1,"maxLength":200},"description":{"description":"The description of the application.","type":"string","maxLength":1500},"contact":{"description":"A contact for the owner of the application.","type":"string","minLength":1,"maxLength":200},"collaborators":{"type":"object","additionalProperties":false,"required":["groups"],"properties":{"groups":{"description":"List of collaborators for this application.","type":"array","items":{"type":"string","minLength":1,"maxLength":200}}}},"credentials":{"type":"object","description":"Application credentials used by a client to connect to one or more virtual topics.","additionalProperties":false,"properties":{"MTLS":{"description":"Details of the MTLS credentials in the application.","type":"array","additionalProperties":false,"items":{"type":"object","description":"mTLS credentials for an application.","additionalProperties":false,"required":["id","subjectCommonName"],"properties":{"id":{"description":"ID for this credential.","type":"string"},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","minLength":1,"maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","minLength":1,"maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","minLength":1,"maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","minLength":1,"maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","minLength":1,"maxLength":200}}}},"SASL":{"description":"Details of the SASL credentials in the application.","type":"array","additionalProperties":false,"items":{"anyOf":[{"type":"object","required":["id","type","data"],"description":"SASL plain credentials a client uses to connect to an event gateway. Username and password are generated and returned on create requests. Username only is returned on read requests.","additionalProperties":false,"properties":{"id":{"description":"ID for this credential.","type":"string"},"type":{"description":"The type of SASL credential.","type":"string","enum":["sasl-credentials"]},"data":{"additionalProperties":false,"required":["username","mechanism"],"description":"Credential data.","properties":{"username":{"description":"SASL username to authenticate with an event gateway.","type":"string"},"password":{"description":"SASL password to authenticate with an event gateway (present on CREATE only).","type":"string","minLength":1,"maxLength":200},"mechanism":{"description":"SASL mechanism for the credentials.","type":"string","enum":["PLAIN"]}}}}},{"type":"object","required":["id","type","data"],"description":"SASL OAuth Subject of the OAuth client that is connecting to an event gateway.","additionalProperties":false,"properties":{"id":{"description":"ID for this credential.","type":"string"},"type":{"description":"The type of SASL credential.","type":"string","enum":["sasl-oauth"]},"data":{"additionalProperties":false,"required":["subject","mechanism"],"description":"Credential data.","properties":{"subject":{"description":"SASL OAuth subject.","type":"string","minLength":1,"maxLength":200},"mechanism":{"description":"SASL mechanism for the credentials.","type":"string","minLength":1,"maxLength":200}}}}}]}}}},"virtualTopicIds":{"description":"The list of virtual topic IDs that this application gives access to.","type":"array","uniqueItems":true,"additionalProperties":false,"items":{"type":"string","minLength":1,"maxLength":200}}}}}}},"400":{"description":"Invalid request, only one of page and maxPageSize were supplied or max page size exceeded."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"Application does not exist."},"500":{"description":"Internal error."}}},"put":{"operationId":"updateApplication","description":"Update an application.","parameters":[{"$ref":"#/components/parameters/applicationId"}],"requestBody":{"description":"Application data.","required":true,"content":{"application/json":{"schema":{"type":"object","description":"Application credentials used by a client to connect to one or more virtual topics.","required":["name","contact"],"additionalProperties":false,"properties":{"name":{"description":"The name of the application.","type":"string","minLength":1,"maxLength":200},"description":{"description":"The description of the application.","type":"string","maxLength":1500},"contact":{"description":"A contact for the owner of the application.","type":"string","minLength":1,"maxLength":200},"collaborators":{"type":"object","additionalProperties":false,"required":["groups"],"properties":{"groups":{"description":"List of collaborators for this application.","type":"array","items":{"type":"string","minLength":1,"maxLength":200}}}}}}}}},"responses":{"200":{"description":"Application successfully updated."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"Application does not exist."},"409":{"description":"Application name already in use."},"500":{"description":"Internal error."}}},"delete":{"operationId":"deleteApplication","description":"Delete an application","parameters":[{"$ref":"#/components/parameters/applicationId"}],"responses":{"200":{"description":"Application deleted successfully."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"Application does not exist."},"500":{"description":"Internal error."}}}},"/applications/requests":{"get":{"operationId":"applicationApprovalRequestList","description":"Get all approval requests for all applications owned by this user.","parameters":[{"$ref":"#/components/parameters/filterByStatus"}],"responses":{"200":{"description":"List that contains information about the user's approval requests.","headers":{"etag":{"$ref":"#/components/headers/etag"}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["id","contact","justification","status","sourceTopic","virtualTopic"],"additionalProperties":false,"properties":{"id":{"description":"Unique approval Request ID.","type":"string"},"lastUpdated":{"description":"Unix Epoch timestamp of when this approval Request was last updated","type":"integer"},"contact":{"description":"The contact details of the raiser of this approval Request.","type":"string"},"applicationId":{"description":"The application Id if this request is for an application subscription.","type":"string"},"justification":{"description":"The justification for this approval Request.","type":"string"},"status":{"description":"The status of this approval request.","type":"string","enum":["pending","approved","rejected","fulfilled"]},"sourceTopic":{"description":"Information about the Source Topic this Request is for.","type":"object","required":["id","name"],"properties":{"id":{"description":"Unique Source Topic ID.","type":"string"},"name":{"description":"Source Topic name.","type":"string"}}},"virtualTopic":{"description":"Information about the Virtual Topic this approval Request is for.","type":"object","required":["id","name"],"properties":{"id":{"description":"Unique Virtual Topic ID.","type":"string"},"name":{"description":"Virtual Topic name.","type":"string"}}}}}}}}},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"Option does not exist."},"500":{"description":"Internal error."}}}},"/applications/{applicationId}/credentials":{"post":{"description":"Create application credentials.","operationId":"createApplicationCredentials","parameters":[{"$ref":"#/components/parameters/applicationId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Application credentials used by a client to connect to one or more virtual topics.","additionalProperties":false,"properties":{"MTLS":{"description":"Details of the mTLS credentials in the application.","type":"array","items":{"type":"object","description":"MTLS credentials for an application.","additionalProperties":false,"required":["subjectCommonName"],"properties":{"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","minLength":1,"maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","minLength":1,"maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","minLength":1,"maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","minLength":1,"maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","minLength":1,"maxLength":200}}}},"SASL":{"description":"Details of the SASL credentials in the application.","type":"array","additionalProperties":false,"items":{"anyOf":[{"type":"object","required":["type","data"],"description":"SASL plain credentials a client uses to connect to an event gateway.","additionalProperties":false,"properties":{"type":{"description":"The type of SASL Credential.","type":"string","enum":["sasl-credentials"]},"data":{"additionalProperties":false,"required":["mechanism"],"description":"Credential data.","properties":{"mechanism":{"description":"SASL mechanism for the credentials.","type":"string","enum":["PLAIN"]}}}}},{"type":"object","required":["type","data"],"description":"SASL OAuth Subject of the OAuth client that is connecting to an event gateway.","additionalProperties":false,"properties":{"type":{"description":"The type of SASL credential.","type":"string","enum":["sasl-oauth"]},"data":{"additionalProperties":false,"required":["subject","mechanism"],"description":"Credential data.","properties":{"subject":{"description":"SASL OAuth subject.","type":"string","minLength":1,"maxLength":200},"mechanism":{"description":"SASL mechanism for the credentials.","type":"string","enum":["OAUTHBEARER"]}}}}}]}}},"anyOf":[{"required":["MTLS"]},{"required":["SASL"]}]}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","description":"Application credentials used by a client to connect to one or more virtual topics.","additionalProperties":false,"properties":{"MTLS":{"description":"Details of the MTLS credentials in the application.","type":"array","additionalProperties":false,"items":{"type":"object","description":"mTLS credentials for an application.","additionalProperties":false,"required":["id","subjectCommonName"],"properties":{"id":{"description":"ID for this credential.","type":"string"},"subjectCommonName":{"description":"Subject Common Name to match on.","type":"string","minLength":1,"maxLength":200},"subjectOrganization":{"description":"Subject Organization to match on.","type":"string","minLength":1,"maxLength":200},"subjectCountry":{"description":"Subject Country to match on.","type":"string","minLength":1,"maxLength":200},"subjectStateOrProvince":{"description":"Subject Region to match on.","type":"string","minLength":1,"maxLength":200},"subjectLocality":{"description":"Subject Locality to match on.","type":"string","minLength":1,"maxLength":200}}}},"SASL":{"description":"Details of the SASL credentials in the application.","type":"array","additionalProperties":false,"items":{"anyOf":[{"type":"object","required":["id","type","data"],"description":"SASL plain credentials a client uses to connect to an event gateway. Username and password are generated and returned on create requests. Username only is returned on read requests.","additionalProperties":false,"properties":{"id":{"description":"ID for this credential.","type":"string"},"type":{"description":"The type of SASL credential.","type":"string","enum":["sasl-credentials"]},"data":{"additionalProperties":false,"required":["username","mechanism"],"description":"Credential data.","properties":{"username":{"description":"SASL username to authenticate with an event gateway.","type":"string"},"password":{"description":"SASL password to authenticate with an event gateway (present on CREATE only).","type":"string","minLength":1,"maxLength":200},"mechanism":{"description":"SASL mechanism for the credentials.","type":"string","enum":["PLAIN"]}}}}},{"type":"object","required":["id","type","data"],"description":"SASL OAuth Subject of the OAuth client that is connecting to an event gateway.","additionalProperties":false,"properties":{"id":{"description":"ID for this credential.","type":"string"},"type":{"description":"The type of SASL credential.","type":"string","enum":["sasl-oauth"]},"data":{"additionalProperties":false,"required":["subject","mechanism"],"description":"Credential data.","properties":{"subject":{"description":"SASL OAuth subject.","type":"string","minLength":1,"maxLength":200},"mechanism":{"description":"SASL mechanism for the credentials.","type":"string","minLength":1,"maxLength":200}}}}}]}}}}}},"description":"Application credentials successfully created."},"400":{"description":"Bad input."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"500":{"description":"Internal error."}}}},"/applications/{applicationId}/credentials/{credentialsId}":{"delete":{"operationId":"deleteApplicationCredentials","description":"Delete application credentials","parameters":[{"$ref":"#/components/parameters/applicationId"},{"$ref":"#/components/parameters/credentialsId"}],"responses":{"200":{"description":"Application credential deleted successfully."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"Application or application credential does not exist."},"500":{"description":"Internal error."}}}},"/applications/{applicationId}/subscriptions":{"post":{"description":"Create an application subscription.","operationId":"createApplicationSubscription","parameters":[{"$ref":"#/components/parameters/applicationId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["virtualTopicId"],"properties":{"virtualTopicId":{"description":"The ID of the virtual topic the application subscription is for.","type":"string","minLength":1,"maxLength":250}}}}}},"responses":{"200":{"description":"Application subscription created successfully."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"409":{"description":"Application subscription already exists."},"500":{"description":"Internal error."}}}},"/applications/{applicationId}/subscriptions/{virtualTopicId}":{"delete":{"operationId":"deleteApplicationSubscription","description":"Delete an application subscription","parameters":[{"$ref":"#/components/parameters/applicationId"},{"$ref":"#/components/parameters/virtualTopicId"}],"responses":{"200":{"description":"Application subscription deleted successfully."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"Application subscription does not exist."},"500":{"description":"Internal error."}}}},"/applications/{applicationId}/requests":{"get":{"description":"Get all approval requests for an application.","operationId":"listApplicationSubscriptionApprovalRequests","parameters":[{"$ref":"#/components/parameters/applicationId"}],"responses":{"200":{"description":"Application approval requests read successfully.","headers":{"ei-pagination-total":{"$ref":"#/components/headers/ei-pagination-total"},"etag":{"$ref":"#/components/headers/etag"}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["description","contact","status","virtualTopicId"],"additionalProperties":false,"properties":{"justification":{"description":"Justification of why the request was made.","type":"string","maxLength":1500},"contact":{"description":"Contact details of the person making the request.","type":"string"},"virtualTopicId":{"description":"The virtual topic ID that this approval request is for.","type":"string"},"status":{"description":"Status of the request [pending, approved, rejected, fulfilled].","type":"string","enum":["pending","approved","rejected","fulfilled"]}}}}}}},"400":{"description":"Unable to list approval requests for this application."},"401":{"description":"Not authorized, successful login required."},"403":{"description":"Access denied for this user or role."},"404":{"description":"This application does not exist."},"500":{"description":"Internal error."}}}}},"security":[{"eemAccessToken":[]}]}