affixapi 1.1.66 → 1.1.68

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c208a8a5506ba3c87b090dffae114cb81df8b593e8451a97fae61ab5b2e4678c
4
- data.tar.gz: d60616759249ced6ba3319e192eaf11643c11645b597114973b4ebffb6dec35c
3
+ metadata.gz: 9eb69102c50c8dd7cfbd795031dc966e0757042887496382a2878ec4f099b992
4
+ data.tar.gz: b3b2ebe425321c9e946f7e4c7aaa8344da4e4fc82b152af577a319b23920abf8
5
5
  SHA512:
6
- metadata.gz: fea7a25c1d9429a655c9cd9633aac4c63a7305ce027b957ca4ce90abe638f94e89c30ead15dcb4c20f6eb4f357614daa39de2ad6cd3f8fff7f0ed24cd2f4035b
7
- data.tar.gz: 6014bffb298c7946b96d67adaeef7407ce24194ae1a2ab312db4d4d40377d657b7a564e70fcf30f96308c1063d72159040b1e6397792823b3d126aa3ab547e10
6
+ metadata.gz: 0e4d5bd0c8e3bab53aa9480673f76d1b736e79acf9554949595e7839daece8bc23521ede933e376e297025483ab5ce30a48bad5d12a7c7d1ba317eb9db2a84dc
7
+ data.tar.gz: 0bc433fd9fe8eac1574fa4b8e50ff0ac01fcdc532b87999334ddb3ea21dda025d01d0ca4330505e24d78d612f621d8e0f032cf849dbab44587b88f3f1436daa7
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- affixapi (1.1.66)
4
+ affixapi (1.1.68)
5
5
  typhoeus (~> 1.0, >= 1.0.1)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -358,6 +358,7 @@ Class | Method | HTTP request | Description
358
358
  - [OpenapiClient::PayslipResponseDeductions](docs/PayslipResponseDeductions.md)
359
359
  - [OpenapiClient::PayslipResponseEarnings](docs/PayslipResponseEarnings.md)
360
360
  - [OpenapiClient::PayslipResponseTaxes](docs/PayslipResponseTaxes.md)
361
+ - [OpenapiClient::PolicyTypeResponse](docs/PolicyTypeResponse.md)
361
362
  - [OpenapiClient::ProviderRequest](docs/ProviderRequest.md)
362
363
  - [OpenapiClient::ProviderResponse](docs/ProviderResponse.md)
363
364
  - [OpenapiClient::ScopesRequest](docs/ScopesRequest.md)
@@ -0,0 +1,15 @@
1
+ # OpenapiClient::PolicyTypeResponse
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+
8
+ ## Example
9
+
10
+ ```ruby
11
+ require 'openapi_client'
12
+
13
+ instance = OpenapiClient::PolicyTypeResponse.new()
14
+ ```
15
+
@@ -5,11 +5,13 @@
5
5
  | Name | Type | Description | Notes |
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **employee_id** | **String** | The Affix-assigned id of the individual | |
8
- | **remote_employee_id** | **String** | the remote system-assigned id of the individual | |
8
+ | **employee_remote_id** | **String** | the remote system-assigned id of the individual | |
9
9
  | **balance** | **Float** | | |
10
10
  | **used** | **Float** | | |
11
+ | **policy_id** | **String** | The Affix-assigned id of the policy | |
12
+ | **policy_remote_id** | **String** | The remote system-assigned id of the policy | |
11
13
  | **policy_name** | **String** | The name of the policy, as assigned by the remote system | |
12
- | **policy_type** | **String** | | |
14
+ | **policy_type** | [**PolicyTypeResponse**](PolicyTypeResponse.md) | | |
13
15
  | **remote_created_at** | **Date** | | |
14
16
  | **remote_modified_at** | **Date** | | |
15
17
 
@@ -20,9 +22,11 @@ require 'openapi_client'
20
22
 
