
odata.msgraph.client.entity.MobileThreatDefenseConnector Maven / Gradle / Ivy
package odata.msgraph.client.entity;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.github.davidmoten.odata.client.ClientException;
import com.github.davidmoten.odata.client.NameValue;
import com.github.davidmoten.odata.client.ODataEntityType;
import com.github.davidmoten.odata.client.RequestOptions;
import com.github.davidmoten.odata.client.UnmappedFields;
import com.github.davidmoten.odata.client.Util;
import com.github.davidmoten.odata.client.annotation.Property;
import com.github.davidmoten.odata.client.internal.ChangedFields;
import com.github.davidmoten.odata.client.internal.RequestHelper;
import com.github.davidmoten.odata.client.internal.UnmappedFieldsImpl;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.Object;
import java.lang.Override;
import java.lang.String;
import java.lang.StringBuilder;
import java.time.OffsetDateTime;
import java.util.Optional;
import odata.msgraph.client.enums.MobileThreatPartnerTenantState;
/**
* “Entity which represents a connection to Mobile threat defense partner.”
*/@JsonPropertyOrder({
"@odata.type",
"androidDeviceBlockedOnMissingPartnerData",
"androidEnabled",
"iosDeviceBlockedOnMissingPartnerData",
"iosEnabled",
"lastHeartbeatDateTime",
"partnerState",
"partnerUnresponsivenessThresholdInDays",
"partnerUnsupportedOsVersionBlocked"})
@JsonInclude(Include.NON_NULL)
public class MobileThreatDefenseConnector extends Entity implements ODataEntityType {
@Override
public String odataTypeName() {
return "microsoft.graph.mobileThreatDefenseConnector";
}
@JsonProperty("androidDeviceBlockedOnMissingPartnerData")
protected Boolean androidDeviceBlockedOnMissingPartnerData;
@JsonProperty("androidEnabled")
protected Boolean androidEnabled;
@JsonProperty("iosDeviceBlockedOnMissingPartnerData")
protected Boolean iosDeviceBlockedOnMissingPartnerData;
@JsonProperty("iosEnabled")
protected Boolean iosEnabled;
@JsonProperty("lastHeartbeatDateTime")
protected OffsetDateTime lastHeartbeatDateTime;
@JsonProperty("partnerState")
protected MobileThreatPartnerTenantState partnerState;
@JsonProperty("partnerUnresponsivenessThresholdInDays")
protected Integer partnerUnresponsivenessThresholdInDays;
@JsonProperty("partnerUnsupportedOsVersionBlocked")
protected Boolean partnerUnsupportedOsVersionBlocked;
protected MobileThreatDefenseConnector() {
super();
}
/**
* Returns a builder which is used to create a new
* instance of this class (given that this class is immutable).
*
* @return a new Builder for this class
*/
// Suffix used on builder factory method to differentiate the method
// from static builder methods on superclasses
public static Builder builderMobileThreatDefenseConnector() {
return new Builder();
}
public static final class Builder {
private String id;
private Boolean androidDeviceBlockedOnMissingPartnerData;
private Boolean androidEnabled;
private Boolean iosDeviceBlockedOnMissingPartnerData;
private Boolean iosEnabled;
private OffsetDateTime lastHeartbeatDateTime;
private MobileThreatPartnerTenantState partnerState;
private Integer partnerUnresponsivenessThresholdInDays;
private Boolean partnerUnsupportedOsVersionBlocked;
private ChangedFields changedFields = ChangedFields.EMPTY;
Builder() {
// prevent instantiation
}
public Builder id(String id) {
this.id = id;
this.changedFields = changedFields.add("id");
return this;
}
/**
* “For Android, set whether Intune must receive data from the data sync partner
* prior to marking a device compliant”
*
* @param androidDeviceBlockedOnMissingPartnerData
* value of {@code androidDeviceBlockedOnMissingPartnerData} property (as defined in service metadata)
* @return {@code this} (for method chaining)
*/
public Builder androidDeviceBlockedOnMissingPartnerData(Boolean androidDeviceBlockedOnMissingPartnerData) {
this.androidDeviceBlockedOnMissingPartnerData = androidDeviceBlockedOnMissingPartnerData;
this.changedFields = changedFields.add("androidDeviceBlockedOnMissingPartnerData");
return this;
}
/**
* “For Android, set whether data from the data sync partner should be used during
* compliance evaluations”
*
* @param androidEnabled
* value of {@code androidEnabled} property (as defined in service metadata)
* @return {@code this} (for method chaining)
*/
public Builder androidEnabled(Boolean androidEnabled) {
this.androidEnabled = androidEnabled;
this.changedFields = changedFields.add("androidEnabled");
return this;
}
/**
* “For IOS, set whether Intune must receive data from the data sync partner prior
* to marking a device compliant”
*
* @param iosDeviceBlockedOnMissingPartnerData
* value of {@code iosDeviceBlockedOnMissingPartnerData} property (as defined in service metadata)
* @return {@code this} (for method chaining)
*/
public Builder iosDeviceBlockedOnMissingPartnerData(Boolean iosDeviceBlockedOnMissingPartnerData) {
this.iosDeviceBlockedOnMissingPartnerData = iosDeviceBlockedOnMissingPartnerData;
this.changedFields = changedFields.add("iosDeviceBlockedOnMissingPartnerData");
return this;
}
/**
* “For IOS, get or set whether data from the data sync partner should be used
* during compliance evaluations”
*
* @param iosEnabled
* value of {@code iosEnabled} property (as defined in service metadata)
* @return {@code this} (for method chaining)
*/
public Builder iosEnabled(Boolean iosEnabled) {
this.iosEnabled = iosEnabled;
this.changedFields = changedFields.add("iosEnabled");
return this;
}
/**
* “DateTime of last Heartbeat recieved from the Data Sync Partner”
*
* @param lastHeartbeatDateTime
* value of {@code lastHeartbeatDateTime} property (as defined in service metadata)
* @return {@code this} (for method chaining)
*/
public Builder lastHeartbeatDateTime(OffsetDateTime lastHeartbeatDateTime) {
this.lastHeartbeatDateTime = lastHeartbeatDateTime;
this.changedFields = changedFields.add("lastHeartbeatDateTime");
return this;
}
/**
* “Data Sync Partner state for this account”
*
* @param partnerState
* value of {@code partnerState} property (as defined in service metadata)
* @return {@code this} (for method chaining)
*/
public Builder partnerState(MobileThreatPartnerTenantState partnerState) {
this.partnerState = partnerState;
this.changedFields = changedFields.add("partnerState");
return this;
}
/**
* “Get or Set days the per tenant tolerance to unresponsiveness for this partner
* integration”
*
* @param partnerUnresponsivenessThresholdInDays
* value of {@code partnerUnresponsivenessThresholdInDays} property (as defined in service metadata)
* @return {@code this} (for method chaining)
*/
public Builder partnerUnresponsivenessThresholdInDays(Integer partnerUnresponsivenessThresholdInDays) {
this.partnerUnresponsivenessThresholdInDays = partnerUnresponsivenessThresholdInDays;
this.changedFields = changedFields.add("partnerUnresponsivenessThresholdInDays");
return this;
}
/**
* “Get or set whether to block devices on the enabled platforms that do not meet
* the minimum version requirements of the Data Sync Partner”
*
* @param partnerUnsupportedOsVersionBlocked
* value of {@code partnerUnsupportedOsVersionBlocked} property (as defined in service metadata)
* @return {@code this} (for method chaining)
*/
public Builder partnerUnsupportedOsVersionBlocked(Boolean partnerUnsupportedOsVersionBlocked) {
this.partnerUnsupportedOsVersionBlocked = partnerUnsupportedOsVersionBlocked;
this.changedFields = changedFields.add("partnerUnsupportedOsVersionBlocked");
return this;
}
public MobileThreatDefenseConnector build() {
MobileThreatDefenseConnector _x = new MobileThreatDefenseConnector();
_x.contextPath = null;
_x.changedFields = changedFields;
_x.unmappedFields = new UnmappedFieldsImpl();
_x.odataType = "microsoft.graph.mobileThreatDefenseConnector";
_x.id = id;
_x.androidDeviceBlockedOnMissingPartnerData = androidDeviceBlockedOnMissingPartnerData;
_x.androidEnabled = androidEnabled;
_x.iosDeviceBlockedOnMissingPartnerData = iosDeviceBlockedOnMissingPartnerData;
_x.iosEnabled = iosEnabled;
_x.lastHeartbeatDateTime = lastHeartbeatDateTime;
_x.partnerState = partnerState;
_x.partnerUnresponsivenessThresholdInDays = partnerUnresponsivenessThresholdInDays;
_x.partnerUnsupportedOsVersionBlocked = partnerUnsupportedOsVersionBlocked;
return _x;
}
}
@Override
@JsonIgnore
public ChangedFields getChangedFields() {
return changedFields;
}
@Override
public void postInject(boolean addKeysToContextPath) {
if (addKeysToContextPath && id != null) {
contextPath = contextPath.clearQueries().addKeys(new NameValue(id.toString()));
}
}
/**
* “For Android, set whether Intune must receive data from the data sync partner
* prior to marking a device compliant”
*
* @return property androidDeviceBlockedOnMissingPartnerData
*/
@Property(name="androidDeviceBlockedOnMissingPartnerData")
@JsonIgnore
public Optional getAndroidDeviceBlockedOnMissingPartnerData() {
return Optional.ofNullable(androidDeviceBlockedOnMissingPartnerData);
}
/**
* Returns an immutable copy of {@code this} with just the {@code
* androidDeviceBlockedOnMissingPartnerData} field changed. Field description below
* . The field name is also added to an internal map of changed fields in the
* returned object so that when {@code this.patch()} is called (if available)on the
* returned object only the changed fields are submitted.
*
* “For Android, set whether Intune must receive data from the data sync partner
* prior to marking a device compliant”
*
* @param androidDeviceBlockedOnMissingPartnerData
* new value of {@code androidDeviceBlockedOnMissingPartnerData} field (as defined in service metadata)
* @return immutable copy of {@code this} with just the {@code androidDeviceBlockedOnMissingPartnerData} field changed
*/
public MobileThreatDefenseConnector withAndroidDeviceBlockedOnMissingPartnerData(Boolean androidDeviceBlockedOnMissingPartnerData) {
MobileThreatDefenseConnector _x = _copy();
_x.changedFields = changedFields.add("androidDeviceBlockedOnMissingPartnerData");
_x.odataType = Util.nvl(odataType, "microsoft.graph.mobileThreatDefenseConnector");
_x.androidDeviceBlockedOnMissingPartnerData = androidDeviceBlockedOnMissingPartnerData;
return _x;
}
/**
* “For Android, set whether data from the data sync partner should be used during
* compliance evaluations”
*
* @return property androidEnabled
*/
@Property(name="androidEnabled")
@JsonIgnore
public Optional getAndroidEnabled() {
return Optional.ofNullable(androidEnabled);
}
/**
* Returns an immutable copy of {@code this} with just the {@code androidEnabled}
* field changed. Field description below. The field name is also added to an
* internal map of changed fields in the returned object so that when {@code this.
* patch()} is called (if available)on the returned object only the changed fields
* are submitted.
*
* “For Android, set whether data from the data sync partner should be used during
* compliance evaluations”
*
* @param androidEnabled
* new value of {@code androidEnabled} field (as defined in service metadata)
* @return immutable copy of {@code this} with just the {@code androidEnabled} field changed
*/
public MobileThreatDefenseConnector withAndroidEnabled(Boolean androidEnabled) {
MobileThreatDefenseConnector _x = _copy();
_x.changedFields = changedFields.add("androidEnabled");
_x.odataType = Util.nvl(odataType, "microsoft.graph.mobileThreatDefenseConnector");
_x.androidEnabled = androidEnabled;
return _x;
}
/**
* “For IOS, set whether Intune must receive data from the data sync partner prior
* to marking a device compliant”
*
* @return property iosDeviceBlockedOnMissingPartnerData
*/
@Property(name="iosDeviceBlockedOnMissingPartnerData")
@JsonIgnore
public Optional getIosDeviceBlockedOnMissingPartnerData() {
return Optional.ofNullable(iosDeviceBlockedOnMissingPartnerData);
}
/**
* Returns an immutable copy of {@code this} with just the {@code
* iosDeviceBlockedOnMissingPartnerData} field changed. Field description below.
* The field name is also added to an internal map of changed fields in the
* returned object so that when {@code this.patch()} is called (if available)on the
* returned object only the changed fields are submitted.
*
* “For IOS, set whether Intune must receive data from the data sync partner prior
* to marking a device compliant”
*
* @param iosDeviceBlockedOnMissingPartnerData
* new value of {@code iosDeviceBlockedOnMissingPartnerData} field (as defined in service metadata)
* @return immutable copy of {@code this} with just the {@code iosDeviceBlockedOnMissingPartnerData} field changed
*/
public MobileThreatDefenseConnector withIosDeviceBlockedOnMissingPartnerData(Boolean iosDeviceBlockedOnMissingPartnerData) {
MobileThreatDefenseConnector _x = _copy();
_x.changedFields = changedFields.add("iosDeviceBlockedOnMissingPartnerData");
_x.odataType = Util.nvl(odataType, "microsoft.graph.mobileThreatDefenseConnector");
_x.iosDeviceBlockedOnMissingPartnerData = iosDeviceBlockedOnMissingPartnerData;
return _x;
}
/**
* “For IOS, get or set whether data from the data sync partner should be used
* during compliance evaluations”
*
* @return property iosEnabled
*/
@Property(name="iosEnabled")
@JsonIgnore
public Optional getIosEnabled() {
return Optional.ofNullable(iosEnabled);
}
/**
* Returns an immutable copy of {@code this} with just the {@code iosEnabled} field
* changed. Field description below. The field name is also added to an internal
* map of changed fields in the returned object so that when {@code this.patch()}
* is called (if available)on the returned object only the changed fields are
* submitted.
*
* “For IOS, get or set whether data from the data sync partner should be used
* during compliance evaluations”
*
* @param iosEnabled
* new value of {@code iosEnabled} field (as defined in service metadata)
* @return immutable copy of {@code this} with just the {@code iosEnabled} field changed
*/
public MobileThreatDefenseConnector withIosEnabled(Boolean iosEnabled) {
MobileThreatDefenseConnector _x = _copy();
_x.changedFields = changedFields.add("iosEnabled");
_x.odataType = Util.nvl(odataType, "microsoft.graph.mobileThreatDefenseConnector");
_x.iosEnabled = iosEnabled;
return _x;
}
/**
* “DateTime of last Heartbeat recieved from the Data Sync Partner”
*
* @return property lastHeartbeatDateTime
*/
@Property(name="lastHeartbeatDateTime")
@JsonIgnore
public Optional getLastHeartbeatDateTime() {
return Optional.ofNullable(lastHeartbeatDateTime);
}
/**
* Returns an immutable copy of {@code this} with just the {@code
* lastHeartbeatDateTime} field changed. Field description below. The field name is
* also added to an internal map of changed fields in the returned object so that
* when {@code this.patch()} is called (if available)on the returned object only
* the changed fields are submitted.
*
* “DateTime of last Heartbeat recieved from the Data Sync Partner”
*
* @param lastHeartbeatDateTime
* new value of {@code lastHeartbeatDateTime} field (as defined in service metadata)
* @return immutable copy of {@code this} with just the {@code lastHeartbeatDateTime} field changed
*/
public MobileThreatDefenseConnector withLastHeartbeatDateTime(OffsetDateTime lastHeartbeatDateTime) {
MobileThreatDefenseConnector _x = _copy();
_x.changedFields = changedFields.add("lastHeartbeatDateTime");
_x.odataType = Util.nvl(odataType, "microsoft.graph.mobileThreatDefenseConnector");
_x.lastHeartbeatDateTime = lastHeartbeatDateTime;
return _x;
}
/**
* “Data Sync Partner state for this account”
*
* @return property partnerState
*/
@Property(name="partnerState")
@JsonIgnore
public Optional getPartnerState() {
return Optional.ofNullable(partnerState);
}
/**
* Returns an immutable copy of {@code this} with just the {@code partnerState}
* field changed. Field description below. The field name is also added to an
* internal map of changed fields in the returned object so that when {@code this.
* patch()} is called (if available)on the returned object only the changed fields
* are submitted.
*
* “Data Sync Partner state for this account”
*
* @param partnerState
* new value of {@code partnerState} field (as defined in service metadata)
* @return immutable copy of {@code this} with just the {@code partnerState} field changed
*/
public MobileThreatDefenseConnector withPartnerState(MobileThreatPartnerTenantState partnerState) {
MobileThreatDefenseConnector _x = _copy();
_x.changedFields = changedFields.add("partnerState");
_x.odataType = Util.nvl(odataType, "microsoft.graph.mobileThreatDefenseConnector");
_x.partnerState = partnerState;
return _x;
}
/**
* “Get or Set days the per tenant tolerance to unresponsiveness for this partner
* integration”
*
* @return property partnerUnresponsivenessThresholdInDays
*/
@Property(name="partnerUnresponsivenessThresholdInDays")
@JsonIgnore
public Optional getPartnerUnresponsivenessThresholdInDays() {
return Optional.ofNullable(partnerUnresponsivenessThresholdInDays);
}
/**
* Returns an immutable copy of {@code this} with just the {@code
* partnerUnresponsivenessThresholdInDays} field changed. Field description below.
* The field name is also added to an internal map of changed fields in the
* returned object so that when {@code this.patch()} is called (if available)on the
* returned object only the changed fields are submitted.
*
* “Get or Set days the per tenant tolerance to unresponsiveness for this partner
* integration”
*
* @param partnerUnresponsivenessThresholdInDays
* new value of {@code partnerUnresponsivenessThresholdInDays} field (as defined in service metadata)
* @return immutable copy of {@code this} with just the {@code partnerUnresponsivenessThresholdInDays} field changed
*/
public MobileThreatDefenseConnector withPartnerUnresponsivenessThresholdInDays(Integer partnerUnresponsivenessThresholdInDays) {
MobileThreatDefenseConnector _x = _copy();
_x.changedFields = changedFields.add("partnerUnresponsivenessThresholdInDays");
_x.odataType = Util.nvl(odataType, "microsoft.graph.mobileThreatDefenseConnector");
_x.partnerUnresponsivenessThresholdInDays = partnerUnresponsivenessThresholdInDays;
return _x;
}
/**
* “Get or set whether to block devices on the enabled platforms that do not meet
* the minimum version requirements of the Data Sync Partner”
*
* @return property partnerUnsupportedOsVersionBlocked
*/
@Property(name="partnerUnsupportedOsVersionBlocked")
@JsonIgnore
public Optional getPartnerUnsupportedOsVersionBlocked() {
return Optional.ofNullable(partnerUnsupportedOsVersionBlocked);
}
/**
* Returns an immutable copy of {@code this} with just the {@code
* partnerUnsupportedOsVersionBlocked} field changed. Field description below. The
* field name is also added to an internal map of changed fields in the returned
* object so that when {@code this.patch()} is called (if available)on the returned
* object only the changed fields are submitted.
*
* “Get or set whether to block devices on the enabled platforms that do not meet
* the minimum version requirements of the Data Sync Partner”
*
* @param partnerUnsupportedOsVersionBlocked
* new value of {@code partnerUnsupportedOsVersionBlocked} field (as defined in service metadata)
* @return immutable copy of {@code this} with just the {@code partnerUnsupportedOsVersionBlocked} field changed
*/
public MobileThreatDefenseConnector withPartnerUnsupportedOsVersionBlocked(Boolean partnerUnsupportedOsVersionBlocked) {
MobileThreatDefenseConnector _x = _copy();
_x.changedFields = changedFields.add("partnerUnsupportedOsVersionBlocked");
_x.odataType = Util.nvl(odataType, "microsoft.graph.mobileThreatDefenseConnector");
_x.partnerUnsupportedOsVersionBlocked = partnerUnsupportedOsVersionBlocked;
return _x;
}
public MobileThreatDefenseConnector withUnmappedField(String name, String value) {
MobileThreatDefenseConnector _x = _copy();
_x.setUnmappedField(name, value);
return _x;
}
@JsonAnySetter
private void setUnmappedField(String name, Object value) {
if (unmappedFields == null) {
unmappedFields = new UnmappedFieldsImpl();
}
unmappedFields.put(name, value);
}
@JsonAnyGetter
private UnmappedFieldsImpl unmappedFields() {
return unmappedFields == null ? UnmappedFieldsImpl.EMPTY : unmappedFields;
}
@Override
public UnmappedFields getUnmappedFields() {
return unmappedFields();
}
/**
* Submits only changed fields for update and returns an
* immutable copy of {@code this} with changed fields reset.
*
* @return a copy of {@code this} with changed fields reset
* @throws ClientException if HTTP response is not as expected
*/
public MobileThreatDefenseConnector patch() {
RequestHelper.patch(this, contextPath, RequestOptions.EMPTY);
MobileThreatDefenseConnector _x = _copy();
_x.changedFields = null;
return _x;
}
/**
* Submits all fields for update and returns an immutable copy of {@code this}
* with changed fields reset (they were ignored anyway).
*
* @return a copy of {@code this} with changed fields reset
* @throws ClientException if HTTP response is not as expected
*/
public MobileThreatDefenseConnector put() {
RequestHelper.put(this, contextPath, RequestOptions.EMPTY);
MobileThreatDefenseConnector _x = _copy();
_x.changedFields = null;
return _x;
}
private MobileThreatDefenseConnector _copy() {
MobileThreatDefenseConnector _x = new MobileThreatDefenseConnector();
_x.contextPath = contextPath;
_x.changedFields = changedFields;
_x.unmappedFields = unmappedFields.copy();
_x.odataType = odataType;
_x.id = id;
_x.androidDeviceBlockedOnMissingPartnerData = androidDeviceBlockedOnMissingPartnerData;
_x.androidEnabled = androidEnabled;
_x.iosDeviceBlockedOnMissingPartnerData = iosDeviceBlockedOnMissingPartnerData;
_x.iosEnabled = iosEnabled;
_x.lastHeartbeatDateTime = lastHeartbeatDateTime;
_x.partnerState = partnerState;
_x.partnerUnresponsivenessThresholdInDays = partnerUnresponsivenessThresholdInDays;
_x.partnerUnsupportedOsVersionBlocked = partnerUnsupportedOsVersionBlocked;
return _x;
}
@Override
public String toString() {
StringBuilder b = new StringBuilder();
b.append("MobileThreatDefenseConnector[");
b.append("id=");
b.append(this.id);
b.append(", ");
b.append("androidDeviceBlockedOnMissingPartnerData=");
b.append(this.androidDeviceBlockedOnMissingPartnerData);
b.append(", ");
b.append("androidEnabled=");
b.append(this.androidEnabled);
b.append(", ");
b.append("iosDeviceBlockedOnMissingPartnerData=");
b.append(this.iosDeviceBlockedOnMissingPartnerData);
b.append(", ");
b.append("iosEnabled=");
b.append(this.iosEnabled);
b.append(", ");
b.append("lastHeartbeatDateTime=");
b.append(this.lastHeartbeatDateTime);
b.append(", ");
b.append("partnerState=");
b.append(this.partnerState);
b.append(", ");
b.append("partnerUnresponsivenessThresholdInDays=");
b.append(this.partnerUnresponsivenessThresholdInDays);
b.append(", ");
b.append("partnerUnsupportedOsVersionBlocked=");
b.append(this.partnerUnsupportedOsVersionBlocked);
b.append("]");
b.append(",unmappedFields=");
b.append(unmappedFields);
b.append(",odataType=");
b.append(odataType);
return b.toString();
}
}