/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.appsync.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CreateDataSourceRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *
* The API ID for the GraphQL API for the DataSource
.
*
* A user-supplied name for the DataSource
.
*
* A description of the DataSource
.
*
* The type of the DataSource
.
*
* The Identity and Access Management (IAM) service role Amazon Resource Name (ARN) for the data source. The system * assumes this role when accessing the data source. *
*/ private String serviceRoleArn; /** ** Amazon DynamoDB settings. *
*/ private DynamodbDataSourceConfig dynamodbConfig; /** ** Lambda settings. *
*/ private LambdaDataSourceConfig lambdaConfig; /** ** Amazon OpenSearch Service settings. *
** As of September 2021, Amazon Elasticsearch service is Amazon OpenSearch Service. This configuration is * deprecated. For new data sources, use CreateDataSourceRequest$openSearchServiceConfig to create an * OpenSearch data source. *
*/ private ElasticsearchDataSourceConfig elasticsearchConfig; /** ** Amazon OpenSearch Service settings. *
*/ private OpenSearchServiceDataSourceConfig openSearchServiceConfig; /** ** HTTP endpoint settings. *
*/ private HttpDataSourceConfig httpConfig; /** ** Relational database settings. *
*/ private RelationalDatabaseDataSourceConfig relationalDatabaseConfig; /** ** Amazon EventBridge settings. *
*/ private EventBridgeDataSourceConfig eventBridgeConfig; /** *
* The API ID for the GraphQL API for the DataSource
.
*
DataSource
.
*/
public void setApiId(String apiId) {
this.apiId = apiId;
}
/**
*
* The API ID for the GraphQL API for the DataSource
.
*
DataSource
.
*/
public String getApiId() {
return this.apiId;
}
/**
*
* The API ID for the GraphQL API for the DataSource
.
*
DataSource
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateDataSourceRequest withApiId(String apiId) {
setApiId(apiId);
return this;
}
/**
*
* A user-supplied name for the DataSource
.
*
DataSource
.
*/
public void setName(String name) {
this.name = name;
}
/**
*
* A user-supplied name for the DataSource
.
*
DataSource
.
*/
public String getName() {
return this.name;
}
/**
*
* A user-supplied name for the DataSource
.
*
DataSource
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateDataSourceRequest withName(String name) {
setName(name);
return this;
}
/**
*
* A description of the DataSource
.
*
DataSource
.
*/
public void setDescription(String description) {
this.description = description;
}
/**
*
* A description of the DataSource
.
*
DataSource
.
*/
public String getDescription() {
return this.description;
}
/**
*
* A description of the DataSource
.
*
DataSource
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateDataSourceRequest withDescription(String description) {
setDescription(description);
return this;
}
/**
*
* The type of the DataSource
.
*
DataSource
.
* @see DataSourceType
*/
public void setType(String type) {
this.type = type;
}
/**
*
* The type of the DataSource
.
*
DataSource
.
* @see DataSourceType
*/
public String getType() {
return this.type;
}
/**
*
* The type of the DataSource
.
*
DataSource
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see DataSourceType
*/
public CreateDataSourceRequest withType(String type) {
setType(type);
return this;
}
/**
*
* The type of the DataSource
.
*
DataSource
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see DataSourceType
*/
public CreateDataSourceRequest withType(DataSourceType type) {
this.type = type.toString();
return this;
}
/**
* * The Identity and Access Management (IAM) service role Amazon Resource Name (ARN) for the data source. The system * assumes this role when accessing the data source. *
* * @param serviceRoleArn * The Identity and Access Management (IAM) service role Amazon Resource Name (ARN) for the data source. The * system assumes this role when accessing the data source. */ public void setServiceRoleArn(String serviceRoleArn) { this.serviceRoleArn = serviceRoleArn; } /** ** The Identity and Access Management (IAM) service role Amazon Resource Name (ARN) for the data source. The system * assumes this role when accessing the data source. *
* * @return The Identity and Access Management (IAM) service role Amazon Resource Name (ARN) for the data source. The * system assumes this role when accessing the data source. */ public String getServiceRoleArn() { return this.serviceRoleArn; } /** ** The Identity and Access Management (IAM) service role Amazon Resource Name (ARN) for the data source. The system * assumes this role when accessing the data source. *
* * @param serviceRoleArn * The Identity and Access Management (IAM) service role Amazon Resource Name (ARN) for the data source. The * system assumes this role when accessing the data source. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDataSourceRequest withServiceRoleArn(String serviceRoleArn) { setServiceRoleArn(serviceRoleArn); return this; } /** ** Amazon DynamoDB settings. *
* * @param dynamodbConfig * Amazon DynamoDB settings. */ public void setDynamodbConfig(DynamodbDataSourceConfig dynamodbConfig) { this.dynamodbConfig = dynamodbConfig; } /** ** Amazon DynamoDB settings. *
* * @return Amazon DynamoDB settings. */ public DynamodbDataSourceConfig getDynamodbConfig() { return this.dynamodbConfig; } /** ** Amazon DynamoDB settings. *
* * @param dynamodbConfig * Amazon DynamoDB settings. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDataSourceRequest withDynamodbConfig(DynamodbDataSourceConfig dynamodbConfig) { setDynamodbConfig(dynamodbConfig); return this; } /** ** Lambda settings. *
* * @param lambdaConfig * Lambda settings. */ public void setLambdaConfig(LambdaDataSourceConfig lambdaConfig) { this.lambdaConfig = lambdaConfig; } /** ** Lambda settings. *
* * @return Lambda settings. */ public LambdaDataSourceConfig getLambdaConfig() { return this.lambdaConfig; } /** ** Lambda settings. *
* * @param lambdaConfig * Lambda settings. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDataSourceRequest withLambdaConfig(LambdaDataSourceConfig lambdaConfig) { setLambdaConfig(lambdaConfig); return this; } /** ** Amazon OpenSearch Service settings. *
** As of September 2021, Amazon Elasticsearch service is Amazon OpenSearch Service. This configuration is * deprecated. For new data sources, use CreateDataSourceRequest$openSearchServiceConfig to create an * OpenSearch data source. *
* * @param elasticsearchConfig * Amazon OpenSearch Service settings. ** As of September 2021, Amazon Elasticsearch service is Amazon OpenSearch Service. This configuration is * deprecated. For new data sources, use CreateDataSourceRequest$openSearchServiceConfig to create an * OpenSearch data source. */ public void setElasticsearchConfig(ElasticsearchDataSourceConfig elasticsearchConfig) { this.elasticsearchConfig = elasticsearchConfig; } /** *
* Amazon OpenSearch Service settings. *
** As of September 2021, Amazon Elasticsearch service is Amazon OpenSearch Service. This configuration is * deprecated. For new data sources, use CreateDataSourceRequest$openSearchServiceConfig to create an * OpenSearch data source. *
* * @return Amazon OpenSearch Service settings. ** As of September 2021, Amazon Elasticsearch service is Amazon OpenSearch Service. This configuration is * deprecated. For new data sources, use CreateDataSourceRequest$openSearchServiceConfig to create an * OpenSearch data source. */ public ElasticsearchDataSourceConfig getElasticsearchConfig() { return this.elasticsearchConfig; } /** *
* Amazon OpenSearch Service settings. *
** As of September 2021, Amazon Elasticsearch service is Amazon OpenSearch Service. This configuration is * deprecated. For new data sources, use CreateDataSourceRequest$openSearchServiceConfig to create an * OpenSearch data source. *
* * @param elasticsearchConfig * Amazon OpenSearch Service settings. ** As of September 2021, Amazon Elasticsearch service is Amazon OpenSearch Service. This configuration is * deprecated. For new data sources, use CreateDataSourceRequest$openSearchServiceConfig to create an * OpenSearch data source. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDataSourceRequest withElasticsearchConfig(ElasticsearchDataSourceConfig elasticsearchConfig) { setElasticsearchConfig(elasticsearchConfig); return this; } /** *
* Amazon OpenSearch Service settings. *
* * @param openSearchServiceConfig * Amazon OpenSearch Service settings. */ public void setOpenSearchServiceConfig(OpenSearchServiceDataSourceConfig openSearchServiceConfig) { this.openSearchServiceConfig = openSearchServiceConfig; } /** ** Amazon OpenSearch Service settings. *
* * @return Amazon OpenSearch Service settings. */ public OpenSearchServiceDataSourceConfig getOpenSearchServiceConfig() { return this.openSearchServiceConfig; } /** ** Amazon OpenSearch Service settings. *
* * @param openSearchServiceConfig * Amazon OpenSearch Service settings. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDataSourceRequest withOpenSearchServiceConfig(OpenSearchServiceDataSourceConfig openSearchServiceConfig) { setOpenSearchServiceConfig(openSearchServiceConfig); return this; } /** ** HTTP endpoint settings. *
* * @param httpConfig * HTTP endpoint settings. */ public void setHttpConfig(HttpDataSourceConfig httpConfig) { this.httpConfig = httpConfig; } /** ** HTTP endpoint settings. *
* * @return HTTP endpoint settings. */ public HttpDataSourceConfig getHttpConfig() { return this.httpConfig; } /** ** HTTP endpoint settings. *
* * @param httpConfig * HTTP endpoint settings. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDataSourceRequest withHttpConfig(HttpDataSourceConfig httpConfig) { setHttpConfig(httpConfig); return this; } /** ** Relational database settings. *
* * @param relationalDatabaseConfig * Relational database settings. */ public void setRelationalDatabaseConfig(RelationalDatabaseDataSourceConfig relationalDatabaseConfig) { this.relationalDatabaseConfig = relationalDatabaseConfig; } /** ** Relational database settings. *
* * @return Relational database settings. */ public RelationalDatabaseDataSourceConfig getRelationalDatabaseConfig() { return this.relationalDatabaseConfig; } /** ** Relational database settings. *
* * @param relationalDatabaseConfig * Relational database settings. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDataSourceRequest withRelationalDatabaseConfig(RelationalDatabaseDataSourceConfig relationalDatabaseConfig) { setRelationalDatabaseConfig(relationalDatabaseConfig); return this; } /** ** Amazon EventBridge settings. *
* * @param eventBridgeConfig * Amazon EventBridge settings. */ public void setEventBridgeConfig(EventBridgeDataSourceConfig eventBridgeConfig) { this.eventBridgeConfig = eventBridgeConfig; } /** ** Amazon EventBridge settings. *
* * @return Amazon EventBridge settings. */ public EventBridgeDataSourceConfig getEventBridgeConfig() { return this.eventBridgeConfig; } /** ** Amazon EventBridge settings. *
* * @param eventBridgeConfig * Amazon EventBridge settings. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDataSourceRequest withEventBridgeConfig(EventBridgeDataSourceConfig eventBridgeConfig) { setEventBridgeConfig(eventBridgeConfig); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getApiId() != null) sb.append("ApiId: ").append(getApiId()).append(","); if (getName() != null) sb.append("Name: ").append(getName()).append(","); if (getDescription() != null) sb.append("Description: ").append(getDescription()).append(","); if (getType() != null) sb.append("Type: ").append(getType()).append(","); if (getServiceRoleArn() != null) sb.append("ServiceRoleArn: ").append(getServiceRoleArn()).append(","); if (getDynamodbConfig() != null) sb.append("DynamodbConfig: ").append(getDynamodbConfig()).append(","); if (getLambdaConfig() != null) sb.append("LambdaConfig: ").append(getLambdaConfig()).append(","); if (getElasticsearchConfig() != null) sb.append("ElasticsearchConfig: ").append(getElasticsearchConfig()).append(","); if (getOpenSearchServiceConfig() != null) sb.append("OpenSearchServiceConfig: ").append(getOpenSearchServiceConfig()).append(","); if (getHttpConfig() != null) sb.append("HttpConfig: ").append(getHttpConfig()).append(","); if (getRelationalDatabaseConfig() != null) sb.append("RelationalDatabaseConfig: ").append(getRelationalDatabaseConfig()).append(","); if (getEventBridgeConfig() != null) sb.append("EventBridgeConfig: ").append(getEventBridgeConfig()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof CreateDataSourceRequest == false) return false; CreateDataSourceRequest other = (CreateDataSourceRequest) obj; if (other.getApiId() == null ^ this.getApiId() == null) return false; if (other.getApiId() != null && other.getApiId().equals(this.getApiId()) == false) return false; if (other.getName() == null ^ this.getName() == null) return false; if (other.getName() != null && other.getName().equals(this.getName()) == false) return false; if (other.getDescription() == null ^ this.getDescription() == null) return false; if (other.getDescription() != null && other.getDescription().equals(this.getDescription()) == false) return false; if (other.getType() == null ^ this.getType() == null) return false; if (other.getType() != null && other.getType().equals(this.getType()) == false) return false; if (other.getServiceRoleArn() == null ^ this.getServiceRoleArn() == null) return false; if (other.getServiceRoleArn() != null && other.getServiceRoleArn().equals(this.getServiceRoleArn()) == false) return false; if (other.getDynamodbConfig() == null ^ this.getDynamodbConfig() == null) return false; if (other.getDynamodbConfig() != null && other.getDynamodbConfig().equals(this.getDynamodbConfig()) == false) return false; if (other.getLambdaConfig() == null ^ this.getLambdaConfig() == null) return false; if (other.getLambdaConfig() != null && other.getLambdaConfig().equals(this.getLambdaConfig()) == false) return false; if (other.getElasticsearchConfig() == null ^ this.getElasticsearchConfig() == null) return false; if (other.getElasticsearchConfig() != null && other.getElasticsearchConfig().equals(this.getElasticsearchConfig()) == false) return false; if (other.getOpenSearchServiceConfig() == null ^ this.getOpenSearchServiceConfig() == null) return false; if (other.getOpenSearchServiceConfig() != null && other.getOpenSearchServiceConfig().equals(this.getOpenSearchServiceConfig()) == false) return false; if (other.getHttpConfig() == null ^ this.getHttpConfig() == null) return false; if (other.getHttpConfig() != null && other.getHttpConfig().equals(this.getHttpConfig()) == false) return false; if (other.getRelationalDatabaseConfig() == null ^ this.getRelationalDatabaseConfig() == null) return false; if (other.getRelationalDatabaseConfig() != null && other.getRelationalDatabaseConfig().equals(this.getRelationalDatabaseConfig()) == false) return false; if (other.getEventBridgeConfig() == null ^ this.getEventBridgeConfig() == null) return false; if (other.getEventBridgeConfig() != null && other.getEventBridgeConfig().equals(this.getEventBridgeConfig()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getApiId() == null) ? 0 : getApiId().hashCode()); hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode()); hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode()); hashCode = prime * hashCode + ((getType() == null) ? 0 : getType().hashCode()); hashCode = prime * hashCode + ((getServiceRoleArn() == null) ? 0 : getServiceRoleArn().hashCode()); hashCode = prime * hashCode + ((getDynamodbConfig() == null) ? 0 : getDynamodbConfig().hashCode()); hashCode = prime * hashCode + ((getLambdaConfig() == null) ? 0 : getLambdaConfig().hashCode()); hashCode = prime * hashCode + ((getElasticsearchConfig() == null) ? 0 : getElasticsearchConfig().hashCode()); hashCode = prime * hashCode + ((getOpenSearchServiceConfig() == null) ? 0 : getOpenSearchServiceConfig().hashCode()); hashCode = prime * hashCode + ((getHttpConfig() == null) ? 0 : getHttpConfig().hashCode()); hashCode = prime * hashCode + ((getRelationalDatabaseConfig() == null) ? 0 : getRelationalDatabaseConfig().hashCode()); hashCode = prime * hashCode + ((getEventBridgeConfig() == null) ? 0 : getEventBridgeConfig().hashCode()); return hashCode; } @Override public CreateDataSourceRequest clone() { return (CreateDataSourceRequest) super.clone(); } }