21
23
  instance = OpenapiClient::TimeOffBalanceResponse.new(
22
24
  employee_id: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw,
23
- remote_employee_id: 19202938,
25
+ employee_remote_id: 19202938,
24
26
  balance: 24.5,
25
27
  used: 12,
28
+ policy_id: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw,
29
+ policy_remote_id: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw,
26
30
  policy_name: Comp/In Lieu Time,
27
31
  policy_type: null,
28
32
  remote_created_at: Sun Oct 11 00:00:00 UTC 2020,
@@ -7,14 +7,17 @@
7
7
  | **id** | **String** | The Affix-assigned id of the time off entry | |
8
8
  | **remote_id** | **String** | the remote system-assigned id of the time off entry | |
9
9
  | **employee_id** | **String** | the Affix-assigned id of the individual | |
10
- | **remote_employee_id** | **String** | the remote system-assigned id of the individual | |
10
+ | **employee_remote_id** | **String** | the remote system-assigned id of the individual | |
11
11
  | **start_date** | **Date** | | |
12
12
  | **end_date** | **Date** | | |
13
13
  | **amount** | **Float** | | |
14
14
  | **unit** | **String** | | |
15
15
  | **status** | **String** | | |
16
16
  | **employee_note** | **String** | | |
17
- | **request_type** | **String** | | |
17
+ | **policy_id** | **String** | The Affix-assigned id of the policy | |
18
+ | **policy_remote_id** | **String** | The remote system-assigned id of the policy | |
19
+ | **policy_name** | **String** | The name of the policy, as assigned by the remote system | |
20
+ | **policy_type** | [**PolicyTypeResponse**](PolicyTypeResponse.md) | | |
18
21
  | **remote_created_at** | **Date** | | |
19
22
  | **remote_modified_at** | **Date** | | |
20
23
 
@@ -27,14 +30,17 @@ instance = OpenapiClient::TimeOffEntryResponse.new(
27
30
  id: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw,
28
31
  remote_id: 19202938,
29
32
  employee_id: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw,
30
- remote_employee_id: 19202938,
33
+ employee_remote_id: 19202938,
31
34
  start_date: Sun Oct 11 00:00:00 UTC 2020,
32
35
  end_date: Wed Oct 14 00:00:00 UTC 2020,
33
36
  amount: 3,
34
37
  unit: days,
35
38
  status: approved,
36
39
  employee_note: Visiting my family,
37
- request_type: vacation,
40
+ policy_id: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw,
41
+ policy_remote_id: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw,
42
+ policy_name: Comp/In Lieu Time,
43
+ policy_type: null,
38
44
  remote_created_at: Sun Oct 11 00:00:00 UTC 2020,
39
45
  remote_modified_at: Mon Oct 12 00:00:00 UTC 2020
40
46
  )
@@ -7,7 +7,7 @@
7
7
  | **id** | **String** | The Affix-assigned id of the time off entry | |
8
8
  | **remote_id** | **String** | the remote system-assigned id of the time off entry | |
9
9
  | **employee_id** | **String** | the Affix-assigned id of the individual | |
10
- | **remote_employee_id** | **String** | the remote system-assigned id of the individual | |
10
+ | **employee_remote_id** | **String** | the remote system-assigned id of the individual | |
11
11
  | **start_time** | **Time** | | |
12
12
  | **end_time** | **Time** | | |
13
13
  | **hours_worked** | **Float** | | |
@@ -23,7 +23,7 @@ instance = OpenapiClient::TimesheetResponse.new(
23
23
  id: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw,
24
24
  remote_id: 19202938,
25
25
  employee_id: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw,
26
- remote_employee_id: 19202938,
26
+ employee_remote_id: 19202938,
27
27
  start_time: 2020-10-11T08:00Z,
28
28
  end_time: 2020-10-11T17:00Z,
29
29
  hours_worked: 8,
@@ -133,7 +133,7 @@ module OpenapiClient
133
133
  # Check to see if the all the properties in the model are valid
134
134
  # @return true if the model is valid
135
135
  def valid?
136
- country_validator = EnumAttributeValidator.new('String', ["CA", "US", "MX", "AT", "AU", "BE", "CH", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GB", "IE", "IM", "IS", "IT", "LI", "LT", "LU", "LV", "NL", "NO", "PH", "PL", "RO", "SE", "SK", "CN", "HK", "ID", "IN", "JP", "KR", "MO", "MY", "SG", "TW"])
136
+ country_validator = EnumAttributeValidator.new('String', ["BZ", "CA", "CR", "GT", "MX", "PA", "SV", "US", "AR", "BR", "CL", "PE", "AT", "AU", "BE", "CH", "CY", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GB", "GR", "IE", "IM", "IS", "IT", "LI", "LT", "LU", "LV", "NL", "NO", "PH", "PL", "RO", "RU", "SE", "SK", "CN", "HK", "ID", "IL", "IN", "JP", "KR", "MO", "MY", "PH", "PS", "SG", "TH", "TR", "TW", "VN", "ZA", "AU", "NZ"])
137
137
  return false unless country_validator.valid?(@country)
138
138
  true
139
139
  end
@@ -141,7 +141,7 @@ module OpenapiClient
141
141
  # Custom attribute writer method checking allowed values (enum).
142
142
  # @param [Object] country Object to be assigned
143
143
  def country=(country)
144
- validator = EnumAttributeValidator.new('String', ["CA", "US", "MX", "AT", "AU", "BE", "CH", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GB", "IE", "IM", "IS", "IT", "LI", "LT", "LU", "LV", "NL", "NO", "PH", "PL", "RO", "SE", "SK", "CN", "HK", "ID", "IN", "JP", "KR", "MO", "MY", "SG", "TW"])
144
+ validator = EnumAttributeValidator.new('String', ["BZ", "CA", "CR", "GT", "MX", "PA", "SV", "US", "AR", "BR", "CL", "PE", "AT", "AU", "BE", "CH", "CY", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GB", "GR", "IE", "IM", "IS", "IT", "LI", "LT", "LU", "LV", "NL", "NO", "PH", "PL", "RO", "RU", "SE", "SK", "CN", "HK", "ID", "IL", "IN", "JP", "KR", "MO", "MY", "PH", "PS", "SG", "TH", "TR", "TW", "VN", "ZA", "AU", "NZ"])
145
145
  unless validator.valid?(country)
146
146
  fail ArgumentError, "invalid value for \"country\", must be one of #{validator.allowable_values}."
147
147
  end
@@ -133,7 +133,7 @@ module OpenapiClient
133
133
  # Check to see if the all the properties in the model are valid
134
134
  # @return true if the model is valid
135
135
  def valid?
136
- country_validator = EnumAttributeValidator.new('String', ["null", "CA", "US", "MX", "AT", "AU", "BE", "CH", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GB", "IE", "IM", "IS", "IT", "LI", "LT", "LU", "LV", "NL", "NO", "PH", "PL", "RO", "SE", "SK", "CN", "HK", "ID", "IN", "JP", "KR", "MO", "MY", "SG", "TW"])
136
+ country_validator = EnumAttributeValidator.new('String', ["null", "BZ", "CA", "CR", "GT", "MX", "PA", "SV", "US", "AR", "BR", "CL", "PE", "AT", "AU", "BE", "CH", "CY", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GB", "GR", "IE", "IM", "IS", "IT", "LI", "LT", "LU", "LV", "NL", "NO", "PH", "PL", "RO", "RU", "SE", "SK", "CN", "HK", "ID", "IL", "IN", "JP", "KR", "MO", "MY", "PH", "PS", "SG", "TH", "TR", "TW", "VN", "ZA", "AU", "NZ"])
137
137
  return false unless country_validator.valid?(@country)
138
138
  true
139
139
  end
@@ -141,7 +141,7 @@ module OpenapiClient
141
141
  # Custom attribute writer method checking allowed values (enum).
142
142
  # @param [Object] country Object to be assigned
143
143
  def country=(country)
144
- validator = EnumAttributeValidator.new('String', ["null", "CA", "US", "MX", "AT", "AU", "BE", "CH", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GB", "IE", "IM", "IS", "IT", "LI", "LT", "LU", "LV", "NL", "NO", "PH", "PL", "RO", "SE", "SK", "CN", "HK", "ID", "IN", "JP", "KR", "MO", "MY", "SG", "TW"])
144
+ validator = EnumAttributeValidator.new('String', ["null", "BZ", "CA", "CR", "GT", "MX", "PA", "SV", "US", "AR", "BR", "CL", "PE", "AT", "AU", "BE", "CH", "CY", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GB", "GR", "IE", "IM", "IS", "IT", "LI", "LT", "LU", "LV", "NL", "NO", "PH", "PL", "RO", "RU", "SE", "SK", "CN", "HK", "ID", "IL", "IN", "JP", "KR", "MO", "MY", "PH", "PS", "SG", "TH", "TR", "TW", "VN", "ZA", "AU", "NZ"])
145
145
  unless validator.valid?(country)
146
146
  fail ArgumentError, "invalid value for \"country\", must be one of #{validator.allowable_values}."
147
147
  end
@@ -0,0 +1,43 @@
1
+ =begin
2
+ #Affix API
3
+
4
+ #The affixapi.com API documentation. # Introduction Affix API is an OAuth 2.1 application that allows developers to access customer data, without developers needing to manage or maintain integrations; or collect login credentials or API keys from users for these third party systems. # OAuth 2.1 Affix API follows the [OAuth 2.1 spec](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-08). As an OAuth application, Affix API handles not only both the collection of sensitive user credentials or API keys, but also builds and maintains the integrations with the providers, so you don't have to. # How to obtain an access token in order to get started, you must: - register a `client_id` - direct your user to the sign in flow (`https://connect.affixapi.com` [with the appropriate query parameters](https://github.com/affixapi/starter-kit/tree/master/connect)) - capture `authorization_code` we will send to your redirect URI after the sign in flow is complete and exchange that `authorization_code` for a Bearer token # Sandbox keys (xhr mode) ### dev ``` eyJhbGciOiJFUzI1NiIsImtpZCI6Ims5RmxwSFR1YklmZWNsUU5QRVZzeFcxazFZZ0Zfbk1BWllOSGVuOFQxdGciLCJ0eXAiOiJKV1MifQ.eyJwcm92aWRlciI6InNhbmRib3giLCJzY29wZXMiOlsiLzIwMjMtMDMtMDEveGhyL2NvbXBhbnkiLCIvMjAyMy0wMy0wMS94aHIvZW1wbG95ZWUiLCIvMjAyMy0wMy0wMS94aHIvZW1wbG95ZWVzIiwiLzIwMjMtMDMtMDEveGhyL2dyb3VwcyIsIi8yMDIzLTAzLTAxL3hoci9pZGVudGl0eSIsIi8yMDIzLTAzLTAxL3hoci9wYXlydW5zIiwiLzIwMjMtMDMtMDEveGhyL3BheXJ1bnMvOnBheXJ1bl9pZCIsIi8yMDIzLTAzLTAxL3hoci90aW1lLW9mZi1iYWxhbmNlcyIsIi8yMDIzLTAzLTAxL3hoci90aW1lLW9mZi1lbnRyaWVzIiwiLzIwMjMtMDMtMDEveGhyL3RpbWVzaGVldHMiLCIvMjAyMy0wMy0wMS94aHIvd29yay1sb2NhdGlvbnMiXSwidG9rZW4iOiIzODIzNTNlMi05N2ZiLTRmMWEtOTYxYy0zZDI5OTViNzYxMTUiLCJpYXQiOjE3MTE4MTA3MTQsImlzcyI6InB1YmxpY2FwaS1pbnRlcm1lZGlhdGUuZGV2LmVuZ2luZWVyaW5nLmFmZml4YXBpLmNvbSIsInN1YiI6InhociIsImF1ZCI6IjNGREFFREY5LTFEQ0E0RjU0LTg3OTQ5RjZBLTQxMDI3NjQzIn0.zUJPaT6IxcIdr8b9iO6u-Rr5I-ohTHPYTrQGrgOFghbEbovItiwr9Wk479GnJVJc3WR8bxAwUMAE4Ul6Okdk6Q ``` #### `employees` endpoint sample: ``` curl --fail \\ -X GET \\ -H 'Authorization: Bearer eyJhbGciOiJFUzI1NiIsImtpZCI6Ims5RmxwSFR1YklmZWNsUU5QRVZzeFcxazFZZ0Zfbk1BWllOSGVuOFQxdGciLCJ0eXAiOiJKV1MifQ.eyJwcm92aWRlciI6InNhbmRib3giLCJzY29wZXMiOlsiLzIwMjMtMDMtMDEveGhyL2NvbXBhbnkiLCIvMjAyMy0wMy0wMS94aHIvZW1wbG95ZWUiLCIvMjAyMy0wMy0wMS94aHIvZW1wbG95ZWVzIiwiLzIwMjMtMDMtMDEveGhyL2dyb3VwcyIsIi8yMDIzLTAzLTAxL3hoci9pZGVudGl0eSIsIi8yMDIzLTAzLTAxL3hoci9wYXlydW5zIiwiLzIwMjMtMDMtMDEveGhyL3BheXJ1bnMvOnBheXJ1bl9pZCIsIi8yMDIzLTAzLTAxL3hoci90aW1lLW9mZi1iYWxhbmNlcyIsIi8yMDIzLTAzLTAxL3hoci90aW1lLW9mZi1lbnRyaWVzIiwiLzIwMjMtMDMtMDEveGhyL3RpbWVzaGVldHMiLCIvMjAyMy0wMy0wMS94aHIvd29yay1sb2NhdGlvbnMiXSwidG9rZW4iOiIzODIzNTNlMi05N2ZiLTRmMWEtOTYxYy0zZDI5OTViNzYxMTUiLCJpYXQiOjE3MTE4MTA3MTQsImlzcyI6InB1YmxpY2FwaS1pbnRlcm1lZGlhdGUuZGV2LmVuZ2luZWVyaW5nLmFmZml4YXBpLmNvbSIsInN1YiI6InhociIsImF1ZCI6IjNGREFFREY5LTFEQ0E0RjU0LTg3OTQ5RjZBLTQxMDI3NjQzIn0.zUJPaT6IxcIdr8b9iO6u-Rr5I-ohTHPYTrQGrgOFghbEbovItiwr9Wk479GnJVJc3WR8bxAwUMAE4Ul6Okdk6Q' \\ 'https://dev.api.affixapi.com/2023-03-01/xhr/employees' ``` ### prod ``` eyJhbGciOiJFUzI1NiIsImtpZCI6Ims5RmxwSFR1YklmZWNsUU5QRVZzeFcxazFZZ0Zfbk1BWllOSGVuOFQxdGciLCJ0eXAiOiJKV1MifQ.eyJwcm92aWRlciI6InNhbmRib3giLCJzY29wZXMiOlsiLzIwMjMtMDMtMDEveGhyL2NvbXBhbnkiLCIvMjAyMy0wMy0wMS94aHIvZW1wbG95ZWUiLCIvMjAyMy0wMy0wMS94aHIvZW1wbG95ZWVzIiwiLzIwMjMtMDMtMDEveGhyL2dyb3VwcyIsIi8yMDIzLTAzLTAxL3hoci9pZGVudGl0eSIsIi8yMDIzLTAzLTAxL3hoci9wYXlydW5zIiwiLzIwMjMtMDMtMDEveGhyL3BheXJ1bnMvOnBheXJ1bl9pZCIsIi8yMDIzLTAzLTAxL3hoci90aW1lLW9mZi1iYWxhbmNlcyIsIi8yMDIzLTAzLTAxL3hoci90aW1lLW9mZi1lbnRyaWVzIiwiLzIwMjMtMDMtMDEveGhyL3RpbWVzaGVldHMiLCIvMjAyMy0wMy0wMS94aHIvd29yay1sb2NhdGlvbnMiXSwidG9rZW4iOiIzYjg4MDc2NC1kMGFmLTQ5ZDAtOGM5OS00YzIwYjE2MTJjOTMiLCJpYXQiOjE3MTE4MTA4NTgsImlzcyI6InB1YmxpY2FwaS1pbnRlcm1lZGlhdGUucHJvZC5lbmdpbmVlcmluZy5hZmZpeGFwaS5jb20iLCJzdWIiOiJ4aHIiLCJhdWQiOiIwOEJCMDgxRS1EOUFCNEQxNC04REY5OTIzMy02NjYxNUNFOSJ9.n3pJmmfegU21Tko_TyUyCHi4ITvfd75T8NFFTHmf1r8AI8yCUYTWdfNjyZZWcZD6z50I3Wsk2rAd8GDWXn4vlg ``` #### `employees` endpoint sample: ``` curl --fail \\ -X GET \\ -H 'Authorization: Bearer eyJhbGciOiJFUzI1NiIsImtpZCI6Ims5RmxwSFR1YklmZWNsUU5QRVZzeFcxazFZZ0Zfbk1BWllOSGVuOFQxdGciLCJ0eXAiOiJKV1MifQ.eyJwcm92aWRlciI6InNhbmRib3giLCJzY29wZXMiOlsiLzIwMjMtMDMtMDEveGhyL2NvbXBhbnkiLCIvMjAyMy0wMy0wMS94aHIvZW1wbG95ZWUiLCIvMjAyMy0wMy0wMS94aHIvZW1wbG95ZWVzIiwiLzIwMjMtMDMtMDEveGhyL2dyb3VwcyIsIi8yMDIzLTAzLTAxL3hoci9pZGVudGl0eSIsIi8yMDIzLTAzLTAxL3hoci9wYXlydW5zIiwiLzIwMjMtMDMtMDEveGhyL3BheXJ1bnMvOnBheXJ1bl9pZCIsIi8yMDIzLTAzLTAxL3hoci90aW1lLW9mZi1iYWxhbmNlcyIsIi8yMDIzLTAzLTAxL3hoci90aW1lLW9mZi1lbnRyaWVzIiwiLzIwMjMtMDMtMDEveGhyL3RpbWVzaGVldHMiLCIvMjAyMy0wMy0wMS94aHIvd29yay1sb2NhdGlvbnMiXSwidG9rZW4iOiIzYjg4MDc2NC1kMGFmLTQ5ZDAtOGM5OS00YzIwYjE2MTJjOTMiLCJpYXQiOjE3MTE4MTA4NTgsImlzcyI6InB1YmxpY2FwaS1pbnRlcm1lZGlhdGUucHJvZC5lbmdpbmVlcmluZy5hZmZpeGFwaS5jb20iLCJzdWIiOiJ4aHIiLCJhdWQiOiIwOEJCMDgxRS1EOUFCNEQxNC04REY5OTIzMy02NjYxNUNFOSJ9.n3pJmmfegU21Tko_TyUyCHi4ITvfd75T8NFFTHmf1r8AI8yCUYTWdfNjyZZWcZD6z50I3Wsk2rAd8GDWXn4vlg' \\ 'https://api.affixapi.com/2023-03-01/xhr/employees' ``` # Compression We support `brotli`, `gzip`, and `deflate` compression algorithms. To enable, pass the `Accept-Encoding` header with one or all of the values: `br`, `gzip`, `deflate`, or `identity` (no compression) In the response, you will receive the `Content-Encoding` response header indicating the compression algorithm used in the data payload to enable you to decompress the result. If the `Accept-Encoding: identity` header was passed, no `Content-Encoding` response header is sent back, as no compression algorithm was used. # Webhooks An exciting feature for HR/Payroll modes are webhooks. If enabled, your `webhook_uri` is set on your `client_id` for the respective environment: `dev | prod` Webhooks are configured to make live requests to the underlying integration 1x/hr, and if a difference is detected since the last request, we will send a request to your `webhook_uri` with this shape: ``` { added: <api.v20230301.Employees>[ <api.v20230301.Employee>{ ..., date_of_birth: '2010-08-06', display_full_name: 'Daija Rogahn', employee_number: '57993', employment_status: 'pending', employment_type: 'other', employments: [ { currency: 'eur', effective_date: '2022-02-25', employment_type: 'other', job_title: 'Dynamic Implementation Manager', pay_frequency: 'semimonthly', pay_period: 'YEAR', pay_rate: 96000, }, ], first_name: 'Daija', ... } ], removed: [], updated: [ <api.v20230301.Employee>{ ..., date_of_birth: '2009-11-09', display_full_name: 'Lourdes Stiedemann', employee_number: '63189', employment_status: 'leave', employment_type: 'full_time', employments: [ { currency: 'gbp', effective_date: '2023-01-16', employment_type: 'full_time', job_title: 'Forward Brand Planner', pay_frequency: 'semimonthly', pay_period: 'YEAR', pay_rate: 86000, }, ], first_name: 'Lourdes', } ] } ``` the following headers will be sent with webhook requests: ``` x-affix-api-signature: ab8474e609db95d5df3adc39ea3add7a7544bd215c5c520a30a650ae93a2fba7 x-affix-api-origin: webhooks-employees-webhook user-agent: affixapi.com ``` Before trusting the payload, you should sign the payload and verify the signature matches the signature sent by the `affixapi.com` service. This secures that the data sent to your `webhook_uri` is from the `affixapi.com` server. The signature is created by combining the signing secret (your `client_secret`) with the body of the request sent using a standard HMAC-SHA256 keyed hash. The signature can be created via: - create an `HMAC` with your `client_secret` - update the `HMAC` with the payload - get the hex digest -> this is the signature Sample `typescript` code that follows this recipe: ``` import { createHmac } from 'crypto'; export const computeSignature = ({ str, signingSecret, }: { signingSecret: string; str: string; }): string => { const hmac = createHmac('sha256', signingSecret); hmac.update(str); const signature = hmac.digest('hex'); return signature; }; ``` While verifying the Affix API signature header should be your primary method of confirming validity, you can also whitelist our outbound webhook static IP addresses. ``` dev: - 52.210.169.82 - 52.210.38.77 - 3.248.135.204 prod: - 52.51.160.102 - 54.220.83.244 - 3.254.213.171 ``` ## Rate limits Open endpoints (not gated by an API key) (applied at endpoint level): - 15 requests every 1 minute (by IP address) - 25 requests every 5 minutes (by IP address) Gated endpoints (require an API key) (applied at endpoint level): - 40 requests every 1 minute (by IP address) - 40 requests every 5 minutes (by `client_id`) Things to keep in mind: - Open endpoints (not gated by an API key) will likely be called by your users, not you, so rate limits generally would not apply to you. - As a developer, rate limits are applied at the endpoint granularity. - For example, say the rate limits below are 10 requests per minute by ip. from that same ip, within 1 minute, you get: - 10 requests per minute on `/orders`, - another 10 requests per minute on `/items`, - and another 10 requests per minute on `/identity`, - for a total of 30 requests per minute.
5
+
6
+ The version of the OpenAPI document: 2023-03-01
7
+ Contact: developers@affixapi.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.1.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module OpenapiClient
17
+ class PolicyTypeResponse
18
+ NULL = "null".freeze
19
+ VACATION = "vacation".freeze
20
+ HOLIDAY = "holiday".freeze
21
+ SICK = "sick".freeze
22
+ PERSONAL = "personal".freeze
23
+ JURY_DUTY = "jury_duty".freeze
24
+ VOLUNTEER = "volunteer".freeze
25
+ BEREAVEMENT = "bereavement".freeze
26
+
27
+ # Builds the enum from string
28
+ # @param [String] The enum value in the form of the string
29
+ # @return [String] The enum value
30
+ def self.build_from_hash(value)
31
+ new.build_from_hash(value)
32
+ end
33
+
34
+ # Builds the enum from string
35
+ # @param [String] The enum value in the form of the string
36
+ # @return [String] The enum value
37
+ def build_from_hash(value)
38
+ constantValues = PolicyTypeResponse.constants.select { |c| PolicyTypeResponse::const_get(c) == value }
39
+ raise "Invalid ENUM value #{value} for class #PolicyTypeResponse" if constantValues.empty?
40
+ value
41
+ end
42
+ end
43
+ end
@@ -19,12 +19,18 @@ module OpenapiClient
19
19
  attr_accessor :employee_id
20
20
 
21
21
  # the remote system-assigned id of the individual
22
- attr_accessor :remote_employee_id
22
+ attr_accessor :employee_remote_id
23
23
 
24
24
  attr_accessor :balance
25
25
 
26
26
  attr_accessor :used
27
27
 
28
+ # The Affix-assigned id of the policy
29
+ attr_accessor :policy_id
30
+
31
+ # The remote system-assigned id of the policy
32
+ attr_accessor :policy_remote_id
33
+
28
34
  # The name of the policy, as assigned by the remote system
29
35
  attr_accessor :policy_name
30
36
 
@@ -34,35 +40,15 @@ module OpenapiClient
34
40
 
35
41
  attr_accessor :remote_modified_at
36
42
 
37
- class EnumAttributeValidator
38
- attr_reader :datatype
39
- attr_reader :allowable_values
40
-
41
- def initialize(datatype, allowable_values)
42
- @allowable_values = allowable_values.map do |value|
43
- case datatype.to_s
44
- when /Integer/i
45
- value.to_i
46
- when /Float/i
47
- value.to_f
48
- else
49
- value
50
- end
51
- end
52
- end
53
-
54
- def valid?(value)
55
- !value || allowable_values.include?(value)
56
- end
57
- end
58
-
59
43
  # Attribute mapping from ruby-style variable name to JSON key.
60
44
  def self.attribute_map
61
45
  {
62
46
  :'employee_id' => :'employee_id',
63
- :'remote_employee_id' => :'remote_employee_id',
47
+ :'employee_remote_id' => :'employee_remote_id',
64
48
  :'balance' => :'balance',
65
49
  :'used' => :'used',
50
+ :'policy_id' => :'policy_id',
51
+ :'policy_remote_id' => :'policy_remote_id',
66
52
  :'policy_name' => :'policy_name',
67
53
  :'policy_type' => :'policy_type',
68
54
  :'remote_created_at' => :'remote_created_at',
@@ -79,11 +65,13 @@ module OpenapiClient
79
65
  def self.openapi_types
80
66
  {
81
67
  :'employee_id' => :'String',
82
- :'remote_employee_id' => :'String',
68
+ :'employee_remote_id' => :'String',
83
69
  :'balance' => :'Float',
84
70
  :'used' => :'Float',
71
+ :'policy_id' => :'String',
72
+ :'policy_remote_id' => :'String',
85
73
  :'policy_name' => :'String',
86
- :'policy_type' => :'String',
74
+ :'policy_type' => :'PolicyTypeResponse',
87
75
  :'remote_created_at' => :'Date',
88
76
  :'remote_modified_at' => :'Date'
89
77
  }
@@ -94,6 +82,8 @@ module OpenapiClient
94
82
  Set.new([
95
83
  :'balance',
96
84
  :'used',
85
+ :'policy_id',
86
+ :'policy_remote_id',
97
87
  :'policy_name',
98
88
  :'policy_type',
99
89
  :'remote_created_at',
@@ -120,8 +110,8 @@ module OpenapiClient
120
110
  self.employee_id = attributes[:'employee_id']
121
111
  end
122
112
 
123
- if attributes.key?(:'remote_employee_id')
124
- self.remote_employee_id = attributes[:'remote_employee_id']
113
+ if attributes.key?(:'employee_remote_id')
114
+ self.employee_remote_id = attributes[:'employee_remote_id']
125
115
  end
126
116
 
127
117
  if attributes.key?(:'balance')
@@ -132,6 +122,14 @@ module OpenapiClient
132
122
  self.used = attributes[:'used']
133
123
  end
134
124
 
125
+ if attributes.key?(:'policy_id')
126
+ self.policy_id = attributes[:'policy_id']
127
+ end
128
+
129
+ if attributes.key?(:'policy_remote_id')
130
+ self.policy_remote_id = attributes[:'policy_remote_id']
131
+ end
132
+
135
133
  if attributes.key?(:'policy_name')
136
134
  self.policy_name = attributes[:'policy_name']
137
135
  end
@@ -157,8 +155,8 @@ module OpenapiClient
157
155
  invalid_properties.push('invalid value for "employee_id", employee_id cannot be nil.')
158
156
  end
159
157
 
160
- if @remote_employee_id.nil?
161
- invalid_properties.push('invalid value for "remote_employee_id", remote_employee_id cannot be nil.')
158
+ if @employee_remote_id.nil?
159
+ invalid_properties.push('invalid value for "employee_remote_id", employee_remote_id cannot be nil.')
162
160
  end
163
161
 
164
162
  invalid_properties
@@ -168,31 +166,21 @@ module OpenapiClient
168
166
  # @return true if the model is valid
169
167
  def valid?
170
168
  return false if @employee_id.nil?
171
- return false if @remote_employee_id.nil?
172
- policy_type_validator = EnumAttributeValidator.new('String', ["null", "vacation", "sick", "personal", "jury_duty", "volunteer", "bereavement"])
173
- return false unless policy_type_validator.valid?(@policy_type)
169
+ return false if @employee_remote_id.nil?
174
170
  true
175
171
  end
176
172
 
177
- # Custom attribute writer method checking allowed values (enum).
178
- # @param [Object] policy_type Object to be assigned
179
- def policy_type=(policy_type)
180
- validator = EnumAttributeValidator.new('String', ["null", "vacation", "sick", "personal", "jury_duty", "volunteer", "bereavement"])
181
- unless validator.valid?(policy_type)
182
- fail ArgumentError, "invalid value for \"policy_type\", must be one of #{validator.allowable_values}."
183
- end
184
- @policy_type = policy_type
185
- end
186
-
187
173
  # Checks equality by comparing each attribute.
188
174
  # @param [Object] Object to be compared
189
175
  def ==(o)
190
176
  return true if self.equal?(o)
191
177
  self.class == o.class &&
192
178
  employee_id == o.employee_id &&
193
- remote_employee_id == o.remote_employee_id &&
179
+ employee_remote_id == o.employee_remote_id &&
194
180
  balance == o.balance &&
195
181
  used == o.used &&
182
+ policy_id == o.policy_id &&
183
+ policy_remote_id == o.policy_remote_id &&
196
184
  policy_name == o.policy_name &&
197
185
  policy_type == o.policy_type &&
198
186
  remote_created_at == o.remote_created_at &&
@@ -208,7 +196,7 @@ module OpenapiClient
208
196
  # Calculates hash code according to all attributes.
209
197
  # @return [Integer] Hash code
210
198
  def hash
211
- [employee_id, remote_employee_id, balance, used, policy_name, policy_type, remote_created_at, remote_modified_at].hash
199
+ [employee_id, employee_remote_id, balance, used, policy_id, policy_remote_id, policy_name, policy_type, remote_created_at, remote_modified_at].hash
212
200
  end
213
201
 
214
202
  # Builds the object from hash
@@ -25,7 +25,7 @@ module OpenapiClient
25
25
  attr_accessor :employee_id
26
26
 
27
27
  # the remote system-assigned id of the individual
28
- attr_accessor :remote_employee_id
28
+ attr_accessor :employee_remote_id
29
29
 
30
30
  attr_accessor :start_date
31
31
 
@@ -39,7 +39,16 @@ module OpenapiClient
39
39
 
40
40
  attr_accessor :employee_note
41
41
 
42
- attr_accessor :request_type
42
+ # The Affix-assigned id of the policy
43
+ attr_accessor :policy_id
44
+
45
+ # The remote system-assigned id of the policy
46
+ attr_accessor :policy_remote_id
47
+
48
+ # The name of the policy, as assigned by the remote system
49
+ attr_accessor :policy_name
50
+
51
+ attr_accessor :policy_type
43
52
 
44
53
  attr_accessor :remote_created_at
45
54
 
@@ -73,14 +82,17 @@ module OpenapiClient
73
82
  :'id' => :'id',
74
83
  :'remote_id' => :'remote_id',
75
84
  :'employee_id' => :'employee_id',
76
- :'remote_employee_id' => :'remote_employee_id',
85
+ :'employee_remote_id' => :'employee_remote_id',
77
86
  :'start_date' => :'start_date',
78
87
  :'end_date' => :'end_date',
79
88
  :'amount' => :'amount',
80
89
  :'unit' => :'unit',
81
90
  :'status' => :'status',
82
91
  :'employee_note' => :'employee_note',
83
- :'request_type' => :'request_type',
92
+ :'policy_id' => :'policy_id',
93
+ :'policy_remote_id' => :'policy_remote_id',
94
+ :'policy_name' => :'policy_name',
95
+ :'policy_type' => :'policy_type',
84
96
  :'remote_created_at' => :'remote_created_at',
85
97
  :'remote_modified_at' => :'remote_modified_at'
86
98
  }
@@ -97,14 +109,17 @@ module OpenapiClient
97
109
  :'id' => :'String',
98
110
  :'remote_id' => :'String',
99
111
  :'employee_id' => :'String',
100
- :'remote_employee_id' => :'String',
112
+ :'employee_remote_id' => :'String',
101
113
  :'start_date' => :'Date',
102
114
  :'end_date' => :'Date',
103
115
  :'amount' => :'Float',
104
116
  :'unit' => :'String',
105
117
  :'status' => :'String',
106
118
  :'employee_note' => :'String',
107
- :'request_type' => :'String',
119
+ :'policy_id' => :'String',
120
+ :'policy_remote_id' => :'String',
121
+ :'policy_name' => :'String',
122
+ :'policy_type' => :'PolicyTypeResponse',
108
123
  :'remote_created_at' => :'Date',
109
124
  :'remote_modified_at' => :'Date'
110
125
  }
@@ -117,7 +132,10 @@ module OpenapiClient
117
132
  :'end_date',
118
133
  :'status',
119
134
  :'employee_note',
120
- :'request_type',
135
+ :'policy_id',
136
+ :'policy_remote_id',
137
+ :'policy_name',
138
+ :'policy_type',
121
139
  :'remote_created_at',
122
140
  :'remote_modified_at'
123
141
  ])
@@ -150,8 +168,8 @@ module OpenapiClient
150
168
  self.employee_id = attributes[:'employee_id']
151
169
  end
152
170
 
153
- if attributes.key?(:'remote_employee_id')
154
- self.remote_employee_id = attributes[:'remote_employee_id']
171
+ if attributes.key?(:'employee_remote_id')
172
+ self.employee_remote_id = attributes[:'employee_remote_id']
155
173
  end
156
174
 
157
175
  if attributes.key?(:'start_date')
@@ -178,8 +196,20 @@ module OpenapiClient
178
196
  self.employee_note = attributes[:'employee_note']
179
197
  end
180
198
 
181
- if attributes.key?(:'request_type')
182
- self.request_type = attributes[:'request_type']
199
+ if attributes.key?(:'policy_id')
200
+ self.policy_id = attributes[:'policy_id']
201
+ end
202
+
203
+ if attributes.key?(:'policy_remote_id')
204
+ self.policy_remote_id = attributes[:'policy_remote_id']
205
+ end
206
+
207
+ if attributes.key?(:'policy_name')
208
+ self.policy_name = attributes[:'policy_name']
209
+ end
210
+
211
+ if attributes.key?(:'policy_type')
212
+ self.policy_type = attributes[:'policy_type']
183
213
  end
184
214
 
185
215
  if attributes.key?(:'remote_created_at')
@@ -207,8 +237,8 @@ module OpenapiClient
207
237
  invalid_properties.push('invalid value for "employee_id", employee_id cannot be nil.')
208
238
  end
209
239
 
210
- if @remote_employee_id.nil?
211
- invalid_properties.push('invalid value for "remote_employee_id", remote_employee_id cannot be nil.')
240
+ if @employee_remote_id.nil?
241
+ invalid_properties.push('invalid value for "employee_remote_id", employee_remote_id cannot be nil.')
212
242
  end
213
243
 
214
244
  if @amount.nil?
@@ -228,7 +258,7 @@ module OpenapiClient
228
258
  return false if @id.nil?
229
259
  return false if @remote_id.nil?
230
260
  return false if @employee_id.nil?
231
- return false if @remote_employee_id.nil?
261
+ return false if @employee_remote_id.nil?
232
262
  return false if @amount.nil?
233
263
  return false if @unit.nil?
234
264
  unit_validator = EnumAttributeValidator.new('String', ["null", "hours", "days", "months"])
@@ -276,14 +306,17 @@ module OpenapiClient
276
306
  id == o.id &&
277
307
  remote_id == o.remote_id &&
278
308
  employee_id == o.employee_id &&
279
- remote_employee_id == o.remote_employee_id &&
309
+ employee_remote_id == o.employee_remote_id &&
280
310
  start_date == o.start_date &&
281
311
  end_date == o.end_date &&
282
312
  amount == o.amount &&
283
313
  unit == o.unit &&
284
314
  status == o.status &&
285
315
  employee_note == o.employee_note &&
286
- request_type == o.request_type &&
316
+ policy_id == o.policy_id &&
317
+ policy_remote_id == o.policy_remote_id &&
318
+ policy_name == o.policy_name &&
319
+ policy_type == o.policy_type &&
287
320
  remote_created_at == o.remote_created_at &&
288
321
  remote_modified_at == o.remote_modified_at
289
322
  end
@@ -297,7 +330,7 @@ module OpenapiClient
297
330
  # Calculates hash code according to all attributes.
298
331
  # @return [Integer] Hash code
299
332
  def hash
300
- [id, remote_id, employee_id, remote_employee_id, start_date, end_date, amount, unit, status, employee_note, request_type, remote_created_at, remote_modified_at].hash
333
+ [id, remote_id, employee_id, employee_remote_id, start_date, end_date, amount, unit, status, employee_note, policy_id, policy_remote_id, policy_name, policy_type, remote_created_at, remote_modified_at].hash
301
334
  end
302
335
 
303
336
  # Builds the object from hash
@@ -25,7 +25,7 @@ module OpenapiClient
25
25
  attr_accessor :employee_id
26
26
 
27
27
  # the remote system-assigned id of the individual
28
- attr_accessor :remote_employee_id
28
+ attr_accessor :employee_remote_id
29
29
 
30
30
  attr_accessor :start_time
31
31
 
@@ -43,7 +43,7 @@ module OpenapiClient
43
43
  :'id' => :'id',
44
44
  :'remote_id' => :'remote_id',
45
45
  :'employee_id' => :'employee_id',
46
- :'remote_employee_id' => :'remote_employee_id',
46
+ :'employee_remote_id' => :'employee_remote_id',
47
47
  :'start_time' => :'start_time',
48
48
  :'end_time' => :'end_time',
49
49
  :'hours_worked' => :'hours_worked',
@@ -63,7 +63,7 @@ module OpenapiClient
63
63
  :'id' => :'String',
64
64
  :'remote_id' => :'String',
65
65
  :'employee_id' => :'String',
66
- :'remote_employee_id' => :'String',
66
+ :'employee_remote_id' => :'String',
67
67
  :'start_time' => :'Time',
68
68
  :'end_time' => :'Time',
69
69
  :'hours_worked' => :'Float',
@@ -109,8 +109,8 @@ module OpenapiClient
109
109
  self.employee_id = attributes[:'employee_id']
110
110
  end
111
111
 
112
- if attributes.key?(:'remote_employee_id')
113
- self.remote_employee_id = attributes[:'remote_employee_id']
112
+ if attributes.key?(:'employee_remote_id')
113
+ self.employee_remote_id = attributes[:'employee_remote_id']
114
114
  end
115
115
 
116
116
  if attributes.key?(:'start_time')
@@ -150,8 +150,8 @@ module OpenapiClient
150
150
  invalid_properties.push('invalid value for "employee_id", employee_id cannot be nil.')
151
151
  end
152
152
 
153
- if @remote_employee_id.nil?
154
- invalid_properties.push('invalid value for "remote_employee_id", remote_employee_id cannot be nil.')
153
+ if @employee_remote_id.nil?
154
+ invalid_properties.push('invalid value for "employee_remote_id", employee_remote_id cannot be nil.')
155
155
  end
156
156
 
157
157
  if @hours_worked.nil?
@@ -167,7 +167,7 @@ module OpenapiClient
167
167
  return false if @id.nil?
168
168
  return false if @remote_id.nil?
169
169
  return false if @employee_id.nil?
170
- return false if @remote_employee_id.nil?
170
+ return false if @employee_remote_id.nil?
171
171
  return false if @hours_worked.nil?
172
172
  true
173
173
  end
@@ -190,7 +190,7 @@ module OpenapiClient
190
190
  id == o.id &&
191
191
  remote_id == o.remote_id &&
192
192
  employee_id == o.employee_id &&
193
- remote_employee_id == o.remote_employee_id &&
193
+ employee_remote_id == o.employee_remote_id &&
194
194
  start_time == o.start_time &&
195
195
  end_time == o.end_time &&
196
196
  hours_worked == o.hours_worked &&
@@ -207,7 +207,7 @@ module OpenapiClient
207
207
  # Calculates hash code according to all attributes.
208
208
  # @return [Integer] Hash code
209
209
  def hash
210
- [id, remote_id, employee_id, remote_employee_id, start_time, end_time, hours_worked, remote_created_at, remote_modified_at].hash
210
+ [id, remote_id, employee_id, employee_remote_id, start_time, end_time, hours_worked, remote_created_at, remote_modified_at].hash
211
211
  end
212
212
 
213
213
  # Builds the object from hash
@@ -11,5 +11,5 @@ OpenAPI Generator version: 5.1.1
11
11
  =end
12
12
 
13
13
  module OpenapiClient
14
- VERSION = '1.1.66'
14
+ VERSION = '1.1.68'
15
15
  end
@@ -56,6 +56,7 @@ require 'openapi_client/models/payslip_response_contributions'
56
56
  require 'openapi_client/models/payslip_response_deductions'
57
57
  require 'openapi_client/models/payslip_response_earnings'
58
58
  require 'openapi_client/models/payslip_response_taxes'
59
+ require 'openapi_client/models/policy_type_response'
59
60
  require 'openapi_client/models/provider_request'
60
61
  require 'openapi_client/models/provider_response'
61
62
  require 'openapi_client/models/scopes_request'
@@ -46,7 +46,7 @@ describe OpenapiClient::AddressNoNonNullRequest do
46
46
  describe 'test attribute "country"' do
47
47
  it 'should work' do
48
48
  # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
49
- # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["CA", "US", "MX", "AT", "AU", "BE", "CH", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GB", "IE", "IM", "IS", "IT", "LI", "LT", "LU", "LV", "NL", "NO", "PH", "PL", "RO", "SE", "SK", "CN", "HK", "ID", "IN", "JP", "KR", "MO", "MY", "SG", "TW"])
49
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["BZ", "CA", "CR", "GT", "MX", "PA", "SV", "US", "AR", "BR", "CL", "PE", "AT", "AU", "BE", "CH", "CY", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GB", "GR", "IE", "IM", "IS", "IT", "LI", "LT", "LU", "LV", "NL", "NO", "PH", "PL", "RO", "RU", "SE", "SK", "CN", "HK", "ID", "IL", "IN", "JP", "KR", "MO", "MY", "PH", "PS", "SG", "TH", "TR", "TW", "VN", "ZA", "AU", "NZ"])
50
50
  # validator.allowable_values.each do |value|
51
51
  # expect { instance.country = value }.not_to raise_error
52
52
  # end
@@ -46,7 +46,7 @@ describe OpenapiClient::AddressResponse do
46
46
  describe 'test attribute "country"' do
47
47
  it 'should work' do
48
48
  # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
49
- # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["null", "CA", "US", "MX", "AT", "AU", "BE", "CH", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GB", "IE", "IM", "IS", "IT", "LI", "LT", "LU", "LV", "NL", "NO", "PH", "PL", "RO", "SE", "SK", "CN", "HK", "ID", "IN", "JP", "KR", "MO", "MY", "SG", "TW"])
49
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["null", "BZ", "CA", "CR", "GT", "MX", "PA", "SV", "US", "AR", "BR", "CL", "PE", "AT", "AU", "BE", "CH", "CY", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GB", "GR", "IE", "IM", "IS", "IT", "LI", "LT", "LU", "LV", "NL", "NO", "PH", "PL", "RO", "RU", "SE", "SK", "CN", "HK", "ID", "IL", "IN", "JP", "KR", "MO", "MY", "PH", "PS", "SG", "TH", "TR", "TW", "VN", "ZA", "AU", "NZ"])
50
50
  # validator.allowable_values.each do |value|
51
51
  # expect { instance.country = value }.not_to raise_error
52
52
  # end
@@ -0,0 +1,28 @@
1
+ =begin
2
+ #Affix API
3
+
4
+ #The affixapi.com API documentation. # Introduction Affix API is an OAuth 2.1 application that allows developers to access customer data, without developers needing to manage or maintain integrations; or collect login credentials or API keys from users for these third party systems. # OAuth 2.1 Affix API follows the [OAuth 2.1 spec](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-08). As an OAuth application, Affix API handles not only both the collection of sensitive user credentials or API keys, but also builds and maintains the integrations with the providers, so you don't have to. # How to obtain an access token in order to get started, you must: - register a `client_id` - direct your user to the sign in flow (`https://connect.affixapi.com` [with the appropriate query parameters](https://github.com/affixapi/starter-kit/tree/master/connect)) - capture `authorization_code` we will send to your redirect URI after the sign in flow is complete and exchange that `authorization_code` for a Bearer token # Sandbox keys (xhr mode) ### dev ``` eyJhbGciOiJFUzI1NiIsImtpZCI6Ims5RmxwSFR1YklmZWNsUU5QRVZzeFcxazFZZ0Zfbk1BWllOSGVuOFQxdGciLCJ0eXAiOiJKV1MifQ.eyJwcm92aWRlciI6InNhbmRib3giLCJzY29wZXMiOlsiLzIwMjMtMDMtMDEveGhyL2NvbXBhbnkiLCIvMjAyMy0wMy0wMS94aHIvZW1wbG95ZWUiLCIvMjAyMy0wMy0wMS94aHIvZW1wbG95ZWVzIiwiLzIwMjMtMDMtMDEveGhyL2dyb3VwcyIsIi8yMDIzLTAzLTAxL3hoci9pZGVudGl0eSIsIi8yMDIzLTAzLTAxL3hoci9wYXlydW5zIiwiLzIwMjMtMDMtMDEveGhyL3BheXJ1bnMvOnBheXJ1bl9pZCIsIi8yMDIzLTAzLTAxL3hoci90aW1lLW9mZi1iYWxhbmNlcyIsIi8yMDIzLTAzLTAxL3hoci90aW1lLW9mZi1lbnRyaWVzIiwiLzIwMjMtMDMtMDEveGhyL3RpbWVzaGVldHMiLCIvMjAyMy0wMy0wMS94aHIvd29yay1sb2NhdGlvbnMiXSwidG9rZW4iOiIzODIzNTNlMi05N2ZiLTRmMWEtOTYxYy0zZDI5OTViNzYxMTUiLCJpYXQiOjE3MTE4MTA3MTQsImlzcyI6InB1YmxpY2FwaS1pbnRlcm1lZGlhdGUuZGV2LmVuZ2luZWVyaW5nLmFmZml4YXBpLmNvbSIsInN1YiI6InhociIsImF1ZCI6IjNGREFFREY5LTFEQ0E0RjU0LTg3OTQ5RjZBLTQxMDI3NjQzIn0.zUJPaT6IxcIdr8b9iO6u-Rr5I-ohTHPYTrQGrgOFghbEbovItiwr9Wk479GnJVJc3WR8bxAwUMAE4Ul6Okdk6Q ``` #### `employees` endpoint sample: ``` curl --fail \\ -X GET \\ -H 'Authorization: Bearer eyJhbGciOiJFUzI1NiIsImtpZCI6Ims5RmxwSFR1YklmZWNsUU5QRVZzeFcxazFZZ0Zfbk1BWllOSGVuOFQxdGciLCJ0eXAiOiJKV1MifQ.eyJwcm92aWRlciI6InNhbmRib3giLCJzY29wZXMiOlsiLzIwMjMtMDMtMDEveGhyL2NvbXBhbnkiLCIvMjAyMy0wMy0wMS94aHIvZW1wbG95ZWUiLCIvMjAyMy0wMy0wMS94aHIvZW1wbG95ZWVzIiwiLzIwMjMtMDMtMDEveGhyL2dyb3VwcyIsIi8yMDIzLTAzLTAxL3hoci9pZGVudGl0eSIsIi8yMDIzLTAzLTAxL3hoci9wYXlydW5zIiwiLzIwMjMtMDMtMDEveGhyL3BheXJ1bnMvOnBheXJ1bl9pZCIsIi8yMDIzLTAzLTAxL3hoci90aW1lLW9mZi1iYWxhbmNlcyIsIi8yMDIzLTAzLTAxL3hoci90aW1lLW9mZi1lbnRyaWVzIiwiLzIwMjMtMDMtMDEveGhyL3RpbWVzaGVldHMiLCIvMjAyMy0wMy0wMS94aHIvd29yay1sb2NhdGlvbnMiXSwidG9rZW4iOiIzODIzNTNlMi05N2ZiLTRmMWEtOTYxYy0zZDI5OTViNzYxMTUiLCJpYXQiOjE3MTE4MTA3MTQsImlzcyI6InB1YmxpY2FwaS1pbnRlcm1lZGlhdGUuZGV2LmVuZ2luZWVyaW5nLmFmZml4YXBpLmNvbSIsInN1YiI6InhociIsImF1ZCI6IjNGREFFREY5LTFEQ0E0RjU0LTg3OTQ5RjZBLTQxMDI3NjQzIn0.zUJPaT6IxcIdr8b9iO6u-Rr5I-ohTHPYTrQGrgOFghbEbovItiwr9Wk479GnJVJc3WR8bxAwUMAE4Ul6Okdk6Q' \\ 'https://dev.api.affixapi.com/2023-03-01/xhr/employees' ``` ### prod ``` eyJhbGciOiJFUzI1NiIsImtpZCI6Ims5RmxwSFR1YklmZWNsUU5QRVZzeFcxazFZZ0Zfbk1BWllOSGVuOFQxdGciLCJ0eXAiOiJKV1MifQ.eyJwcm92aWRlciI6InNhbmRib3giLCJzY29wZXMiOlsiLzIwMjMtMDMtMDEveGhyL2NvbXBhbnkiLCIvMjAyMy0wMy0wMS94aHIvZW1wbG95ZWUiLCIvMjAyMy0wMy0wMS94aHIvZW1wbG95ZWVzIiwiLzIwMjMtMDMtMDEveGhyL2dyb3VwcyIsIi8yMDIzLTAzLTAxL3hoci9pZGVudGl0eSIsIi8yMDIzLTAzLTAxL3hoci9wYXlydW5zIiwiLzIwMjMtMDMtMDEveGhyL3BheXJ1bnMvOnBheXJ1bl9pZCIsIi8yMDIzLTAzLTAxL3hoci90aW1lLW9mZi1iYWxhbmNlcyIsIi8yMDIzLTAzLTAxL3hoci90aW1lLW9mZi1lbnRyaWVzIiwiLzIwMjMtMDMtMDEveGhyL3RpbWVzaGVldHMiLCIvMjAyMy0wMy0wMS94aHIvd29yay1sb2NhdGlvbnMiXSwidG9rZW4iOiIzYjg4MDc2NC1kMGFmLTQ5ZDAtOGM5OS00YzIwYjE2MTJjOTMiLCJpYXQiOjE3MTE4MTA4NTgsImlzcyI6InB1YmxpY2FwaS1pbnRlcm1lZGlhdGUucHJvZC5lbmdpbmVlcmluZy5hZmZpeGFwaS5jb20iLCJzdWIiOiJ4aHIiLCJhdWQiOiIwOEJCMDgxRS1EOUFCNEQxNC04REY5OTIzMy02NjYxNUNFOSJ9.n3pJmmfegU21Tko_TyUyCHi4ITvfd75T8NFFTHmf1r8AI8yCUYTWdfNjyZZWcZD6z50I3Wsk2rAd8GDWXn4vlg ``` #### `employees` endpoint sample: ``` curl --fail \\ -X GET \\ -H 'Authorization: Bearer eyJhbGciOiJFUzI1NiIsImtpZCI6Ims5RmxwSFR1YklmZWNsUU5QRVZzeFcxazFZZ0Zfbk1BWllOSGVuOFQxdGciLCJ0eXAiOiJKV1MifQ.eyJwcm92aWRlciI6InNhbmRib3giLCJzY29wZXMiOlsiLzIwMjMtMDMtMDEveGhyL2NvbXBhbnkiLCIvMjAyMy0wMy0wMS94aHIvZW1wbG95ZWUiLCIvMjAyMy0wMy0wMS94aHIvZW1wbG95ZWVzIiwiLzIwMjMtMDMtMDEveGhyL2dyb3VwcyIsIi8yMDIzLTAzLTAxL3hoci9pZGVudGl0eSIsIi8yMDIzLTAzLTAxL3hoci9wYXlydW5zIiwiLzIwMjMtMDMtMDEveGhyL3BheXJ1bnMvOnBheXJ1bl9pZCIsIi8yMDIzLTAzLTAxL3hoci90aW1lLW9mZi1iYWxhbmNlcyIsIi8yMDIzLTAzLTAxL3hoci90aW1lLW9mZi1lbnRyaWVzIiwiLzIwMjMtMDMtMDEveGhyL3RpbWVzaGVldHMiLCIvMjAyMy0wMy0wMS94aHIvd29yay1sb2NhdGlvbnMiXSwidG9rZW4iOiIzYjg4MDc2NC1kMGFmLTQ5ZDAtOGM5OS00YzIwYjE2MTJjOTMiLCJpYXQiOjE3MTE4MTA4NTgsImlzcyI6InB1YmxpY2FwaS1pbnRlcm1lZGlhdGUucHJvZC5lbmdpbmVlcmluZy5hZmZpeGFwaS5jb20iLCJzdWIiOiJ4aHIiLCJhdWQiOiIwOEJCMDgxRS1EOUFCNEQxNC04REY5OTIzMy02NjYxNUNFOSJ9.n3pJmmfegU21Tko_TyUyCHi4ITvfd75T8NFFTHmf1r8AI8yCUYTWdfNjyZZWcZD6z50I3Wsk2rAd8GDWXn4vlg' \\ 'https://api.affixapi.com/2023-03-01/xhr/employees' ``` # Compression We support `brotli`, `gzip`, and `deflate` compression algorithms. To enable, pass the `Accept-Encoding` header with one or all of the values: `br`, `gzip`, `deflate`, or `identity` (no compression) In the response, you will receive the `Content-Encoding` response header indicating the compression algorithm used in the data payload to enable you to decompress the result. If the `Accept-Encoding: identity` header was passed, no `Content-Encoding` response header is sent back, as no compression algorithm was used. # Webhooks An exciting feature for HR/Payroll modes are webhooks. If enabled, your `webhook_uri` is set on your `client_id` for the respective environment: `dev | prod` Webhooks are configured to make live requests to the underlying integration 1x/hr, and if a difference is detected since the last request, we will send a request to your `webhook_uri` with this shape: ``` { added: <api.v20230301.Employees>[ <api.v20230301.Employee>{ ..., date_of_birth: '2010-08-06', display_full_name: 'Daija Rogahn', employee_number: '57993', employment_status: 'pending', employment_type: 'other', employments: [ { currency: 'eur', effective_date: '2022-02-25', employment_type: 'other', job_title: 'Dynamic Implementation Manager', pay_frequency: 'semimonthly', pay_period: 'YEAR', pay_rate: 96000, }, ], first_name: 'Daija', ... } ], removed: [], updated: [ <api.v20230301.Employee>{ ..., date_of_birth: '2009-11-09', display_full_name: 'Lourdes Stiedemann', employee_number: '63189', employment_status: 'leave', employment_type: 'full_time', employments: [ { currency: 'gbp', effective_date: '2023-01-16', employment_type: 'full_time', job_title: 'Forward Brand Planner', pay_frequency: 'semimonthly', pay_period: 'YEAR', pay_rate: 86000, }, ], first_name: 'Lourdes', } ] } ``` the following headers will be sent with webhook requests: ``` x-affix-api-signature: ab8474e609db95d5df3adc39ea3add7a7544bd215c5c520a30a650ae93a2fba7 x-affix-api-origin: webhooks-employees-webhook user-agent: affixapi.com ``` Before trusting the payload, you should sign the payload and verify the signature matches the signature sent by the `affixapi.com` service. This secures that the data sent to your `webhook_uri` is from the `affixapi.com` server. The signature is created by combining the signing secret (your `client_secret`) with the body of the request sent using a standard HMAC-SHA256 keyed hash. The signature can be created via: - create an `HMAC` with your `client_secret` - update the `HMAC` with the payload - get the hex digest -> this is the signature Sample `typescript` code that follows this recipe: ``` import { createHmac } from 'crypto'; export const computeSignature = ({ str, signingSecret, }: { signingSecret: string; str: string; }): string => { const hmac = createHmac('sha256', signingSecret); hmac.update(str); const signature = hmac.digest('hex'); return signature; }; ``` While verifying the Affix API signature header should be your primary method of confirming validity, you can also whitelist our outbound webhook static IP addresses. ``` dev: - 52.210.169.82 - 52.210.38.77 - 3.248.135.204 prod: - 52.51.160.102 - 54.220.83.244 - 3.254.213.171 ``` ## Rate limits Open endpoints (not gated by an API key) (applied at endpoint level): - 15 requests every 1 minute (by IP address) - 25 requests every 5 minutes (by IP address) Gated endpoints (require an API key) (applied at endpoint level): - 40 requests every 1 minute (by IP address) - 40 requests every 5 minutes (by `client_id`) Things to keep in mind: - Open endpoints (not gated by an API key) will likely be called by your users, not you, so rate limits generally would not apply to you. - As a developer, rate limits are applied at the endpoint granularity. - For example, say the rate limits below are 10 requests per minute by ip. from that same ip, within 1 minute, you get: - 10 requests per minute on `/orders`, - another 10 requests per minute on `/items`, - and another 10 requests per minute on `/identity`, - for a total of 30 requests per minute.
5
+
6
+ The version of the OpenAPI document: 2023-03-01
7
+ Contact: developers@affixapi.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.1.1
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for OpenapiClient::PolicyTypeResponse
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe OpenapiClient::PolicyTypeResponse do
21
+ let(:instance) { OpenapiClient::PolicyTypeResponse.new }
22
+
23
+ describe 'test an instance of PolicyTypeResponse' do
24
+ it 'should create an instance of PolicyTypeResponse' do
25
+ expect(instance).to be_instance_of(OpenapiClient::PolicyTypeResponse)
26
+ end
27
+ end
28
+ end
@@ -31,7 +31,7 @@ describe OpenapiClient::TimeOffBalanceResponse do
31
31
  end
32
32
  end
33
33
 
34
- describe 'test attribute "remote_employee_id"' do
34
+ describe 'test attribute "employee_remote_id"' do
35
35
  it 'should work' do
36
36
  # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
37
37
  end
@@ -49,6 +49,18 @@ describe OpenapiClient::TimeOffBalanceResponse do
49
49
  end
50
50
  end
51
51
 
52
+ describe 'test attribute "policy_id"' do
53
+ it 'should work' do
54
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
55
+ end
56
+ end
57
+
58
+ describe 'test attribute "policy_remote_id"' do
59
+ it 'should work' do
60
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
61
+ end
62
+ end
63
+
52
64
  describe 'test attribute "policy_name"' do
53
65
  it 'should work' do
54
66
  # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
@@ -58,10 +70,6 @@ describe OpenapiClient::TimeOffBalanceResponse do
58
70
  describe 'test attribute "policy_type"' do
59
71
  it 'should work' do
60
72
  # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
61
- # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["null", "vacation", "sick", "personal", "jury_duty", "volunteer", "bereavement"])
62
- # validator.allowable_values.each do |value|
63
- # expect { instance.policy_type = value }.not_to raise_error
64
- # end
65
73
  end
66
74
  end
67
75
 
@@ -43,7 +43,7 @@ describe OpenapiClient::TimeOffEntryResponse do
43
43
  end
44
44
  end
45
45
 
46
- describe 'test attribute "remote_employee_id"' do
46
+ describe 'test attribute "employee_remote_id"' do
47
47
  it 'should work' do
48
48
  # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
49
49
  end
@@ -93,7 +93,25 @@ describe OpenapiClient::TimeOffEntryResponse do
93
93
  end
94
94
  end
95
95
 
96
- describe 'test attribute "request_type"' do
96
+ describe 'test attribute "policy_id"' do
97
+ it 'should work' do
98
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
99
+ end
100
+ end
101
+
102
+ describe 'test attribute "policy_remote_id"' do
103
+ it 'should work' do
104
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
105
+ end
106
+ end
107
+
108
+ describe 'test attribute "policy_name"' do
109
+ it 'should work' do
110
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
111
+ end
112
+ end
113
+
114
+ describe 'test attribute "policy_type"' do
97
115
  it 'should work' do
98
116
  # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
99
117
  end
@@ -43,7 +43,7 @@ describe OpenapiClient::TimesheetResponse do
43
43
  end
44
44
  end
45
45
 
46
- describe 'test attribute "remote_employee_id"' do
46
+ describe 'test attribute "employee_remote_id"' do
47
47
  it 'should work' do
48
48
  # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
49
49
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: affixapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.66
4
+ version: 1.1.68
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAPI-Generator
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-06 00:00:00.000000000 Z
11
+ date: 2024-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -164,6 +164,7 @@ files:
164
164
  - docs/PayslipResponseDeductions.md
165
165
  - docs/PayslipResponseEarnings.md
166
166
  - docs/PayslipResponseTaxes.md
167
+ - docs/PolicyTypeResponse.md
167
168
  - docs/ProviderRequest.md
168
169
  - docs/ProviderResponse.md
169
170
  - docs/ScopesRequest.md
@@ -222,6 +223,7 @@ files:
222
223
  - lib/openapi_client/models/payslip_response_deductions.rb
223
224
  - lib/openapi_client/models/payslip_response_earnings.rb
224
225
  - lib/openapi_client/models/payslip_response_taxes.rb
226
+ - lib/openapi_client/models/policy_type_response.rb
225
227
  - lib/openapi_client/models/provider_request.rb
226
228
  - lib/openapi_client/models/provider_response.rb
227
229
  - lib/openapi_client/models/scopes_request.rb
@@ -277,6 +279,7 @@ files:
277
279
  - spec/models/payslip_response_earnings_spec.rb
278
280
  - spec/models/payslip_response_spec.rb
279
281
  - spec/models/payslip_response_taxes_spec.rb
282
+ - spec/models/policy_type_response_spec.rb
280
283
  - spec/models/provider_request_spec.rb
281
284
  - spec/models/provider_response_spec.rb
282
285
  - spec/models/scopes_request_spec.rb
@@ -2799,6 +2802,7 @@ test_files:
2799
2802
  - spec/models/payslip_response_earnings_spec.rb
2800
2803
  - spec/models/inline_response400_spec.rb
2801
2804
  - spec/models/token_response_spec.rb
2805
+ - spec/models/policy_type_response_spec.rb
2802
2806
  - spec/models/identity_response_spec.rb
2803
2807
  - spec/models/provider_response_spec.rb
2804
2808
  - spec/models/client_request_spec.rb