@classmethod
def _create_payload(cls, name, description, table_definitions,
    relationships, time_unit, feature_derivation_window_start,
    feature_derivation_window_end, is_draft):
    """
        Create the payload to create feature engineering graph

        Parameters
        ----------
        name: str
            name of the feature engineering graph
        description: str
            description of the fearture engineering graph
        table_definitions: list
            each element is a table_definition for a table.
        relationships: list
            each element is a relationship between two tables
        time_unit: str or None
            time unit of the feature derivation window. Supported
            values are MILLISECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR.
            If present, the feature engineering Graph will perform time-aware joins.
        feature_derivation_window_start: int, or None
            how many time_units of each table's primary temporal key into the past relative
            to the datetimePartitionColumn the feature derivation window should begin.
            Will be a negative integer,
            If present, the feature engineering Graph will perform time-aware joins.
        feature_derivation_window_end: int, or None
            how many timeUnits of each table's record
            primary temporal key into the past relative to the datetimePartitionColumn the feature
            derivation window should end.  Will be a non-positive integer, if present.
            If present, the feature engineering Graph will perform time-aware joins.
        is_draft: bool (default=True)
            a draft (is_draft=True) feature engineering graph can be updated,
            while a non-draft(is_draft=False) feature engineering graph is immutable
        Returns
        -------
        payload: dict
            payload for the feature engineering graph
        """
    payload = {'name': name, 'description': description, 'tableDefinitions':
        table_definitions, 'relationships': relationships}
    if time_unit is not None:
        payload['timeUnit'] = time_unit
    if feature_derivation_window_start is not None:
        payload['featureDerivationWindowStart'
            ] = feature_derivation_window_start
    if feature_derivation_window_end is not None:
        payload['featureDerivationWindowEnd'] = feature_derivation_window_end
    payload['isDraft'] = is_draft
    return payload
