io.swagger.client.model.ClientConfiguration Maven / Gradle / Ivy
/*
* finAPI RESTful Services
* finAPI RESTful Services
*
* OpenAPI spec version: v1.64.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
package io.swagger.client.model;
import java.util.Objects;
import java.util.Arrays;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
* Client configuration parameters
*/
@ApiModel(description = "Client configuration parameters")
@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2019-02-05T12:19:21.458Z")
public class ClientConfiguration {
@SerializedName("isAutomaticBatchUpdateEnabled")
private Boolean isAutomaticBatchUpdateEnabled = null;
@SerializedName("userNotificationCallbackUrl")
private String userNotificationCallbackUrl = null;
@SerializedName("userSynchronizationCallbackUrl")
private String userSynchronizationCallbackUrl = null;
@SerializedName("refreshTokensValidityPeriod")
private Integer refreshTokensValidityPeriod = null;
@SerializedName("userAccessTokensValidityPeriod")
private Integer userAccessTokensValidityPeriod = null;
@SerializedName("clientAccessTokensValidityPeriod")
private Integer clientAccessTokensValidityPeriod = null;
@SerializedName("maxUserLoginAttempts")
private Integer maxUserLoginAttempts = null;
@SerializedName("isUserAutoVerificationEnabled")
private Boolean isUserAutoVerificationEnabled = null;
@SerializedName("isMandatorAdmin")
private Boolean isMandatorAdmin = null;
@SerializedName("isWebScrapingEnabled")
private Boolean isWebScrapingEnabled = null;
@SerializedName("availableBankGroups")
private List availableBankGroups = new ArrayList();
@SerializedName("applicationName")
private String applicationName = null;
@SerializedName("pinStorageAvailableInWebForm")
private Boolean pinStorageAvailableInWebForm = null;
public ClientConfiguration isAutomaticBatchUpdateEnabled(Boolean isAutomaticBatchUpdateEnabled) {
this.isAutomaticBatchUpdateEnabled = isAutomaticBatchUpdateEnabled;
return this;
}
/**
* Whether finAPI performs a regular automatic update of your users' bank connections. To find out how the automatic batch update is configured for your client, i.e. which bank connections get updated, and at which time and interval, please contact your Sys-Admin. Note that even if the automatic batch update is enabled for your client, individual users can still disable the feature for their own bank connections.
* @return isAutomaticBatchUpdateEnabled
**/
@ApiModelProperty(example = "true", required = true, value = "Whether finAPI performs a regular automatic update of your users' bank connections. To find out how the automatic batch update is configured for your client, i.e. which bank connections get updated, and at which time and interval, please contact your Sys-Admin. Note that even if the automatic batch update is enabled for your client, individual users can still disable the feature for their own bank connections.")
public Boolean isIsAutomaticBatchUpdateEnabled() {
return isAutomaticBatchUpdateEnabled;
}
public void setIsAutomaticBatchUpdateEnabled(Boolean isAutomaticBatchUpdateEnabled) {
this.isAutomaticBatchUpdateEnabled = isAutomaticBatchUpdateEnabled;
}
public ClientConfiguration userNotificationCallbackUrl(String userNotificationCallbackUrl) {
this.userNotificationCallbackUrl = userNotificationCallbackUrl;
return this;
}
/**
* Callback URL to which finAPI sends the notification messages that are triggered from the automatic batch update of the users' bank connections. This field is only relevant if the automatic batch update is enabled for your client. For details about what the notification messages look like, please see the documentation in the 'Notification Rules' section. finAPI will call this URL with HTTP method POST. Note that the response of the call is not processed by finAPI. Also note that while the callback URL may be a non-secured (http) URL on the finAPI sandbox or alpha environment, it MUST be a SSL-secured (https) URL on the finAPI live system.
* @return userNotificationCallbackUrl
**/
@ApiModelProperty(example = "https://bank.server.com/notification", value = "Callback URL to which finAPI sends the notification messages that are triggered from the automatic batch update of the users' bank connections. This field is only relevant if the automatic batch update is enabled for your client. For details about what the notification messages look like, please see the documentation in the 'Notification Rules' section. finAPI will call this URL with HTTP method POST. Note that the response of the call is not processed by finAPI. Also note that while the callback URL may be a non-secured (http) URL on the finAPI sandbox or alpha environment, it MUST be a SSL-secured (https) URL on the finAPI live system.")
public String getUserNotificationCallbackUrl() {
return userNotificationCallbackUrl;
}
public void setUserNotificationCallbackUrl(String userNotificationCallbackUrl) {
this.userNotificationCallbackUrl = userNotificationCallbackUrl;
}
public ClientConfiguration userSynchronizationCallbackUrl(String userSynchronizationCallbackUrl) {
this.userSynchronizationCallbackUrl = userSynchronizationCallbackUrl;
return this;
}
/**
* Callback URL for user synchronization. This field should be set if you - as a finAPI customer - have multiple clients using finAPI. In such case, all of your clients will share the same user base, making it possible for a user to be created in one client, but then deleted in another. To keep the client-side user data consistent in all clients, you should set a callback URL for each client. finAPI will send a notification to the callback URL of each client whenever a user of your user base gets deleted. Note that finAPI will send a deletion notification to ALL clients, including the one that made the user deletion request to finAPI. So when deleting a user in finAPI, a client should rely on the callback to delete the user on its own side. <p>The notification that finAPI sends to the clients' callback URLs will be a POST request, with this body: <pre>{ \"userId\" : string // contains the identifier of the deleted user \"event\" : string // this will always be \"DELETED\" }</pre><br/>Note that finAPI does not process the response of this call. Also note that while the callback URL may be a non-secured (http) URL on the finAPI sandbox or alpha environment, it MUST be a SSL-secured (https) URL on the finAPI live system.</p>As long as you have just one client, you can ignore this field and let it be null. However keep in mind that in this case your client will not receive any callback when a user gets deleted - so the deletion of the user on the client-side must not be forgotten. Of course you may still use the callback URL even for just one client, if you want to implement the deletion of the user on the client-side via the callback from finAPI.
* @return userSynchronizationCallbackUrl
**/
@ApiModelProperty(example = "https://bank.server.com/synchronization", value = "Callback URL for user synchronization. This field should be set if you - as a finAPI customer - have multiple clients using finAPI. In such case, all of your clients will share the same user base, making it possible for a user to be created in one client, but then deleted in another. To keep the client-side user data consistent in all clients, you should set a callback URL for each client. finAPI will send a notification to the callback URL of each client whenever a user of your user base gets deleted. Note that finAPI will send a deletion notification to ALL clients, including the one that made the user deletion request to finAPI. So when deleting a user in finAPI, a client should rely on the callback to delete the user on its own side. The notification that finAPI sends to the clients' callback URLs will be a POST request, with this body:
{ \"userId\" : string // contains the identifier of the deleted user \"event\" : string // this will always be \"DELETED\" }
Note that finAPI does not process the response of this call. Also note that while the callback URL may be a non-secured (http) URL on the finAPI sandbox or alpha environment, it MUST be a SSL-secured (https) URL on the finAPI live system.As long as you have just one client, you can ignore this field and let it be null. However keep in mind that in this case your client will not receive any callback when a user gets deleted - so the deletion of the user on the client-side must not be forgotten. Of course you may still use the callback URL even for just one client, if you want to implement the deletion of the user on the client-side via the callback from finAPI.")
public String getUserSynchronizationCallbackUrl() {
return userSynchronizationCallbackUrl;
}
public void setUserSynchronizationCallbackUrl(String userSynchronizationCallbackUrl) {
this.userSynchronizationCallbackUrl = userSynchronizationCallbackUrl;
}
public ClientConfiguration refreshTokensValidityPeriod(Integer refreshTokensValidityPeriod) {
this.refreshTokensValidityPeriod = refreshTokensValidityPeriod;
return this;
}
/**
* The validity period that newly requested refresh tokens initially have (in seconds). A value of 0 means that the tokens never expire (Unless explicitly invalidated, e.g. by revocation, or when a user gets locked, or when the password is reset for a user).
* @return refreshTokensValidityPeriod
**/
@ApiModelProperty(example = "3600", value = "The validity period that newly requested refresh tokens initially have (in seconds). A value of 0 means that the tokens never expire (Unless explicitly invalidated, e.g. by revocation, or when a user gets locked, or when the password is reset for a user).")
public Integer getRefreshTokensValidityPeriod() {
return refreshTokensValidityPeriod;
}
public void setRefreshTokensValidityPeriod(Integer refreshTokensValidityPeriod) {
this.refreshTokensValidityPeriod = refreshTokensValidityPeriod;
}
public ClientConfiguration userAccessTokensValidityPeriod(Integer userAccessTokensValidityPeriod) {
this.userAccessTokensValidityPeriod = userAccessTokensValidityPeriod;
return this;
}
/**
* The validity period that newly requested access tokens for users initially have (in seconds). A value of 0 means that the tokens never expire (Unless explicitly invalidated, e.g. by revocation, or when a user gets locked, or when the password is reset for a user).
* @return userAccessTokensValidityPeriod
**/
@ApiModelProperty(example = "3600", value = "The validity period that newly requested access tokens for users initially have (in seconds). A value of 0 means that the tokens never expire (Unless explicitly invalidated, e.g. by revocation, or when a user gets locked, or when the password is reset for a user).")
public Integer getUserAccessTokensValidityPeriod() {
return userAccessTokensValidityPeriod;
}
public void setUserAccessTokensValidityPeriod(Integer userAccessTokensValidityPeriod) {
this.userAccessTokensValidityPeriod = userAccessTokensValidityPeriod;
}
public ClientConfiguration clientAccessTokensValidityPeriod(Integer clientAccessTokensValidityPeriod) {
this.clientAccessTokensValidityPeriod = clientAccessTokensValidityPeriod;
return this;
}
/**
* The validity period that newly requested access tokens for clients initially have (in seconds). A value of 0 means that the tokens never expire (Unless explicitly invalidated, e.g. by revocation).
* @return clientAccessTokensValidityPeriod
**/
@ApiModelProperty(example = "3600", value = "The validity period that newly requested access tokens for clients initially have (in seconds). A value of 0 means that the tokens never expire (Unless explicitly invalidated, e.g. by revocation).")
public Integer getClientAccessTokensValidityPeriod() {
return clientAccessTokensValidityPeriod;
}
public void setClientAccessTokensValidityPeriod(Integer clientAccessTokensValidityPeriod) {
this.clientAccessTokensValidityPeriod = clientAccessTokensValidityPeriod;
}
public ClientConfiguration maxUserLoginAttempts(Integer maxUserLoginAttempts) {
this.maxUserLoginAttempts = maxUserLoginAttempts;
return this;
}
/**
* Number of consecutive failed login attempts of a user into his finAPI account that is allowed before finAPI locks the user's account. When a user's account is locked, finAPI will invalidate all user's tokens and it will deny any service call in the context of this user (i.e. any call to a service using one of the user's authorization tokens, as well as the service for requesting a new token for this user). To unlock a user's account, a new password must be set for the account by the client (see the services /users/requestPasswordChange and /users/executePasswordChange). Once a new password has been set, all services will be available again for this user and the user's failed login attempts counter is reset to 0. The user's failed login attempts counter is also reset whenever a new authorization token has been successfully retrieved, or whenever the user himself changes his password.<br/><br/>Note that when this field has a value of 0, it means that there is no limit for user login attempts, i.e. finAPI will never lock user accounts.
* @return maxUserLoginAttempts
**/
@ApiModelProperty(example = "3", required = true, value = "Number of consecutive failed login attempts of a user into his finAPI account that is allowed before finAPI locks the user's account. When a user's account is locked, finAPI will invalidate all user's tokens and it will deny any service call in the context of this user (i.e. any call to a service using one of the user's authorization tokens, as well as the service for requesting a new token for this user). To unlock a user's account, a new password must be set for the account by the client (see the services /users/requestPasswordChange and /users/executePasswordChange). Once a new password has been set, all services will be available again for this user and the user's failed login attempts counter is reset to 0. The user's failed login attempts counter is also reset whenever a new authorization token has been successfully retrieved, or whenever the user himself changes his password.
Note that when this field has a value of 0, it means that there is no limit for user login attempts, i.e. finAPI will never lock user accounts.")
public Integer getMaxUserLoginAttempts() {
return maxUserLoginAttempts;
}
public void setMaxUserLoginAttempts(Integer maxUserLoginAttempts) {
this.maxUserLoginAttempts = maxUserLoginAttempts;
}
public ClientConfiguration isUserAutoVerificationEnabled(Boolean isUserAutoVerificationEnabled) {
this.isUserAutoVerificationEnabled = isUserAutoVerificationEnabled;
return this;
}
/**
* Whether users that are created with this client are automatically verified on creation. If this field is set to 'false', then any user that is created with this client must first be verified with the \"Verify a user\" service before he can be authorized. If the field is 'true', then no verification is required by the client and the user can be authorized immediately after creation.
* @return isUserAutoVerificationEnabled
**/
@ApiModelProperty(example = "true", required = true, value = "Whether users that are created with this client are automatically verified on creation. If this field is set to 'false', then any user that is created with this client must first be verified with the \"Verify a user\" service before he can be authorized. If the field is 'true', then no verification is required by the client and the user can be authorized immediately after creation.")
public Boolean isIsUserAutoVerificationEnabled() {
return isUserAutoVerificationEnabled;
}
public void setIsUserAutoVerificationEnabled(Boolean isUserAutoVerificationEnabled) {
this.isUserAutoVerificationEnabled = isUserAutoVerificationEnabled;
}
public ClientConfiguration isMandatorAdmin(Boolean isMandatorAdmin) {
this.isMandatorAdmin = isMandatorAdmin;
return this;
}
/**
* Whether this client is a 'Mandator Admin'. Mandator Admins are special clients that can access the 'Mandator Administration' section of finAPI. If you do not yet have credentials for a Mandator Admin, please contact us at [email protected]. For further information, please refer to <a href='https://finapi.zendesk.com/hc/en-us/articles/115003661827-Difference-between-app-clients-and-mandator-admin-client' target='_blank'>this article</a> on our Dev Portal.
* @return isMandatorAdmin
**/
@ApiModelProperty(example = "false", required = true, value = "Whether this client is a 'Mandator Admin'. Mandator Admins are special clients that can access the 'Mandator Administration' section of finAPI. If you do not yet have credentials for a Mandator Admin, please contact us at [email protected]. For further information, please refer to this article on our Dev Portal.")
public Boolean isIsMandatorAdmin() {
return isMandatorAdmin;
}
public void setIsMandatorAdmin(Boolean isMandatorAdmin) {
this.isMandatorAdmin = isMandatorAdmin;
}
public ClientConfiguration isWebScrapingEnabled(Boolean isWebScrapingEnabled) {
this.isWebScrapingEnabled = isWebScrapingEnabled;
return this;
}
/**
* Whether finAPI is allowed to use web scrapers for data download. If this field is set to 'true', then finAPI might download data from the online banking websites of banks (either in addition to using the FinTS interface, or as the sole data source for the download). If this field is set to 'false', then finAPI will not use any web scrapers and instead download data only from FinTS servers. For banks where no FinTS interface is available, finAPI will not allow any data download at all if web scraping is disabled for your client. Please contact your Sys-Admin if you want to change this setting.
* @return isWebScrapingEnabled
**/
@ApiModelProperty(example = "true", required = true, value = "Whether finAPI is allowed to use web scrapers for data download. If this field is set to 'true', then finAPI might download data from the online banking websites of banks (either in addition to using the FinTS interface, or as the sole data source for the download). If this field is set to 'false', then finAPI will not use any web scrapers and instead download data only from FinTS servers. For banks where no FinTS interface is available, finAPI will not allow any data download at all if web scraping is disabled for your client. Please contact your Sys-Admin if you want to change this setting.")
public Boolean isIsWebScrapingEnabled() {
return isWebScrapingEnabled;
}
public void setIsWebScrapingEnabled(Boolean isWebScrapingEnabled) {
this.isWebScrapingEnabled = isWebScrapingEnabled;
}
public ClientConfiguration availableBankGroups(List availableBankGroups) {
this.availableBankGroups = availableBankGroups;
return this;
}
public ClientConfiguration addAvailableBankGroupsItem(String availableBankGroupsItem) {
this.availableBankGroups.add(availableBankGroupsItem);
return this;
}
/**
* List of bank groups that are available to this client. A bank group is a collection of all banks that are located in a certain country, and is defined by the country's ISO 3166 ALPHA-2 code (see also field 'location' of Bank resource). If you want to extend or limit the available bank groups for your client, please contact your Sys-Admin.<br/><br/>Note: There is no bank group for international institutes (i.e. institutes that are not bound to any specific country). Instead, those institutes are always available. If this list is empty, it means that ONLY international institutes are available.
* @return availableBankGroups
**/
@ApiModelProperty(example = "[\"DE\",\"AT\",\"IT\"]", required = true, value = "List of bank groups that are available to this client. A bank group is a collection of all banks that are located in a certain country, and is defined by the country's ISO 3166 ALPHA-2 code (see also field 'location' of Bank resource). If you want to extend or limit the available bank groups for your client, please contact your Sys-Admin.
Note: There is no bank group for international institutes (i.e. institutes that are not bound to any specific country). Instead, those institutes are always available. If this list is empty, it means that ONLY international institutes are available.")
public List getAvailableBankGroups() {
return availableBankGroups;
}
public void setAvailableBankGroups(List availableBankGroups) {
this.availableBankGroups = availableBankGroups;
}
public ClientConfiguration applicationName(String applicationName) {
this.applicationName = applicationName;
return this;
}
/**
* Application name. When an application name is set (e.g. \"My App\"), then <a href='https://finapi.zendesk.com/hc/en-us/articles/360002596391' target='_blank'>finAPI's web form</a> will display a text to the user \"Weiterleitung auf finAPI von ...\" (e.g. \"Weiterleitung auf finAPI von MyApp\").
* @return applicationName
**/
@ApiModelProperty(example = "My App", value = "Application name. When an application name is set (e.g. \"My App\"), then finAPI's web form will display a text to the user \"Weiterleitung auf finAPI von ...\" (e.g. \"Weiterleitung auf finAPI von MyApp\").")
public String getApplicationName() {
return applicationName;
}
public void setApplicationName(String applicationName) {
this.applicationName = applicationName;
}
public ClientConfiguration pinStorageAvailableInWebForm(Boolean pinStorageAvailableInWebForm) {
this.pinStorageAvailableInWebForm = pinStorageAvailableInWebForm;
return this;
}
/**
* Whether <a href='https://finapi.zendesk.com/hc/en-us/articles/360002596391' target='_blank'>finAPI's web form</a> will provide a checkbox for the user allowing him to choose whether to store his banking PIN in finAPI. If this field is set to false, then the user won't have an option to store his PIN.
* @return pinStorageAvailableInWebForm
**/
@ApiModelProperty(example = "true", required = true, value = "Whether finAPI's web form will provide a checkbox for the user allowing him to choose whether to store his banking PIN in finAPI. If this field is set to false, then the user won't have an option to store his PIN.")
public Boolean isPinStorageAvailableInWebForm() {
return pinStorageAvailableInWebForm;
}
public void setPinStorageAvailableInWebForm(Boolean pinStorageAvailableInWebForm) {
this.pinStorageAvailableInWebForm = pinStorageAvailableInWebForm;
}
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
ClientConfiguration clientConfiguration = (ClientConfiguration) o;
return Objects.equals(this.isAutomaticBatchUpdateEnabled, clientConfiguration.isAutomaticBatchUpdateEnabled) &&
Objects.equals(this.userNotificationCallbackUrl, clientConfiguration.userNotificationCallbackUrl) &&
Objects.equals(this.userSynchronizationCallbackUrl, clientConfiguration.userSynchronizationCallbackUrl) &&
Objects.equals(this.refreshTokensValidityPeriod, clientConfiguration.refreshTokensValidityPeriod) &&
Objects.equals(this.userAccessTokensValidityPeriod, clientConfiguration.userAccessTokensValidityPeriod) &&
Objects.equals(this.clientAccessTokensValidityPeriod, clientConfiguration.clientAccessTokensValidityPeriod) &&
Objects.equals(this.maxUserLoginAttempts, clientConfiguration.maxUserLoginAttempts) &&
Objects.equals(this.isUserAutoVerificationEnabled, clientConfiguration.isUserAutoVerificationEnabled) &&
Objects.equals(this.isMandatorAdmin, clientConfiguration.isMandatorAdmin) &&
Objects.equals(this.isWebScrapingEnabled, clientConfiguration.isWebScrapingEnabled) &&
Objects.equals(this.availableBankGroups, clientConfiguration.availableBankGroups) &&
Objects.equals(this.applicationName, clientConfiguration.applicationName) &&
Objects.equals(this.pinStorageAvailableInWebForm, clientConfiguration.pinStorageAvailableInWebForm);
}
@Override
public int hashCode() {
return Objects.hash(isAutomaticBatchUpdateEnabled, userNotificationCallbackUrl, userSynchronizationCallbackUrl, refreshTokensValidityPeriod, userAccessTokensValidityPeriod, clientAccessTokensValidityPeriod, maxUserLoginAttempts, isUserAutoVerificationEnabled, isMandatorAdmin, isWebScrapingEnabled, availableBankGroups, applicationName, pinStorageAvailableInWebForm);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class ClientConfiguration {\n");
sb.append(" isAutomaticBatchUpdateEnabled: ").append(toIndentedString(isAutomaticBatchUpdateEnabled)).append("\n");
sb.append(" userNotificationCallbackUrl: ").append(toIndentedString(userNotificationCallbackUrl)).append("\n");
sb.append(" userSynchronizationCallbackUrl: ").append(toIndentedString(userSynchronizationCallbackUrl)).append("\n");
sb.append(" refreshTokensValidityPeriod: ").append(toIndentedString(refreshTokensValidityPeriod)).append("\n");
sb.append(" userAccessTokensValidityPeriod: ").append(toIndentedString(userAccessTokensValidityPeriod)).append("\n");
sb.append(" clientAccessTokensValidityPeriod: ").append(toIndentedString(clientAccessTokensValidityPeriod)).append("\n");
sb.append(" maxUserLoginAttempts: ").append(toIndentedString(maxUserLoginAttempts)).append("\n");
sb.append(" isUserAutoVerificationEnabled: ").append(toIndentedString(isUserAutoVerificationEnabled)).append("\n");
sb.append(" isMandatorAdmin: ").append(toIndentedString(isMandatorAdmin)).append("\n");
sb.append(" isWebScrapingEnabled: ").append(toIndentedString(isWebScrapingEnabled)).append("\n");
sb.append(" availableBankGroups: ").append(toIndentedString(availableBankGroups)).append("\n");
sb.append(" applicationName: ").append(toIndentedString(applicationName)).append("\n");
sb.append(" pinStorageAvailableInWebForm: ").append(toIndentedString(pinStorageAvailableInWebForm)).append("\n");
sb.append("}");
return sb.toString();
}
/**
* Convert the given object to string with each line indented by 4 spaces
* (except the first line).
*/
private String toIndentedString(java.lang.Object o) {
if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n ");
}
}