{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/ibm-api-connect/json-schema/ibm-api-connect-app-schema.json",
  "title": "App",
  "x-generated": "2026-10-29",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/ibm-api-connect-consumer-management-api-openapi.yml#/components/schemas/App",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "readOnly": true,
      "enum": [
        "app"
      ]
    },
    "api_version": {
      "type": "string",
      "readOnly": true,
      "enum": [
        "2.0.0"
      ]
    },
    "id": {
      "type": "string",
      "readOnly": true
    },
    "name": {
      "type": "string",
      "maxLength": 255
    },
    "title": {
      "type": "string",
      "maxLength": 1023
    },
    "summary": {
      "type": "string",
      "maxLength": 65535
    },
    "state": {
      "type": "string",
      "enum": [
        "enabled",
        "disabled",
        "pending"
      ]
    },
    "lifecycle_state": {
      "type": "string",
      "enum": [
        "development",
        "production"
      ]
    },
    "lifecycle_state_pending": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "production"
      ]
    },
    "app_credential_urls": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      }
    },
    "client_id": {
      "type": "string"
    },
    "client_secret": {
      "type": "string"
    },
    "redirect_endpoints": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      }
    },
    "application_public_certificate_entry": {
      "type": "string"
    },
    "org_url": {
      "type": "string",
      "format": "uri"
    },
    "catalog_url": {
      "type": "string",
      "format": "uri"
    },
    "consumer_org_url": {
      "type": "string",
      "format": "uri"
    },
    "task_urls": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      }
    },
    "image_endpoint": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "application_type_url": {
      "type": "string",
      "format": "uri"
    },
    "api_urls": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string",
        "format": "uri"
      }
    },
    "consumer_org": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    "credentials": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "client_id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        }
      }
    },
    "access_tokens": {
      "$ref": "#/$defs/ApplicationToken"
    },
    "auth_strategy_urls": {
      "type": "array",
      "description": "Contains a list of JWT/Oauth/OpenID authentication strategies",
      "items": {
        "type": "string",
        "format": "uri"
      }
    },
    "contact_emails": {
      "type": "array",
      "description": "list of email contacts",
      "items": {
        "type": "string"
      }
    },
    "custom_fields": {
      "type": "object",
      "description": "list of all custom fields",
      "additionalProperties": true
    },
    "icon_byte_array": {
      "type": "string",
      "description": "application icon byte array"
    },
    "identifiers": {
      "type": "array",
      "description": "list of all application identifiers",
      "items": {
        "$ref": "#/$defs/ApplicationIdentifier"
      }
    },
    "js_origins": {
      "type": "array",
      "description": "list of all javascript origins",
      "items": {
        "type": "string"
      }
    },
    "primary_node": {
      "$ref": "#/$defs/Node"
    },
    "shell": {
      "type": "boolean"
    },
    "site_urls": {
      "type": "array",
      "description": "list of all site URLs",
      "items": {
        "type": "string"
      }
    },
    "subscription": {
      "type": "boolean"
    },
    "version": {
      "type": "string"
    },
    "team_urls": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      }
    },
    "rate_limit_notification_settings": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "thresholds": {
          "type": "object",
          "properties": {
            "70": {
              "type": "boolean"
            },
            "80": {
              "type": "boolean"
            },
            "95": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "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": {
    "APIAccessKey": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "apiAccessKey": {
          "type": "string",
          "description": "API access key"
        },
        "expirationDate": {
          "type": "string",
          "description": "expiration date of the api key"
        },
        "expirationInterval": {
          "type": "string",
          "description": "expiration interval of the api key"
        }
      }
    },
    "ApplicationIdentifier": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "unique identifier of the application identifier"
        },
        "key": {
          "type": "string",
          "enum": [
            "access_profile",
            "api_key",
            "http_basic_auth",
            "http_headers",
            "https_certificate",
            "host_name_address",
            "ip_address_range",
            "jwt_claims",
            "kerberos_token",
            "oauth2_token",
            "open_id_claims",
            "partner_id",
            "payload_element",
            "token",
            "wssec_username_token",
            "wssec_x509_token",
            "xpath_expression"
          ],
          "description": "identifier type"
        },
        "name": {
          "type": "string",
          "description": "name of the identifier"
        },
        "value": {
          "type": "array",
          "description": "list of identifier values",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ApplicationToken": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "api_access_key": {
          "$ref": "#/$defs/APIAccessKey"
        },
        "oauth2_token": {
          "$ref": "#/$defs/OAuth2Token"
        }
      }
    },
    "Node": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "hostId": {
          "type": "string"
        },
        "replica": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000
        }
      }
    },
    "OAuth2Token": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "client_id": {
          "type": "string",
          "description": "unique identifier of the oauth2 client"
        },
        "clientName": {
          "type": "string",
          "description": "the name of the client"
        },
        "clientSecret": {
          "type": "string",
          "description": "the client secret"
        },
        "expirationInterval": {
          "type": "string",
          "description": "the expiration interval"
        },
        "redirectUris": {
          "type": "array",
          "description": "list of redirect uris",
          "items": {
            "type": "string"
          }
        },
        "refreshCount": {
          "type": "string",
          "description": "number of times an access token can be refreshed"
        },
        "scopes": {
          "type": "array",
          "description": "the scopes associated with the client",
          "items": {
            "type": "string"
          }
        },
        "type": {
          "type": "string",
          "description": "type of the oauth2 client"
        }
      }
    }
  }
}