Package com.independentsoft.graph.changenotifications

# Class Subscription

java.lang.Object
com.independentsoft.graph.changenotifications.Subscription

All Implemented Interfaces:
  `ICreatable`, `IUpdatable`

public class Subscription extends Object implements ICreatable, IUpdatable
Represents a subscription for change notifications in Microsoft Graph.

A Subscription allows a client app to receive change notifications about changes to data in Microsoft Graph. It identifies the resource to monitor, the types of changes to notify on, the notification endpoint, and the time the subscription expires.

Example usage:

     // Subscribe to new messages
     Subscription subscription = new Subscription();
     subscription.setResource("me/messages");
     subscription.setNotificationUrl("https://example.com/notifications");
     subscription.setClientState("secretClientState");

Since:
  1.0
See Also:
  subscription resource type

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Subscription()`
  `Subscription​(JsonObject jsonObject)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getApplicationId()`
  `List<ChangeType>`
  `getChangeTypes()`
  `String`
  `getClientState()`
  `String`
  `getCreatorId()`
  `String`
  `getEncryptionCertificate()`
  `String`
  `getEncryptionCertificateId()`
  `Date`
  `getExpirationTime()`
  `String`
  `getId()`
  `LatestSupportedTlsVersion`
  `getLatestSupportedTlsVersion()`
  `String`
  `getLifecycleNotificationUrl()`
  `String`
  `getNotificationContentType()`
  `String`
  `getNotificationUrl()`
  `String`
  `getResource()`
  `boolean`
  `isIncludeResourceData()`
  `void`
  `setApplicationId​(String applicationId)`
  `void`
  `setClientState​(String clientState)`
  `void`
  `setEncryptionCertificate​(String encryptionCertificate)`
  `void`
  `setEncryptionCertificateId​(String encryptionCertificateId)`
  `void`
  `setExpirationTime​(Date expirationTime)`
  `void`
  `setId​(String id)`
  `void`
  `setIncludeResourceData​(boolean includeResourceData)`
  `void`
  `setLatestSupportedTlsVersion​(LatestSupportedTlsVersion latestSupportedTlsVersion)`
  `void`
  `setLifecycleNotificationUrl​(String lifecycleNotificationUrl)`
  `void`
  `setNotificationContentType​(String notificationContentType)`
  `void`
  `setNotificationUrl​(String notificationUrl)`
  `void`
  `setResource​(String resource)`
  `String`
  `toCreateJson()`
  Converts this object to its JSON representation for creation.
  `String`
  `toString()`
  `String`
  `toUpdateJson()`
  Converts this object to its JSON representation for update.
  `String`
  `toUpdateJson​(List<String> propertyNames)`
  Converts this object to JSON for update with specific properties.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### Subscription

    public Subscription()

  - ### Subscription

    public Subscription​(JsonObject jsonObject)

- ## Method Details

  - ### toCreateJson

    public String toCreateJson()
    Description copied from interface: `ICreatable`
    Converts this object to its JSON representation for creation.

    This method generates a JSON string containing all properties needed to create a new instance of this resource in Microsoft Graph. Only properties appropriate for creation should be included (e.g., excluding read-only properties like ID, createdTime, etc.).

    Specified by:
      `toCreateJson` in interface `ICreatable`
    Returns:
      JSON string representation for creating this resource

  - ### toUpdateJson

    public String toUpdateJson()
    Description copied from interface: `IUpdatable`
    Converts this object to its JSON representation for update.

    This method generates a JSON string containing all modified properties that should be updated in Microsoft Graph. Only writeable properties with non-null values are typically included.

    Specified by:
      `toUpdateJson` in interface `IUpdatable`
    Returns:
      JSON string representation for updating this resource

  - ### toUpdateJson

    public String toUpdateJson​(List<String> propertyNames)
    Description copied from interface: `IUpdatable`
    Converts this object to JSON for update with specific properties.

    This method generates a JSON string containing only the specified properties. This enables partial updates where only certain fields need to be modified, reducing payload size and avoiding unintended changes to other properties.

    Specified by:
      `toUpdateJson` in interface `IUpdatable`
    Parameters:
      `propertyNames` - List of property names to include in the JSON. If null or empty, all modified properties are included.
    Returns:
      JSON string representation for updating specific properties

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### getApplicationId

    public String getApplicationId()

  - ### setApplicationId

    public void setApplicationId​(String applicationId)

  - ### getChangeTypes

    public List<ChangeType> getChangeTypes()

  - ### getClientState

    public String getClientState()

  - ### setClientState

    public void setClientState​(String clientState)

  - ### getCreatorId

    public String getCreatorId()

  - ### getEncryptionCertificate

    public String getEncryptionCertificate()

  - ### setEncryptionCertificate

    public void setEncryptionCertificate​(String encryptionCertificate)

  - ### getEncryptionCertificateId

    public String getEncryptionCertificateId()

  - ### setEncryptionCertificateId

    public void setEncryptionCertificateId​(String encryptionCertificateId)

  - ### getExpirationTime

    public Date getExpirationTime()

  - ### setExpirationTime

    public void setExpirationTime​(Date expirationTime)

  - ### getId

    public String getId()

  - ### setId

    public void setId​(String id)

  - ### isIncludeResourceData

    public boolean isIncludeResourceData()

  - ### setIncludeResourceData

    public void setIncludeResourceData​(boolean includeResourceData)

  - ### getLatestSupportedTlsVersion

    public LatestSupportedTlsVersion getLatestSupportedTlsVersion()

  - ### setLatestSupportedTlsVersion

    public void setLatestSupportedTlsVersion​(LatestSupportedTlsVersion latestSupportedTlsVersion)

  - ### getLifecycleNotificationUrl

    public String getLifecycleNotificationUrl()

  - ### setLifecycleNotificationUrl

    public void setLifecycleNotificationUrl​(String lifecycleNotificationUrl)

  - ### getNotificationContentType

    public String getNotificationContentType()

  - ### setNotificationContentType

    public void setNotificationContentType​(String notificationContentType)

  - ### getNotificationUrl

    public String getNotificationUrl()

  - ### setNotificationUrl

    public void setNotificationUrl​(String notificationUrl)

  - ### getResource

    public String getResource()

  - ### setResource

    public void setResource​(String resource)