All Downloads are FREE. Search and download functionalities are using the official Maven repository.

eedm.constituent-contact-preferences.v1.1.0.constituent-contact-preferences.json Maven / Gradle / Ivy

{
  "title" : "Constituent Contact Preferences",
  "description" : "The contact preferences specified by constituents.",
  "version" : "1.1.0",
  "type" : "object",
  "properties" : {
    "metadata" : {
      "$ref" : "resource:/eedm/metadata.json"
    },
    "id" : {
      "title" : "ID",
      "description" : "The global identifier of the constituent contact preference.",
      "type" : "string",
      "format" : "guid",
      "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
    },
    "constituent" : {
      "title" : "Constituent",
      "description" : "The constituent for whom the contact preference is specified.",
      "oneOf" : [ {
        "title" : "Person",
        "description" : "",
        "type" : "object",
        "properties" : {
          "person" : {
            "title" : "Person",
            "description" : "The person for whom the contact preference is specified.",
            "type" : "object",
            "properties" : {
              "id" : {
                "title" : "ID",
                "description" : "The global identifier for the Person.",
                "type" : "string",
                "format" : "guid",
                "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
              }
            },
            "links" : [ {
              "rel" : "self",
              "href" : "/constituent-persons/{id}",
              "targetSchema" : {
                "$ref" : "constituent-persons.json#"
              }
            } ],
            "additionalProperties" : false,
            "required" : [ "id" ]
          }
        },
        "additionalProperties" : false,
        "required" : [ "person" ]
      }, {
        "title" : "Organization",
        "description" : "",
        "type" : "object",
        "properties" : {
          "organization" : {
            "title" : "Organization",
            "description" : "The organization for which the contact preference is specified.",
            "type" : "object",
            "properties" : {
              "id" : {
                "title" : "ID",
                "description" : "The global identifier for the Organization.",
                "type" : "string",
                "format" : "guid",
                "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
              }
            },
            "links" : [ {
              "rel" : "self",
              "href" : "/constituent-organizations/{id}",
              "targetSchema" : {
                "$ref" : "constituent-organizations.json#"
              }
            } ],
            "additionalProperties" : false,
            "required" : [ "id" ]
          }
        },
        "additionalProperties" : false,
        "required" : [ "organization" ]
      } ]
    },
    "type" : {
      "title" : "Type",
      "description" : "The contact preference type (e.g. solicitations, events, fundraising).",
      "type" : "object",
      "properties" : {
        "id" : {
          "title" : "ID",
          "description" : "The global identifier for the Type.",
          "type" : "string",
          "format" : "guid",
          "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
        }
      },
      "links" : [ {
        "rel" : "self",
        "href" : "/advancement-contact-preference-types/{id}",
        "targetSchema" : {
          "$ref" : "advancement-contact-preference-types.json#"
        }
      } ],
      "additionalProperties" : false,
      "required" : [ "id" ]
    },
    "status" : {
      "title" : "Status",
      "description" : "The status of the contact preference.",
      "type" : "object",
      "properties" : {
        "id" : {
          "title" : "ID",
          "description" : "The global identifier for the Status.",
          "type" : "string",
          "format" : "guid",
          "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
        }
      },
      "links" : [ {
        "rel" : "self",
        "href" : "/advancement-statuses/{id}",
        "targetSchema" : {
          "$ref" : "advancement-statuses.json#"
        }
      } ],
      "additionalProperties" : false,
      "required" : [ "id" ]
    },
    "method" : {
      "title" : "Method",
      "description" : "The preferred method of contact.",
      "oneOf" : [ {
        "type" : "string",
        "enum" : [ "phone", "appointment", "letter", "fax", "email", "message", "all" ]
      }, {
        "type" : "string",
        "maxLength" : 0
      } ]
    },
    "source" : {
      "title" : "Source",
      "description" : "The source of the constituent contact preference.",
      "oneOf" : [ {
        "type" : "object",
        "properties" : {
          "id" : {
            "title" : "ID",
            "description" : "The global identifier for the Source.",
            "type" : "string",
            "format" : "guid",
            "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
          }
        },
        "links" : [ {
          "rel" : "self",
          "href" : "/advancement-sources/{id}",
          "targetSchema" : {
            "$ref" : "advancement-sources.json#"
          }
        } ],
        "additionalProperties" : false,
        "required" : [ "id" ]
      }, {
        "type" : "object",
        "maxProperties" : 0
      } ]
    },
    "college" : {
      "title" : "College",
      "description" : "The college associated with the contact preference.",
      "oneOf" : [ {
        "type" : "object",
        "properties" : {
          "id" : {
            "title" : "ID",
            "description" : "The global identifier for the College.",
            "type" : "string",
            "format" : "guid",
            "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
          }
        },
        "links" : [ {
          "rel" : "self",
          "href" : "/educational-institution-units/{id}",
          "targetSchema" : {
            "$ref" : "educational-institution-units.json#"
          }
        } ],
        "additionalProperties" : false,
        "required" : [ "id" ]
      }, {
        "type" : "object",
        "maxProperties" : 0
      } ]
    },
    "department" : {
      "title" : "Department",
      "description" : "The department associated with the contact preference.",
      "oneOf" : [ {
        "type" : "object",
        "properties" : {
          "id" : {
            "title" : "ID",
            "description" : "The global identifier for the Department.",
            "type" : "string",
            "format" : "guid",
            "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
          }
        },
        "links" : [ {
          "rel" : "self",
          "href" : "/educational-institution-units/{id}",
          "targetSchema" : {
            "$ref" : "educational-institution-units.json#"
          }
        } ],
        "additionalProperties" : false,
        "required" : [ "id" ]
      }, {
        "type" : "object",
        "maxProperties" : 0
      } ]
    },
    "usage" : {
      "title" : "Usage",
      "description" : "The usage details associated with the contact preferences.",
      "oneOf" : [ {
        "title" : "Contact Details",
        "description" : "Indicates which contact details should be used.",
        "type" : "object",
        "properties" : {
          "preferredContact" : {
            "title" : "Preferred Contact",
            "description" : "Indicates whether the existing preferred contact details should be used.",
            "oneOf" : [ {
              "type" : "string",
              "enum" : [ "use", "doNotUse" ]
            }, {
              "type" : "string",
              "maxLength" : 0
            } ]
          },
          "nonPreferredContactDetails" : {
            "title" : "Non Preferred Contact Details",
            "description" : "The non preferred contact details.",
            "type" : "object",
            "properties" : {
              "address" : {
                "title" : "Address",
                "description" : "The address  and type associated with the non preferred contact.",
                "oneOf" : [ {
                  "type" : "object",
                  "properties" : {
                    "detail" : {
                      "title" : "Detail",
                      "description" : "The address associated with the non preferred contact.",
                      "type" : "object",
                      "properties" : {
                        "id" : {
                          "title" : "ID",
                          "description" : "The global identifier for the Detail.",
                          "type" : "string",
                          "format" : "guid",
                          "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
                        }
                      },
                      "links" : [ {
                        "rel" : "self",
                        "href" : "/constituent-addresses/{id}",
                        "targetSchema" : {
                          "$ref" : "constituent-addresses.json#"
                        }
                      } ],
                      "additionalProperties" : false,
                      "required" : [ "id" ]
                    },
                    "type" : {
                      "title" : "Type",
                      "description" : "The type of address.",
                      "type" : "object",
                      "properties" : {
                        "id" : {
                          "title" : "ID",
                          "description" : "The global identifier for the Type.",
                          "type" : "string",
                          "format" : "guid",
                          "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
                        }
                      },
                      "links" : [ {
                        "rel" : "self",
                        "href" : "/address-types/{id}",
                        "targetSchema" : {
                          "$ref" : "address-types.json#"
                        }
                      } ],
                      "additionalProperties" : false,
                      "required" : [ "id" ]
                    }
                  },
                  "additionalProperties" : false,
                  "required" : [ "detail", "type" ]
                }, {
                  "type" : "object",
                  "maxProperties" : 0
                } ]
              },
              "email" : {
                "title" : "Email",
                "description" : "The email address and type associated with the non preferred contact.",
                "oneOf" : [ {
                  "type" : "object",
                  "properties" : {
                    "address" : {
                      "title" : "Address",
                      "description" : "The email address associated with the non preferred contact.",
                      "type" : "string",
                      "minLength" : 1
                    },
                    "type" : {
                      "title" : "Type",
                      "description" : "The type of email address.",
                      "type" : "object",
                      "properties" : {
                        "id" : {
                          "title" : "ID",
                          "description" : "The global identifier for the Type.",
                          "type" : "string",
                          "format" : "guid",
                          "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
                        }
                      },
                      "links" : [ {
                        "rel" : "self",
                        "href" : "/email-types/{id}",
                        "targetSchema" : {
                          "$ref" : "email-types.json#"
                        }
                      } ],
                      "additionalProperties" : false,
                      "required" : [ "id" ]
                    }
                  },
                  "additionalProperties" : false,
                  "required" : [ "address", "type" ]
                }, {
                  "type" : "object",
                  "maxProperties" : 0
                } ]
              },
              "phone" : {
                "title" : "Phone",
                "description" : "The phone number and type associated with the non preferred contact.",
                "oneOf" : [ {
                  "type" : "object",
                  "properties" : {
                    "number" : {
                      "title" : "Number",
                      "description" : "The number assigned to the phone.",
                      "type" : "string",
                      "minLength" : 1
                    },
                    "extension" : {
                      "title" : "Extension",
                      "description" : "The extension used to connect to the phone when multiple phones share the same primary number.",
                      "type" : "string"
                    },
                    "type" : {
                      "title" : "Type",
                      "description" : "The type of phone.",
                      "type" : "object",
                      "properties" : {
                        "id" : {
                          "title" : "ID",
                          "description" : "The global identifier for the Type.",
                          "type" : "string",
                          "format" : "guid",
                          "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
                        }
                      },
                      "links" : [ {
                        "rel" : "self",
                        "href" : "/phone-types/{id}",
                        "targetSchema" : {
                          "$ref" : "phone-types.json#"
                        }
                      } ],
                      "additionalProperties" : false,
                      "required" : [ "id" ]
                    }
                  },
                  "additionalProperties" : false,
                  "required" : [ "number", "type" ]
                }, {
                  "type" : "object",
                  "maxProperties" : 0
                } ]
              }
            },
            "additionalProperties" : false
          }
        },
        "additionalProperties" : false
      }, {
        "title" : "Restriction",
        "description" : "The details of a restriction associated with the contact preferences.",
        "type" : "object",
        "properties" : {
          "restriction" : {
            "title" : "Restriction",
            "description" : "The details of a restriction associated with the contact preferences.",
            "type" : "object",
            "properties" : {
              "type" : {
                "title" : "Type",
                "description" : "The type of restriction.",
                "oneOf" : [ {
                  "type" : "object",
                  "properties" : {
                    "id" : {
                      "title" : "ID",
                      "description" : "The global identifier for the Type.",
                      "type" : "string",
                      "format" : "guid",
                      "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
                    }
                  },
                  "links" : [ {
                    "rel" : "self",
                    "href" : "/advancement-contact-restriction-types/{id}",
                    "targetSchema" : {
                      "$ref" : "advancement-contact-restriction-types.json#"
                    }
                  } ],
                  "additionalProperties" : false,
                  "required" : [ "id" ]
                }, {
                  "type" : "object",
                  "maxProperties" : 0
                } ]
              },
              "duration" : {
                "title" : "Duration",
                "description" : "An indication as to whether the restriction is temporary.",
                "oneOf" : [ {
                  "type" : "string",
                  "enum" : [ "temporary" ]
                }, {
                  "type" : "string",
                  "maxLength" : 0
                } ]
              },
              "reason" : {
                "title" : "Reason",
                "description" : "The reason for the restriction.",
                "oneOf" : [ {
                  "type" : "object",
                  "properties" : {
                    "id" : {
                      "title" : "ID",
                      "description" : "The global identifier for the Reason.",
                      "type" : "string",
                      "format" : "guid",
                      "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
                    }
                  },
                  "links" : [ {
                    "rel" : "self",
                    "href" : "/advancement-contact-restriction-reasons/{id}",
                    "targetSchema" : {
                      "$ref" : "advancement-contact-restriction-reasons.json#"
                    }
                  } ],
                  "additionalProperties" : false,
                  "required" : [ "id" ]
                }, {
                  "type" : "object",
                  "maxProperties" : 0
                } ]
              },
              "startOn" : {
                "title" : "Start On",
                "description" : "The first date that the restriction is active.",
                "oneOf" : [ {
                  "type" : "string",
                  "format" : "date",
                  "pattern" : "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])$"
                }, {
                  "type" : "string",
                  "maxLength" : 0
                } ]
              },
              "removalReason" : {
                "title" : "Removal Reason",
                "description" : "The reason for the removal of the restriction.",
                "oneOf" : [ {
                  "type" : "object",
                  "properties" : {
                    "id" : {
                      "title" : "ID",
                      "description" : "The global identifier for the Removal Reason.",
                      "type" : "string",
                      "format" : "guid",
                      "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
                    }
                  },
                  "links" : [ {
                    "rel" : "self",
                    "href" : "/advancement-contact-restriction-reasons/{id}",
                    "targetSchema" : {
                      "$ref" : "advancement-contact-restriction-reasons.json#"
                    }
                  } ],
                  "additionalProperties" : false,
                  "required" : [ "id" ]
                }, {
                  "type" : "object",
                  "maxProperties" : 0
                } ]
              },
              "removeOn" : {
                "title" : "Remove On",
                "description" : "The date that the restriction is to be removed.",
                "oneOf" : [ {
                  "type" : "string",
                  "format" : "date",
                  "pattern" : "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])$"
                }, {
                  "type" : "string",
                  "maxLength" : 0
                } ]
              }
            },
            "additionalProperties" : false
          }
        },
        "additionalProperties" : false,
        "required" : [ "restriction" ]
      } ]
    },
    "comment" : {
      "title" : "Comment",
      "description" : "The comment associated with the constituent contact preference.",
      "type" : "string"
    }
  },
  "required" : [ "id", "constituent", "type", "status" ],
  "additionalProperties" : false,
  "links" : [ {
    "rel" : "filter",
    "encType" : "application/x-www-form-urlencoded",
    "method" : "GET",
    "href" : "/constituent-contact-preferences?criteria={\"constituent\":{\"person\": {\"id\": $id}}}",
    "title" : "Person",
    "description" : "The person associated with the contact preference.",
    "schema" : {
      "type" : "object",
      "properties" : {
        "constituent" : {
          "type" : "object",
          "properties" : {
            "person" : {
              "type" : "object",
              "properties" : {
                "id" : {
                  "type" : "string",
                  "format" : "guid",
                  "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
                }
              }
            }
          }
        }
      }
    },
    "targetSchema" : {
      "$ref" : "constituent-contact-preferences.json#"
    }
  }, {
    "rel" : "filter",
    "encType" : "application/x-www-form-urlencoded",
    "method" : "GET",
    "href" : "/constituent-contact-preferences?criteria={\"constituent\":{\"organization\": {\"id\": $id}}}",
    "title" : "Organization",
    "description" : "The organization associated with the contact preference.",
    "schema" : {
      "type" : "object",
      "properties" : {
        "constituent" : {
          "type" : "object",
          "properties" : {
            "organization" : {
              "type" : "object",
              "properties" : {
                "id" : {
                  "type" : "string",
                  "format" : "guid",
                  "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
                }
              }
            }
          }
        }
      }
    },
    "targetSchema" : {
      "$ref" : "constituent-contact-preferences.json#"
    }
  }, {
    "rel" : "filter",
    "encType" : "application/x-www-form-urlencoded",
    "method" : "GET",
    "href" : "/constituent-contact-preferences?criteria={\"type\": {\"id\": $id}}",
    "title" : "Type",
    "description" : "The type of the constituent contact preference.",
    "schema" : {
      "type" : "object",
      "properties" : {
        "type" : {
          "type" : "object",
          "properties" : {
            "id" : {
              "type" : "string",
              "format" : "guid",
              "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
            }
          }
        }
      }
    },
    "targetSchema" : {
      "$ref" : "constituent-contact-preferences.json#"
    }
  }, {
    "rel" : "filter",
    "encType" : "application/x-www-form-urlencoded",
    "method" : "GET",
    "href" : "/constituent-contact-preferences?criteria={\"method\": {$method}}",
    "title" : "Method",
    "description" : "The method of contact used for contact preference.",
    "schema" : {
      "type" : "object",
      "properties" : {
        "method" : {
          "enum" : [ "phone", "appointment", "letter", "fax", "email", "message", "all" ],
          "type" : "string"
        }
      }
    },
    "targetSchema" : {
      "$ref" : "constituent-contact-preferences.json#"
    }
  } ]
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy