/************************************************************************* * * * This file is part of the 20n/act project. * * 20n/act enables DNA prediction for synthetic biology/bioengineering. * * Copyright (C) 2017 20n Labs, Inc. * * * * Please direct all queries to act@20n.com. * * * * This program is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation, either version 3 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see <http://www.gnu.org/licenses/>. * * * *************************************************************************/ package com.twentyn.reachables.order; import com.fasterxml.jackson.annotation.JsonProperty; public class ServiceConfig { // The port on which to listen. @JsonProperty(value = "port", required = true) Integer port; // A path to a TSV file containing the reachables. This will be loaded at startup time. @JsonProperty(value = "reachables_file", required = true) String reachablesFile; // The administrator's email address to use in order pages. @JsonProperty(value = "admin_email", required = true) String adminEmail; // A URL prefix to use for wiki page links. Probably just https://wiki.20n.com/ or similar. @JsonProperty(value = "wiki_url_prefix", required = true) String wikiUrlPrefix; // A URL prefix to use for molecule images. Probably https://wiki.20n.com/assets/img or similar. @JsonProperty(value = "image_url_prefix", required = true) String imageUrlPrefix; // A keyword that uniquely identifies the client who owns the wiki from which the order request originated. @JsonProperty(value = "client_keyword", required = true) String clientKeyword; // AWS access credentials, which can be found in the AWS IAM dashboard. @JsonProperty(value = "aws_access_key_id", required = true) String accessKeyId; @JsonProperty(value = "aws_secret_access_key", required = true) String secretAccessKey; // The AWS region where the SNS topic to which to publish order messages lives. @JsonProperty(value = "aws_region", required = true) String region; // The SNS topic to which to send order messages. @JsonProperty(value = "aws_sns_topic", required = true) String snsTopic; public ServiceConfig() { } public ServiceConfig(Integer port, String reachablesFile, String adminEmail, String wikiUrlPrefix, String imageUrlPrefix, String clientKeyword, String accessKeyId, String secretAccessKey, String region, String snsTopic) { this.port = port; this.reachablesFile = reachablesFile; this.adminEmail = adminEmail; this.wikiUrlPrefix = wikiUrlPrefix; this.imageUrlPrefix = imageUrlPrefix; this.clientKeyword = clientKeyword; this.accessKeyId = accessKeyId; this.secretAccessKey = secretAccessKey; this.region = region; this.snsTopic = snsTopic; } public Integer getPort() { return port; } public void setPort(Integer port) { this.port = port; } public String getReachablesFile() { return reachablesFile; } public void setReachablesFile(String reachablesFile) { this.reachablesFile = reachablesFile; } public String getAdminEmail() { return adminEmail; } public void setAdminEmail(String adminEmail) { this.adminEmail = adminEmail; } public String getWikiUrlPrefix() { return wikiUrlPrefix; } public void setWikiUrlPrefix(String wikiUrlPrefix) { this.wikiUrlPrefix = wikiUrlPrefix; } public String getImageUrlPrefix() { return imageUrlPrefix; } public void setImageUrlPrefix(String imageUrlPrefix) { this.imageUrlPrefix = imageUrlPrefix; } public String getClientKeyword() { return clientKeyword; } public void setClientKeyword(String clientKeyword) { this.clientKeyword = clientKeyword; } public String getAccessKeyId() { return accessKeyId; } public void setAccessKeyId(String accessKeyId) { this.accessKeyId = accessKeyId; } public String getSecretAccessKey() { return secretAccessKey; } public void setSecretAccessKey(String secretAccessKey) { this.secretAccessKey = secretAccessKey; } public String getRegion() { return region; } public void setRegion(String region) { this.region = region; } public String getSnsTopic() { return snsTopic; } public void setSnsTopic(String snsTopic) { this.snsTopic = snsTopic; } }