diff --git a/airbyte-integrations/connectors/source-deputy/README.md b/airbyte-integrations/connectors/source-deputy/README.md
new file mode 100644
index 000000000000..b78b1e8d59a8
--- /dev/null
+++ b/airbyte-integrations/connectors/source-deputy/README.md
@@ -0,0 +1,43 @@
+# Deputy
+This directory contains the manifest-only connector for `source-deputy`.
+
+This is the Deputy source that ingests data from the Deputy API.
+
+Deputy is a software that simplifies employee scheduling, timesheets and HR in one place https://www.deputy.com/
+
+In order to use this source you must first create an account on Deputy.
+Once logged in, your Deputy install will have a specific URL in the structure of https://{installname}.{geo}.deputy.com - This is the same URL that will be the base API url .
+
+To obtain your bearer token to use the API, follow the steps shown here https://developer.deputy.com/deputy-docs/docs/the-hello-world-of-deputy
+This will have you create an oauth application and create an access token. Enter the access token in the input field.
+
+You can learn more about the API here https://developer.deputy.com/deputy-docs/reference/getlocations
+
+## Usage
+There are multiple ways to use this connector:
+- You can use this connector as any other connector in Airbyte Marketplace.
+- You can load this connector in `pyairbyte` using `get_source`!
+- You can open this connector in Connector Builder, edit it, and publish to your workspaces.
+
+Please refer to the manifest-only connector documentation for more details.
+
+## Local Development
+We recommend you use the Connector Builder to edit this connector.
+
+But, if you want to develop this connector locally, you can use the following steps.
+
+### Environment Setup
+You will need `airbyte-ci` installed. You can find the documentation [here](airbyte-ci).
+
+### Build
+This will create a dev image (`source-deputy:dev`) that you can use to test the connector locally.
+```bash
+airbyte-ci connectors --name=source-deputy build
+```
+
+### Test
+This will run the acceptance tests for the connector.
+```bash
+airbyte-ci connectors --name=source-deputy test
+```
+
diff --git a/airbyte-integrations/connectors/source-deputy/acceptance-test-config.yml b/airbyte-integrations/connectors/source-deputy/acceptance-test-config.yml
new file mode 100644
index 000000000000..fd75d7d3b523
--- /dev/null
+++ b/airbyte-integrations/connectors/source-deputy/acceptance-test-config.yml
@@ -0,0 +1,17 @@
+# See [Connector Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/connector-acceptance-tests-reference)
+# for more information about how to configure these tests
+connector_image: airbyte/source-deputy:dev
+acceptance_tests:
+ spec:
+ tests:
+ - spec_path: "manifest.yaml"
+ connection:
+ bypass_reason: "This is a builder contribution, and we do not have secrets at this time"
+ discovery:
+ bypass_reason: "This is a builder contribution, and we do not have secrets at this time"
+ basic_read:
+ bypass_reason: "This is a builder contribution, and we do not have secrets at this time"
+ incremental:
+ bypass_reason: "This is a builder contribution, and we do not have secrets at this time"
+ full_refresh:
+ bypass_reason: "This is a builder contribution, and we do not have secrets at this time"
diff --git a/airbyte-integrations/connectors/source-deputy/icon.svg b/airbyte-integrations/connectors/source-deputy/icon.svg
new file mode 100644
index 000000000000..cf5618012c9a
--- /dev/null
+++ b/airbyte-integrations/connectors/source-deputy/icon.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/airbyte-integrations/connectors/source-deputy/manifest.yaml b/airbyte-integrations/connectors/source-deputy/manifest.yaml
new file mode 100644
index 000000000000..e8b6282b2fe7
--- /dev/null
+++ b/airbyte-integrations/connectors/source-deputy/manifest.yaml
@@ -0,0 +1,1993 @@
+version: 5.15.0
+
+type: DeclarativeSource
+
+description: >-
+ This is the Deputy source that ingests data from the Deputy API.
+
+
+ Deputy is a software that simplifies employee scheduling, timesheets and HR in
+ one place https://www.deputy.com/
+
+
+ In order to use this source you must first create an account on Deputy.
+
+ Once logged in, your Deputy install will have a specific URL in the structure
+ of https://{installname}.{geo}.deputy.com - This is the same URL that will be
+ the base API url .
+
+
+ To obtain your bearer token to use the API, follow the steps shown here
+ https://developer.deputy.com/deputy-docs/docs/the-hello-world-of-deputy
+
+ This will have you create an oauth application and create an access token.
+ Enter the access token in the input field.
+
+
+ You can learn more about the API here
+ https://developer.deputy.com/deputy-docs/reference/getlocations
+
+check:
+ type: CheckStream
+ stream_names:
+ - locations
+
+definitions:
+ streams:
+ tasks:
+ type: DeclarativeStream
+ name: tasks
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: /api/v1/my/tasks
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: []
+ primary_key:
+ - Id
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/tasks"
+ employees:
+ type: DeclarativeStream
+ name: employees
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: /api/v1/supervise/employee
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: []
+ primary_key:
+ - Id
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/employees"
+ locations:
+ type: DeclarativeStream
+ name: locations
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: /api/v1/resource/Company
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: []
+ primary_key:
+ - Id
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/locations"
+ news_feed:
+ type: DeclarativeStream
+ name: news_feed
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: /api/v1/my/memo
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: []
+ primary_key:
+ - Id
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/news_feed"
+ timesheets:
+ type: DeclarativeStream
+ name: timesheets
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: /api/v1/my/timesheets
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: []
+ primary_key:
+ - Id
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/timesheets"
+ award_lists:
+ type: DeclarativeStream
+ name: award_lists
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: /api/v1/payroll/listAwardsLibrary
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: []
+ primary_key:
+ - AwardCode
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/award_lists"
+ departments:
+ type: DeclarativeStream
+ name: departments
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: /api/v1/resource/OperationalUnit
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: []
+ primary_key:
+ - Id
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/departments"
+ base_requester:
+ type: HttpRequester
+ url_base: "{{ config[\"base_url\"] }}"
+ authenticator:
+ type: BearerAuthenticator
+ api_token: "{{ config[\"api_key\"] }}"
+
+streams:
+ - $ref: "#/definitions/streams/locations"
+ - $ref: "#/definitions/streams/employees"
+ - $ref: "#/definitions/streams/award_lists"
+ - $ref: "#/definitions/streams/departments"
+ - $ref: "#/definitions/streams/timesheets"
+ - $ref: "#/definitions/streams/tasks"
+ - $ref: "#/definitions/streams/news_feed"
+
+spec:
+ type: Spec
+ connection_specification:
+ type: object
+ $schema: http://json-schema.org/draft-07/schema#
+ required:
+ - base_url
+ - api_key
+ properties:
+ api_key:
+ type: string
+ order: 1
+ title: API Key
+ airbyte_secret: true
+ base_url:
+ type: string
+ description: The base url for your deputy account to make API requests
+ order: 0
+ title: Base URL
+ additionalProperties: true
+
+metadata:
+ assist: {}
+ testedStreams:
+ tasks:
+ hasRecords: true
+ streamHash: 1a07fa7312a790952e191b42d6536f50bbcbc83d
+ hasResponse: true
+ primaryKeysAreUnique: true
+ primaryKeysArePresent: true
+ responsesAreSuccessful: true
+ employees:
+ hasRecords: true
+ streamHash: 26e6570851e4946bd08c692af48451a58c719fad
+ hasResponse: true
+ primaryKeysAreUnique: true
+ primaryKeysArePresent: true
+ responsesAreSuccessful: true
+ locations:
+ hasRecords: true
+ streamHash: b36f59510c29852826ce956d16d2f72d4bd3bd2e
+ hasResponse: true
+ primaryKeysAreUnique: true
+ primaryKeysArePresent: true
+ responsesAreSuccessful: true
+ news_feed:
+ hasRecords: true
+ streamHash: 8c36fe3f13fcbbe0e4a29d847bf2240722e0de70
+ hasResponse: true
+ primaryKeysAreUnique: true
+ primaryKeysArePresent: true
+ responsesAreSuccessful: true
+ timesheets:
+ hasRecords: true
+ streamHash: 47e657645eb4db6fa9df72613af7e6d6c381d5ca
+ hasResponse: true
+ primaryKeysAreUnique: true
+ primaryKeysArePresent: true
+ responsesAreSuccessful: true
+ award_lists:
+ hasRecords: true
+ streamHash: 227bf7d420b60c1c7c77ba995a36504548658c4e
+ hasResponse: true
+ primaryKeysAreUnique: true
+ primaryKeysArePresent: true
+ responsesAreSuccessful: true
+ departments:
+ hasRecords: true
+ streamHash: e8de6171bb9b6eca67b847b6e0c75c6ba5d4a680
+ hasResponse: true
+ primaryKeysAreUnique: true
+ primaryKeysArePresent: true
+ responsesAreSuccessful: true
+ autoImportSchema:
+ tasks: true
+ employees: true
+ locations: true
+ news_feed: true
+ timesheets: true
+ award_lists: true
+ departments: true
+
+schemas:
+ tasks:
+ type: object
+ $schema: http://json-schema.org/schema#
+ required:
+ - Id
+ properties:
+ Id:
+ type: number
+ Date:
+ type:
+ - string
+ - "null"
+ Type:
+ type:
+ - number
+ - "null"
+ Answer:
+ type:
+ - string
+ - "null"
+ Comment:
+ type:
+ - string
+ - "null"
+ Created:
+ type:
+ - string
+ - "null"
+ GroupId:
+ type:
+ - number
+ - "null"
+ Modified:
+ type:
+ - string
+ - "null"
+ OpUnitId:
+ type:
+ - number
+ - "null"
+ Question:
+ type:
+ - string
+ - "null"
+ SortOrder:
+ type:
+ - number
+ - "null"
+ UserEntry:
+ type:
+ - number
+ - "null"
+ TaskSetupId:
+ type:
+ - number
+ - "null"
+ _DPMetaData:
+ type:
+ - object
+ - "null"
+ properties:
+ System:
+ type:
+ - string
+ - "null"
+ UserEntryInfo:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Photo:
+ type:
+ - string
+ - "null"
+ Employee:
+ type:
+ - number
+ - "null"
+ DisplayName:
+ type:
+ - string
+ - "null"
+ UserResponsibleInfo:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Photo:
+ type:
+ - string
+ - "null"
+ Employee:
+ type:
+ - number
+ - "null"
+ DisplayName:
+ type:
+ - string
+ - "null"
+ DayTimestamp:
+ type:
+ - number
+ - "null"
+ UserResponsible:
+ type:
+ - number
+ - "null"
+ additionalProperties: true
+ employees:
+ type: object
+ $schema: http://json-schema.org/schema#
+ required:
+ - Id
+ properties:
+ Id:
+ type: number
+ Img:
+ type:
+ - string
+ - "null"
+ Role:
+ type:
+ - number
+ - "null"
+ Email:
+ type:
+ - string
+ - "null"
+ Photo:
+ type:
+ - number
+ - "null"
+ Active:
+ type:
+ - boolean
+ - "null"
+ Mobile:
+ type:
+ - string
+ - "null"
+ Status:
+ type:
+ - number
+ - "null"
+ UserId:
+ type:
+ - number
+ - "null"
+ Company:
+ type:
+ - number
+ - "null"
+ Contact:
+ type:
+ - number
+ - "null"
+ Created:
+ type:
+ - string
+ - "null"
+ Creator:
+ type:
+ - number
+ - "null"
+ Contract:
+ anyOf:
+ - type: string
+ - type: object
+ properties:
+ Id:
+ type: number
+ Code:
+ type: "null"
+ File:
+ type: "null"
+ Name:
+ type: string
+ PpId:
+ type: "null"
+ Award:
+ type: "null"
+ Created:
+ type: string
+ Creator:
+ type: number
+ EndDate:
+ type: "null"
+ Modified:
+ type: string
+ CountryId:
+ type: "null"
+ MigrateTo:
+ type: "null"
+ StartDate:
+ type: "null"
+ PeriodType:
+ type: number
+ BasePayRule:
+ type: number
+ Description:
+ type: "null"
+ _DPMetaData:
+ type: object
+ properties:
+ System:
+ type: string
+ CreatorInfo:
+ type: object
+ PayRuleArray:
+ type: array
+ items:
+ type: object
+ properties:
+ Id:
+ type: number
+ CrId:
+ type: "null"
+ CtId:
+ type: "null"
+ Config:
+ type: "null"
+ Comment:
+ type: "null"
+ Created:
+ type: string
+ Creator:
+ type: number
+ RateTag:
+ type: "null"
+ Modified:
+ type: string
+ PayTitle:
+ type: string
+ RateType:
+ type: "null"
+ Schedule:
+ type: number
+ UnitValue:
+ type: "null"
+ HourlyRate:
+ type: number
+ IsExported:
+ type: boolean
+ PeriodType:
+ type: "null"
+ DexmlScript:
+ type: "null"
+ MaximumType:
+ type: number
+ MinimumType:
+ type: number
+ _DPMetaData:
+ type: object
+ properties:
+ System:
+ type: string
+ CreatorInfo:
+ type: object
+ AnnualSalary:
+ type: "null"
+ IsMultiplier:
+ type: boolean
+ MaximumValue:
+ type: "null"
+ MinimumValue:
+ type: "null"
+ RecommendWith:
+ type: number
+ PayPortionRule:
+ type: number
+ RemunerationBy:
+ type: number
+ MultiplierValue:
+ type: "null"
+ PayrollCategory:
+ type: string
+ DexmlScriptParam:
+ type: "null"
+ RemunerationType:
+ type: number
+ MaximumShiftLength:
+ type: "null"
+ MinimumShiftLength:
+ type: "null"
+ MultiplierBaseRate:
+ type: "null"
+ AdvancedCalculation:
+ type: "null"
+ StressProfile:
+ type: "null"
+ AwardStartDate:
+ type: "null"
+ LeaveRuleArray:
+ type: array
+ items:
+ type: object
+ properties:
+ Id:
+ type: number
+ Created:
+ type: string
+ Creator:
+ type: number
+ Modified:
+ type: string
+ ContractId:
+ type: number
+ BasePayRule:
+ type: number
+ LeaveRuleId:
+ type: number
+ _DPMetaData:
+ type: object
+ properties:
+ System:
+ type: string
+ CreatorInfo:
+ type: object
+ properties:
+ Id:
+ type: number
+ Photo:
+ type: string
+ DisplayName:
+ type: string
+ LoadingPayRule1:
+ type: "null"
+ LoadingPayRule2:
+ type: "null"
+ LoadingPayRule3:
+ type: "null"
+ ThirdPartySync:
+ type: string
+ EmploymentBasis:
+ type: number
+ EmploymentStatus:
+ type: number
+ EmploymentSubType:
+ type: "null"
+ EmploymentCategory:
+ type: number
+ EmploymentCondition:
+ type: "null"
+ StrictLeaveApproval:
+ type: "null"
+ LastName:
+ type:
+ - string
+ - "null"
+ Modified:
+ type:
+ - string
+ - "null"
+ Pronouns:
+ type:
+ - number
+ - "null"
+ UserName:
+ type:
+ - string
+ - "null"
+ FirstName:
+ type:
+ - string
+ - "null"
+ HistoryId:
+ type:
+ - number
+ - "null"
+ PayrollId:
+ type:
+ - string
+ - "null"
+ StartDate:
+ type:
+ - string
+ - "null"
+ AllowLogin:
+ type:
+ - boolean
+ - "null"
+ AnalyticsID:
+ type:
+ - string
+ - "null"
+ DisplayName:
+ type:
+ - string
+ - "null"
+ PhotoLinkId:
+ type:
+ - string
+ - "null"
+ _DPMetaData:
+ type:
+ - object
+ - "null"
+ properties:
+ System:
+ type:
+ - string
+ - "null"
+ CreatorInfo:
+ type:
+ - object
+ - "null"
+ HasEnabled2FA:
+ type:
+ - boolean
+ - "null"
+ IsSubordinate:
+ type:
+ - boolean
+ - "null"
+ StressProfile:
+ type:
+ - number
+ - "null"
+ TrainingArray:
+ type:
+ - string
+ - "null"
+ AllowAppraisal:
+ type:
+ - boolean
+ - "null"
+ HasIPhoneToken:
+ type:
+ - boolean
+ - "null"
+ WorkplaceArray:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Company:
+ type:
+ - number
+ - "null"
+ Created:
+ type:
+ - string
+ - "null"
+ Creator:
+ type:
+ - number
+ - "null"
+ Modified:
+ type:
+ - string
+ - "null"
+ SortOrder:
+ type:
+ - number
+ - "null"
+ Agreement1:
+ type:
+ - number
+ - "null"
+ Agreement2:
+ type:
+ - number
+ - "null"
+ Agreement3:
+ type:
+ - number
+ - "null"
+ EmployeeId:
+ type:
+ - number
+ - "null"
+ _DPMetaData:
+ type:
+ - object
+ - "null"
+ properties:
+ System:
+ type:
+ - string
+ - "null"
+ CreatorInfo:
+ type:
+ - object
+ - "null"
+ CanAskToShowPin:
+ type:
+ - boolean
+ - "null"
+ HasAndroidToken:
+ type:
+ - boolean
+ - "null"
+ LeaveAccrualArray:
+ type:
+ - array
+ - "null"
+ TrainingFileArray:
+ type:
+ - array
+ - "null"
+ EmployeeHourlyRate:
+ type:
+ - number
+ - "null"
+ additionalProperties: true
+ locations:
+ type: object
+ $schema: http://json-schema.org/schema#
+ required:
+ - Id
+ properties:
+ Id:
+ type: number
+ Code:
+ type:
+ - string
+ - "null"
+ Active:
+ type:
+ - boolean
+ - "null"
+ Address:
+ type:
+ - number
+ - "null"
+ Contact:
+ type:
+ - number
+ - "null"
+ Created:
+ type:
+ - string
+ - "null"
+ Creator:
+ type:
+ - number
+ - "null"
+ Modified:
+ type:
+ - string
+ - "null"
+ CompanyName:
+ type:
+ - string
+ - "null"
+ IsWorkplace:
+ type:
+ - boolean
+ - "null"
+ TradingName:
+ type:
+ - string
+ - "null"
+ _DPMetaData:
+ type:
+ - object
+ - "null"
+ properties:
+ Geo:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Orm:
+ type:
+ - string
+ - "null"
+ RecId:
+ type:
+ - number
+ - "null"
+ Created:
+ type:
+ - string
+ - "null"
+ Creator:
+ type:
+ - number
+ - "null"
+ Latitude:
+ type:
+ - number
+ - "null"
+ Modified:
+ type:
+ - string
+ - "null"
+ Longitude:
+ type:
+ - number
+ - "null"
+ System:
+ type:
+ - string
+ - "null"
+ CustomData:
+ type:
+ - object
+ - "null"
+ properties: {}
+ CreatorInfo:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Photo:
+ type:
+ - string
+ - "null"
+ Employee:
+ type:
+ - number
+ - "null"
+ Pronouns:
+ type:
+ - number
+ - "null"
+ DisplayName:
+ type:
+ - string
+ - "null"
+ EmployeeProfile:
+ type:
+ - number
+ - "null"
+ AddressObject:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Print:
+ type:
+ - string
+ - "null"
+ State:
+ type:
+ - string
+ - "null"
+ Country:
+ type:
+ - number
+ - "null"
+ Created:
+ type:
+ - string
+ - "null"
+ Creator:
+ type:
+ - number
+ - "null"
+ Street1:
+ type:
+ - string
+ - "null"
+ Modified:
+ type:
+ - string
+ - "null"
+ ParentCompany:
+ type:
+ - number
+ - "null"
+ BusinessNumber:
+ type:
+ - string
+ - "null"
+ IsPayrollEntity:
+ type:
+ - boolean
+ - "null"
+ PayrollExportCode:
+ type:
+ - string
+ - "null"
+ additionalProperties: true
+ news_feed:
+ type: object
+ $schema: http://json-schema.org/schema#
+ required:
+ - Id
+ properties:
+ Id:
+ type: number
+ Type:
+ type:
+ - number
+ - "null"
+ Active:
+ type:
+ - boolean
+ - "null"
+ Content:
+ type:
+ - string
+ - "null"
+ Created:
+ type:
+ - string
+ - "null"
+ Creator:
+ type:
+ - number
+ - "null"
+ Keyword:
+ type:
+ - string
+ - "null"
+ Modified:
+ type:
+ - string
+ - "null"
+ ShowFrom:
+ type:
+ - string
+ - "null"
+ ConfirmText:
+ type:
+ - string
+ - "null"
+ _DPMetaData:
+ type:
+ - object
+ - "null"
+ properties:
+ Files:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Name:
+ type:
+ - string
+ - "null"
+ Size:
+ type:
+ - number
+ - "null"
+ Type:
+ type:
+ - string
+ - "null"
+ Width:
+ type:
+ - number
+ - "null"
+ Height:
+ type:
+ - number
+ - "null"
+ Linkid:
+ type:
+ - string
+ - "null"
+ Tempid:
+ type:
+ - string
+ - "null"
+ Created:
+ type:
+ - string
+ - "null"
+ Creator:
+ type:
+ - number
+ - "null"
+ Session:
+ type:
+ - number
+ - "null"
+ Modified:
+ type:
+ - string
+ - "null"
+ P5050Link:
+ type:
+ - string
+ - "null"
+ DynamicLink:
+ type:
+ - string
+ - "null"
+ PreviewLink:
+ type:
+ - string
+ - "null"
+ DownloadLink:
+ type:
+ - string
+ - "null"
+ Teams:
+ type:
+ - array
+ - "null"
+ System:
+ type:
+ - string
+ - "null"
+ Comments:
+ type:
+ - array
+ - "null"
+ MemoLogs:
+ type:
+ - array
+ - "null"
+ CanDelete:
+ type:
+ - boolean
+ - "null"
+ Companies:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Code:
+ type:
+ - string
+ - "null"
+ Active:
+ type:
+ - boolean
+ - "null"
+ Address:
+ type:
+ - number
+ - "null"
+ Contact:
+ type:
+ - number
+ - "null"
+ Created:
+ type:
+ - string
+ - "null"
+ Creator:
+ type:
+ - number
+ - "null"
+ Modified:
+ type:
+ - string
+ - "null"
+ CompanyName:
+ type:
+ - string
+ - "null"
+ IsWorkplace:
+ type:
+ - boolean
+ - "null"
+ TradingName:
+ type:
+ - string
+ - "null"
+ _DPMetaData:
+ type:
+ - object
+ - "null"
+ properties:
+ Geo:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Orm:
+ type:
+ - string
+ - "null"
+ RecId:
+ type:
+ - number
+ - "null"
+ Created:
+ type:
+ - string
+ - "null"
+ Creator:
+ type:
+ - number
+ - "null"
+ Latitude:
+ type:
+ - number
+ - "null"
+ Modified:
+ type:
+ - string
+ - "null"
+ Longitude:
+ type:
+ - number
+ - "null"
+ System:
+ type:
+ - string
+ - "null"
+ CustomData:
+ type:
+ - object
+ - "null"
+ properties: {}
+ CreatorInfo:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Photo:
+ type:
+ - string
+ - "null"
+ Employee:
+ type:
+ - number
+ - "null"
+ Pronouns:
+ type:
+ - number
+ - "null"
+ DisplayName:
+ type:
+ - string
+ - "null"
+ EmployeeProfile:
+ type:
+ - number
+ - "null"
+ AddressObject:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Print:
+ type:
+ - string
+ - "null"
+ State:
+ type:
+ - string
+ - "null"
+ Country:
+ type:
+ - number
+ - "null"
+ Created:
+ type:
+ - string
+ - "null"
+ Creator:
+ type:
+ - number
+ - "null"
+ Street1:
+ type:
+ - string
+ - "null"
+ Modified:
+ type:
+ - string
+ - "null"
+ ParentCompany:
+ type:
+ - number
+ - "null"
+ BusinessNumber:
+ type:
+ - string
+ - "null"
+ IsPayrollEntity:
+ type:
+ - boolean
+ - "null"
+ PayrollExportCode:
+ type:
+ - string
+ - "null"
+ Reactions:
+ type:
+ - object
+ - "null"
+ properties:
+ "1":
+ type:
+ - number
+ - "null"
+ "2":
+ type:
+ - number
+ - "null"
+ "3":
+ type:
+ - number
+ - "null"
+ "4":
+ type:
+ - number
+ - "null"
+ "5":
+ type:
+ - number
+ - "null"
+ "6":
+ type:
+ - number
+ - "null"
+ CreatorInfo:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Photo:
+ type:
+ - string
+ - "null"
+ Employee:
+ type:
+ - number
+ - "null"
+ Pronouns:
+ type:
+ - number
+ - "null"
+ DisplayName:
+ type:
+ - string
+ - "null"
+ EmployeeProfile:
+ type:
+ - number
+ - "null"
+ UserReaction:
+ type:
+ - array
+ - "null"
+ AssignedUsers:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Photo:
+ type:
+ - string
+ - "null"
+ Employee:
+ type:
+ - number
+ - "null"
+ Pronouns:
+ type:
+ - number
+ - "null"
+ DisplayName:
+ type:
+ - string
+ - "null"
+ EmployeeProfile:
+ type:
+ - number
+ - "null"
+ RequireMyConfirm:
+ type:
+ - boolean
+ - "null"
+ RequireConfirmation:
+ type:
+ - boolean
+ - "null"
+ DisableComment:
+ type:
+ - boolean
+ - "null"
+ additionalProperties: true
+ timesheets:
+ type: object
+ $schema: http://json-schema.org/schema#
+ required:
+ - Id
+ properties:
+ Id:
+ type: number
+ Cost:
+ type:
+ - number
+ - "null"
+ Date:
+ type:
+ - string
+ - "null"
+ Slots:
+ type:
+ - array
+ - "null"
+ OnCost:
+ type:
+ - number
+ - "null"
+ Created:
+ type:
+ - string
+ - "null"
+ Creator:
+ type:
+ - number
+ - "null"
+ EndTime:
+ type:
+ - number
+ - "null"
+ IsLeave:
+ type:
+ - boolean
+ - "null"
+ Disputed:
+ type:
+ - boolean
+ - "null"
+ Employee:
+ type:
+ - number
+ - "null"
+ Invoiced:
+ type:
+ - boolean
+ - "null"
+ Metadata:
+ type:
+ - string
+ - "null"
+ Modified:
+ type:
+ - string
+ - "null"
+ RealTime:
+ type:
+ - boolean
+ - "null"
+ Mealbreak:
+ type:
+ - string
+ - "null"
+ PayStaged:
+ type:
+ - boolean
+ - "null"
+ StartTime:
+ type:
+ - number
+ - "null"
+ TotalTime:
+ type:
+ - number
+ - "null"
+ PaycycleId:
+ type:
+ - number
+ - "null"
+ AutoRounded:
+ type:
+ - boolean
+ - "null"
+ ReviewState:
+ type:
+ - number
+ - "null"
+ _DPMetaData:
+ type:
+ - object
+ - "null"
+ properties:
+ System:
+ type:
+ - string
+ - "null"
+ CreatorInfo:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Photo:
+ type:
+ - string
+ - "null"
+ Employee:
+ type:
+ - number
+ - "null"
+ Pronouns:
+ type:
+ - number
+ - "null"
+ DisplayName:
+ type:
+ - string
+ - "null"
+ EmployeeProfile:
+ type:
+ - number
+ - "null"
+ EmployeeInfo:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Photo:
+ type:
+ - string
+ - "null"
+ Employee:
+ type:
+ - number
+ - "null"
+ Pronouns:
+ type:
+ - number
+ - "null"
+ DisplayName:
+ type:
+ - string
+ - "null"
+ EmployeeProfile:
+ type:
+ - number
+ - "null"
+ OperationalUnitInfo:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Company:
+ type:
+ - number
+ - "null"
+ CompanyName:
+ type:
+ - string
+ - "null"
+ LabelWithCompany:
+ type:
+ - string
+ - "null"
+ OperationalUnitName:
+ type:
+ - string
+ - "null"
+ TimeApproved:
+ type:
+ - boolean
+ - "null"
+ TimeApprover:
+ type:
+ - number
+ - "null"
+ TotalTimeInv:
+ type:
+ - number
+ - "null"
+ AutoProcessed:
+ type:
+ - boolean
+ - "null"
+ MealbreakSlots:
+ type:
+ - string
+ - "null"
+ ValidationFlag:
+ type:
+ - number
+ - "null"
+ EmployeeHistory:
+ type:
+ - number
+ - "null"
+ OperationalUnit:
+ type:
+ - number
+ - "null"
+ PayRuleApproved:
+ type:
+ - boolean
+ - "null"
+ AutoTimeApproved:
+ type:
+ - boolean
+ - "null"
+ EndTimeLocalized:
+ type:
+ - string
+ - "null"
+ EmployeeAgreement:
+ type:
+ - number
+ - "null"
+ MarkedPaidUnpaidAt:
+ type:
+ - string
+ - "null"
+ StartTimeLocalized:
+ type:
+ - string
+ - "null"
+ AutoPayRuleApproved:
+ type:
+ - boolean
+ - "null"
+ OperationalUnitObject:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Active:
+ type:
+ - boolean
+ - "null"
+ Colour:
+ type:
+ - string
+ - "null"
+ Address:
+ type:
+ - number
+ - "null"
+ Company:
+ type:
+ - number
+ - "null"
+ Created:
+ type:
+ - string
+ - "null"
+ Creator:
+ type:
+ - number
+ - "null"
+ Modified:
+ type:
+ - string
+ - "null"
+ CompanyCode:
+ type:
+ - string
+ - "null"
+ CompanyName:
+ type:
+ - string
+ - "null"
+ ShowOnRoster:
+ type:
+ - boolean
+ - "null"
+ AddressObject:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ City:
+ type:
+ - string
+ - "null"
+ Print:
+ type:
+ - string
+ - "null"
+ State:
+ type:
+ - string
+ - "null"
+ Country:
+ type:
+ - number
+ - "null"
+ Created:
+ type:
+ - string
+ - "null"
+ Creator:
+ type:
+ - number
+ - "null"
+ Street1:
+ type:
+ - string
+ - "null"
+ Modified:
+ type:
+ - string
+ - "null"
+ Postcode:
+ type:
+ - string
+ - "null"
+ CompanyAddress:
+ type:
+ - number
+ - "null"
+ RosterSortOrder:
+ type:
+ - number
+ - "null"
+ PayrollExportName:
+ type:
+ - string
+ - "null"
+ OperationalUnitName:
+ type:
+ - string
+ - "null"
+ ParentOperationalUnit:
+ type:
+ - number
+ - "null"
+ additionalProperties: true
+ award_lists:
+ type: object
+ $schema: http://json-schema.org/schema#
+ required:
+ - AwardCode
+ properties:
+ name:
+ type:
+ - string
+ - "null"
+ AwardCode:
+ type: string
+ CountryCode:
+ type:
+ - string
+ - "null"
+ employmentTerm:
+ type:
+ - number
+ - "null"
+ additionalProperties: true
+ departments:
+ type: object
+ $schema: http://json-schema.org/schema#
+ required:
+ - Id
+ properties:
+ Id:
+ type: number
+ Active:
+ type:
+ - boolean
+ - "null"
+ Colour:
+ type:
+ - string
+ - "null"
+ Address:
+ type:
+ - number
+ - "null"
+ Company:
+ type:
+ - number
+ - "null"
+ Created:
+ type:
+ - string
+ - "null"
+ Creator:
+ type:
+ - number
+ - "null"
+ Modified:
+ type:
+ - string
+ - "null"
+ CompanyCode:
+ type:
+ - string
+ - "null"
+ CompanyName:
+ type:
+ - string
+ - "null"
+ _DPMetaData:
+ type:
+ - object
+ - "null"
+ properties:
+ System:
+ type:
+ - string
+ - "null"
+ CreatorInfo:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ Photo:
+ type:
+ - string
+ - "null"
+ Employee:
+ type:
+ - number
+ - "null"
+ Pronouns:
+ type:
+ - number
+ - "null"
+ DisplayName:
+ type:
+ - string
+ - "null"
+ EmployeeProfile:
+ type:
+ - number
+ - "null"
+ AddressObject:
+ type:
+ - object
+ - "null"
+ properties:
+ Id:
+ type:
+ - number
+ - "null"
+ City:
+ type:
+ - string
+ - "null"
+ Print:
+ type:
+ - string
+ - "null"
+ State:
+ type:
+ - string
+ - "null"
+ Country:
+ type:
+ - number
+ - "null"
+ Created:
+ type:
+ - string
+ - "null"
+ Creator:
+ type:
+ - number
+ - "null"
+ Street1:
+ type:
+ - string
+ - "null"
+ Modified:
+ type:
+ - string
+ - "null"
+ Postcode:
+ type:
+ - string
+ - "null"
+ ShowOnRoster:
+ type:
+ - boolean
+ - "null"
+ AddressObject:
+ anyOf:
+ - type: array
+ - type: object
+ properties:
+ Id:
+ type: number
+ City:
+ type: string
+ Notes:
+ type: "null"
+ Phone:
+ type: "null"
+ PoBox:
+ type: "null"
+ Print:
+ type: string
+ Saved:
+ type: "null"
+ State:
+ type: string
+ Format:
+ type: "null"
+ UnitNo:
+ type: "null"
+ Country:
+ type: number
+ Created:
+ type: string
+ Creator:
+ type: number
+ Street1:
+ type: string
+ Street2:
+ type: "null"
+ SuiteNo:
+ type: "null"
+ Modified:
+ type: string
+ Postcode:
+ type: string
+ StreetNo:
+ type: "null"
+ Verified:
+ type: "null"
+ ContactName:
+ type: "null"
+ CompanyAddress:
+ type:
+ - number
+ - "null"
+ RosterSortOrder:
+ type:
+ - number
+ - "null"
+ PayrollExportName:
+ type:
+ - string
+ - "null"
+ OperationalUnitName:
+ type:
+ - string
+ - "null"
+ ParentOperationalUnit:
+ type:
+ - number
+ - "null"
+ additionalProperties: true
diff --git a/airbyte-integrations/connectors/source-deputy/metadata.yaml b/airbyte-integrations/connectors/source-deputy/metadata.yaml
new file mode 100644
index 000000000000..dc7d35e25bff
--- /dev/null
+++ b/airbyte-integrations/connectors/source-deputy/metadata.yaml
@@ -0,0 +1,34 @@
+metadataSpecVersion: "1.0"
+data:
+ allowedHosts:
+ hosts:
+ registryOverrides:
+ oss:
+ enabled: true
+ cloud:
+ enabled: true
+ remoteRegistries:
+ pypi:
+ enabled: false
+ packageName: airbyte-source-deputy
+ connectorBuildOptions:
+ baseImage: docker.io/airbyte/source-declarative-manifest:5.16.0@sha256:6800f806944ee4fccf24ae01f6b8fbefb12d952c3b3da338f51f732b55de51f2
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 0b8bfdb4-ee91-43a8-9f91-536c816724a6
+ dockerImageTag: 0.0.1
+ dockerRepository: airbyte/source-deputy
+ githubIssueLabel: source-deputy
+ icon: icon.svg
+ license: MIT
+ name: Deputy
+ releaseDate: 2024-10-27
+ releaseStage: alpha
+ supportLevel: community
+ documentationUrl: https://docs.airbyte.com/integrations/sources/deputy
+ tags:
+ - language:manifest-only
+ - cdk:low-code
+ ab_internal:
+ ql: 100
+ sl: 100
diff --git a/docs/integrations/sources/deputy.md b/docs/integrations/sources/deputy.md
new file mode 100644
index 000000000000..92a608cbb54a
--- /dev/null
+++ b/docs/integrations/sources/deputy.md
@@ -0,0 +1,41 @@
+# Deputy
+This is the Deputy source that ingests data from the Deputy API.
+
+Deputy is a software that simplifies employee scheduling, timesheets and HR in one place https://www.deputy.com/
+
+In order to use this source you must first create an account on Deputy.
+Once logged in, your Deputy install will have a specific URL in the structure of https://{installname}.{geo}.deputy.com - This is the same URL that will be the base API url .
+
+To obtain your bearer token to use the API, follow the steps shown here https://developer.deputy.com/deputy-docs/docs/the-hello-world-of-deputy
+This will have you create an oauth application and create an access token. Enter the access token in the input field.
+
+You can learn more about the API here https://developer.deputy.com/deputy-docs/reference/getlocations
+
+## Configuration
+
+| Input | Type | Description | Default Value |
+|-------|------|-------------|---------------|
+| `api_key` | `string` | API Key. | |
+| `base_url` | `string` | Base URL. The base url for your deputy account to make API requests | |
+
+## Streams
+| Stream Name | Primary Key | Pagination | Supports Full Sync | Supports Incremental |
+|-------------|-------------|------------|---------------------|----------------------|
+| locations | Id | No pagination | ✅ | ❌ |
+| employees | Id | No pagination | ✅ | ❌ |
+| award_lists | AwardCode | No pagination | ✅ | ❌ |
+| departments | Id | No pagination | ✅ | ❌ |
+| timesheets | Id | No pagination | ✅ | ❌ |
+| tasks | Id | No pagination | ✅ | ❌ |
+| news_feed | Id | No pagination | ✅ | ❌ |
+
+## Changelog
+
+
+ Expand to review
+
+| Version | Date | Pull Request | Subject |
+|------------------|-------------------|--------------|----------------|
+| 0.0.1 | 2024-10-27 | | Initial release by [@aazam-gh](https://github.com/aazam-gh) via Connector Builder |
+
+