{
  "$id": "https://oracle.com/oracle.cgiu.ua.tmf642.schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "@request": {
      "type": "string"
    },
    "json": {}
  },
  "additionalProperties": false,
  "allOf": [
    {
      "if": {
        "type": "object",
        "properties": {
          "@request": {
            "const": "AlarmCreateEvent"
          }
        }
      },
      "then": {
        "properties": {
          "json": {
            "$ref": "#/$defs/Schemas/AlarmCreateEvent"
          }
        }
      }
    },
    {
      "if": {
        "type": "object",
        "properties": {
          "@request": {
            "const": "AlarmDeleteEvent"
          }
        }
      },
      "then": {
        "properties": {
          "json": {
            "$ref": "#/$defs/Schemas/AlarmDeleteEvent"
          }
        }
      }
    },
    {
      "if": {
        "type": "object",
        "properties": {
          "@request": {
            "const": "ClearAlarmCreateEvent"
          }
        }
      },
      "then": {
        "properties": {
          "json": {
            "$ref": "#/$defs/Schemas/ClearAlarmCreateEvent"
          }
        }
      }
    },
    {
      "if": {
        "type": "object",
        "properties": {
          "@request": {
            "const": "AlarmAttributeValueChangeEvent"
          }
        }
      },
      "then": {
        "properties": {
          "json": {
            "$ref": "#/$defs/Schemas/AlarmAttributeValueChangeEvent"
          }
        }
      }
    }
  ],
  "$defs": {
    "Schemas": {
      "Addressable": {
        "type": "object",
        "description": "Base schema for addressable entities",
        "properties": {
          "href": {
            "type": "string",
            "description": "Hyperlink reference"
          },
          "id": {
            "type": "string",
            "description": "unique identifier"
          }
        }
      },
      "OracleAlarm": {
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Alarm"
          },
          {
            "type": "object",
            "description": "This resource is an extension object of TMF642 Alarm entity for inclusion of custom attributes",
            "properties": {
              "customAttributes": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/Schemas/CustomExtensions"
                }
              }
            }
          }
        ]
      },
      "Alarm": {
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Entity"
          },
          {
            "type": "object",
            "description": "This resource represents an alarm supporting the information model defined in ITU-T X.733.",
            "properties": {
              "externalAlarmId": {
                "type": "string",
                "description": "An identifier of the alarm in the source system."
              },
              "state": {
                "type": "string",
                "description": "Defines the alarm state during its life cycle (raised, updated, cleared).",
                "enum": [
                  "raised",
                  "updated",
                  "cleared"
                ]
              },
              "alarmType": {
                "$ref": "#/$defs/Schemas/AlarmType"
              },
              "perceivedSeverity": {
                "$ref": "#/$defs/Schemas/PerceivedSeverity"
              },
              "probableCause": {
                "type": "string",
                "description": "Provides the probable cause of the alarm. The values are consistent with ITU-T Recommendation X.733 or 3GPP TS 32.111-2 Annex B."
              },
              "specificProblem": {
                "type": "string",
                "description": "Provides more specific information about the alarm."
              },
              "alarmedObjectType": {
                "type": "string",
                "description": "The type (class) of the managed object associated with the event."
              },
              "alarmedObject": {
                "$ref": "#/$defs/Schemas/AlarmedObjectRef"
              },
              "reportingSystemId": {
                "type": "string",
                "description": "Reporting system identity."
              },
              "sourceSystemId": {
                "type": "string",
                "description": "Source system identity."
              },
              "alarmDetails": {
                "type": "string",
                "description": "Contains further information on the alarm."
              },
              "alarmRaisedTime": {
                "type": "string",
                "format": "date-time",
                "description": "Indicates the time (as a date + time) at which the alarm occurred at its source."
              },
              "alarmChangedTime": {
                "type": "string",
                "format": "date-time",
                "description": "Indicates the last date and time when the alarm is changed on the alarm-owning system. Any change to the alarm whether coming from the alarmed resource, or triggered by a change from the client is changing this time."
              },
              "alarmClearedTime": {
                "type": "string",
                "format": "date-time",
                "description": "Indicates the time (as a date + time) at which the alarm is cleared at the source. "
              },
              "alarmReportingTime": {
                "type": "string",
                "format": "date-time",
                "description": "Indicates the time (as a date + time) at which the alarm was reported by the owning OSS. It might be different from the alarmRaisedTime. For instance, if the alarm list is maintained by an EMS, the alarmRaisedtime would be the time the alarm\n  was detected by the NE, while the alarmReportingTime would be the time this alarm was stored in the alarm list of the EMS."
              },
              "ackState": {
                "type": "string",
                "description": "Provides the Acknowledgement State of the alarm (unacknowledged, acknowledged).",
                "enum": [
                  "unacknowledged",
                  "acknowledged"
                ]
              },
              "ackSystemId": {
                "type": "string",
                "description": "Provides the name of the system that last changed the ackState of an alarm, i.e. acknowledged or unacknowledged the alarm."
              },
              "ackUserId": {
                "type": "string",
                "description": "Provides the id of the user who has last changed the ack state of the alarm, i.e. acknowledged or unacknowledged the alarm."
              },
              "affectedService": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/Schemas/ServiceRef"
                }
              },
              "alarmEscalation": {
                "type": "boolean",
                "description": "Indicates if this alarm has been escalated or not. "
              },
              "clearSystemId": {
                "type": "string",
                "description": "Provides the id of the system where the user who invoked the alarmCleared operation is located. "
              },
              "clearUserId": {
                "type": "string",
                "description": "Provides the id of the user who invoked the alarmCleared operation"
              },
              "comment": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/Schemas/Comment"
                }
              },
              "correlatedAlarm": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/Schemas/AlarmRef"
                }
              },
              "crossedThresholdInformation": {
                "$ref": "#/$defs/Schemas/CrossedThresholdInformation"
              },
              "isRootCause": {
                "type": "boolean",
                "description": "Indicates whether the alarm is a root cause alarm.. "
              },
              "parentAlarm": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/Schemas/AlarmRef"
                }
              },
              "plannedOutageIndicator": {
                "type": "string",
                "description": "Indicates that the Managed Object (related to this alarm) is in planned outage (in planned maintenance, or out-of-service). ",
                "enum": [
                  "InService",
                  "OutOfService"
                ]
              },
              "proposedRepairedActions": {
                "type": "string",
                "description": "Indicates proposed repair actions, if known to the system emitting the alarm."
              },
              "serviceAffecting": {
                "type": "boolean",
                "description": "Indicates whether the alarm affects service or not."
              },
              "place": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/Schemas/RelatedPlace"
                }
              }
            }
          }
        ]
      },
      "AlarmAttributeValueChangeEvent": {
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Event"
          },
          {
            "type": "object",
            "description": "AlarmAttributeValueChangeEvent generic structure",
            "properties": {
              "event": {
                "$ref": "#/$defs/Schemas/AlarmAttributeValueChangeEventPayload"
              }
            }
          }
        ]
      },
      "AlarmAttributeValueChangeEventPayload": {
        "type": "object",
        "description": "AlarmAttributeValueChangeEventPayload generic structure",
        "properties": {
          "alarm": {
            "$ref": "#/$defs/Schemas/OracleAlarm"
          }
        },
        "additionalProperties": false
      },
      "AlarmCreateEvent": {
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Event"
          },
          {
            "type": "object",
            "description": "AlarmCreateEvent generic structure",
            "properties": {
              "event": {
                "$ref": "#/$defs/Schemas/AlarmCreateEventPayload"
              }
            }
          }
        ]
      },
      "AlarmCreateEventPayload": {
        "type": "object",
        "description": "AlarmCreateEventPayload generic structure",
        "properties": {
          "alarm": {
            "$ref": "#/$defs/Schemas/OracleAlarm"
          }
        },
        "additionalProperties": false
      },
      "AlarmDeleteEvent": {
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Event"
          },
          {
            "type": "object",
            "description": "AlarmDeleteEvent generic structure",
            "properties": {
              "event": {
                "$ref": "#/$defs/Schemas/AlarmDeleteEventPayload"
              }
            }
          }
        ]
      },
      "AlarmDeleteEventPayload": {
        "type": "object",
        "description": "AlarmDeleteEventPayload generic structure",
        "properties": {
          "alarm": {
            "$ref": "#/$defs/Schemas/Alarm"
          }
        },
        "additionalProperties": false
      },
      "AlarmRef": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/EntityRef"
          }
        ]
      },
      "AlarmRefOrValue": {
        "type": "object",
        "description": "An alarm defined by reference or value. The polymorphic attributes @type, @schemaLocation & @referredType are related to the Alarm entity and not the AlarmRefOrValue class itself",
        "oneOf": [
          {
            "$ref": "#/$defs/Schemas/Alarm"
          },
          {
            "$ref": "#/$defs/Schemas/AlarmRef"
          }
        ]
      },
      "AlarmType": {
        "enum": [
          "communicationsAlarm",
          "processingErrorAlarm",
          "environmentalAlarm",
          "qualityOfServiceAlarm",
          "equipmentAlarm",
          "integrityViolation",
          "operationalViolation",
          "physicalViolation",
          "securityService",
          "mechanismViolation",
          "timeDomainViolation"
        ],
        "type": "string",
        "description": "Categorizes the alarm (X.733 8.1.1, 3GPP TS 32.111-2 Annex A)"
      },
      "AlarmedObjectRef": {
        "type": "object",
        "description": "Reference to object which affected by Alarm (AlarmedObject).",
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/EntityRef"
          }
        ]
      },
      "BaseEvent": {
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Entity"
          },
          {
            "type": "object",
            "description": "Base event with common attributes.",
            "properties": {
              "event": {
                "type": "object"
              },
              "eventId": {
                "type": "string",
                "description": "The identifier of the notification."
              },
              "eventTime": {
                "type": "string",
                "format": "date-time",
                "description": "Time of the event occurrence."
              },
              "eventType": {
                "type": "string",
                "description": "The type of the notification."
              },
              "correlationId": {
                "type": "string",
                "description": "The correlation id for this event."
              },
              "domain": {
                "type": "string",
                "description": "The domain of the event."
              },
              "title": {
                "type": "string",
                "description": "The title of the event."
              },
              "description": {
                "type": "string",
                "description": "An explanatory of the event."
              },
              "priority": {
                "type": "string",
                "description": "A priority."
              },
              "timeOcurred": {
                "type": "string",
                "format": "date-time",
                "description": "The time the event occurred."
              }
            }
          }
        ]
      },
      "Characteristic": {
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Extensible"
          },
          {
            "type": "object",
            "description": "Describes a given characteristic of an object or entity through a name/value pair.",
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier of the characteristic"
              },
              "name": {
                "type": "string",
                "description": "Name of the characteristic"
              },
              "valueType": {
                "type": "string",
                "description": "Data type of the value of the characteristic"
              },
              "characteristicRelationship": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/Schemas/CharacteristicRelationship"
                }
              }
            }
          }
        ]
      },
      "CharacteristicRelationship": {
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Extensible"
          },
          {
            "type": "object",
            "description": "Another Characteristic that is related to the current Characteristic;",
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier of the characteristic"
              },
              "relationshipType": {
                "type": "string",
                "description": "The type of relationship"
              }
            }
          }
        ]
      },
      "ClearAlarm": {
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Entity"
          },
          {
            "type": "object",
            "description": "Task resource for clear alarms operation",
            "properties": {
              "state": {
                "description": "Current state of the operation task",
                "type": "string",
                "enum": [
                  "acknowledged",
                  "terminatedWithError",
                  "inProgress",
                  "done",
                  "cancel",
                  "canceled"
                ]
              },
              "clearSystemId": {
                "description": "Name of the clearing system",
                "type": "string"
              },
              "clearUserId": {
                "description": "Name of the clearing user",
                "type": "string"
              },
              "alarmClearedTime": {
                "description": "Time of the alarm clearing",
                "type": "string",
                "format": "date-time"
              },
              "alarmPattern": {
                "description": "Alarm patterns to match target alarms. An alarm will match if all of the attributes in any of the patterns compare equal to those attributes of the alarm.",
                "type": "array",
                "items": {
                  "$ref": "#/$defs/Schemas/AlarmRefOrValue"
                }
              },
              "clearedAlarm": {
                "description": "The successfully cleared alarms",
                "type": "array",
                "items": {
                  "$ref": "#/$defs/Schemas/AlarmRefOrValue"
                }
              }
            }
          }
        ]
      },
      "ClearAlarmCreateEvent": {
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Event"
          },
          {
            "type": "object",
            "description": "ClearAlarmCreateEvent generic structure",
            "properties": {
              "event": {
                "$ref": "#/$defs/Schemas/ClearAlarmCreateEventPayload"
              }
            }
          }
        ]
      },
      "ClearAlarmCreateEventPayload": {
        "type": "object",
        "description": "ClearAlarmCreateEventPayload generic structure",
        "properties": {
          "clearAlarm": {
            "$ref": "#/$defs/Schemas/ClearAlarm"
          }
        },
        "additionalProperties": false
      },
      "Comment": {
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Extensible"
          },
          {
            "type": "object",
            "description": "Indicates the comments entered on the alarm.",
            "properties": {
              "userId": {
                "type": "string",
                "description": "Indicates the user commenting the alarm."
              },
              "systemId": {
                "type": "string",
                "description": "Indicates the system identifier on which the client set the comment."
              },
              "time": {
                "type": "string",
                "format": "date-time",
                "description": "Indicates the time commenting the alarm"
              },
              "comment": {
                "type": "string",
                "description": "Indicates the text of the comment."
              }
            }
          }
        ]
      },
      "CrossedThresholdInformation": {
        "type": "object",
        "description": "Identifies the details of the threshold that has been crossed.",
        "properties": {
          "threshold": {
            "$ref": "#/$defs/Schemas/ThresholdRef"
          },
          "direction": {
            "type": "string",
            "description": "Indicates the threshold crossing direction: up or down."
          },
          "granularity": {
            "type": "string",
            "description": "Indicates the granularity at which the indicator is evaluated for threshold crossing"
          },
          "indicatorName": {
            "type": "string",
            "description": "Indicates the name of indicator which crossed the threshold."
          },
          "indicatorUnit": {
            "type": "string",
            "description": "Indicates the unit of the measurement of the indicator corresponding to the threshold that has been crossed."
          },
          "observedValue": {
            "type": "string",
            "description": "Indicates the value of the indicator which crossed the threshold."
          },
          "thresholdCrossingDescription": {
            "type": "string",
            "description": "Indicates further information on the threshold crossing alarm."
          }
        }
      },
      "Entity": {
        "type": "object",
        "description": "Base entity schema for use in TMForum Open-APIs. Property.",
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Extensible"
          },
          {
            "$ref": "#/$defs/Schemas/Addressable"
          }
        ]
      },
      "EntityRef": {
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Extensible"
          },
          {
            "$ref": "#/$defs/Schemas/Addressable"
          },
          {
            "type": "object",
            "description": "Entity reference schema to be use for all entityRef class.",
            "properties": {
              "id": {
                "type": "string",
                "description": "The identifier of the referred entity."
              },
              "href": {
                "type": "string",
                "description": "The URI of the referred entity."
              },
              "name": {
                "type": "string",
                "description": "Name of the referred entity."
              },
              "@referredType": {
                "type": "string",
                "description": "The actual type of the target instance when needed for disambiguation."
              }
            },
            "required": [
              "id"
            ]
          }
        ]
      },
      "Event": {
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Extensible"
          },
          {
            "type": "object",
            "description": "event with common attributes.",
            "properties": {
              "href": {
                "type": "string",
                "description": "Hyperlink reference"
              },
              "id": {
                "type": "string",
                "description": "unique identifier"
              },
              "correlationId": {
                "type": "string",
                "description": "The correlation id for this event."
              },
              "domain": {
                "type": "string",
                "description": "The domain of the event."
              },
              "title": {
                "type": "string",
                "description": "The title of the event."
              },
              "description": {
                "type": "string",
                "description": "An explanatory of the event."
              },
              "priority": {
                "type": "string",
                "description": "A priority."
              },
              "timeOccurred": {
                "type": "string",
                "format": "date-time",
                "description": "The time the event occurred."
              },
              "source": {
                "$ref": "#/$defs/Schemas/EntityRef"
              },
              "reportingSystem": {
                "$ref": "#/$defs/Schemas/EntityRef"
              },
              "relatedParty": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/Schemas/RelatedPartyRefOrPartyRoleRef"
                }
              },
              "analyticCharacteristic": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/Schemas/Characteristic"
                }
              },
              "eventId": {
                "type": "string",
                "description": "The identifier of the notification."
              },
              "eventTime": {
                "type": "string",
                "format": "date-time",
                "description": "Time of the event occurrence."
              },
              "eventType": {
                "type": "string",
                "description": "The type of the notification."
              },
              "event": {
                "description": "The event linked to the involved resource object",
                "type": "object"
              }
            }
          }
        ]
      },
      "Extensible": {
        "type": "object",
        "description": "Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema  MUST be extended with the @type",
        "properties": {
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class Extensible name"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          }
        },
        "required": [
          "@type"
        ]
      },
      "PartyRef": {
        "type": "object",
        "description": "A Party reference",
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/EntityRef"
          }
        ]
      },
      "PartyRefOrPartyRoleRef": {
        "type": "object",
        "description": "",
        "oneOf": [
          {
            "$ref": "#/$defs/Schemas/PartyRef"
          },
          {
            "$ref": "#/$defs/Schemas/PartyRoleRef"
          }
        ]
      },
      "PartyRoleRef": {
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/EntityRef"
          },
          {
            "type": "object",
            "description": "Party role reference. A party role represents the part played by a party in a given context.",
            "properties": {
              "partyId": {
                "type": "string",
                "description": "The identifier of the engaged party that is linked to the PartyRole object."
              },
              "partyName": {
                "type": "string",
                "description": "The name of the engaged party that is linked to the PartyRole object."
              }
            }
          }
        ]
      },
      "PerceivedSeverity": {
        "enum": [
          "critical",
          "major",
          "minor",
          "warning",
          "indeterminate",
          "cleared"
        ],
        "type": "string",
        "description": "Lists the possible severities that can be allocated to an Alarm. The values are consistent with ITU-T Recommendation X.733.\nOnce an alarm has been cleared, its perceived severity is set to 'cleared' and can no longer be set."
      },
      "Place": {
        "type": "object",
        "description": "Place reference.",
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Entity"
          }
        ]
      },
      "RelatedPartyRefOrPartyRoleRef": {
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Extensible"
          },
          {
            "type": "object",
            "description": "RelatedParty reference. A related party defines party or party role or its reference, linked to a specific entity",
            "properties": {
              "role": {
                "description": "Role played by the related party or party role in the context of the specific entity it is linked to. Such as 'initiator', 'customer',  'salesAgent', 'user'",
                "type": "string"
              },
              "partyOrPartyRole": {
                "$ref": "#/$defs/Schemas/PartyRefOrPartyRoleRef"
              }
            }
          }
        ]
      },
      "RelatedPlace": {
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Extensible"
          },
          {
            "type": "object",
            "description": "A  Place and an associated role as installation address, delivery address, etc....",
            "properties": {
              "role": {
                "type": "string"
              },
              "relatedPlace": {
                "$ref": "#/$defs/Schemas/Place"
              }
            }
          }
        ]
      },
      "ServiceRef": {
        "type": "object",
        "description": "Service reference, for when Service is used by other entities.",
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Extensible"
          },
          {
            "$ref": "#/$defs/Schemas/EntityRef"
          }
        ]
      },
      "ThresholdRef": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/EntityRef"
          }
        ]
      },
      "Error": {
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Extensible"
          },
          {
            "type": "object",
            "required": [
              "code",
              "reason"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "Application relevant detail, defined in the API or a common list."
              },
              "reason": {
                "type": "string",
                "description": "Explanation of the reason for the error which can be shown to a client user."
              },
              "message": {
                "type": "string",
                "description": "More details and corrective actions related to the error which can be shown to a client user."
              },
              "status": {
                "type": "string",
                "description": "HTTP Error code extension"
              },
              "referenceError": {
                "type": "string",
                "description": "URI of documentation describing the error."
              }
            }
          }
        ],
        "description": "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)"
      },
      "Hub": {
        "type": "object",
        "description": "Sets the communication endpoint address the service instance must use to deliver notification information",
        "allOf": [
          {
            "$ref": "#/$defs/Schemas/Entity"
          },
          {
            "properties": {
              "id": {
                "type": "string",
                "description": "Id of the listener"
              },
              "callback": {
                "type": "string",
                "description": "The callback being registered."
              },
              "query": {
                "type": "string",
                "description": "additional data to be passed"
              }
            },
            "required": [
              "callback"
            ]
          }
        ]
      },
      "JsonPatch": {
        "type": "object",
        "description": "A JSONPatch document as defined by RFC 6902",
        "required": [
          "op",
          "path"
        ],
        "properties": {
          "op": {
            "type": "string",
            "description": "The operation to be performed",
            "enum": [
              "add",
              "remove",
              "replace",
              "move",
              "copy",
              "test"
            ]
          },
          "path": {
            "type": "string",
            "description": "A JSON-Pointer"
          },
          "value": {
            "description": "The value to be used within the operations."
          },
          "from": {
            "type": "string",
            "description": "A string containing a JSON Pointer value."
          }
        }
      },
      "JsonPatchOperations": {
        "description": "JSONPatch Operations document as defined by RFC 6902",
        "type": "array",
        "items": {
          "$ref": "#/$defs/Schemas/JsonPatch"
        }
      },
      "CustomExtensions": {
        "allOf": [
          {
            "type": "object",
            "description": "Custom attributes for the alarm.",
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the custom attribute."
              },
              "type": {
                "type": "string",
                "description": "Data type of custom attribute."
              },
              "value": {
                "type": "string",
                "description": "Value of custom attribute."
              }
            }
          }
        ]
      }
    }
  }
}
