import { axios } from "@pipedream/platform";
export default {
key: "rockset-create-integration",
name: "Create Integration",
description: "Create a new integration with Rockset. Learn more at https://docs.rockset.com/rest/#createintegration",
version: "0.1.1",
type: "action",
props: {
rockset: {
type: "app",
app: "rockset",
},
name: {
type: "string",
description: "Descriptive label for the integration.",
},
description: {
type: "string",
description: "Description for the integration.",
optional: true,
},
s3: {
type: "object",
description: "Amazon S3 details, must have one of aws_access_key or aws_role. E.g., `{\n \"aws_role\": {\n \"aws_role_arn\": \"arn:aws:iam::2378964092:role/rockset-role\"\n },\n \"aws_access_key\": {\n \"aws_access_key_id\": \"AKIAIOSFODNN7EXAMPLE\",\n \"aws_secret_access_key\": \"wJal....\"\n }\n }`",
optional: true,
},
kinesis: {
type: "object",
description: "Amazon Kinesis details, must have one of aws_access_key or aws_role. E.g., `{\n \"aws_role\": {\n \"aws_role_arn\": \"arn:aws:iam::2378964092:role/rockset-role\"\n },\n \"aws_access_key\": {\n \"aws_access_key_id\": \"AKIAIOSFODNN7EXAMPLE\",\n \"aws_secret_access_key\": \"wJal....\"\n }\n }`",
optional: true,
},
dynamodb: {
type: "object",
description: "Amazon DynamoDB details, must have one of aws_access_key or aws_role. E.g., `{\n \"aws_access_key\": {\n \"aws_access_key_id\": \"AKIAIOSFODNN7EXAMPLE\",\n \"aws_secret_access_key\": \"wJal....\"\n },\n \"aws_role\": {\n \"aws_role_arn\": \"arn:aws:iam::2378964092:role/rockset-role\"\n }\n }`",
optional: true,
},
redshift: {
type: "object",
description: "Amazon Redshift details. E.g., `{\n \"aws_access_key\": {\n \"aws_access_key_id\": \"AKIAIOSFODNN7EXAMPLE\",\n \"aws_secret_access_key\": \"wJal....\"\n },\n \"username\": \"awsuser\",\n \"password\": \"pswd....\",\n \"host\": \"test.yuyugt.us-west-2.redshift.amazonaws.com\",\n \"port\": 5439,\n \"s3_bucket_path\": \"s3://redshift-unload\"\n }`",
optional: true,
},
gcs: {
type: "object",
description: "GCS details. E.g., `{\n \"gcp_service_account\": {}\n }`",
optional: true,
},
segment: {
type: "object",
optional: true,
},
kafka: {
type: "object",
description: "E.g., `{\n \"kafka_topic_names\": [\n null\n ],\n \"kafka_data_format\": \"json\",\n \"source_status_by_topic\": \"topic-a:DORMANT\"\n }`",
optional: true,
},
},
async run({ $ }) {
const data = {
"name": this.name,
"description": this.description,
"s3": this.s3,
"kinesis": this.kinesis,
"dynamodb": this.dynamodb,
"redshift": this.redshift,
"gcs": this.gcs,
"segment": this.segment,
"kafka": this.kafka,
};
return await axios($, {
method: "POST",
url: "https://api.rs2.usw2.rockset.com/v1/orgs/self/integrations",
headers: {
"Authorization": `ApiKey ${this.rockset.$auth.apikey}`,
},
data,
});
},
};