diff --git a/events_mgmt/src/main/java/com/adobe/aio/event/management/model/Provider.java b/events_mgmt/src/main/java/com/adobe/aio/event/management/model/Provider.java index 981196a9..8616337e 100644 --- a/events_mgmt/src/main/java/com/adobe/aio/event/management/model/Provider.java +++ b/events_mgmt/src/main/java/com/adobe/aio/event/management/model/Provider.java @@ -50,6 +50,9 @@ public class Provider { @JsonProperty("event_delivery_format") protected String eventDeliveryFormat; + @JsonProperty("data_residency_region") + private String dataResidencyRegion; + /** * the associated EventMetadata can be eager loaded by the provider http API */ @@ -144,6 +147,10 @@ public String getEventDeliveryFormat() { return eventDeliveryFormat; } + public String getDataResidencyRegion() { + return dataResidencyRegion; + } + public EventMetadataCollection.EventMetadataList getEmbeddedEventMetadata() { return embeddedEventMetadata; } @@ -169,14 +176,15 @@ public boolean equals(Object o) { source, provider.source) && Objects.equals(docsUrl, provider.docsUrl) && Objects.equals(publisher, provider.publisher) && Objects.equals( providerMetadata, provider.providerMetadata) && Objects.equals(eventDeliveryFormat, - provider.eventDeliveryFormat) && Objects.equals(embeddedEventMetadata, + provider.eventDeliveryFormat) && Objects.equals(dataResidencyRegion, + provider.dataResidencyRegion) && Objects.equals(embeddedEventMetadata, provider.embeddedEventMetadata); } @Override public int hashCode() { return Objects.hash(id, label, description, instanceId, source, docsUrl, publisher, - providerMetadata, eventDeliveryFormat, embeddedEventMetadata); + providerMetadata, eventDeliveryFormat, dataResidencyRegion, embeddedEventMetadata); } @Override @@ -191,6 +199,7 @@ public String toString() { ", publisher='" + publisher + '\'' + ", providerMetadata='" + providerMetadata + '\'' + ", eventDeliveryFormat='" + eventDeliveryFormat + '\'' + + ", dataResidencyRegion='" + dataResidencyRegion + '\'' + ", embeddedEventMetadata=" + embeddedEventMetadata + '}'; } diff --git a/events_mgmt/src/main/java/com/adobe/aio/event/management/model/ProviderInputModel.java b/events_mgmt/src/main/java/com/adobe/aio/event/management/model/ProviderInputModel.java index d189a6b2..55aa8be4 100644 --- a/events_mgmt/src/main/java/com/adobe/aio/event/management/model/ProviderInputModel.java +++ b/events_mgmt/src/main/java/com/adobe/aio/event/management/model/ProviderInputModel.java @@ -66,6 +66,13 @@ public class ProviderInputModel { @JsonProperty("event_delivery_format") private final String eventDeliveryFormat; + /** + * Optional data residency region (following Adobe Hosting location naming standards). + * If omitted, the default region defined on the provider metadata is used. + */ + @JsonProperty("data_residency_region") + private final String dataResidencyRegion; + /** * The label of this Events Provider, as shown on the Adobe I/O console */ @@ -78,7 +85,7 @@ public class ProviderInputModel { private final String docsUrl; private ProviderInputModel(final String label, final String description, final String docsUrl, final String instanceId, - final String providerMetadataId, final String eventDeliveryFormat) { + final String providerMetadataId, final String eventDeliveryFormat, final String dataResidencyRegion) { if (StringUtils.isEmpty(label)) { throw new IllegalArgumentException( "ProviderUpdateModel is missing a label"); @@ -90,6 +97,7 @@ private ProviderInputModel(final String label, final String description, final S this.docsUrl = docsUrl; this.instanceId = instanceId; this.eventDeliveryFormat = eventDeliveryFormat; + this.dataResidencyRegion = dataResidencyRegion; } public String getLabel() { @@ -110,6 +118,8 @@ public String getDocsUrl() { public String getEventDeliveryFormat() { return this.eventDeliveryFormat; } + public String getDataResidencyRegion() { return this.dataResidencyRegion; } + @Override public boolean equals(Object o) { if (this == o) { @@ -122,12 +132,13 @@ public boolean equals(Object o) { return Objects.equals(instanceId, that.instanceId) && Objects.equals(providerMetadataId, that.providerMetadataId) && Objects.equals(eventDeliveryFormat, that.eventDeliveryFormat) && Objects.equals(label, that.label) && Objects.equals( - description, that.description) && Objects.equals(docsUrl, that.docsUrl); + description, that.description) && Objects.equals(docsUrl, that.docsUrl) + && Objects.equals(dataResidencyRegion, that.dataResidencyRegion); } @Override public int hashCode() { - return Objects.hash(instanceId, providerMetadataId, label, description, docsUrl, eventDeliveryFormat); + return Objects.hash(instanceId, providerMetadataId, label, description, docsUrl, eventDeliveryFormat, dataResidencyRegion); } @Override @@ -139,6 +150,7 @@ public String toString() { ", providerMetadataId='" + providerMetadataId + '\'' + ", instanceId='" + instanceId + '\'' + ", eventDeliveryFormat='" + eventDeliveryFormat + '\'' + + ", dataResidencyRegion='" + dataResidencyRegion + '\'' + '}'; } @@ -155,6 +167,7 @@ public static class Builder { private String instanceId; private String providerMetadataId; private String eventDeliveryFormat; + private String dataResidencyRegion; public Builder() { } @@ -189,8 +202,13 @@ public Builder eventDeliveryFormat(final String eventDeliveryFormat) { return this; } + public Builder dataResidencyRegion(final String dataResidencyRegion) { + this.dataResidencyRegion = dataResidencyRegion; + return this; + } + public ProviderInputModel build() { - return new ProviderInputModel(label, description, docsUrl, instanceId, providerMetadataId, eventDeliveryFormat); + return new ProviderInputModel(label, description, docsUrl, instanceId, providerMetadataId, eventDeliveryFormat, dataResidencyRegion); } } }