{
  "ash" : {
    "generateResource" : "Y"
  },
  "attributes" : [
    {
      "allowsNull" : "N",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "_rowid",
      "externalType" : "longlong",
      "isIndexed" : "Y",
      "name" : "meetingInviteID",
      "record" : {
        "allowsRecord" : "N",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSNumber",
      "valueType" : "l"
    },
    {
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "userID",
      "externalType" : "longlong",
      "isIndexed" : "Y",
      "name" : "userID",
      "record" : {
        "allowsRecord" : "N",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSNumber",
      "valueType" : "l"
    },
    {
      "allowsNull" : "N",
      "ash" : {
        "ashName" : "status",
        "ashType" : "Daylite.Meetings.MeetingInvite.Status",
        "includeInResource" : "Y"
      },
      "columnName" : "statusCode",
      "defaultValue" : "0",
      "externalType" : "int",
      "name" : "statusCode",
      "purpose" : "Deprecated. Instead, use ``sendingStatus`` and ``responseStatus``.\n\nThe overall status of the meeting invite used by earlier versions of the app for `.internal` and `.externalLocal` meeting invites.\nRaw value from MeetingInviteStatus",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSNumber",
      "valueType" : "i"
    },
    {
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "timeblockID",
      "externalType" : "longlong",
      "isIndexed" : "Y",
      "name" : "timeblockID",
      "record" : {
        "allowsRecord" : "N",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSNumber",
      "valueType" : "l"
    },
    {
      "allowsNull" : "N",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "icsSequence",
      "defaultValue" : "0",
      "externalType" : "int",
      "name" : "icsSequence",
      "purpose" : "Deprecated. Reserved for backwards compatibility with Mail-Scripting-based external invitations.",
      "record" : {
        "allowsRecord" : "N",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSNumber"
    },
    {
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "icsDateStamp",
      "externalType" : "datetime",
      "name" : "icsDateStamp",
      "purpose" : "Deprecated. Reserved for backwards compatibility with Mail-Scripting-based external invitations.",
      "record" : {
        "allowsRecord" : "N",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSDate"
    },
    {
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "contactID",
      "externalType" : "longlong",
      "isIndexed" : "Y",
      "name" : "contactID",
      "purpose" : "Deprecated. Reserved for backwards compatibility with Mail-Scripting-based external invitations.\n\nFor Backend-based external invitations, use externalContactID.",
      "record" : {
        "allowsRecord" : "N",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSNumber",
      "valueType" : "l"
    },
    {
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "icsAddress",
      "externalType" : "char",
      "name" : "icsAddress",
      "purpose" : "Deprecated. Reserved for backwards compatibility with Mail-Scripting-based external invitations.\n\nFor Backend-based external invitations, use emailAddress.",
      "record" : {
        "allowsRecord" : "N",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSString",
      "width" : "0"
    },
    {
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "note",
      "externalType" : "char",
      "name" : "note",
      "purpose" : "A comment provided by the invitee when they responded to the invitation.",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSString"
    },
    {
      "addedInModelVersion" : 0,
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "deletionUserID",
      "externalType" : "int",
      "isIndexed" : "Y",
      "name" : "deletionUserID",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSNumber",
      "valueType" : "i"
    },
    {
      "addedInModelVersion" : 0,
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "deletionDate",
      "externalType" : "datetime",
      "isIndexed" : "Y",
      "name" : "deletionDate",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSDate"
    },
    {
      "addedInModelVersion" : 0,
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "deletionIdentifier",
      "externalType" : "char",
      "isIndexed" : "Y",
      "name" : "deletionIdentifier",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSString",
      "width" : 255
    },
    {
      "addedInModelVersion" : 1001,
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "inviteType",
      "defaultValue" : "0",
      "externalType" : "int",
      "name" : "inviteType",
      "purpose" : "The type of meeting invitation (internal, external), including which version of external invites.",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "EnumInteger",
      "valueEnum" : "MeetingInviteType"
    },
    {
      "addedInModelVersion" : 1001,
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "errorCode",
      "defaultValue" : "0",
      "externalType" : "int",
      "name" : "errorCode",
      "purpose" : "An error code that represents the underlying reason for an external invitation delivery failure. Check this value when the status code is `.error` to provide a more specific reason to the user.",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "EnumInteger",
      "valueEnum" : "MeetingInviteErrorCode"
    },
    {
      "addedInModelVersion" : 1001,
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "emailAddress",
      "externalType" : "char",
      "name" : "emailAddress",
      "purpose" : "The email address of the contact for external invites.\n\nThis is the email address used for all emails and ICS files when communicating with this invitee.\n\nIt is set based on the Contact's default email address, or the one that the user selected when creating the `MeetingInvite`.",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSString",
      "width" : 1024
    },
    {
      "addedInModelVersion" : 1001,
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "commonName",
      "externalType" : "char",
      "name" : "commonName",
      "purpose" : "The display name of the contact for external invites.\n\nThis name is used when generating emails and ICS files for this appointment.\n\nIt is set based on the Contact's name when creating the `MeetingInvite`.",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSString",
      "width" : 1024
    },
    {
      "addedInModelVersion" : 1001,
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "participationRole",
      "defaultValue" : "0",
      "externalType" : "int",
      "name" : "participationRole",
      "purpose" : "The participation role of the meeting invite. ",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "EnumInteger",
      "valueEnum" : "MeetingInviteParticipationRole"
    },
    {
      "addedInModelVersion" : 1001,
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "externalContactID",
      "externalType" : "longlong",
      "isIndexed" : "Y",
      "name" : "externalContactID",
      "record" : {
        "allowsRecord" : "N",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSNumber",
      "valueType" : "i"
    },
    {
      "addedInModelVersion" : 1001,
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "responseStatus",
      "defaultValue" : "0",
      "externalType" : "int",
      "name" : "responseStatus",
      "purpose" : "The response status that represents the invitee's response to the invitation.",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "EnumInteger",
      "valueEnum" : "MeetingInviteResponseStatus"
    },
    {
      "addedInModelVersion" : 1001,
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "sendingStatus",
      "defaultValue" : "0",
      "externalType" : "int",
      "name" : "sendingStatus",
      "purpose" : "The sending status that represents whether the invitation has been sent, suppressed, or failed due to an error.",
      "record" : {
        "allowsRecord" : "Y",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "EnumInteger",
      "valueEnum" : "MeetingInviteSendingStatus"
    },
    {
      "addedInModelVersion" : 1001,
      "allowsNull" : "Y",
      "ash" : {
        "includeInResource" : "Y"
      },
      "columnName" : "suppressedByID",
      "externalType" : "longlong",
      "isIndexed" : "Y",
      "name" : "suppressedByID",
      "record" : {
        "allowsRecord" : "N",
        "isInternal" : "N",
        "isUpdatable" : "Y"
      },
      "valueClassName" : "NSNumber",
      "valueType" : "i"
    }
  ],
  "className" : "GWMeetingInvite",
  "classProperties" : [
    "meetingInviteID",
    "userID",
    "statusCode",
    "timeblockID",
    "icsSequence",
    "icsDateStamp",
    "contactID",
    "icsAddress",
    "note",
    "deletionUserID",
    "deletionDate",
    "deletionIdentifier",
    "inviteType",
    "errorCode",
    "emailAddress",
    "commonName",
    "participationRole",
    "externalContactID",
    "responseStatus",
    "sendingStatus",
    "suppressedByID",
    "user",
    "timeblock",
    "contact",
    "externalInvitationRecipients",
    "externalContact",
    "meetingHistories",
    "suppressedBy"
  ],
  "domain" : "Meetings",
  "enums" : [
    {
      "addedInModelVersion" : 1001,
      "items" : [
        {
          "addedInModelVersion" : 1001,
          "name" : "Internal",
          "purpose" : "An internal meeting invitation to another Daylite user.",
          "value" : 1
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "ExternalLocal",
          "purpose" : "An external meeting invitation for the deprecated Mail-Scripting-based external invitation feature.",
          "value" : 2
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "ExternalRemote",
          "purpose" : "An external meeting invitation for the Backend-based external invitation feature.",
          "value" : 3
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "Unrecognized",
          "purpose" : "An unrecognized meeting invite type.\n\nThis may represent an invalid `MeetingInvite` that could not be inferred as one of the expected types.",
          "value" : 0
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "ExternalUnmanaged",
          "purpose" : "A meeting invite type that Daylite does not manage.\n\nThese are used by third-party tools to communicate statuses of meeting invites that they manage.",
          "value" : 4
        },
        {
          "addedInModelVersion" : 1105,
          "name" : "CalendarSyncCopy",
          "purpose" : "A meeting invite that represents a copy of an invitee \/ attendee that originated from an external calendar event.",
          "value" : 5
        }
      ],
      "name" : "MeetingInviteType",
      "purpose" : "A type of meeting invitation (internal, external), including which version of external invitation.",
      "type" : 1
    },
    {
      "addedInModelVersion" : 1001,
      "items" : [
        {
          "addedInModelVersion" : 1001,
          "name" : "None",
          "purpose" : "No error.",
          "value" : 0
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "SoftBounce",
          "purpose" : "A recoverable error such as server down\/overloaded – user can retry without making changes.",
          "value" : 1
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "HardBounce",
          "purpose" : "An unrecoverable error such as an invalid email address, bad domain, recipient blocked delivery – possibly fixable by user making correction.",
          "value" : 2
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "Undeliverable",
          "purpose" : "An unrecoverable error such as badly formatted email or an error not defined above – user is probably not able to fix it. The issue may require a code change to fix.",
          "value" : 3
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "MailboxFull",
          "purpose" : "A recoverable error if recipient clears space in their mailbox.",
          "value" : 4
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "EmailAddressLocalPartBad",
          "purpose" : "An unrecoverable error since the local part of email address does not exist (ex: johnny@gmail.com where johnny doesn't exist).",
          "value" : 5
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "EmailAddressDomainBad",
          "purpose" : "An unrecoverable error since the domain doesn't exist or doesn't accept mail (ex. bob@gmial.com where gmial.com doesn't exist).",
          "value" : 6
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "Dropped",
          "purpose" : "The recipient previously requested to not be emailed any more and the email dropped.\n\nThis happens if the recipient reported a previous email as spam or \"unsubscribed\" from any more emails.",
          "value" : 7
        }
      ],
      "name" : "MeetingInviteErrorCode",
      "purpose" : "A specific error code for why an invitation email failed to be delivered.",
      "type" : 1
    },
    {
      "addedInModelVersion" : 1001,
      "items" : [
        {
          "addedInModelVersion" : 1001,
          "name" : "Required",
          "purpose" : "The invitee's participation is required.",
          "value" : 0
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "Optional",
          "purpose" : "The invitee's participation is optional.",
          "value" : 1
        }
      ],
      "name" : "MeetingInviteParticipationRole",
      "purpose" : "The participation role of the invitee.",
      "type" : 1
    },
    {
      "addedInModelVersion" : 1001,
      "items" : [
        {
          "addedInModelVersion" : 1001,
          "name" : "Unsent",
          "purpose" : "The invitation email has not been sent. For external invitations only.\n\nOriginally defined in code as `kGWMeetingInviteUnsentStatus`.",
          "value" : 0
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "Pending",
          "purpose" : "The invitation email has been sent and is awaiting a response.\n\nOriginally defined in code as `kGWMeetingInvitePendingStatus`.",
          "value" : 1
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "Accepted",
          "purpose" : "The invitation has been accepted by the invitee. \n\nThe invitee may provide a comment when accepting the response. See the `MeetingInvite\/note` property.\n\nOriginally defined in code as `kGWMeetingInviteAcceptedStatus`.",
          "value" : 2
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "Rejected",
          "purpose" : "The invitation has been declined by the invitee.\n\nThe invitee may provide a comment when declining the response. See the `MeetingInvite\/note` property.\n\nOriginally defined in code as `kGWMeetingInviteRejectedStatus`.",
          "value" : 3
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "Unknown",
          "purpose" : "Used to represent a future state that's not representable by apps before the External Meeting Invites project.",
          "value" : 4
        }
      ],
      "name" : "MeetingInviteStatus",
      "purpose" : "Deprecated. Instead, use ``MeetingInviteSendingStatus`` and ``MeetingInviteResponseStatus``.\n\nA representation of the overall status of the meeting invite.",
      "type" : 1
    },
    {
      "addedInModelVersion" : 1001,
      "items" : [
        {
          "addedInModelVersion" : 1001,
          "name" : "NoResponse",
          "purpose" : "No response to an invitation has been received by the invitee.",
          "value" : 0
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "Accepted",
          "purpose" : "The invitation has been accepted by the invitee. \n\nThe invitee may provide a comment when accepting the response. See the `MeetingInvite\/note` property.",
          "value" : 1
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "Rejected",
          "purpose" : "The invitation has been declined by the invitee.\n\nThe invitee may provide a comment when declining the response. See the ``MeetingInvite\/note`` property.",
          "value" : 2
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "Tentative",
          "purpose" : "The invitation has been responded as “tentative” by the invitee.\n\nThe invitee may provide a comment with the response. See the ``MeetingInvite\/note`` property.",
          "value" : 3
        }
      ],
      "name" : "MeetingInviteResponseStatus",
      "purpose" : "A representation of the invitees response to an invitation.",
      "type" : 1
    },
    {
      "addedInModelVersion" : 1001,
      "items" : [
        {
          "addedInModelVersion" : 1001,
          "name" : "Unsent",
          "purpose" : "The invitation has not been sent yet.",
          "value" : 0
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "Sent",
          "purpose" : "The invitation has been sent.",
          "value" : 1
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "Error",
          "purpose" : "An error occurred that prevented the invitation from being delivered. For external invitations only.\n\nSee ``MeetingInvite\/errorCode`` for more information about the specific error.",
          "value" : 2
        },
        {
          "addedInModelVersion" : 1001,
          "name" : "Suppressed",
          "purpose" : "An inactive external meeting invite. For external invitations only.\n\nThis status is set when the user selects “Don’t Send” on the initial invitation prompt.\n\nSuppressed invites do not receive any subsequent invitations until the user approves sending them.",
          "value" : 3
        }
      ],
      "name" : "MeetingInviteSendingStatus",
      "purpose" : "The sending state of the meeting invite.",
      "type" : 1
    }
  ],
  "externalName" : "MeetingInvite",
  "isDatabasePreference" : false,
  "isTrashable" : true,
  "name" : "MeetingInvite",
  "primaryKeyAttributes" : [
    "meetingInviteID"
  ],
  "purpose" : "A `MeetingInvite` is the source of truth for both internal and external meeting invites in Daylite.",
  "record" : {
    "allowsRecord" : "Y",
    "isDirectlyUpdatable" : "Y"
  },
  "relationships" : [
    {
      "ash" : {
        "includeInResource" : "Y"
      },
      "destination" : "User",
      "isToMany" : "N",
      "joins" : [
        {
          "destinationAttribute" : "userID",
          "sourceAttribute" : "userID"
        }
      ],
      "joinSemantic" : "EOInnerJoin",
      "name" : "user",
      "purpose" : "The `User` relationship for internal invites.\n\nThis relationship is not set for external invites.",
      "record" : {
        "allowsRecord" : "Y",
        "isEmbedded" : "N",
        "isInternal" : "N",
        "propagatesUpdates" : "N"
      }
    },
    {
      "ash" : {
        "includeInResource" : "Y"
      },
      "destination" : "Timeblock",
      "isToMany" : "N",
      "joins" : [
        {
          "destinationAttribute" : "timeblockID",
          "sourceAttribute" : "timeblockID"
        }
      ],
      "joinSemantic" : "EOInnerJoin",
      "name" : "timeblock",
      "record" : {
        "allowsRecord" : "Y",
        "isEmbedded" : "N",
        "isInternal" : "N",
        "propagatesUpdates" : "N"
      }
    },
    {
      "ash" : {
        "includeInResource" : "Y"
      },
      "destination" : "Contact",
      "isToMany" : "N",
      "joins" : [
        {
          "destinationAttribute" : "contactID",
          "sourceAttribute" : "contactID"
        }
      ],
      "joinSemantic" : "EOInnerJoin",
      "name" : "contact",
      "purpose" : "Deprecated. Reserved for backwards compatibility with Mail-Scripting-based external invitations.\n\nFor Backend-based external invitations, use ``externalContact`` instead.",
      "record" : {
        "allowsRecord" : "N",
        "isEmbedded" : "N",
        "isInternal" : "N",
        "propagatesUpdates" : "N"
      }
    },
    {
      "addedInModelVersion" : 1001,
      "ash" : {
        "includeInResource" : "Y"
      },
      "deleteRule" : "EODeleteRuleNoAction",
      "destination" : "ExternalInvitationRecipient",
      "isToMany" : "Y",
      "joins" : [
        {
          "destinationAttribute" : "meetingInviteID",
          "sourceAttribute" : "meetingInviteID"
        }
      ],
      "joinSemantic" : "EOInnerJoin",
      "name" : "externalInvitationRecipients",
      "purpose" : "The collection of external invitation recipients that have been created due to this `MeetingInvite`.",
      "record" : {
        "allowsRecord" : "Y",
        "isEmbedded" : "N",
        "isInternal" : "N",
        "propagatesUpdates" : "N"
      }
    },
    {
      "addedInModelVersion" : 1001,
      "ash" : {
        "includeInResource" : "Y"
      },
      "destination" : "Contact",
      "isToMany" : "N",
      "joins" : [
        {
          "destinationAttribute" : "contactID",
          "sourceAttribute" : "externalContactID"
        }
      ],
      "joinSemantic" : "EOInnerJoin",
      "name" : "externalContact",
      "purpose" : "The `Contact` relationship to refer to for Backend-based external invites. \n\nThis relationship is not set for internal invites.",
      "record" : {
        "allowsRecord" : "Y",
        "isEmbedded" : "N",
        "isInternal" : "N",
        "propagatesUpdates" : "N"
      }
    },
    {
      "addedInModelVersion" : 1001,
      "ash" : {
        "includeInResource" : "Y"
      },
      "destination" : "MeetingHistory",
      "isToMany" : "Y",
      "joins" : [
        {
          "destinationAttribute" : "meetingInviteID",
          "sourceAttribute" : "meetingInviteID"
        }
      ],
      "joinSemantic" : "EOInnerJoin",
      "name" : "meetingHistories",
      "purpose" : "The collection of meeting histories that track responses to this `MeetingInvite`.",
      "record" : {
        "allowsRecord" : "Y",
        "isEmbedded" : "N",
        "isInternal" : "N",
        "propagatesUpdates" : "N"
      }
    },
    {
      "addedInModelVersion" : 1001,
      "ash" : {
        "includeInResource" : "Y"
      },
      "destination" : "User",
      "isToMany" : "N",
      "joins" : [
        {
          "destinationAttribute" : "userID",
          "sourceAttribute" : "suppressedByID"
        }
      ],
      "joinSemantic" : "EOInnerJoin",
      "name" : "suppressedBy",
      "purpose" : "When a `MeetingInvite` is suppressed, this records the user that chose Don’t Send, which transitioned the invite to `.suppressed`.",
      "record" : {
        "allowsRecord" : "Y",
        "isEmbedded" : "N",
        "isInternal" : "N",
        "propagatesUpdates" : "N"
      }
    }
  ],
  "supportsPermissions" : false,
  "uniqueIdentifier" : "57"
}