class TapClockify(Tap): """Clockify tap class.""" name = "tap-clockify" config_jsonschema = th.PropertiesList( th.Property("api_key", th.StringType, required=True), th.Property("workspace", th.StringType, required=True), th.Property("start_date", th.DateTimeType), ).to_dict() def discover_streams(self) -> List[Stream]: """Return a list of discovered streams.""" return [stream_class(tap=self) for stream_class in STREAM_TYPES]
class TapImmuta(Tap): """Immuta tap class.""" name = "tap-immuta" config_jsonschema = th.PropertiesList( th.Property("hostname", th.StringType, required=True), th.Property("api_key", th.StringType, required=True), th.Property("user_agent", th.StringType, default="tap-immuta"), ).to_dict() def discover_streams(self) -> List[Stream]: """Return a list of discovered streams.""" return [stream_class(tap=self) for stream_class in STREAM_TYPES]
class Tapthunderboard(Tap): """thunderboard tap class.""" name = "tap-thunderboard" # configuration config_jsonschema = th.PropertiesList( th.Property( "mode", th.StringType, required=True, description="dump | file - 'dump' mode scans for devices and dumps measurements continuously." ), th.Property( "dataDirectory", th.StringType, required=True, description="The local directory where thunderboard data can be found" ), th.Property( "filename", th.StringType, required=True, description="The name of the file in the data directory to be processed" ), th.Property( "truncate", th.BooleanType, required=False, description="Optionally cleanup the file contents after processing (Default: True)", default=True ), th.Property( "deviceId", th.StringType, required=False, description="An optional device id to limit output from discovered thunderboards" ), ).to_dict() def discover_streams(self) -> List[Stream]: """Return a list of discovered streams.""" return [stream_class(tap=self) for stream_class in STREAM_TYPES]
class MeasurementsStream(thunderboardStream): """Define measurements stream.""" name = "measurements" primary_keys = ["deviceId"] replication_key = None schema = th.PropertiesList( th.Property( "deviceId", th.IntegerType, description="The ID of the device that collected the measurement"), th.Property("when", th.DateTimeType, description="The instant the measurement was taken"), th.Property("uvIndex", th.IntegerType, description="UV strength index"), th.Property("temperature", th.NumberType), th.Property("humidity", th.NumberType), th.Property("ambientLight", th.NumberType), ).to_dict()
from singer_sdk import typing as th schema = th.PropertiesList( th.Property("project_id", th.IntegerType), th.Property("profile", th.IntegerType), th.Property("name", th.StringType), th.Property("iamid", th.StringType), th.Property("userid", th.StringType), th.Property("email", th.StringType), th.Property("type", th.StringType), th.Property("approved", th.BooleanType), th.Property("state", th.StringType), th.Property("systemGenerated", th.BooleanType), th.Property("lastExternalRefresh", th.StringType), th.Property("subscriptionId", th.IntegerType), th.Property("createdAt", th.StringType), th.Property("updatedAt", th.StringType), th.Property("approvals", th.ArrayType(th.StringType)), th.Property("currentUserCanApprove", th.BooleanType), th.Property( "compliance", th.ObjectType( th.Property("isMissingPurposeAcknowledgement", th.BooleanType), th.Property("validationFrequencyExceeded", th.BooleanType), th.Property("isMissingEntitlements", th.BooleanType), th.Property("invalidSubscriptions", th.ArrayType(th.StringType)), th.Property("missingDataSources", th.ArrayType(th.StringType)), ), ), ).to_dict()
from singer_sdk import typing as th schema = th.PropertiesList( th.Property("id", th.StringType), th.Property("name", th.StringType), th.Property("email", th.StringType), th.Property("profilePicture", th.StringType), th.Property("activeWorkspace", th.StringType), th.Property("defaultWorkspace", th.StringType), th.Property("status", th.StringType), th.Property( "memberships", th.ArrayType( th.ObjectType( th.Property("userId", th.StringType), th.Property( "hourlyRate", th.ObjectType( th.Property("amount", th.NumberType), th.Property("currency", th.StringType), ), ), th.Property("targetId", th.StringType), th.Property("membershipType", th.StringType), th.Property("membershipStatus", th.StringType), )), ), ).to_dict()
from singer_sdk import typing as th schema = th.PropertiesList( th.Property("dateTime", th.StringType), th.Property("dataSourceName", th.StringType), th.Property("projectName", th.StringType), th.Property("recordType", th.StringType), th.Property("blobId", th.StringType), th.Property("userId", th.StringType), th.Property("profileId", th.IntegerType), th.Property("purposeIds", th.ArrayType(th.StringType)), th.Property("success", th.BooleanType), th.Property("failureReason", th.StringType), th.Property("id", th.StringType), th.Property("fingerprintVersionName", th.StringType), th.Property("email", th.StringType), ).to_dict()
from singer_sdk import typing as th schema = th.PropertiesList( th.Property("deleted", th.BooleanType), th.Property("id", th.IntegerType), th.Property("name", th.StringType), th.Property("source", th.StringType), th.Property("systemCreated", th.BooleanType), ).to_dict()
from singer_sdk import typing as th schema = th.PropertiesList( th.Property("id", th.StringType), th.Property("name", th.StringType), th.Property("workspaceId", th.StringType), th.Property("archived", th.BooleanType), ).to_dict()
from singer_sdk import typing as th schema = th.PropertiesList( th.Property("id", th.StringType), th.Property("started_at", th.DateTimeType), th.Property("userId", th.StringType), th.Property("projectId", th.StringType), th.Property("taskId", th.StringType), th.Property("workspaceId", th.StringType), th.Property("billable", th.BooleanType), th.Property("description", th.StringType), th.Property("isLocked", th.BooleanType), th.Property("customFieldValues", th.ArrayType(th.StringType)), th.Property("tagIds", th.ArrayType(th.StringType)), th.Property( "timeInterval", th.ObjectType( th.Property("duration", th.StringType), th.Property("end", th.StringType), th.Property("start", th.StringType), ), ), ).to_dict()
from singer_sdk import typing as th schema = th.PropertiesList( th.Property("project_id", th.IntegerType), th.Property("addedBy", th.StringType), th.Property("dataSourceName", th.StringType), th.Property("policyHandlerType", th.StringType), th.Property("addedOn", th.StringType), th.Property("dataSourceId", th.IntegerType), th.Property("addedByProfile", th.IntegerType), th.Property("comment", th.StringType), th.Property("deleted", th.BooleanType), th.Property("subscriptionType", th.StringType), th.Property("subscriptionStatus", th.StringType), th.Property("subscriptionPolicy", th.ObjectType()), th.Property("connectionString", th.StringType), th.Property("blobHandlerType", th.StringType), th.Property("derivedInThisProject", th.BooleanType), ).to_dict()
from singer_sdk import typing as th schema = th.PropertiesList( th.Property("authentication", th.IntegerType), th.Property("createdAt", th.StringType), th.Property("disabled", th.BooleanType), th.Property("iamid", th.StringType), th.Property("id", th.IntegerType), th.Property("lastExternalRefresh", th.StringType), th.Property("systemGenerated", th.BooleanType), th.Property("updatedAt", th.StringType), th.Property("userid", th.StringType), th.Property("permissions", th.ArrayType(th.StringType)), th.Property( "profile", th.ObjectType( th.Property("createdAt", th.StringType), th.Property("email", th.StringType), th.Property("id", th.IntegerType), th.Property("name", th.StringType), th.Property("systemGenerated", th.BooleanType), th.Property("updatedAt", th.StringType), ), ), ).to_dict()
from singer_sdk import typing as th schema = th.PropertiesList( th.Property("id", th.IntegerType), th.Property("name", th.StringType), th.Property("type", th.StringType), th.Property("template", th.BooleanType), th.Property("staged", th.BooleanType), th.Property("systemGenerated", th.BooleanType), th.Property("deleted", th.BooleanType), th.Property("createdBy", th.IntegerType), th.Property("createdByName", th.StringType), th.Property("createdAt", th.StringType), th.Property("updatedAt", th.StringType), th.Property( "certification", th.ObjectType( th.Property("text", th.StringType), th.Property("label", th.StringType), th.Property("tags", th.ArrayType(th.StringType)), ), ), th.Property( "actions", th.ArrayType( th.ObjectType( th.Property("type", th.StringType), th.Property( "rules", th.ObjectType(th.Property("type", th.StringType), ), ),
from singer_sdk import typing as th schema = th.PropertiesList( th.Property("id", th.StringType), th.Property("name", th.StringType), th.Property("imageUrl", th.StringType), th.Property( "hourlyRate", th.ObjectType( th.Property("amount", th.IntegerType), th.Property("currency", th.StringType), ), ), th.Property( "workspaceSettings", th.ObjectType( th.Property("adminOnlyPages", th.ArrayType(th.StringType)), th.Property( "automaticLock", th.ObjectType( th.Property("changeDay", th.StringType), th.Property("dayOfMonth", th.IntegerType), th.Property("firstDay", th.StringType), th.Property("olderThanPeriod", th.StringType), th.Property("olderThanValue", th.IntegerType), th.Property("type", th.StringType), ), ), th.Property("canSeeTimeSheet", th.BooleanType), th.Property("canSeeTimeTracker", th.BooleanType), th.Property("defaultBillableProjects", th.BooleanType),
from singer_sdk import typing as th schema = th.PropertiesList( th.Property("id", th.StringType), th.Property("projectId", th.StringType), th.Property("assigneeId", th.StringType), th.Property("name", th.StringType), th.Property("duration", th.StringType), th.Property("estimate", th.StringType), th.Property("status", th.StringType), th.Property("assigneeIds", th.ArrayType(th.StringType)), ).to_dict()
from singer_sdk import typing as th schema = th.PropertiesList( th.Property("dataSource", th.IntegerType), th.Property("types", th.ArrayType(th.StringType)), th.Property("id", th.IntegerType), th.Property("createdAt", th.StringType), th.Property("updatedAt", th.StringType), th.Property( "metadata", th.ArrayType( th.ObjectType( th.Property("name", th.StringType), th.Property("dataType", th.StringType), th.Property("nullable", th.BooleanType), th.Property("remoteType", th.StringType), th.Property( "tags", th.ArrayType( th.ObjectType( th.Property("name", th.StringType), th.Property("source", th.StringType), th.Property("deleted", th.BooleanType), )), ), )), ), ).to_dict()
class TargetAthena(Target): """Sample target for Athena.""" name = "target-athena" config_jsonschema = th.PropertiesList( th.Property("s3_bucket", th.StringType, required=True), th.Property("athena_database", th.StringType, required=True), th.Property("aws_region", th.StringType, required=True), th.Property("aws_access_key_id", th.StringType), th.Property("aws_secret_access_key", th.StringType), th.Property("aws_session_token", th.StringType), th.Property("aws_profile", th.StringType), th.Property("s3_key_prefix", th.StringType), th.Property("naming_convention", th.StringType), th.Property("object_format", th.StringType, default='jsonl'), th.Property("compression", th.StringType, default='gzip'), th.Property("encryption_type", th.StringType), th.Property("encryption_key", th.StringType), th.Property("add_record_metadata", th.BooleanType, default=False), th.Property("flatten_records", th.BooleanType, default=False), th.Property("delimiter", th.StringType, default=","), th.Property("quotechar", th.StringType, default='"'), th.Property("temp_dir", th.StringType), th.Property("stream_maps", th.ObjectType()), th.Property("stream_map_config", th.ObjectType()), ).to_dict() default_sink_class = AthenaSink
from singer_sdk import typing as th schema = th.PropertiesList( th.Property("id", th.StringType), th.Property("name", th.StringType), th.Property("clientId", th.StringType), th.Property("workspaceId", th.StringType), th.Property("billable", th.BooleanType), th.Property("archived", th.BooleanType), th.Property("duration", th.StringType), th.Property("clientName", th.StringType), th.Property("note", th.StringType), th.Property("template", th.BooleanType), th.Property("public", th.BooleanType), th.Property("color", th.StringType), th.Property( "estimate", th.ObjectType( th.Property("estimate", th.StringType), th.Property("type", th.StringType), ), ), th.Property( "hourlyRate", th.ObjectType( th.Property("amount", th.NumberType), th.Property("currency", th.StringType), ), ), ).to_dict()
from singer_sdk import typing as th schema = th.PropertiesList( th.Property("id", th.IntegerType), th.Property("name", th.StringType), th.Property("acknowledgement", th.StringType), th.Property("description", th.StringType), th.Property("addedByProfile", th.IntegerType), th.Property("displayAcknowledgement", th.BooleanType), th.Property("deleted", th.BooleanType), th.Property("systemGenerated", th.BooleanType), th.Property("createdAt", th.StringType), th.Property("updatedAt", th.StringType), ).to_dict()
from singer_sdk import typing as th schema = th.PropertiesList( th.Property("data_source_id", th.IntegerType), th.Property("profile", th.IntegerType), th.Property("name", th.StringType), th.Property("iamid", th.StringType), th.Property("userid", th.StringType), th.Property("email", th.StringType), th.Property("admin", th.StringType), th.Property("approved", th.BooleanType), th.Property("state", th.StringType), th.Property("systemGenerated", th.BooleanType), th.Property("lastExternalRefresh", th.StringType), th.Property("subscriptionId", th.IntegerType), th.Property("createdAt", th.StringType), th.Property("updatedAt", th.StringType), th.Property("approvals", th.ArrayType(th.StringType)), ).to_dict()
from singer_sdk import typing as th schema = th.PropertiesList( th.Property("id", th.IntegerType), th.Property("iamid", th.StringType), th.Property("name", th.StringType), th.Property("gid", th.StringType), th.Property("email", th.StringType), th.Property( "authorizations", th.ObjectType(th.Property("name", th.StringType), ), ), th.Property("description", th.StringType), th.Property("createdAt", th.StringType), th.Property("updatedAt", th.StringType), ).to_dict()
from singer_sdk import typing as th schema = th.PropertiesList( th.Property("name", th.StringType), th.Property("recordFormat", th.StringType), th.Property("description", th.StringType), th.Property("policyHandler", th.ObjectType()), th.Property("sqlSchemaName", th.StringType), th.Property("sqlTableName", th.StringType), th.Property("blobHandler", th.ObjectType()), th.Property("createdBy", th.IntegerType), th.Property("deleted", th.BooleanType), th.Property("type", th.StringType), th.Property("recordCount", th.IntegerType), th.Property("rowCount", th.IntegerType), th.Property("documentation", th.StringType), th.Property("statsExpiration", th.StringType), th.Property("id", th.IntegerType), th.Property("blobHandlerType", th.StringType), th.Property("policyHandlerType", th.StringType), th.Property("subscriptionType", th.StringType), th.Property("subscriptionPolicy", th.ObjectType()), th.Property("globalPolicies", th.ArrayType(th.ObjectType())), th.Property("status", th.StringType), th.Property("statusInfo", th.ObjectType()), th.Property("expiration", th.StringType), th.Property("catalogMetadata", th.StringType), th.Property("workspace", th.StringType), th.Property("seeded", th.BooleanType), th.Property("schemaEvolutionId", th.IntegerType), th.Property("connectionString", th.StringType),