-
Notifications
You must be signed in to change notification settings - Fork 0
/
resource_types.go
153 lines (137 loc) · 7.11 KB
/
resource_types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
package meroxa
import (
"context"
"encoding/json"
"net/http"
)
type ResourceTypeName string
type ResourceTypeReleaseStage string
const ResourcesTypeBasePathV1 = "/v1/resource-types"
const ResourcesTypeBasePathV2 = "/v2/resource-types"
const ResourceTypeFormConfigHumanReadableKey = "label"
const (
ResourceTypePostgres ResourceTypeName = "postgres"
ResourceTypeMysql ResourceTypeName = "mysql"
ResourceTypeRedshift ResourceTypeName = "redshift"
ResourceTypeUrl ResourceTypeName = "url"
ResourceTypeS3 ResourceTypeName = "s3"
ResourceTypeMongodb ResourceTypeName = "mongodb"
ResourceTypeElasticsearch ResourceTypeName = "elasticsearch"
ResourceTypeSnowflake ResourceTypeName = "snowflakedb"
ResourceTypeBigquery ResourceTypeName = "bigquery"
ResourceTypeSqlserver ResourceTypeName = "sqlserver"
ResourceTypeCosmosdb ResourceTypeName = "cosmosdb"
ResourceTypeKafka ResourceTypeName = "kafka"
ResourceTypeConfluentCloud ResourceTypeName = "confluentcloud"
ResourceTypeNotion ResourceTypeName = "notion"
ResourceTypeAirtable ResourceTypeName = "airtable"
ResourceTypeAlgolia ResourceTypeName = "algolia"
ResourceTypeDynamoDB ResourceTypeName = "aws_dynamodb"
ResourceTypeKinesis ResourceTypeName = "aws_kinesis"
ResourceTypeApacheWebLogs ResourceTypeName = "apache_web_logs"
ResourceTypeAppDynamics ResourceTypeName = "app_dynamics"
ResourceTypeAtlassianConfluence ResourceTypeName = "atlassian_confluence"
ResourceTypeAtlassianJira ResourceTypeName = "atlassian_jira"
ResourceTypeAzureBlobStorage ResourceTypeName = "azure_blob_storage"
ResourceTypeAzureEventHub ResourceTypeName = "azure_event_hub"
ResourceTypeBox ResourceTypeName = "box"
ResourceTypeCassandra ResourceTypeName = "cassandra"
ResourceTypeClickhouse ResourceTypeName = "clickhouse"
ResourceTypeCockroach ResourceTypeName = "cockroach"
ResourceTypeDropbox ResourceTypeName = "dropbox"
ResourceTypeFacebookAds ResourceTypeName = "facebook_ads"
ResourceTypeFile ResourceTypeName = "file"
ResourceTypeFirebaseFirestore ResourceTypeName = "firebase_firestore"
ResourceTypeFirebolt ResourceTypeName = "firebolt"
ResourceTypeFluentbit ResourceTypeName = "fluentbit"
ResourceTypeFtpSftp ResourceTypeName = "ftp_sftp"
ResourceTypeGitHub ResourceTypeName = "github"
ResourceTypeGitLab ResourceTypeName = "gitlab"
ResourceTypeGoogleAnalytics ResourceTypeName = "google_analytics"
ResourceTypeGoogleCloudStorage ResourceTypeName = "google_cloud_storage"
ResourceTypeGoogleDrive ResourceTypeName = "google_drive"
ResourceTypeGooglePubSub ResourceTypeName = "google_pub_sub"
ResourceTypeGoogleSheets ResourceTypeName = "google_sheets"
ResourceTypeHubspot ResourceTypeName = "hubspot"
ResourceTypeIbmDb2 ResourceTypeName = "ibm_db2"
ResourceTypeKlayvio ResourceTypeName = "klayvio"
ResourceTypeK8sLogs ResourceTypeName = "kubernetes_logs"
ResourceTypeLogstash ResourceTypeName = "logstash"
ResourceTypeMailchimp ResourceTypeName = "mailchimp"
ResourceTypeMarketo ResourceTypeName = "marketo"
ResourceTypeMaterialize ResourceTypeName = "materialize"
ResourceTypeMsTeams ResourceTypeName = "microsoft_teams"
ResourceTypeNatsJetstream ResourceTypeName = "nats_jetstream"
ResourceTypeNetsuite ResourceTypeName = "netsuite"
ResourceTypeNginx ResourceTypeName = "nginx"
ResourceTypeOpenTelemetry ResourceTypeName = "open_telemetry"
ResourceTypeOracle ResourceTypeName = "oracle"
ResourceTypeOsquery ResourceTypeName = "osquery"
ResourceTypePrometheus ResourceTypeName = "prometheus"
ResourceTypePulsar ResourceTypeName = "pulsar"
ResourceTypeRedis ResourceTypeName = "redis"
ResourceTypeSalesforceSalesCloud ResourceTypeName = "salesforce_sales_cloud"
ResourceTypeSalesforceMarketingCloud ResourceTypeName = "salesforce_marketing_cloud"
ResourceTypeSalesforcePardot ResourceTypeName = "salesforce_pardot"
ResourceTypeSapHana ResourceTypeName = "sap_hana"
ResourceTypeShopify ResourceTypeName = "shopify"
ResourceTypeSlack ResourceTypeName = "slack"
ResourceTypeSocket ResourceTypeName = "socket"
ResourceTypeSpireMaritimeAIS ResourceTypeName = "spire_maritime_ais"
ResourceTypeSplunk ResourceTypeName = "splunk"
ResourceTypeStatsD ResourceTypeName = "statsd"
ResourceTypeStripe ResourceTypeName = "stripe"
ResourceTypeSyslog ResourceTypeName = "syslog"
ResourceTypeSybase ResourceTypeName = "sybase"
ResourceTypeTeradata ResourceTypeName = "teradata"
ResourceTypeVitess ResourceTypeName = "vitess"
ResourceTypeWorkday ResourceTypeName = "workday"
ResourceTypeZendeskSupport ResourceTypeName = "zendesk_support"
ResourceTypeReleaseStageGA ResourceTypeReleaseStage = "ga"
ResourceTypeReleaseStageBeta ResourceTypeReleaseStage = "beta"
ResourceTypeReleaseStageDevPreview ResourceTypeReleaseStage = "developer_preview"
)
type ResourceType struct {
UUID string `json:"uuid"`
Name string `json:"name"`
ReleaseStage ResourceTypeReleaseStage `json:"release_stage"`
Categories []string `json:"categories"`
FormConfig map[string]interface{} `json:"form_config"`
OptedIn bool `json:"opted_in"`
HasAccess bool `json:"has_access"`
CliOnly bool `json:"cli_only"`
}
// ListResourceTypes returns the list of supported resource types.
func (c *client) ListResourceTypes(ctx context.Context) ([]string, error) {
resp, err := c.MakeRequest(ctx, http.MethodGet, ResourcesTypeBasePathV1, nil, nil, nil)
if err != nil {
return nil, err
}
err = handleAPIErrors(resp)
if err != nil {
return nil, err
}
var supportedTypes []string
err = json.NewDecoder(resp.Body).Decode(&supportedTypes)
if err != nil {
return nil, err
}
return supportedTypes, nil
}
// ListResourceTypesV2 returns the list of supported resource types as objects.
func (c *client) ListResourceTypesV2(ctx context.Context) ([]ResourceType, error) {
resp, err := c.MakeRequest(ctx, http.MethodGet, ResourcesTypeBasePathV2, nil, nil, nil)
if err != nil {
return nil, err
}
err = handleAPIErrors(resp)
if err != nil {
return nil, err
}
var supportedTypes []ResourceType
err = json.NewDecoder(resp.Body).Decode(&supportedTypes)
if err != nil {
return nil, err
}
return supportedTypes, nil
}