{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/ibm-api-connect/json-schema/ibm-api-connect-policy-schema.json",
  "title": "Policy",
  "x-generated": "2026-10-29",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/ibm-api-connect-catalog-resources-api-openapi.yml#/components/schemas/Policy",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "readOnly": true,
      "enum": [
        "policy"
      ]
    },
    "api_version": {
      "type": "string",
      "readOnly": true,
      "enum": [
        "2.0.0"
      ]
    },
    "id": {
      "type": "string",
      "readOnly": true
    },
    "name": {
      "type": "string",
      "maxLength": 255
    },
    "version": {
      "type": "string",
      "maxLength": 255
    },
    "title": {
      "type": "string",
      "maxLength": 1023
    },
    "summary": {
      "type": "string",
      "maxLength": 65535
    },
    "scope": {
      "type": "string"
    },
    "state": {
      "type": "string",
      "enum": [
        "public",
        "private"
      ]
    },
    "custom": {
      "type": "boolean"
    },
    "instance": {
      "type": "boolean"
    },
    "policy": {
      "$ref": "#/$defs/PolicyDocument"
    },
    "implementation": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "content_type",
        "content"
      ],
      "properties": {
        "content_type": {
          "type": "string",
          "enum": [
            "application/zip"
          ]
        },
        "content": {
          "type": "string",
          "format": "binary"
        }
      }
    },
    "attachments": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "content_type",
          "content"
        ],
        "properties": {
          "content_type": {
            "type": "string",
            "description": "MIME type of the attached file"
          },
          "content": {
            "type": "string",
            "format": "binary",
            "description": "Binary content of the attached file"
          },
          "filename": {
            "type": "string",
            "description": "Original filename of the attachment"
          }
        }
      }
    },
    "policy_kind": {
      "$ref": "#/$defs/PolicyInstance"
    },
    "api_urls": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      }
    },
    "global_policy_urls": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      }
    },
    "org_url": {
      "type": "string",
      "format": "uri"
    },
    "catalog_url": {
      "type": "string",
      "format": "uri"
    },
    "space_url": {
      "type": "string",
      "format": "uri"
    },
    "gateway_service_url": {
      "type": "string",
      "format": "uri"
    },
    "metadata": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "readOnly": true
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "readOnly": true
    },
    "url": {
      "type": "string",
      "readOnly": true,
      "format": "uri"
    }
  },
  "$defs": {
    "PolicyDocument": {
      "type": "object",
      "additionalProperties": true
    },
    "PolicyInstance": {
      "oneOf": [
        {
          "$ref": "#/$defs/ProjectAWSLambda"
        },
        {
          "$ref": "#/$defs/ProjectValidateAPISpecification"
        },
        {
          "$ref": "#/$defs/ProjectUriSchemes"
        },
        {
          "$ref": "#/$defs/ProjectInvoke"
        },
        {
          "$ref": "#/$defs/ProjectLoadBalancer"
        },
        {
          "$ref": "#/$defs/ProjectSetAuthorization"
        },
        {
          "$ref": "#/$defs/ProjectStagedPolicySequence"
        },
        {
          "$ref": "#/$defs/ProjectInboundBulkHead"
        },
        {
          "$ref": "#/$defs/ProjectInboundBulkHeadV2"
        },
        {
          "$ref": "#/$defs/ProjectSetMediaType"
        },
        {
          "$ref": "#/$defs/ProjectInboundMessaging"
        },
        {
          "$ref": "#/$defs/ProjectIAM"
        },
        {
          "$ref": "#/$defs/ProjectAuthorizeUser"
        },
        {
          "$ref": "#/$defs/ProjectSetContextVariable"
        },
        {
          "$ref": "#/$defs/ProjectWebMethodsISService"
        },
        {
          "$ref": "#/$defs/ProjectWebMethodsISServiceV2"
        },
        {
          "$ref": "#/$defs/ProjectLogInvocation"
        },
        {
          "$ref": "#/$defs/ProjectMonitorTraffic"
        },
        {
          "$ref": "#/$defs/ProjectServiceResultCache"
        },
        {
          "$ref": "#/$defs/ProjectOutboundAlias"
        },
        {
          "$ref": "#/$defs/ProjectOutboundAnonymous"
        },
        {
          "$ref": "#/$defs/ProjectHTTPInvoke"
        },
        {
          "$ref": "#/$defs/ProjectInvokeMessagingExtension"
        },
        {
          "$ref": "#/$defs/ProjectDataMasking"
        },
        {
          "$ref": "#/$defs/ProjectRequestProcessing"
        },
        {
          "$ref": "#/$defs/ProjectResponseProcessing"
        },
        {
          "$ref": "#/$defs/ProjectRoute"
        },
        {
          "$ref": "#/$defs/ProjectMessageConfig"
        },
        {
          "$ref": "#/$defs/ProjectHTTPEndpoint"
        },
        {
          "$ref": "#/$defs/ProjectHTTPEndpointV2"
        },
        {
          "$ref": "#/$defs/ProjectMockEndpoint"
        },
        {
          "$ref": "#/$defs/ProjectMockEndpointV2"
        },
        {
          "$ref": "#/$defs/ProjectMockResponse"
        },
        {
          "$ref": "#/$defs/ProjectErrorProcessing"
        },
        {
          "$ref": "#/$defs/ProjectSet"
        },
        {
          "$ref": "#/$defs/ProjectRateLimit"
        },
        {
          "$ref": "#/$defs/ProjectRateLimitDefinition"
        },
        {
          "$ref": "#/$defs/ProjectScope"
        },
        {
          "$ref": "#/$defs/ProjectScopeV2"
        },
        {
          "$ref": "#/$defs/ProjectCORS"
        }
      ]
    },
    "ProjectAWSLambda": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "InvokeAWSLambda"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "functionName": {
              "description": "Name of the AWS Lambda function",
              "type": "string"
            },
            "qualifier": {
              "description": "Version of the AWS Lambda function",
              "type": "string"
            },
            "invocationType": {
              "type": "string",
              "enum": [
                "requestResponse",
                "event"
              ]
            },
            "region": {
              "type": "string"
            },
            "awsAuthType": {
              "type": "object",
              "properties": {
                "accessSecret": {
                  "type": "string"
                }
              }
            },
            "tlsClientProfile": {
              "type": "string"
            },
            "input": {
              "type": "string"
            },
            "output": {
              "type": "string"
            },
            "clientConfig": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "socketTimeout": {
                  "type": "integer"
                },
                "connectionTimeout": {
                  "type": "integer"
                },
                "requestTimeout": {
                  "type": "integer"
                },
                "clientExecutionTimeout": {
                  "type": "integer"
                },
                "clientRetryCount": {
                  "type": "integer"
                },
                "connectionExpirationTimeout": {
                  "type": "integer"
                },
                "enableExpectContinue": {
                  "type": "boolean"
                },
                "enableGzip": {
                  "type": "boolean"
                },
                "enableHostPrefixInjection": {
                  "type": "boolean"
                },
                "maxConnectionIdleTime": {
                  "type": "integer"
                },
                "responseMetadataCacheSize": {
                  "type": "integer"
                },
                "enableThrottledRetries": {
                  "type": "boolean"
                },
                "enableKeepAlive": {
                  "type": "boolean"
                },
                "enableResponseMetadataCache": {
                  "type": "boolean"
                },
                "signatureAlgorithm": {
                  "type": "string"
                },
                "tcpSendBufferSizeHint": {
                  "type": "integer"
                },
                "tcpReceiveBufferSizeHint": {
                  "type": "integer"
                }
              }
            },
            "extensions": {
              "type": "object",
              "properties": {
                "dp-nano-gateway": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "apiVersion": {
                      "type": "string"
                    },
                    "spec": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "clientConfig": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "serverRetryCount": {
                              "type": "integer"
                            }
                          }
                        },
                        "telemetry": {
                          "$ref": "#/$defs/ProjectNanoGwTelemetry"
                        }
                      }
                    }
                  }
                },
                "webm-gateway": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "apiVersion": {
                      "type": "string"
                    },
                    "spec": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "condition": {
                          "type": "string"
                        },
                        "lambdaConfig": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "alias": {
                              "type": "string"
                            }
                          }
                        },
                        "clientConfig": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "retryOnErrorCount": {
                              "type": "integer"
                            }
                          }
                        },
                        "request_processing": {
                          "$ref": "#/$defs/ProjectInvokeRequestProcessingSchema"
                        },
                        "response_processing": {
                          "$ref": "#/$defs/ProjectInvokeResponseProcessingSchema"
                        },
                        "namespaces": {
                          "$ref": "#/$defs/ProjectNamespaces"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectAuthorizeUser": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "AuthorizeUser"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "users": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "groups": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "teams": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "ProjectCORS": {
      "description": "The CORS related information is captured in the message CORS",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "CORS"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "rules"
          ],
          "properties": {
            "rules": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "object",
                "required": [
                  "action",
                  "originList"
                ],
                "additionalProperties": false,
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "allow",
                      "deny"
                    ]
                  },
                  "originList": {
                    "description": "Multiple instances of allowed origins can be given",
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "string"
                    }
                  },
                  "allowCredentials": {
                    "description": "Credential can be allowed or not allowed",
                    "type": "boolean"
                  },
                  "allowMethods": {
                    "description": "Multiple instances allowed methods can be given",
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "string"
                    },
                    "uniqueItems": true
                  },
                  "allowHeaders": {
                    "description": "Multiple instances of allowed headers can be given",
                    "minItems": 1,
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "maxAge": {
                    "description": "Single instance of maximum age can be given",
                    "maximum": 4294967295,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "exposeHeaders": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "predefined": {
                        "type": "boolean"
                      },
                      "custom": {
                        "type": "string"
                      },
                      "backend": {
                        "type": "boolean"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectDataMasking": {
      "description": "The Data Masking related information is captured in the message Data masking",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "DataMasking"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "applyForPayload": {
              "description": "Apply for pay load can be enabled or disabled",
              "type": "boolean"
            },
            "applyForTransactionLogging": {
              "description": "Apply for transaction logging can be enabled or disabled",
              "type": "boolean"
            },
            "enabled": {
              "description": "Can be enabled or disabled",
              "type": "boolean"
            },
            "matchApplications": {
              "description": "Multiple instance of match applications can be given",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "transformations": {
              "description": "single instance of transformation can be given",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "remove": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "jpath": {
                        "type": "string"
                      },
                      "regex": {
                        "type": "string"
                      },
                      "xpath": {
                        "type": "string"
                      },
                      "namespaces": {
                        "$ref": "#/$defs/ProjectNamespaces"
                      }
                    }
                  }
                },
                "set": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "jpath": {
                        "type": "string"
                      },
                      "maskValue": {
                        "type": "string"
                      },
                      "namespaces": {
                        "$ref": "#/$defs/ProjectNamespaces"
                      },
                      "regex": {
                        "type": "string"
                      },
                      "xpath": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectDestinationsList": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "string",
            "enum": [
              "api_gateway",
              "dev_portals",
              "snmp",
              "jdbc",
              "centraSite",
              "elasticsearch",
              "auditLog",
              "apic"
            ]
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "email": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "email"
                }
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "log-file": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "level": {
                    "type": "string",
                    "enum": [
                      "info",
                      "debug",
                      "warn",
                      "error"
                    ]
                  }
                }
              }
            }
          }
        ]
      }
    },
    "ProjectErrorProcessing": {
      "description": "The Conditional Error Handling related information is captured in the message ConditionalErrorProcessing.",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "ErrorProcessing"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "enabled": {
              "description": "Can be enabled or disabled",
              "type": "boolean"
            },
            "condition": {
              "description": "Single instance of condition can be given",
              "type": "string"
            },
            "pre-processing": {
              "description": "Field 'pre_processing' with JSON name 'pre-processing' accepts the value of either 'pre_processing' or 'pre-processing' from the YAML file.\nIf both 'pre_processing' and 'pre-processing' are specified, the value of 'pre-processing' takes priority.\nMultiple instances of pre processing can be given with JSON name \"pre-processing\".",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "webMethodsISService": {
                  "$ref": "#/$defs/ProjectReferenceList"
                },
                "xsl": {
                  "$ref": "#/$defs/ProjectXslSchema"
                }
              }
            },
            "transformations": {
              "$ref": "#/$defs/ProjectErrorProcessingTransformationsSchema"
            },
            "post-processing": {
              "description": "Field 'post_processing' with JSON name 'post-processing' accepts the value of either 'post_processing' or 'post-processing' from the YAML file.\nIf both 'post_processing' and 'post-processing' are specified, the value of 'post-processing' takes priority.\nMultiple instances of post processing can be given with JSON name 'post-processing\".",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "webMethodsISService": {
                  "$ref": "#/$defs/ProjectReferenceList"
                },
                "xsl": {
                  "$ref": "#/$defs/ProjectXslSchema"
                }
              }
            }
          }
        }
      }
    },
    "ProjectErrorProcessingTransformationsSchema": {
      "description": "Single instance of transformation can be given",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "set": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            }
          }
        },
        "remove": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "setPayload": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "content-types": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            "defaultContentType": {
              "type": "string"
            },
            "xsl": {
              "$ref": "#/$defs/ProjectXslSchema"
            }
          }
        },
        "namespaces": {
          "$ref": "#/$defs/ProjectNamespaces"
        },
        "sendNativeError": {
          "type": "boolean"
        }
      }
    },
    "ProjectHTTPEndpoint": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "HTTPEndpoint"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string",
          "enum": [
            "api.ibm.com/v1"
          ]
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "url": {
              "type": "string"
            },
            "method": {
              "type": "string"
            },
            "connectTimeout": {
              "maximum": 4294967295,
              "minimum": 0,
              "type": "integer"
            },
            "readTimeout": {
              "maximum": 4294967295,
              "minimum": 0,
              "type": "integer"
            },
            "nativeServiceTimeout": {
              "maximum": 4294967295,
              "minimum": 0,
              "type": "integer"
            },
            "serviceRegistryParameters": {
              "type": "array",
              "items": {
                "description": "The message specified the information related to SSL Configuration",
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                }
              }
            },
            "sslConfig": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "keyAlias": {
                  "type": "string"
                },
                "keyStoreAlias": {
                  "type": "string"
                },
                "trustStoreAlias": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "ProjectHTTPEndpointV2": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "HTTPEndpoint"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string",
          "enum": [
            "api.ibm.com/v2"
          ]
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "url": {
              "type": "string"
            },
            "method": {
              "type": "string"
            },
            "connectTimeout": {
              "maximum": 4294967295,
              "minimum": 0,
              "type": "integer"
            },
            "readTimeout": {
              "maximum": 4294967295,
              "minimum": 0,
              "type": "integer"
            },
            "nativeServiceTimeout": {
              "maximum": 4294967295,
              "minimum": 0,
              "type": "integer"
            },
            "serviceRegistryParameters": {
              "type": "array",
              "items": {
                "description": "A key-value pair specifying an SSL configuration parameter.",
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                }
              }
            },
            "tlsClientProfile": {
              "type": "string"
            }
          }
        }
      }
    },
    "ProjectHTTPInvoke": {
      "description": "The HTTP Invoke related information is captured in the message HTTPInvoke",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "HTTPInvoke"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "enabled": {
              "description": "Can be enabled or disabled",
              "type": "boolean"
            },
            "condition": {
              "type": "string"
            },
            "endpoint": {
              "$ref": "#/$defs/ProjectReference"
            },
            "namespaces": {
              "$ref": "#/$defs/ProjectNamespaces"
            },
            "request_processing": {
              "$ref": "#/$defs/ProjectInvokeRequestProcessingSchema"
            },
            "response_processing": {
              "$ref": "#/$defs/ProjectInvokeResponseProcessingSchema"
            }
          }
        }
      }
    },
    "ProjectIAM": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "IAM"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "accessControl": {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "httpBasic": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "applicationSecurity": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "authorize",
                                    "identify",
                                    "authenticate"
                                  ]
                                }
                              }
                            },
                            "credentialLocation": {
                              "type": "object",
                              "properties": {
                                "httpHeader": {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    }
                                  }
                                }
                              }
                            },
                            "credentialRegistry": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "userGroupAuthorization": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "requiredGroups": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "apiKey": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "applicationSecurity": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "authorize",
                                    "identify",
                                    "authenticate"
                                  ]
                                }
                              }
                            },
                            "credentialLocation": {
                              "type": "object",
                              "properties": {
                                "httpHeader": {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "oauth": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "applicationSecurity": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "authorize",
                                    "identify",
                                    "authenticate"
                                  ]
                                }
                              }
                            },
                            "credentialLocation": {
                              "type": "object",
                              "properties": {
                                "httpHeader": {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    }
                                  }
                                }
                              }
                            },
                            "providers": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "introspectionCredentials": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "idHeader": {
                                  "type": "string"
                                },
                                "secretheader": {
                                  "type": "string"
                                }
                              }
                            },
                            "audClaim": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "requiredScopes": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "provider": {
                                    "type": "string"
                                  },
                                  "scopes": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "jwt": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "applicationSecurity": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "authorize",
                                    "identify",
                                    "authenticate"
                                  ]
                                }
                              }
                            },
                            "credentialLocation": {
                              "type": "object",
                              "properties": {
                                "httpHeader": {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    }
                                  }
                                }
                              }
                            },
                            "providers": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "requiredClaims": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "provider": {
                                    "type": "string"
                                  },
                                  "claims": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "name": {
                                          "type": "string"
                                        },
                                        "value": {
                                          "type": "string"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "hostname": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "applicationSecurity": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "authorize",
                                    "identify",
                                    "authenticate"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "ipAddress": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "applicationSecurity": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "authorize",
                                    "identify",
                                    "authenticate"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "certificate": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "applicationSecurity": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "authorize",
                                    "identify",
                                    "authenticate"
                                  ]
                                }
                              }
                            },
                            "credentialLocation": {
                              "type": "object",
                              "properties": {
                                "httpHeader": {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "payloadElement": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "name": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "httpHeaders": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "applicationSecurity": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "authorize",
                                    "identify",
                                    "authenticate"
                                  ]
                                }
                              }
                            },
                            "credentialLocation": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              }
            },
            "extensions": {
              "type": "object",
              "properties": {
                "dp-nano-gateway": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "apiVersion": {
                      "type": "string"
                    },
                    "spec": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "securityNamespace": {
                          "type": "string"
                        },
                        "accessControl": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "payloadElement": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "type": "string"
                                  },
                                  "applicationSecurity": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "mode": {
                                        "type": "string",
                                        "enum": [
                                          "authorize",
                                          "identify",
                                          "authenticate"
                                        ]
                                      }
                                    }
                                  },
                                  "credentialLocation": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                          "regex": {
                                            "type": "string"
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                          "jsonata": {
                                            "type": "string"
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "webm-gateway": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "apiVersion": {
                      "type": "string"
                    },
                    "spec": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "authenticationMode": {
                          "type": "string",
                          "enum": [
                            "ANY",
                            "ALL"
                          ]
                        },
                        "allowAnonymous": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {}
                        },
                        "triggerPolicyViolation": {
                          "type": "boolean"
                        },
                        "accessControl": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "kerberos": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "applicationSecurity": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "mode": {
                                      "type": "string",
                                      "enum": [
                                        "authorize",
                                        "identify",
                                        "authenticate"
                                      ]
                                    }
                                  }
                                },
                                "servicePrincipleName": {
                                  "type": "string"
                                },
                                "servicePrinciplePassword": {
                                  "type": "string"
                                }
                              }
                            },
                            "openIdConnect": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "applicationSecurity": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "mode": {
                                      "type": "string",
                                      "enum": [
                                        "authorize",
                                        "identify",
                                        "authenticate"
                                      ]
                                    }
                                  }
                                }
                              }
                            },
                            "payloadElement": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "applicationSecurity": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "mode": {
                                      "type": "string",
                                      "enum": [
                                        "authorize",
                                        "identify",
                                        "authenticate"
                                      ]
                                    }
                                  }
                                },
                                "payLoadIdentifier": {
                                  "type": "array",
                                  "items": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "required": [
                                          "jPath"
                                        ],
                                        "additionalProperties": false,
                                        "properties": {
                                          "jPath": {
                                            "type": "string"
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "xpath"
                                        ],
                                        "additionalProperties": false,
                                        "properties": {
                                          "xpath": {
                                            "type": "string"
                                          },
                                          "namespaces": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "additionalProperties": false,
                                              "properties": {
                                                "prefix": {
                                                  "type": "string"
                                                },
                                                "URI": {
                                                  "type": "string"
                                                }
                                              }
                                            }
                                          }
                                        }
                                      },
                                      {
                                        "type": "object",
                                        "required": [
                                          "regex"
                                        ],
                                        "additionalProperties": false,
                                        "properties": {
                                          "regex": {
                                            "type": "string"
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            },
                            "wsSecurityUsernameToken": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "applicationSecurity": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "mode": {
                                      "type": "string",
                                      "enum": [
                                        "authorize",
                                        "identify",
                                        "authenticate"
                                      ]
                                    }
                                  }
                                }
                              }
                            },
                            "wsSecurityX509Certificate": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "applicationSecurity": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "mode": {
                                      "type": "string",
                                      "enum": [
                                        "authorize",
                                        "identify",
                                        "authenticate"
                                      ]
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectInboundBulkHead": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "InboundBulkHead"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string",
          "enum": [
            "api.ibm.com/v1"
          ]
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "maxConcurrentCalls": {
              "type": "integer"
            },
            "enableBulkheadForCallbacks": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "maxConcurrentCallbacks": {
                  "type": "integer"
                }
              }
            },
            "retryAfterResponseHeader": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "retryAfterValue": {
                  "type": "integer"
                }
              }
            }
          }
        }
      }
    },
    "ProjectInboundBulkHeadV2": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "InboundBulkHead"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string",
          "enum": [
            "api.ibm.com/v2"
          ]
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "maxConcurrentCalls",
            "retryAfterResponseHeader"
          ],
          "properties": {
            "maxConcurrentCalls": {
              "type": "integer"
            },
            "retryAfterResponseHeader": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "retryAfterValue": {
                  "type": "integer"
                }
              }
            },
            "rest": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "enableBulkheadForCallbacks": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "maxConcurrentCallbacks": {
                      "type": "integer"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectInboundMessaging": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "InboundMessaging"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "alias": {
              "type": "string"
            },
            "source": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "QUEUE",
                      "TOPIC"
                    ]
                  },
                  "selector": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "resource": {
                    "type": "string"
                  },
                  "httpMethod": {
                    "type": "string",
                    "enum": [
                      "GET",
                      "POST",
                      "PUT",
                      "DELETE"
                    ]
                  },
                  "contentType": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectInvoke": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "Invoke"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "required": [
            "endpoint"
          ],
          "properties": {
            "cache": {
              "type": "object",
              "properties": {
                "expire": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "fromMessageHeader"
                      ],
                      "properties": {
                        "fromMessageHeader": {
                          "type": "object",
                          "required": [
                            "headerName",
                            "messageName"
                          ],
                          "properties": {
                            "headerName": {
                              "type": "string"
                            },
                            "messageName": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "fromVariable"
                      ],
                      "properties": {
                        "fromVariable": {
                          "type": "object",
                          "required": [
                            "name"
                          ],
                          "properties": {
                            "name": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "fromCacheControl"
                      ],
                      "properties": {
                        "fromCacheControl": {
                          "type": "object",
                          "required": [
                            "messageName"
                          ],
                          "properties": {
                            "messageName": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "static"
                      ],
                      "properties": {
                        "static": {
                          "type": "object",
                          "required": [
                            "seconds"
                          ],
                          "properties": {
                            "seconds": {
                              "type": "integer",
                              "format": "uint64",
                              "minimum": 0
                            }
                          }
                        }
                      },
                      "additionalProperties": false
                    }
                  ]
                },
                "scope": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "narrowScope"
                      ],
                      "properties": {
                        "narrowScope": {
                          "type": "object"
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "wideScope"
                      ],
                      "properties": {
                        "wideScope": {
                          "type": "object"
                        }
                      },
                      "additionalProperties": false
                    }
                  ]
                }
              },
              "additionalProperties": false
            },
            "endpoint": {
              "oneOf": [
                {
                  "type": "object",
                  "required": [
                    "http"
                  ],
                  "properties": {
                    "http": {
                      "type": "object",
                      "required": [
                        "target"
                      ],
                      "properties": {
                        "statusException": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "pattern"
                            ],
                            "properties": {
                              "pattern": {
                                "type": "string",
                                "pattern": "^[0-9*]{3}$"
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "target": {
                          "type": "object",
                          "required": [
                            "url"
                          ],
                          "properties": {
                            "persistentConnections": {
                              "type": "boolean",
                              "default": true
                            },
                            "timeout": {
                              "type": "integer",
                              "format": "uint64",
                              "minimum": 0,
                              "default": 20
                            },
                            "tlsClientProfile": {
                              "type": "string"
                            },
                            "url": {
                              "type": "string"
                            },
                            "decompressResponse": {
                              "type": "boolean",
                              "default": false
                            },
                            "followRedirects": {
                              "type": "boolean",
                              "default": false
                            },
                            "chunkedUpload": {
                              "type": "boolean",
                              "default": false
                            },
                            "urlType": {
                              "type": "string",
                              "enum": [
                                "plain",
                                "variables",
                                "jsonata",
                                "distributedVariable"
                              ]
                            },
                            "compressRequest": {
                              "type": "string",
                              "enum": [
                                "br",
                                "gzip",
                                "deflate",
                                "none"
                              ]
                            },
                            "version": {
                              "type": "string",
                              "enum": [
                                "HTTP/1.0",
                                "HTTP/1.1",
                                "HTTP/2"
                              ]
                            }
                          },
                          "additionalProperties": false
                        },
                        "verb": {
                          "type": "string"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                }
              ]
            },
            "input": {
              "type": "string"
            },
            "output": {
              "type": "string"
            },
            "extensions": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "webm-gateway": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "apiVersion": {
                      "type": "string"
                    },
                    "spec": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "endpoint": {
                          "type": "object",
                          "properties": {
                            "http": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "target": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "connectionTimeout": {
                                      "type": "integer"
                                    },
                                    "nativeServiceTimeout": {
                                      "type": "integer"
                                    }
                                  }
                                },
                                "sslConfig": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "keyStoreAlias": {
                                      "type": "string"
                                    },
                                    "keyAlias": {
                                      "type": "string"
                                    },
                                    "trustStoreAlias": {
                                      "type": "string"
                                    }
                                  }
                                },
                                "serviceRegistryParameters": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "name": {
                                        "type": "string"
                                      },
                                      "value": {
                                        "type": "string"
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "dp-nano-gateway": {
                  "type": "object",
                  "properties": {
                    "apiVersion": {
                      "type": "string"
                    },
                    "spec": {
                      "type": "object",
                      "properties": {
                        "telemetry": {
                          "$ref": "#/$defs/ProjectNanoGwTelemetry"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectInvokeMessagingExtension": {
      "description": "The Messaging Extension related information is captured in the message MessagingExtension.",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "InvokeMessagingExtension"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "enabled": {
              "description": "Can be enabled or disabled",
              "type": "boolean"
            },
            "condition": {
              "description": "Single instance of conidition can be given",
              "type": "string"
            },
            "messageConfig": {
              "$ref": "#/$defs/ProjectReference"
            },
            "namespaces": {
              "$ref": "#/$defs/ProjectNamespaces"
            },
            "request_processing": {
              "$ref": "#/$defs/ProjectInvokeRequestProcessingSchema"
            },
            "response_processing": {
              "$ref": "#/$defs/ProjectInvokeResponseProcessingSchema"
            }
          }
        }
      }
    },
    "ProjectInvokeRequestProcessingSchema": {
      "description": "Field 'request_processing' with JSON name 'request-processing' accepts the value of either 'request_processing' or 'request-processing' from the YAML file. If both 'request_processing' and 'request-processing' are specified, the value of 'request-processing' takes priority. Single instances of request processing can be given with JSON name \"request-processing\".",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "transformations"
      ],
      "properties": {
        "transformations": {
          "$ref": "#/$defs/ProjectRequestTransformationsSchema"
        },
        "useIncomingHeaders": {
          "type": "boolean"
        }
      }
    },
    "ProjectInvokeResponseProcessingSchema": {
      "description": "Field 'response_processing' with JSON name 'response-processing' accepts the value of either 'response_processing' or 'response-processing' from the YAML file. If both 'response_processing' and 'response-processing' are specified, the value of 'response-processing' takes priority. Single instances of response processing can be given with JSON name \"response-processing\".",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "transformations"
      ],
      "properties": {
        "transformations": {
          "$ref": "#/$defs/ProjectResponseTransformationsSchema"
        }
      }
    },
    "ProjectLoadBalancer": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "LoadBalancer"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "input": {
              "type": "string"
            },
            "output": {
              "type": "string"
            },
            "weightedRandomHttp": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "verb": {
                  "type": "string"
                },
                "statusException": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "pattern": {
                        "type": "string"
                      }
                    }
                  }
                },
                "endpoints": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "object",
                    "required": [
                      "endpoint"
                    ],
                    "properties": {
                      "endpoint": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "tlsClientProfile": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string"
                          },
                          "urlType": {
                            "type": "string",
                            "enum": [
                              "plain",
                              "variables",
                              "jsonata",
                              "distributedVariable"
                            ]
                          },
                          "version": {
                            "type": "string",
                            "enum": [
                              "HTTP/1.0",
                              "HTTP/1.1",
                              "HTTP/2"
                            ]
                          },
                          "timeout": {
                            "type": "integer"
                          },
                          "compressRequest": {
                            "type": "string",
                            "enum": [
                              "gzip",
                              "br",
                              "deflate",
                              "none"
                            ]
                          },
                          "decompressResponse": {
                            "type": "boolean"
                          },
                          "followRedirects": {
                            "type": "boolean"
                          },
                          "chunkedUpload": {
                            "type": "boolean"
                          },
                          "persistentConnections": {
                            "type": "boolean"
                          }
                        }
                      },
                      "suspendTimeout": {
                        "type": "integer"
                      },
                      "weight": {
                        "type": "integer"
                      }
                    }
                  }
                }
              }
            },
            "roundRobinHttp": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "verb": {
                  "type": "string"
                },
                "statusException": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "pattern"
                    ],
                    "properties": {
                      "pattern": {
                        "type": "string",
                        "pattern": "^[0-9*]{3}$",
                        "additionalProperties": false
                      }
                    }
                  }
                },
                "endpoints": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "object",
                    "required": [
                      "endpoint"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "suspendTimeout": {
                        "type": "integer"
                      },
                      "endpoint": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "tlsClientProfile": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string"
                          },
                          "urlType": {
                            "type": "string",
                            "enum": [
                              "plain",
                              "variables",
                              "jsonata",
                              "distributedVariable"
                            ]
                          },
                          "compressRequest": {
                            "type": "string",
                            "enum": [
                              "br",
                              "gzip",
                              "deflate",
                              "none"
                            ]
                          },
                          "version": {
                            "type": "string",
                            "enum": [
                              "HTTP/1.0",
                              "HTTP/1.1",
                              "HTTP/2"
                            ]
                          },
                          "timeout": {
                            "type": "integer"
                          },
                          "decompressResponse": {
                            "type": "boolean",
                            "default": false
                          },
                          "followRedirects": {
                            "type": "boolean",
                            "default": false
                          },
                          "chunkedUpload": {
                            "type": "boolean"
                          },
                          "persistentConnections": {
                            "type": "boolean"
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "extensions": {
              "type": "object",
              "properties": {
                "webm-gateway": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "apiVersion": {
                      "type": "string"
                    },
                    "spec": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "endpoints": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "connectionTimeout": {
                                "type": "integer"
                              },
                              "nativeServiceTimeout": {
                                "type": "integer"
                              },
                              "sslConfig": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "keyStoreAlias": {
                                    "type": "string"
                                  },
                                  "keyAlias": {
                                    "type": "string"
                                  },
                                  "trustStoreAlias": {
                                    "type": "string"
                                  }
                                }
                              },
                              "serviceRegistryParameters": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "value": {
                                      "type": "string"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "dp-nano-gateway": {
                  "type": "object",
                  "properties": {
                    "apiVersion": {
                      "type": "string"
                    },
                    "spec": {
                      "type": "object",
                      "properties": {
                        "telemetry": {
                          "$ref": "#/$defs/ProjectNanoGwTelemetry"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectLogInvocation": {
      "description": "The Log Invocation related information is captured in the message LogInvocation",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "Log"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "logRequestHeaders": {
              "type": "boolean",
              "default": false
            },
            "logResponseHeaders": {
              "type": "boolean",
              "default": false
            },
            "logRequestPayload": {
              "type": "boolean",
              "default": false
            },
            "logResponsePayload": {
              "type": "boolean",
              "default": false
            },
            "compressPayloads": {
              "type": "boolean",
              "default": false
            },
            "logGenerationFrequency": {
              "type": "string",
              "enum": [
                "always",
                "onfailure",
                "onsuccess"
              ]
            },
            "destination": {
              "$ref": "#/$defs/ProjectLogInvocationDestinationsList"
            }
          }
        }
      }
    },
    "ProjectLogInvocationDestinationsList": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "string",
            "enum": [
              "api_gateway",
              "dev_portals",
              "snmp",
              "jdbc",
              "centraSite",
              "elasticsearch",
              "auditLog",
              "apic"
            ]
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "email": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "email"
                }
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "log-file": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "level": {
                    "type": "string",
                    "enum": [
                      "info",
                      "debug",
                      "warn",
                      "error"
                    ]
                  }
                }
              }
            }
          }
        ]
      }
    },
    "ProjectMessageConfig": {
      "description": "The MessageConfig related information is captured in the message MessageConfig.",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "MessageConfig"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "connectionAlias": {
              "type": "string"
            },
            "destination": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "type": "string"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "queue",
                    "topic"
                  ]
                }
              }
            },
            "replyTo": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "type": "string"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "queue",
                    "topic"
                  ]
                }
              }
            },
            "ttl": {
              "type": "string"
            },
            "timeToWait": {
              "type": "string"
            },
            "deliveryMode": {
              "type": "string",
              "enum": [
                "persistent",
                "non_persistent"
              ]
            },
            "property": {
              "type": "array",
              "items": {
                "description": "message properties includes key and value",
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectMetadata": {
      "description": "Defines a message named Metadata",
      "type": "object",
      "required": [
        "name",
        "version"
      ],
      "additionalProperties": false,
      "properties": {
        "description": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "namespace": {
          "type": "string"
        },
        "tags": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "type": {
          "enum": [
            "REST",
            "SWAGGER",
            "SOAP",
            "GRAPHQL",
            "ODATA"
          ],
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "domain": {
          "enum": [
            "api",
            "ai-platform",
            "mcp"
          ],
          "type": "string"
        },
        "labels": {
          "type": "object",
          "additionalProperties": true,
          "properties": {
            "gatewayTypes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "ProjectMockEndpoint": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "MockEndpoint"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string",
          "enum": [
            "api.ibm.com/v1"
          ]
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "paths": {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "get": {
                    "$ref": "#/$defs/ProjectMockEndpointMethodResponse"
                  },
                  "post": {
                    "$ref": "#/$defs/ProjectMockEndpointMethodResponse"
                  },
                  "put": {
                    "$ref": "#/$defs/ProjectMockEndpointMethodResponse"
                  },
                  "patch": {
                    "$ref": "#/$defs/ProjectMockEndpointMethodResponse"
                  },
                  "delete": {
                    "$ref": "#/$defs/ProjectMockEndpointMethodResponse"
                  },
                  "head": {
                    "$ref": "#/$defs/ProjectMockEndpointMethodResponse"
                  },
                  "options": {
                    "$ref": "#/$defs/ProjectMockEndpointMethodResponse"
                  },
                  "trace": {
                    "$ref": "#/$defs/ProjectMockEndpointMethodResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectMockEndpointConditionalResponse": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "condition": {
          "type": "string"
        },
        "statusCode": {
          "type": "integer"
        },
        "response": {
          "$ref": "#/$defs/ProjectReference"
        }
      }
    },
    "ProjectMockEndpointMethodResponse": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "defaultResponse": {
          "type": "object",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "response": {
                "$ref": "#/$defs/ProjectReference"
              }
            }
          }
        },
        "conditionalResponse": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ProjectMockEndpointConditionalResponse"
          }
        }
      }
    },
    "ProjectMockEndpointV2": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "MockEndpoint"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string",
          "enum": [
            "api.ibm.com/v2"
          ]
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "rest"
              ],
              "properties": {
                "rest": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "paths": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "get": {
                            "$ref": "#/$defs/ProjectMockEndpointMethodResponse"
                          },
                          "post": {
                            "$ref": "#/$defs/ProjectMockEndpointMethodResponse"
                          },
                          "put": {
                            "$ref": "#/$defs/ProjectMockEndpointMethodResponse"
                          },
                          "patch": {
                            "$ref": "#/$defs/ProjectMockEndpointMethodResponse"
                          },
                          "delete": {
                            "$ref": "#/$defs/ProjectMockEndpointMethodResponse"
                          },
                          "head": {
                            "$ref": "#/$defs/ProjectMockEndpointMethodResponse"
                          },
                          "options": {
                            "$ref": "#/$defs/ProjectMockEndpointMethodResponse"
                          },
                          "trace": {
                            "$ref": "#/$defs/ProjectMockEndpointMethodResponse"
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "soap"
              ],
              "properties": {
                "soap": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "operations": {
                      "type": "object",
                      "additionalProperties": {
                        "$ref": "#/$defs/ProjectMockEndpointMethodResponse"
                      }
                    }
                  }
                }
              }
            }
          ]
        }
      }
    },
    "ProjectMockResponse": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "MockResponse"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "code": {
              "type": "integer"
            },
            "data": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "content": {
                    "type": "string"
                  },
                  "contentType": {
                    "type": "string"
                  }
                }
              }
            },
            "headers": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectMonitorTraffic": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "MonitorTraffic"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "condition": {
              "description": "Single instance of condition can be given",
              "type": "string"
            },
            "applications": {
              "description": "Multiple instance of application can be given",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "alert-configuration": {
              "description": "Field 'alert_configuration' with JSON name 'alert-configuration' accepts the value of either 'alert_configuration' or 'alert-configuration' from the YAML file. If both 'alert_configuration' and 'alert-configuration' are specified, the value of 'alert-configuration' takes priority. Multiple instances of alert configuration can be given with JSON name \"alert-configuration\".",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "frequency": {
                  "type": "string",
                  "enum": [
                    "always",
                    "once"
                  ]
                },
                "interval": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                }
              }
            },
            "notify-on-breach": {
              "$ref": "#/$defs/ProjectDestinationsList"
            }
          }
        }
      }
    },
    "ProjectNamespace": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "URI": {
          "type": "string"
        },
        "prefix": {
          "type": "string"
        }
      }
    },
    "ProjectNamespaces": {
      "type": "array",
      "minItems": 1,
      "items": {
        "$ref": "#/$defs/ProjectNamespace"
      }
    },
    "ProjectNanoGwTelemetry": {
      "description": "Optional telemetry attributes pushed to OpenTelemetry endpoint for nano gateway policies",
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "ProjectOutboundAlias": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "OutboundAlias"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "required": [
            "alias"
          ],
          "additionalProperties": false,
          "properties": {
            "alias": {
              "type": "string"
            }
          }
        }
      }
    },
    "ProjectOutboundAnonymous": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "OutboundAnonymous"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": true
        }
      }
    },
    "ProjectRateLimit": {
      "description": "The Throttling Policy related information is captured in the message ThrottlingPolicy",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "RateLimit"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "target": {
              "oneOf": [
                {
                  "type": "string",
                  "default": "ALL"
                },
                {
                  "type": "object",
                  "required": [
                    "specified"
                  ],
                  "properties": {
                    "specified": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              ]
            },
            "limits": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "limitDef"
                ],
                "properties": {
                  "limitDef": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "name",
                      "definition"
                    ],
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "definition": {
                        "$ref": "#/$defs/ProjectReference"
                      },
                      "operation": {
                        "type": "string",
                        "enum": [
                          "update",
                          "consume",
                          "replenish",
                          "check"
                        ]
                      }
                    }
                  }
                }
              }
            },
            "extensions": {
              "type": "object",
              "properties": {
                "webm-gateway": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "apiVersion": {
                      "type": "string"
                    },
                    "spec": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "destination"
                      ],
                      "properties": {
                        "destination": {
                          "$ref": "#/$defs/ProjectDestinationsList"
                        }
                      }
                    }
                  }
                },
                "lwgw-gateway": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "apiVersion": {
                      "type": "string"
                    },
                    "spec": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "limits": {
                          "type": "array",
                          "minItems": 1,
                          "items": {
                            "oneOf": [
                              {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "globalLimit"
                                ],
                                "properties": {
                                  "globalLimit": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "required": [
                                      "name",
                                      "operation"
                                    ],
                                    "properties": {
                                      "name": {
                                        "type": "string"
                                      },
                                      "operation": {
                                        "type": "string"
                                      }
                                    }
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "aliasLimit"
                                ],
                                "properties": {
                                  "aliasLimit": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "required": [
                                      "name",
                                      "operation"
                                    ],
                                    "properties": {
                                      "name": {
                                        "type": "string"
                                      },
                                      "operation": {
                                        "type": "string"
                                      }
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "dp-nano-gateway": {
                  "type": "object",
                  "properties": {
                    "apiVersion": {
                      "type": "string"
                    },
                    "spec": {
                      "type": "object",
                      "properties": {
                        "telemetry": {
                          "$ref": "#/$defs/ProjectNanoGwTelemetry"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectRateLimitDefinition": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "RateLimitDef"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "properties": {
            "consumerSpecific": {
              "type": "boolean"
            },
            "dynamicValue": {
              "type": "string"
            },
            "max": {
              "type": "integer"
            },
            "intervalLen": {
              "type": "integer"
            },
            "intervalUnit": {
              "type": "string",
              "enum": [
                "second",
                "minute",
                "hour",
                "day",
                "week",
                "calendarweek",
                "calendarmonth"
              ]
            },
            "extensions": {
              "type": "object",
              "properties": {
                "dp-nano-gateway": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "apiVersion": {
                      "type": "string"
                    },
                    "spec": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "weightExpr": {
                          "type": "string"
                        },
                        "dynamicValue": {
                          "type": "string"
                        },
                        "exceedAction": {
                          "type": "string"
                        },
                        "intervalOffset": {
                          "type": "number"
                        }
                      }
                    }
                  }
                },
                "webm-gateway": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "apiVersion": {
                      "type": "string"
                    },
                    "spec": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "alertMessage": {
                          "type": "string"
                        },
                        "alertFrequency": {
                          "type": "string",
                          "enum": [
                            "once",
                            "always"
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectReference": {
      "type": "object",
      "required": [
        "$ref"
      ],
      "additionalProperties": false,
      "properties": {
        "$ref": {
          "description": "Field 'ref' with JSON name '$ref' accepts the value of either 'ref' or '$ref' from the YAML file. If both 'ref' and '$ref' are specified, the value of '$ref' takes priority.",
          "type": "string"
        }
      }
    },
    "ProjectReferenceList": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ProjectReference"
      }
    },
    "ProjectReqeuestProcessingTransformationsSchema": {
      "allOf": [
        {
          "$ref": "#/$defs/ProjectRequestTransformationsSchema"
        },
        {
          "type": "object",
          "properties": {
            "namespaces": {
              "$ref": "#/$defs/ProjectNamespaces"
            },
            "setMethod": {
              "type": "string"
            },
            "webMethodsISService": {
              "$ref": "#/$defs/ProjectReferenceList"
            }
          }
        }
      ]
    },
    "ProjectRequestProcessing": {
      "description": "The Request Processing related information is captured in the message RequestProcessing",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "TransformRequest"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "enabled": {
              "description": "Can be enabled or disabled",
              "type": "boolean"
            },
            "condition": {
              "description": "Single instance of condition can be given",
              "type": "string"
            },
            "transformations": {
              "$ref": "#/$defs/ProjectReqeuestProcessingTransformationsSchema"
            }
          }
        }
      }
    },
    "ProjectRequestTransformationsSchema": {
      "description": "Single instance of transformation can be given",
      "type": "object",
      "properties": {
        "set": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            }
          }
        },
        "remove": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "setPayload": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "content-types": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            "defaultContentType": {
              "type": "string"
            },
            "xsl": {
              "$ref": "#/$defs/ProjectXslSchema"
            }
          }
        }
      }
    },
    "ProjectResponseProcessing": {
      "description": "The Response Processing related information is captured in the message RequestProcessing",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "TransformResponse"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "enabled": {
              "description": "Can be enabled or disabled",
              "type": "boolean"
            },
            "condition": {
              "description": "Single instance of condition can be given",
              "type": "string"
            },
            "transformations": {
              "$ref": "#/$defs/ProjectResponseProcessingTransformationsSchema"
            }
          }
        }
      }
    },
    "ProjectResponseProcessingTransformationsSchema": {
      "allOf": [
        {
          "$ref": "#/$defs/ProjectRequestTransformationsSchema"
        },
        {
          "type": "object",
          "properties": {
            "namespaces": {
              "$ref": "#/$defs/ProjectNamespaces"
            },
            "setStatus": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "code": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                }
              }
            },
            "webMethodsISService": {
              "$ref": "#/$defs/ProjectReferenceList"
            }
          }
        }
      ]
    },
    "ProjectResponseTransformationsSchema": {
      "type": "object",
      "properties": {
        "abortAPIExecutionForFailure": {
          "type": "boolean"
        },
        "copyEntireResponse": {
          "type": "boolean"
        },
        "set": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "ProjectRoute": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "Route"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "oneOf": [
            {
              "type": "object",
              "description": "Default routing - Applicable only for SOAP",
              "additionalProperties": false,
              "required": [
                "default-endpoint"
              ],
              "properties": {
                "default-endpoint": {
                  "$ref": "#/$defs/ProjectReference"
                }
              }
            },
            {
              "type": "object",
              "description": "Load balancer routing with multiple endpoints",
              "required": [
                "load-balancer-endpoints"
              ],
              "additionalProperties": false,
              "properties": {
                "load-balancer-endpoints": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "object",
                    "required": [
                      "$ref"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "$ref": {
                        "type": "string",
                        "description": "Reference to SOAP Endpoint"
                      },
                      "suspendDuration": {
                        "type": "integer",
                        "description": "Suspend duration in seconds",
                        "minimum": 0
                      }
                    }
                  }
                }
              }
            },
            {
              "type": "object",
              "description": "Routing info for conditional routing",
              "additionalProperties": false,
              "required": [
                "default-endpoint",
                "conditional-endpoints"
              ],
              "properties": {
                "default-endpoint": {
                  "$ref": "#/$defs/ProjectReference"
                },
                "conditional-endpoints": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "condition": {
                        "type": "string"
                      },
                      "endpoint": {
                        "$ref": "#/$defs/ProjectReference"
                      }
                    }
                  }
                }
              }
            },
            {
              "type": "object",
              "description": "Routing info for content based routing",
              "additionalProperties": false,
              "required": [
                "default-endpoint",
                "content-based-endpoints"
              ],
              "properties": {
                "default-endpoint": {
                  "$ref": "#/$defs/ProjectReference"
                },
                "content-based-endpoints": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "payloadIdentifier": {
                        "oneOf": [
                          {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "jPath": {
                                "type": "string"
                              }
                            }
                          },
                          {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "xpath": {
                                "type": "string"
                              },
                              "namespaces": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "prefix": {
                                      "type": "string"
                                    },
                                    "URI": {
                                      "type": "string"
                                    }
                                  }
                                }
                              }
                            }
                          },
                          {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "regex": {
                                "type": "string"
                              }
                            }
                          }
                        ]
                      },
                      "endpoint": {
                        "$ref": "#/$defs/ProjectReference"
                      }
                    }
                  }
                }
              }
            },
            {
              "type": "object",
              "description": "Routing info for dynamic routing",
              "additionalProperties": false,
              "required": [
                "default-endpoint",
                "dynamic-endpoints"
              ],
              "properties": {
                "default-endpoint": {
                  "$ref": "#/$defs/ProjectReference"
                },
                "dynamic-endpoints": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "useHeader": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "$ref": {
                          "type": "string"
                        }
                      }
                    },
                    "useContext": {
                      "$ref": "#/$defs/ProjectReference"
                    }
                  }
                }
              }
            },
            {
              "type": "object",
              "description": "Routing info for mock routing",
              "additionalProperties": false,
              "properties": {
                "mock-endpoint": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "enabled": {
                      "type": "boolean"
                    },
                    "$ref": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            {
              "type": "object",
              "description": "Routing info for message config routing",
              "additionalProperties": false,
              "properties": {
                "messageConfig": {
                  "$ref": "#/$defs/ProjectReference"
                }
              }
            }
          ]
        }
      }
    },
    "ProjectScope": {
      "description": "The message identifies the scope",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "Scope"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string",
          "enum": [
            "api.ibm.com/v1"
          ]
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "required": [
            "policy-sequence",
            "resources"
          ],
          "additionalProperties": false,
          "properties": {
            "policy-sequence": {
              "$ref": "#/$defs/ProjectReferenceList"
            },
            "resources": {
              "description": "Multiple instances of resources can be given",
              "type": "array",
              "items": {
                "description": "Multiple instances of methods for each resource can be given",
                "type": "object",
                "required": [
                  "methods",
                  "path"
                ],
                "additionalProperties": false,
                "properties": {
                  "methods": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "string",
                      "enum": [
                        "get",
                        "post",
                        "put",
                        "delete",
                        "patch",
                        "head",
                        "keep"
                      ]
                    }
                  },
                  "path": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectScopeV2": {
      "description": "The message identifies the scope",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "Scope"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string",
          "enum": [
            "api.ibm.com/v2"
          ]
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "rest",
                "policy-sequence"
              ],
              "properties": {
                "policy-sequence": {
                  "$ref": "#/$defs/ProjectReferenceList"
                },
                "rest": {
                  "type": "object",
                  "required": [
                    "resources"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "resources": {
                      "description": "Multiple instances of resources can be given",
                      "type": "array",
                      "items": {
                        "description": "Multiple instances of methods for each resource can be given",
                        "type": "object",
                        "required": [
                          "methods",
                          "path"
                        ],
                        "additionalProperties": false,
                        "properties": {
                          "methods": {
                            "type": "array",
                            "minItems": 1,
                            "items": {
                              "type": "string",
                              "enum": [
                                "get",
                                "post",
                                "put",
                                "delete",
                                "patch",
                                "head",
                                "keep"
                              ]
                            }
                          },
                          "path": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "soap",
                "policy-sequence"
              ],
              "properties": {
                "policy-sequence": {
                  "$ref": "#/$defs/ProjectReferenceList"
                },
                "soap": {
                  "type": "object",
                  "required": [
                    "operations"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "operations": {
                      "description": "Multiple instances of operations can be given",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "name"
                        ],
                        "additionalProperties": false,
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          ]
        }
      }
    },
    "ProjectServiceResultCache": {
      "description": "The Service Result Cache related information is captured in the message ServiceResultCache",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "CacheServiceResult"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "condition": {
              "description": "Single instance of condition can be given",
              "type": "string"
            },
            "enabled": {
              "description": "Can be enabled or disabled",
              "type": "boolean"
            },
            "maxSize": {
              "description": "single instance pf maximum size can be given",
              "type": "string"
            },
            "ttl": {
              "description": "Single instance of ttl can be given",
              "type": "string"
            }
          }
        }
      }
    },
    "ProjectSet": {
      "description": "The Throttling Policy related information is captured in the message ThrottlingPolicy",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "Set"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "oneOf": [
            {
              "required": [
                "messageHeader"
              ],
              "properties": {
                "messageHeader": {
                  "type": "object",
                  "required": [
                    "action",
                    "headerName",
                    "value",
                    "messageName"
                  ],
                  "properties": {
                    "action": {
                      "type": "string",
                      "enum": [
                        "set",
                        "add",
                        "combine"
                      ]
                    },
                    "headerName": {
                      "type": "string"
                    },
                    "value": {
                      "type": "string"
                    },
                    "messageName": {
                      "type": "string"
                    }
                  }
                },
                "valueType": {
                  "type": "string",
                  "enum": [
                    "webm-var-expression",
                    "plain",
                    "variables",
                    "jsonata",
                    "distributedVariable"
                  ]
                }
              }
            },
            {
              "required": [
                "messageBody"
              ],
              "properties": {
                "messageBody": {
                  "type": "object",
                  "required": [
                    "messageName",
                    "value"
                  ],
                  "properties": {
                    "messageName": {
                      "type": "string"
                    },
                    "value": {
                      "type": "string"
                    }
                  }
                },
                "valueType": {
                  "type": "string",
                  "enum": [
                    "plain",
                    "variables",
                    "jsonata",
                    "distributedVariable"
                  ]
                }
              }
            },
            {
              "required": [
                "messageMethod"
              ],
              "properties": {
                "messageMethod": {
                  "type": "object",
                  "required": [
                    "messageName",
                    "method"
                  ],
                  "properties": {
                    "messageName": {
                      "type": "string"
                    },
                    "method": {
                      "type": "string"
                    }
                  }
                },
                "valueType": {
                  "type": "string",
                  "enum": [
                    "plain",
                    "variables",
                    "jsonata",
                    "distributedVariable"
                  ]
                }
              }
            },
            {
              "required": [
                "messageUri"
              ],
              "properties": {
                "messageUri": {
                  "type": "object",
                  "required": [
                    "messageName",
                    "nameType",
                    "path",
                    "queryParams"
                  ],
                  "properties": {
                    "messageName": {
                      "type": "string"
                    },
                    "nameType": {
                      "type": "string",
                      "enum": [
                        "plain",
                        "variables",
                        "jsonata",
                        "distributedVariable"
                      ]
                    },
                    "path": {
                      "type": "string"
                    },
                    "queryParams": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "name",
                          "value"
                        ],
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "value": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "valueType": {
                  "type": "string",
                  "enum": [
                    "plain",
                    "variables",
                    "jsonata",
                    "distributedVariable"
                  ]
                }
              }
            },
            {
              "required": [
                "variable"
              ],
              "properties": {
                "variable": {
                  "type": "object",
                  "required": [
                    "name",
                    "value"
                  ],
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "value": {
                      "type": "string"
                    }
                  }
                },
                "valueType": {
                  "type": "string",
                  "enum": [
                    "plain",
                    "variables",
                    "jsonata",
                    "distributedVariable"
                  ]
                }
              }
            },
            {
              "required": [
                "distributedVariable"
              ],
              "properties": {
                "distributedVariable": {
                  "type": "object",
                  "required": [
                    "expire",
                    "name",
                    "setExclusive",
                    "value"
                  ],
                  "properties": {
                    "expire": {
                      "type": "integer"
                    },
                    "name": {
                      "type": "string"
                    },
                    "setExclusive": {
                      "type": "boolean"
                    },
                    "value": {
                      "type": "string"
                    }
                  }
                },
                "valueType": {
                  "type": "string",
                  "enum": [
                    "plain",
                    "variables",
                    "jsonata",
                    "distributedVariable"
                  ]
                }
              }
            },
            {
              "required": [
                "telemetry",
                "valueType"
              ],
              "additionalProperties": false,
              "properties": {
                "telemetry": {
                  "type": "object",
                  "required": [
                    "key",
                    "span",
                    "value"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "key": {
                      "type": "string"
                    },
                    "span": {
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "oneOf": [
                            {
                              "required": [
                                "policySpan"
                              ],
                              "properties": {
                                "policySpan": {
                                  "type": "string"
                                }
                              }
                            },
                            {
                              "required": [
                                "httpSpan"
                              ],
                              "properties": {
                                "httpSpan": {
                                  "type": "string"
                                }
                              }
                            }
                          ]
                        }
                      ]
                    },
                    "value": {
                      "type": "string"
                    }
                  }
                },
                "valueType": {
                  "type": "string",
                  "enum": [
                    "plain",
                    "variables",
                    "jsonata",
                    "distributedVariable"
                  ]
                }
              }
            }
          ]
        }
      }
    },
    "ProjectSetAuthorization": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "SetAuthorization"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "oneOf": [
            {
              "required": [
                "basic"
              ],
              "properties": {
                "basic": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "static"
                      ],
                      "properties": {
                        "static": {
                          "type": "object",
                          "required": [
                            "username",
                            "password"
                          ],
                          "properties": {
                            "username": {
                              "type": "string"
                            },
                            "password": {
                              "type": "string"
                            }
                          }
                        },
                        "valueType": {
                          "type": "string",
                          "enum": [
                            "plain",
                            "jsonata"
                          ]
                        }
                      }
                    },
                    {
                      "type": "object",
                      "required": [
                        "useIncoming"
                      ],
                      "properties": {
                        "useIncoming": {
                          "type": "object"
                        }
                      }
                    },
                    {
                      "type": "object",
                      "required": [
                        "secret"
                      ],
                      "properties": {
                        "secret": {
                          "type": "string",
                          "additionalProperties": false
                        }
                      }
                    }
                  ]
                },
                "message": {
                  "type": "string"
                },
                "extensions": {
                  "type": "object",
                  "properties": {
                    "dp-nano-gateway": {
                      "type": "object",
                      "properties": {
                        "apiVersion": {
                          "type": "string"
                        },
                        "spec": {
                          "type": "object",
                          "properties": {
                            "telemetry": {
                              "$ref": "#/$defs/ProjectNanoGwTelemetry"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            {
              "required": [
                "oAuth2"
              ],
              "properties": {
                "oAuth2": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "token"
                      ],
                      "properties": {
                        "token": {
                          "type": "string"
                        }
                      }
                    },
                    {
                      "type": "object",
                      "required": [
                        "useIncoming"
                      ],
                      "properties": {
                        "useIncoming": {
                          "type": "object"
                        }
                      }
                    },
                    {
                      "type": "object",
                      "required": [
                        "secret"
                      ],
                      "properties": {
                        "secret": {
                          "type": "string"
                        }
                      }
                    }
                  ]
                },
                "message": {
                  "type": "string"
                },
                "extensions": {
                  "type": "object",
                  "properties": {
                    "dp-nano-gateway": {
                      "type": "object",
                      "properties": {
                        "apiVersion": {
                          "type": "string"
                        },
                        "spec": {
                          "type": "object",
                          "properties": {
                            "telemetry": {
                              "$ref": "#/$defs/ProjectNanoGwTelemetry"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            {
              "required": [
                "ntlm"
              ],
              "properties": {
                "ntlm": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "static"
                      ],
                      "properties": {
                        "static": {
                          "type": "object",
                          "required": [
                            "username",
                            "password"
                          ],
                          "properties": {
                            "username": {
                              "type": "string"
                            },
                            "password": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "object",
                      "required": [
                        "useIncoming"
                      ],
                      "properties": {
                        "useIncoming": {
                          "type": "object"
                        }
                      }
                    },
                    {
                      "type": "object",
                      "required": [
                        "transparent"
                      ],
                      "properties": {
                        "transparent": {
                          "type": "object",
                          "additionalProperties": false
                        }
                      }
                    }
                  ]
                },
                "message": {
                  "type": "string"
                },
                "extensions": {
                  "type": "object",
                  "properties": {
                    "dp-nano-gateway": {
                      "type": "object",
                      "properties": {
                        "apiVersion": {
                          "type": "string"
                        },
                        "spec": {
                          "type": "object",
                          "properties": {
                            "telemetry": {
                              "$ref": "#/$defs/ProjectNanoGwTelemetry"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            {
              "required": [
                "jwt"
              ],
              "properties": {
                "jwt": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "useIncoming"
                      ],
                      "properties": {
                        "useIncoming": {
                          "type": "object"
                        }
                      }
                    },
                    {
                      "type": "object",
                      "required": [
                        "secret"
                      ],
                      "properties": {
                        "secret": {
                          "type": "string",
                          "additionalProperties": false
                        }
                      }
                    }
                  ]
                },
                "message": {
                  "type": "string"
                },
                "extensions": {
                  "type": "object",
                  "properties": {
                    "dp-nano-gateway": {
                      "type": "object",
                      "properties": {
                        "apiVersion": {
                          "type": "string"
                        },
                        "spec": {
                          "type": "object",
                          "properties": {
                            "telemetry": {
                              "$ref": "#/$defs/ProjectNanoGwTelemetry"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            {
              "required": [
                "kerberos"
              ],
              "properties": {
                "kerberos": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "useIncoming"
                      ],
                      "properties": {
                        "useIncoming": {
                          "type": "object"
                        }
                      }
                    },
                    {
                      "type": "object",
                      "required": [
                        "delegateIncomingCredentials"
                      ],
                      "properties": {
                        "delegateIncomingCredentials": {
                          "type": "object",
                          "required": [
                            "clientPassword",
                            "clientPrincipal",
                            "servicePrincipal",
                            "servicePrincipalNameform"
                          ],
                          "properties": {
                            "clientPassword": {
                              "type": "string"
                            },
                            "clientPrincipal": {
                              "type": "string"
                            },
                            "servicePrincipal": {
                              "type": "string"
                            },
                            "servicePrincipalNameform": {
                              "type": "string",
                              "enum": [
                                "Username",
                                "Hostbased"
                              ]
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "object",
                      "required": [
                        "incomingHTTPBasicAuthCred"
                      ],
                      "properties": {
                        "incomingHTTPBasicAuthCred": {
                          "type": "object",
                          "required": [
                            "servicePrincipal",
                            "servicePrincipalNameform"
                          ],
                          "properties": {
                            "servicePrincipal": {
                              "type": "string"
                            },
                            "servicePrincipalNameform": {
                              "type": "string",
                              "enum": [
                                "Username",
                                "Hostbased"
                              ]
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "object",
                      "required": [
                        "useCustomCredentials"
                      ],
                      "properties": {
                        "useCustomCredentials": {
                          "type": "object",
                          "required": [
                            "clientPassword",
                            "clientPrincipal",
                            "servicePrincipal",
                            "servicePrincipalNameform"
                          ],
                          "properties": {
                            "clientPassword": {
                              "type": "string"
                            },
                            "clientPrincipal": {
                              "type": "string"
                            },
                            "servicePrincipal": {
                              "type": "string"
                            },
                            "servicePrincipalNameform": {
                              "type": "string",
                              "enum": [
                                "Username",
                                "Hostbased"
                              ]
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "message": {
                  "type": "string"
                },
                "extensions": {
                  "type": "object",
                  "properties": {
                    "dp-nano-gateway": {
                      "type": "object",
                      "properties": {
                        "apiVersion": {
                          "type": "string"
                        },
                        "spec": {
                          "type": "object",
                          "properties": {
                            "telemetry": {
                              "$ref": "#/$defs/ProjectNanoGwTelemetry"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            {
              "required": [
                "anonymous"
              ],
              "properties": {
                "anonymous": {
                  "type": "object"
                },
                "message": {
                  "type": "string"
                },
                "extensions": {
                  "type": "object",
                  "properties": {
                    "dp-nano-gateway": {
                      "type": "object",
                      "properties": {
                        "apiVersion": {
                          "type": "string"
                        },
                        "spec": {
                          "type": "object",
                          "properties": {
                            "telemetry": {
                              "$ref": "#/$defs/ProjectNanoGwTelemetry"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          ]
        }
      }
    },
    "ProjectSetContextVariable": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "SetContextVariable"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "enabled": {
              "description": "Can be enabled or disabled",
              "type": "boolean"
            },
            "condition": {
              "type": "string"
            },
            "namespaces": {
              "$ref": "#/$defs/ProjectNamespaces"
            },
            "variable": {
              "description": "Multiple instances of variable can be given",
              "type": "array",
              "items": {
                "description": "The message specified the information related to Variable",
                "additionalProperties": false,
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectSetMediaType": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "SetMediaType"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "defaultAcceptHeader": {
              "type": "string"
            },
            "defaultContentType": {
              "type": "string"
            }
          }
        }
      }
    },
    "ProjectStagedPolicySequence": {
      "description": "The policy sequence related information is captured in the message policy sequence",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "apiVersion": {
          "type": "string"
        },
        "kind": {
          "enum": [
            "StagedPolicySequence"
          ],
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "properties": {
            "transport": {
              "$ref": "#/$defs/ProjectReferenceList"
            },
            "security": {
              "$ref": "#/$defs/ProjectReferenceList"
            },
            "monitoring": {
              "$ref": "#/$defs/ProjectReferenceList"
            },
            "routing": {
              "$ref": "#/$defs/ProjectReferenceList"
            },
            "req-processing": {
              "$ref": "#/$defs/ProjectReferenceList"
            },
            "res-processing": {
              "$ref": "#/$defs/ProjectReferenceList"
            },
            "error-handling": {
              "$ref": "#/$defs/ProjectReferenceList"
            }
          }
        }
      }
    },
    "ProjectUriSchemes": {
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "URISchemes"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "required": [
            "uriSchemes"
          ],
          "additionalProperties": false,
          "properties": {
            "uriSchemes": {
              "description": "Multiple instance of protocol can be given",
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "string",
                "enum": [
                  "http",
                  "https"
                ]
              }
            },
            "extensions": {
              "description": "Gateway-specific extensions for URI schemes configuration",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "webm-gateway": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "apiVersion": {
                      "type": "string",
                      "description": "API version for webm-gateway extension"
                    },
                    "spec": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "soap": {
                          "type": "object",
                          "description": "SOAP-specific configuration for webm-gateway",
                          "additionalProperties": false,
                          "properties": {
                            "version": {
                              "type": "string",
                              "enum": [
                                "1.1",
                                "1.2"
                              ],
                              "description": "SOAP version (1.1 or 1.2)"
                            },
                            "validateVersion": {
                              "type": "boolean",
                              "description": "Whether to validate SOAP version"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectValidateAPISpecification": {
      "description": "The validate API Specification related information is captured in the message validateAPISpecification.",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "ValidateAPISpecification"
          ],
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "required": [
            "input",
            "validate"
          ],
          "properties": {
            "input": {
              "type": "string",
              "enum": [
                "request",
                "response",
                "message"
              ]
            },
            "validate": {
              "oneOf": [
                {
                  "required": [
                    "request"
                  ],
                  "properties": {
                    "request": {
                      "type": "object",
                      "properties": {
                        "schema": {
                          "type": "object",
                          "properties": {
                            "validate": {
                              "type": "boolean"
                            }
                          }
                        },
                        "query": {
                          "type": "boolean"
                        },
                        "path": {
                          "type": "boolean"
                        },
                        "header": {
                          "type": "boolean"
                        },
                        "cookie": {
                          "type": "boolean"
                        },
                        "contentType": {
                          "type": "boolean"
                        }
                      }
                    }
                  }
                },
                {
                  "required": [
                    "response"
                  ],
                  "properties": {
                    "response": {
                      "type": "object",
                      "properties": {
                        "schema": {
                          "type": "object",
                          "properties": {
                            "validate": {
                              "type": "boolean"
                            }
                          }
                        },
                        "header": {
                          "type": "boolean"
                        },
                        "contentType": {
                          "type": "boolean"
                        }
                      }
                    }
                  }
                },
                {
                  "required": [
                    "openApiSchemaRef"
                  ],
                  "properties": {
                    "openApiSchemaRef": {
                      "type": "object",
                      "required": [
                        "schemaReference",
                        "failureStatusCode"
                      ],
                      "properties": {
                        "schemaReference": {
                          "type": "string"
                        },
                        "failureStatusCode": {
                          "type": "string",
                          "enum": [
                            "400",
                            "500"
                          ]
                        }
                      }
                    }
                  }
                },
                {
                  "required": [
                    "file"
                  ],
                  "properties": {
                    "file": {
                      "type": "object",
                      "required": [
                        "$path",
                        "failureStatusCode"
                      ],
                      "properties": {
                        "$path": {
                          "type": "string"
                        },
                        "failureStatusCode": {
                          "type": "string",
                          "enum": [
                            "400",
                            "500"
                          ]
                        }
                      }
                    }
                  }
                }
              ]
            },
            "extensions": {
              "type": "object",
              "properties": {
                "webm-gateway": {
                  "type": "object",
                  "required": [
                    "apiVersion",
                    "spec"
                  ],
                  "properties": {
                    "apiVersion": {
                      "type": "string"
                    },
                    "spec": {
                      "type": "object",
                      "properties": {
                        "validate": {
                          "type": "object",
                          "properties": {
                            "custom-headers": {
                              "type": "object",
                              "properties": {
                                "condition": {
                                  "type": "string"
                                }
                              }
                            },
                            "schema": {
                              "type": "object",
                              "properties": {
                                "feature": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "required": [
                                      "name",
                                      "value"
                                    ],
                                    "properties": {
                                      "name": {
                                        "type": "string"
                                      },
                                      "value": {
                                        "type": "boolean"
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "dp-nano-gateway": {
                  "type": "object",
                  "properties": {
                    "apiVersion": {
                      "type": "string"
                    },
                    "spec": {
                      "type": "object",
                      "properties": {
                        "telemetry": {
                          "$ref": "#/$defs/ProjectNanoGwTelemetry"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectWebMethodsISService": {
      "description": "The Context Variablemrelated information is captured in the message WebMethodsISService.",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "WebMethodsISService"
          ],
          "type": "string"
        },
        "apiVersion": {
          "enum": [
            "api.ibm.com/v1"
          ],
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "condition": {
              "type": "string"
            },
            "alias": {
              "type": "string"
            },
            "services": {
              "description": "Multiple instances of Service can be given",
              "type": "array",
              "items": {
                "description": "The message specified the information related to Service",
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "complyToISSpec": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "string"
                  },
                  "runAs": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectWebMethodsISServiceV2": {
      "description": "The Context Variablemrelated information is captured in the message WebMethodsISService.",
      "type": "object",
      "required": [
        "kind",
        "apiVersion",
        "metadata",
        "spec"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "WebMethodsISService"
          ],
          "type": "string"
        },
        "apiVersion": {
          "enum": [
            "api.ibm.com/v2"
          ],
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/ProjectMetadata"
        },
        "spec": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "condition": {
              "type": "string"
            },
            "alias": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "services": {
              "description": "Multiple instances of Service can be given",
              "type": "array",
              "items": {
                "description": "The message specified the information related to Service",
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "complyToISSpec": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "string"
                  },
                  "runAs": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "ProjectXslSchema": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "$path": {
            "type": "string"
          },
          "alias": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "feature": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  }
}