ssoready 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/environment.rb +7 -0
- data/lib/gemconfig.rb +14 -0
- data/lib/requests.rb +159 -0
- data/lib/ssoready/management/client.rb +51 -0
- data/lib/ssoready/management/organizations/client.rb +247 -0
- data/lib/ssoready/management/saml_connections/client.rb +269 -0
- data/lib/ssoready/management/scim_directories/client.rb +330 -0
- data/lib/ssoready/management/setup_urls/client.rb +97 -0
- data/lib/ssoready/saml/client.rb +170 -0
- data/lib/ssoready/scim/client.rb +296 -0
- data/lib/ssoready/types/create_organization_response.rb +63 -0
- data/lib/ssoready/types/create_saml_connection_response.rb +63 -0
- data/lib/ssoready/types/create_scim_directory_response.rb +63 -0
- data/lib/ssoready/types/create_setup_url_response.rb +62 -0
- data/lib/ssoready/types/get_organization_response.rb +63 -0
- data/lib/ssoready/types/get_saml_connection_response.rb +63 -0
- data/lib/ssoready/types/get_saml_redirect_url_response.rb +56 -0
- data/lib/ssoready/types/get_scim_directory_response.rb +63 -0
- data/lib/ssoready/types/get_scim_group_response.rb +63 -0
- data/lib/ssoready/types/get_scim_user_response.rb +63 -0
- data/lib/ssoready/types/google_protobuf_any.rb +58 -0
- data/lib/ssoready/types/list_organizations_response.rb +73 -0
- data/lib/ssoready/types/list_saml_connections_response.rb +73 -0
- data/lib/ssoready/types/list_scim_directories_response.rb +73 -0
- data/lib/ssoready/types/list_scim_groups_response.rb +73 -0
- data/lib/ssoready/types/list_scim_users_response.rb +73 -0
- data/lib/ssoready/types/organization.rb +112 -0
- data/lib/ssoready/types/redeem_saml_access_code_response.rb +126 -0
- data/lib/ssoready/types/rotate_scim_directory_bearer_token_response.rb +63 -0
- data/lib/ssoready/types/saml_connection.rb +144 -0
- data/lib/ssoready/types/scim_directory.rb +104 -0
- data/lib/ssoready/types/scim_group.rb +114 -0
- data/lib/ssoready/types/scim_user.rb +102 -0
- data/lib/ssoready/types/status.rb +94 -0
- data/lib/ssoready/types/update_organization_response.rb +63 -0
- data/lib/ssoready/types/update_saml_connection_response.rb +63 -0
- data/lib/ssoready/types/update_scim_directory_response.rb +63 -0
- data/lib/ssoready.rb +68 -0
- data/lib/types_export.rb +29 -0
- metadata +163 -0
@@ -0,0 +1,144 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ostruct"
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
module SSOReady
|
7
|
+
class SAMLConnection
|
8
|
+
# @return [String] Unique identifier for this SAML connection.
|
9
|
+
attr_reader :id
|
10
|
+
# @return [String] The organization this SAML connection belongs to.
|
11
|
+
attr_reader :organization_id
|
12
|
+
# @return [Boolean] Whether this is the primary SAML connection for the organization.
|
13
|
+
attr_reader :primary
|
14
|
+
# @return [String] URL to redirect to when initiating SAML flows.
|
15
|
+
# IDP redirect URLs are assigned by an Identity Provider, and need to be inputted
|
16
|
+
# into SSOReady.
|
17
|
+
attr_reader :idp_redirect_url
|
18
|
+
# @return [String] Certificate to authenticate SAML assertions. This is a PEM-encoded X.509
|
19
|
+
# certificate.
|
20
|
+
# IDP certificates are assigned by an Identity Provider, and need to be inputted
|
21
|
+
# into SSOReady.
|
22
|
+
attr_reader :idp_certificate
|
23
|
+
# @return [String] Identifier for the identity provider when handling SAML operations.
|
24
|
+
# IDP entity IDs are assigned by an Identity Provider, and need to be inputted
|
25
|
+
# into SSOReady.
|
26
|
+
attr_reader :idp_entity_id
|
27
|
+
# @return [String] Identifier for the SAML connection when handling SAML operations.
|
28
|
+
# SP entity IDs are assigned by SSOReady, and need to be inputted into your
|
29
|
+
# customer's Identity Provider.
|
30
|
+
attr_reader :sp_entity_id
|
31
|
+
# @return [String] URL the Identity Provider redirects to when transmitting SAML assertions. Stands
|
32
|
+
# for "Service Provider Assertion
|
33
|
+
# Consumer Service" URL.
|
34
|
+
# SP ACS URLs are assigned by SSOReady, and need to be inputted into your
|
35
|
+
# customer's Identity Provider.
|
36
|
+
attr_reader :sp_acs_url
|
37
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
38
|
+
attr_reader :additional_properties
|
39
|
+
# @return [Object]
|
40
|
+
attr_reader :_field_set
|
41
|
+
protected :_field_set
|
42
|
+
|
43
|
+
OMIT = Object.new
|
44
|
+
|
45
|
+
# @param id [String] Unique identifier for this SAML connection.
|
46
|
+
# @param organization_id [String] The organization this SAML connection belongs to.
|
47
|
+
# @param primary [Boolean] Whether this is the primary SAML connection for the organization.
|
48
|
+
# @param idp_redirect_url [String] URL to redirect to when initiating SAML flows.
|
49
|
+
# IDP redirect URLs are assigned by an Identity Provider, and need to be inputted
|
50
|
+
# into SSOReady.
|
51
|
+
# @param idp_certificate [String] Certificate to authenticate SAML assertions. This is a PEM-encoded X.509
|
52
|
+
# certificate.
|
53
|
+
# IDP certificates are assigned by an Identity Provider, and need to be inputted
|
54
|
+
# into SSOReady.
|
55
|
+
# @param idp_entity_id [String] Identifier for the identity provider when handling SAML operations.
|
56
|
+
# IDP entity IDs are assigned by an Identity Provider, and need to be inputted
|
57
|
+
# into SSOReady.
|
58
|
+
# @param sp_entity_id [String] Identifier for the SAML connection when handling SAML operations.
|
59
|
+
# SP entity IDs are assigned by SSOReady, and need to be inputted into your
|
60
|
+
# customer's Identity Provider.
|
61
|
+
# @param sp_acs_url [String] URL the Identity Provider redirects to when transmitting SAML assertions. Stands
|
62
|
+
# for "Service Provider Assertion
|
63
|
+
# Consumer Service" URL.
|
64
|
+
# SP ACS URLs are assigned by SSOReady, and need to be inputted into your
|
65
|
+
# customer's Identity Provider.
|
66
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
67
|
+
# @return [SSOReady::SAMLConnection]
|
68
|
+
def initialize(id: OMIT, organization_id: OMIT, primary: OMIT, idp_redirect_url: OMIT, idp_certificate: OMIT,
|
69
|
+
idp_entity_id: OMIT, sp_entity_id: OMIT, sp_acs_url: OMIT, additional_properties: nil)
|
70
|
+
@id = id if id != OMIT
|
71
|
+
@organization_id = organization_id if organization_id != OMIT
|
72
|
+
@primary = primary if primary != OMIT
|
73
|
+
@idp_redirect_url = idp_redirect_url if idp_redirect_url != OMIT
|
74
|
+
@idp_certificate = idp_certificate if idp_certificate != OMIT
|
75
|
+
@idp_entity_id = idp_entity_id if idp_entity_id != OMIT
|
76
|
+
@sp_entity_id = sp_entity_id if sp_entity_id != OMIT
|
77
|
+
@sp_acs_url = sp_acs_url if sp_acs_url != OMIT
|
78
|
+
@additional_properties = additional_properties
|
79
|
+
@_field_set = {
|
80
|
+
"id": id,
|
81
|
+
"organizationId": organization_id,
|
82
|
+
"primary": primary,
|
83
|
+
"idpRedirectUrl": idp_redirect_url,
|
84
|
+
"idpCertificate": idp_certificate,
|
85
|
+
"idpEntityId": idp_entity_id,
|
86
|
+
"spEntityId": sp_entity_id,
|
87
|
+
"spAcsUrl": sp_acs_url
|
88
|
+
}.reject do |_k, v|
|
89
|
+
v == OMIT
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
# Deserialize a JSON object to an instance of SAMLConnection
|
94
|
+
#
|
95
|
+
# @param json_object [String]
|
96
|
+
# @return [SSOReady::SAMLConnection]
|
97
|
+
def self.from_json(json_object:)
|
98
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
99
|
+
id = struct["id"]
|
100
|
+
organization_id = struct["organizationId"]
|
101
|
+
primary = struct["primary"]
|
102
|
+
idp_redirect_url = struct["idpRedirectUrl"]
|
103
|
+
idp_certificate = struct["idpCertificate"]
|
104
|
+
idp_entity_id = struct["idpEntityId"]
|
105
|
+
sp_entity_id = struct["spEntityId"]
|
106
|
+
sp_acs_url = struct["spAcsUrl"]
|
107
|
+
new(
|
108
|
+
id: id,
|
109
|
+
organization_id: organization_id,
|
110
|
+
primary: primary,
|
111
|
+
idp_redirect_url: idp_redirect_url,
|
112
|
+
idp_certificate: idp_certificate,
|
113
|
+
idp_entity_id: idp_entity_id,
|
114
|
+
sp_entity_id: sp_entity_id,
|
115
|
+
sp_acs_url: sp_acs_url,
|
116
|
+
additional_properties: struct
|
117
|
+
)
|
118
|
+
end
|
119
|
+
|
120
|
+
# Serialize an instance of SAMLConnection to a JSON object
|
121
|
+
#
|
122
|
+
# @return [String]
|
123
|
+
def to_json(*_args)
|
124
|
+
@_field_set&.to_json
|
125
|
+
end
|
126
|
+
|
127
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
128
|
+
# hash and check each fields type against the current object's property
|
129
|
+
# definitions.
|
130
|
+
#
|
131
|
+
# @param obj [Object]
|
132
|
+
# @return [Void]
|
133
|
+
def self.validate_raw(obj:)
|
134
|
+
obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
|
135
|
+
obj.organization_id&.is_a?(String) != false || raise("Passed value for field obj.organization_id is not the expected type, validation failed.")
|
136
|
+
obj.primary&.is_a?(Boolean) != false || raise("Passed value for field obj.primary is not the expected type, validation failed.")
|
137
|
+
obj.idp_redirect_url&.is_a?(String) != false || raise("Passed value for field obj.idp_redirect_url is not the expected type, validation failed.")
|
138
|
+
obj.idp_certificate&.is_a?(String) != false || raise("Passed value for field obj.idp_certificate is not the expected type, validation failed.")
|
139
|
+
obj.idp_entity_id&.is_a?(String) != false || raise("Passed value for field obj.idp_entity_id is not the expected type, validation failed.")
|
140
|
+
obj.sp_entity_id&.is_a?(String) != false || raise("Passed value for field obj.sp_entity_id is not the expected type, validation failed.")
|
141
|
+
obj.sp_acs_url&.is_a?(String) != false || raise("Passed value for field obj.sp_acs_url is not the expected type, validation failed.")
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ostruct"
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
module SSOReady
|
7
|
+
class SCIMDirectory
|
8
|
+
# @return [String] Unique identifier for this SCIM directory.
|
9
|
+
attr_reader :id
|
10
|
+
# @return [String] The organization this SCIM directory belongs to.
|
11
|
+
attr_reader :organization_id
|
12
|
+
# @return [Boolean] Whether this is the primary SCIM directory for the organization.
|
13
|
+
attr_reader :primary
|
14
|
+
# @return [String] Base URL the Identity Provider uses to perform SCIM HTTP requests.
|
15
|
+
# SCIM base URLs are assigned by SSOReady, and need to be inputted into your
|
16
|
+
# customer's Identity Provider.
|
17
|
+
attr_reader :scim_base_url
|
18
|
+
# @return [Boolean] Whether this SCIM directory has a bearer token assigned.
|
19
|
+
# SSOReady only stores a hash of the bearer token. To get a bearer token value,
|
20
|
+
# you must rotate this SCIM directory's
|
21
|
+
# bearer token.
|
22
|
+
attr_reader :has_client_bearer_token
|
23
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
24
|
+
attr_reader :additional_properties
|
25
|
+
# @return [Object]
|
26
|
+
attr_reader :_field_set
|
27
|
+
protected :_field_set
|
28
|
+
|
29
|
+
OMIT = Object.new
|
30
|
+
|
31
|
+
# @param id [String] Unique identifier for this SCIM directory.
|
32
|
+
# @param organization_id [String] The organization this SCIM directory belongs to.
|
33
|
+
# @param primary [Boolean] Whether this is the primary SCIM directory for the organization.
|
34
|
+
# @param scim_base_url [String] Base URL the Identity Provider uses to perform SCIM HTTP requests.
|
35
|
+
# SCIM base URLs are assigned by SSOReady, and need to be inputted into your
|
36
|
+
# customer's Identity Provider.
|
37
|
+
# @param has_client_bearer_token [Boolean] Whether this SCIM directory has a bearer token assigned.
|
38
|
+
# SSOReady only stores a hash of the bearer token. To get a bearer token value,
|
39
|
+
# you must rotate this SCIM directory's
|
40
|
+
# bearer token.
|
41
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
42
|
+
# @return [SSOReady::SCIMDirectory]
|
43
|
+
def initialize(id: OMIT, organization_id: OMIT, primary: OMIT, scim_base_url: OMIT, has_client_bearer_token: OMIT,
|
44
|
+
additional_properties: nil)
|
45
|
+
@id = id if id != OMIT
|
46
|
+
@organization_id = organization_id if organization_id != OMIT
|
47
|
+
@primary = primary if primary != OMIT
|
48
|
+
@scim_base_url = scim_base_url if scim_base_url != OMIT
|
49
|
+
@has_client_bearer_token = has_client_bearer_token if has_client_bearer_token != OMIT
|
50
|
+
@additional_properties = additional_properties
|
51
|
+
@_field_set = {
|
52
|
+
"id": id,
|
53
|
+
"organizationId": organization_id,
|
54
|
+
"primary": primary,
|
55
|
+
"scimBaseUrl": scim_base_url,
|
56
|
+
"hasClientBearerToken": has_client_bearer_token
|
57
|
+
}.reject do |_k, v|
|
58
|
+
v == OMIT
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# Deserialize a JSON object to an instance of SCIMDirectory
|
63
|
+
#
|
64
|
+
# @param json_object [String]
|
65
|
+
# @return [SSOReady::SCIMDirectory]
|
66
|
+
def self.from_json(json_object:)
|
67
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
68
|
+
id = struct["id"]
|
69
|
+
organization_id = struct["organizationId"]
|
70
|
+
primary = struct["primary"]
|
71
|
+
scim_base_url = struct["scimBaseUrl"]
|
72
|
+
has_client_bearer_token = struct["hasClientBearerToken"]
|
73
|
+
new(
|
74
|
+
id: id,
|
75
|
+
organization_id: organization_id,
|
76
|
+
primary: primary,
|
77
|
+
scim_base_url: scim_base_url,
|
78
|
+
has_client_bearer_token: has_client_bearer_token,
|
79
|
+
additional_properties: struct
|
80
|
+
)
|
81
|
+
end
|
82
|
+
|
83
|
+
# Serialize an instance of SCIMDirectory to a JSON object
|
84
|
+
#
|
85
|
+
# @return [String]
|
86
|
+
def to_json(*_args)
|
87
|
+
@_field_set&.to_json
|
88
|
+
end
|
89
|
+
|
90
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
91
|
+
# hash and check each fields type against the current object's property
|
92
|
+
# definitions.
|
93
|
+
#
|
94
|
+
# @param obj [Object]
|
95
|
+
# @return [Void]
|
96
|
+
def self.validate_raw(obj:)
|
97
|
+
obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
|
98
|
+
obj.organization_id&.is_a?(String) != false || raise("Passed value for field obj.organization_id is not the expected type, validation failed.")
|
99
|
+
obj.primary&.is_a?(Boolean) != false || raise("Passed value for field obj.primary is not the expected type, validation failed.")
|
100
|
+
obj.scim_base_url&.is_a?(String) != false || raise("Passed value for field obj.scim_base_url is not the expected type, validation failed.")
|
101
|
+
obj.has_client_bearer_token&.is_a?(Boolean) != false || raise("Passed value for field obj.has_client_bearer_token is not the expected type, validation failed.")
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ostruct"
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
module SSOReady
|
7
|
+
class SCIMGroup
|
8
|
+
# @return [String] Unique identifier for this SCIM group.
|
9
|
+
attr_reader :id
|
10
|
+
# @return [String] SCIM directory this SCIM group belongs to.
|
11
|
+
attr_reader :scim_directory_id
|
12
|
+
# @return [String] A human-friendly name for the SCIM group.
|
13
|
+
attr_reader :display_name
|
14
|
+
# @return [Boolean] Whether the SCIM group has been deleted or deprovisioned from its SCIM
|
15
|
+
# directory.
|
16
|
+
# Identity Providers are inconsistent about reliably deleting SCIM groups. Many
|
17
|
+
# Identity Providers will deprovision
|
18
|
+
# the users inside a group, but not the group itself. For this reason, it's
|
19
|
+
# typical to ignore this field until a
|
20
|
+
# specific need arises.
|
21
|
+
attr_reader :deleted
|
22
|
+
# @return [Hash{String => Object}] Arbitrary, potentially nested, attributes the Identity Provider included about
|
23
|
+
# the group.
|
24
|
+
# Identity Providers are inconsistent about supporting sending custom attributes
|
25
|
+
# on groups. For this reason, it's
|
26
|
+
# typical to not rely on them until a specific need arises.
|
27
|
+
attr_reader :attributes
|
28
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
29
|
+
attr_reader :additional_properties
|
30
|
+
# @return [Object]
|
31
|
+
attr_reader :_field_set
|
32
|
+
protected :_field_set
|
33
|
+
|
34
|
+
OMIT = Object.new
|
35
|
+
|
36
|
+
# @param id [String] Unique identifier for this SCIM group.
|
37
|
+
# @param scim_directory_id [String] SCIM directory this SCIM group belongs to.
|
38
|
+
# @param display_name [String] A human-friendly name for the SCIM group.
|
39
|
+
# @param deleted [Boolean] Whether the SCIM group has been deleted or deprovisioned from its SCIM
|
40
|
+
# directory.
|
41
|
+
# Identity Providers are inconsistent about reliably deleting SCIM groups. Many
|
42
|
+
# Identity Providers will deprovision
|
43
|
+
# the users inside a group, but not the group itself. For this reason, it's
|
44
|
+
# typical to ignore this field until a
|
45
|
+
# specific need arises.
|
46
|
+
# @param attributes [Hash{String => Object}] Arbitrary, potentially nested, attributes the Identity Provider included about
|
47
|
+
# the group.
|
48
|
+
# Identity Providers are inconsistent about supporting sending custom attributes
|
49
|
+
# on groups. For this reason, it's
|
50
|
+
# typical to not rely on them until a specific need arises.
|
51
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
52
|
+
# @return [SSOReady::SCIMGroup]
|
53
|
+
def initialize(id: OMIT, scim_directory_id: OMIT, display_name: OMIT, deleted: OMIT, attributes: OMIT,
|
54
|
+
additional_properties: nil)
|
55
|
+
@id = id if id != OMIT
|
56
|
+
@scim_directory_id = scim_directory_id if scim_directory_id != OMIT
|
57
|
+
@display_name = display_name if display_name != OMIT
|
58
|
+
@deleted = deleted if deleted != OMIT
|
59
|
+
@attributes = attributes if attributes != OMIT
|
60
|
+
@additional_properties = additional_properties
|
61
|
+
@_field_set = {
|
62
|
+
"id": id,
|
63
|
+
"scimDirectoryId": scim_directory_id,
|
64
|
+
"displayName": display_name,
|
65
|
+
"deleted": deleted,
|
66
|
+
"attributes": attributes
|
67
|
+
}.reject do |_k, v|
|
68
|
+
v == OMIT
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
# Deserialize a JSON object to an instance of SCIMGroup
|
73
|
+
#
|
74
|
+
# @param json_object [String]
|
75
|
+
# @return [SSOReady::SCIMGroup]
|
76
|
+
def self.from_json(json_object:)
|
77
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
78
|
+
id = struct["id"]
|
79
|
+
scim_directory_id = struct["scimDirectoryId"]
|
80
|
+
display_name = struct["displayName"]
|
81
|
+
deleted = struct["deleted"]
|
82
|
+
attributes = struct["attributes"]
|
83
|
+
new(
|
84
|
+
id: id,
|
85
|
+
scim_directory_id: scim_directory_id,
|
86
|
+
display_name: display_name,
|
87
|
+
deleted: deleted,
|
88
|
+
attributes: attributes,
|
89
|
+
additional_properties: struct
|
90
|
+
)
|
91
|
+
end
|
92
|
+
|
93
|
+
# Serialize an instance of SCIMGroup to a JSON object
|
94
|
+
#
|
95
|
+
# @return [String]
|
96
|
+
def to_json(*_args)
|
97
|
+
@_field_set&.to_json
|
98
|
+
end
|
99
|
+
|
100
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
101
|
+
# hash and check each fields type against the current object's property
|
102
|
+
# definitions.
|
103
|
+
#
|
104
|
+
# @param obj [Object]
|
105
|
+
# @return [Void]
|
106
|
+
def self.validate_raw(obj:)
|
107
|
+
obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
|
108
|
+
obj.scim_directory_id&.is_a?(String) != false || raise("Passed value for field obj.scim_directory_id is not the expected type, validation failed.")
|
109
|
+
obj.display_name&.is_a?(String) != false || raise("Passed value for field obj.display_name is not the expected type, validation failed.")
|
110
|
+
obj.deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.deleted is not the expected type, validation failed.")
|
111
|
+
obj.attributes&.is_a?(Hash) != false || raise("Passed value for field obj.attributes is not the expected type, validation failed.")
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ostruct"
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
module SSOReady
|
7
|
+
class SCIMUser
|
8
|
+
# @return [String] Unique identifier for this SCIM user.
|
9
|
+
attr_reader :id
|
10
|
+
# @return [String] SCIM directory this SCIM user belongs to.
|
11
|
+
attr_reader :scim_directory_id
|
12
|
+
# @return [String] The SCIM user's email address.
|
13
|
+
attr_reader :email
|
14
|
+
# @return [Boolean] Whether the SCIM user has been deleted or deprovisioned from its SCIM directory.
|
15
|
+
attr_reader :deleted
|
16
|
+
# @return [Hash{String => Object}] Arbitrary, potentially nested, attributes the Identity Provider included about
|
17
|
+
# the user.
|
18
|
+
# Typically, these `attributes` are used to pass along the user's first/last name,
|
19
|
+
# or whether they should be
|
20
|
+
# considered an admin within their company.
|
21
|
+
attr_reader :attributes
|
22
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
23
|
+
attr_reader :additional_properties
|
24
|
+
# @return [Object]
|
25
|
+
attr_reader :_field_set
|
26
|
+
protected :_field_set
|
27
|
+
|
28
|
+
OMIT = Object.new
|
29
|
+
|
30
|
+
# @param id [String] Unique identifier for this SCIM user.
|
31
|
+
# @param scim_directory_id [String] SCIM directory this SCIM user belongs to.
|
32
|
+
# @param email [String] The SCIM user's email address.
|
33
|
+
# @param deleted [Boolean] Whether the SCIM user has been deleted or deprovisioned from its SCIM directory.
|
34
|
+
# @param attributes [Hash{String => Object}] Arbitrary, potentially nested, attributes the Identity Provider included about
|
35
|
+
# the user.
|
36
|
+
# Typically, these `attributes` are used to pass along the user's first/last name,
|
37
|
+
# or whether they should be
|
38
|
+
# considered an admin within their company.
|
39
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
40
|
+
# @return [SSOReady::SCIMUser]
|
41
|
+
def initialize(id: OMIT, scim_directory_id: OMIT, email: OMIT, deleted: OMIT, attributes: OMIT,
|
42
|
+
additional_properties: nil)
|
43
|
+
@id = id if id != OMIT
|
44
|
+
@scim_directory_id = scim_directory_id if scim_directory_id != OMIT
|
45
|
+
@email = email if email != OMIT
|
46
|
+
@deleted = deleted if deleted != OMIT
|
47
|
+
@attributes = attributes if attributes != OMIT
|
48
|
+
@additional_properties = additional_properties
|
49
|
+
@_field_set = {
|
50
|
+
"id": id,
|
51
|
+
"scimDirectoryId": scim_directory_id,
|
52
|
+
"email": email,
|
53
|
+
"deleted": deleted,
|
54
|
+
"attributes": attributes
|
55
|
+
}.reject do |_k, v|
|
56
|
+
v == OMIT
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# Deserialize a JSON object to an instance of SCIMUser
|
61
|
+
#
|
62
|
+
# @param json_object [String]
|
63
|
+
# @return [SSOReady::SCIMUser]
|
64
|
+
def self.from_json(json_object:)
|
65
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
66
|
+
id = struct["id"]
|
67
|
+
scim_directory_id = struct["scimDirectoryId"]
|
68
|
+
email = struct["email"]
|
69
|
+
deleted = struct["deleted"]
|
70
|
+
attributes = struct["attributes"]
|
71
|
+
new(
|
72
|
+
id: id,
|
73
|
+
scim_directory_id: scim_directory_id,
|
74
|
+
email: email,
|
75
|
+
deleted: deleted,
|
76
|
+
attributes: attributes,
|
77
|
+
additional_properties: struct
|
78
|
+
)
|
79
|
+
end
|
80
|
+
|
81
|
+
# Serialize an instance of SCIMUser to a JSON object
|
82
|
+
#
|
83
|
+
# @return [String]
|
84
|
+
def to_json(*_args)
|
85
|
+
@_field_set&.to_json
|
86
|
+
end
|
87
|
+
|
88
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
89
|
+
# hash and check each fields type against the current object's property
|
90
|
+
# definitions.
|
91
|
+
#
|
92
|
+
# @param obj [Object]
|
93
|
+
# @return [Void]
|
94
|
+
def self.validate_raw(obj:)
|
95
|
+
obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
|
96
|
+
obj.scim_directory_id&.is_a?(String) != false || raise("Passed value for field obj.scim_directory_id is not the expected type, validation failed.")
|
97
|
+
obj.email&.is_a?(String) != false || raise("Passed value for field obj.email is not the expected type, validation failed.")
|
98
|
+
obj.deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.deleted is not the expected type, validation failed.")
|
99
|
+
obj.attributes&.is_a?(Hash) != false || raise("Passed value for field obj.attributes is not the expected type, validation failed.")
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "google_protobuf_any"
|
4
|
+
require "ostruct"
|
5
|
+
require "json"
|
6
|
+
|
7
|
+
module SSOReady
|
8
|
+
# The `Status` type defines a logical error model that is suitable for different
|
9
|
+
# programming environments, including REST APIs and RPC APIs. It is used by
|
10
|
+
# [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
|
11
|
+
# data: error code, error message, and error details. You can find out more about
|
12
|
+
# this error model and how to work with it in the [API Design
|
13
|
+
# Guide](https://cloud.google.com/apis/design/errors).
|
14
|
+
class Status
|
15
|
+
# @return [Integer] The status code, which should be an enum value of
|
16
|
+
# [google.rpc.Code][google.rpc.code].
|
17
|
+
attr_reader :code
|
18
|
+
# @return [String] A developer-facing error message, which should be in English. Any user-facing
|
19
|
+
# error message should be localized and sent in the
|
20
|
+
# [google.rpc.Status.details][google.rpc.status.details] field, or localized by
|
21
|
+
# the client.
|
22
|
+
attr_reader :message
|
23
|
+
# @return [Array<SSOReady::GoogleProtobufAny>] A list of messages that carry the error details. There is a common set of
|
24
|
+
# message types for APIs to use.
|
25
|
+
attr_reader :details
|
26
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
27
|
+
attr_reader :additional_properties
|
28
|
+
# @return [Object]
|
29
|
+
attr_reader :_field_set
|
30
|
+
protected :_field_set
|
31
|
+
|
32
|
+
OMIT = Object.new
|
33
|
+
|
34
|
+
# @param code [Integer] The status code, which should be an enum value of
|
35
|
+
# [google.rpc.Code][google.rpc.code].
|
36
|
+
# @param message [String] A developer-facing error message, which should be in English. Any user-facing
|
37
|
+
# error message should be localized and sent in the
|
38
|
+
# [google.rpc.Status.details][google.rpc.status.details] field, or localized by
|
39
|
+
# the client.
|
40
|
+
# @param details [Array<SSOReady::GoogleProtobufAny>] A list of messages that carry the error details. There is a common set of
|
41
|
+
# message types for APIs to use.
|
42
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
43
|
+
# @return [SSOReady::Status]
|
44
|
+
def initialize(code: OMIT, message: OMIT, details: OMIT, additional_properties: nil)
|
45
|
+
@code = code if code != OMIT
|
46
|
+
@message = message if message != OMIT
|
47
|
+
@details = details if details != OMIT
|
48
|
+
@additional_properties = additional_properties
|
49
|
+
@_field_set = { "code": code, "message": message, "details": details }.reject do |_k, v|
|
50
|
+
v == OMIT
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# Deserialize a JSON object to an instance of Status
|
55
|
+
#
|
56
|
+
# @param json_object [String]
|
57
|
+
# @return [SSOReady::Status]
|
58
|
+
def self.from_json(json_object:)
|
59
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
60
|
+
parsed_json = JSON.parse(json_object)
|
61
|
+
code = struct["code"]
|
62
|
+
message = struct["message"]
|
63
|
+
details = parsed_json["details"]&.map do |v|
|
64
|
+
v = v.to_json
|
65
|
+
SSOReady::GoogleProtobufAny.from_json(json_object: v)
|
66
|
+
end
|
67
|
+
new(
|
68
|
+
code: code,
|
69
|
+
message: message,
|
70
|
+
details: details,
|
71
|
+
additional_properties: struct
|
72
|
+
)
|
73
|
+
end
|
74
|
+
|
75
|
+
# Serialize an instance of Status to a JSON object
|
76
|
+
#
|
77
|
+
# @return [String]
|
78
|
+
def to_json(*_args)
|
79
|
+
@_field_set&.to_json
|
80
|
+
end
|
81
|
+
|
82
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
83
|
+
# hash and check each fields type against the current object's property
|
84
|
+
# definitions.
|
85
|
+
#
|
86
|
+
# @param obj [Object]
|
87
|
+
# @return [Void]
|
88
|
+
def self.validate_raw(obj:)
|
89
|
+
obj.code&.is_a?(Integer) != false || raise("Passed value for field obj.code is not the expected type, validation failed.")
|
90
|
+
obj.message&.is_a?(String) != false || raise("Passed value for field obj.message is not the expected type, validation failed.")
|
91
|
+
obj.details&.is_a?(Array) != false || raise("Passed value for field obj.details is not the expected type, validation failed.")
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "organization"
|
4
|
+
require "ostruct"
|
5
|
+
require "json"
|
6
|
+
|
7
|
+
module SSOReady
|
8
|
+
class UpdateOrganizationResponse
|
9
|
+
# @return [SSOReady::Organization] The updated organization.
|
10
|
+
attr_reader :organization
|
11
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
12
|
+
attr_reader :additional_properties
|
13
|
+
# @return [Object]
|
14
|
+
attr_reader :_field_set
|
15
|
+
protected :_field_set
|
16
|
+
|
17
|
+
OMIT = Object.new
|
18
|
+
|
19
|
+
# @param organization [SSOReady::Organization] The updated organization.
|
20
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
21
|
+
# @return [SSOReady::UpdateOrganizationResponse]
|
22
|
+
def initialize(organization: OMIT, additional_properties: nil)
|
23
|
+
@organization = organization if organization != OMIT
|
24
|
+
@additional_properties = additional_properties
|
25
|
+
@_field_set = { "organization": organization }.reject do |_k, v|
|
26
|
+
v == OMIT
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# Deserialize a JSON object to an instance of UpdateOrganizationResponse
|
31
|
+
#
|
32
|
+
# @param json_object [String]
|
33
|
+
# @return [SSOReady::UpdateOrganizationResponse]
|
34
|
+
def self.from_json(json_object:)
|
35
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
36
|
+
parsed_json = JSON.parse(json_object)
|
37
|
+
if parsed_json["organization"].nil?
|
38
|
+
organization = nil
|
39
|
+
else
|
40
|
+
organization = parsed_json["organization"].to_json
|
41
|
+
organization = SSOReady::Organization.from_json(json_object: organization)
|
42
|
+
end
|
43
|
+
new(organization: organization, additional_properties: struct)
|
44
|
+
end
|
45
|
+
|
46
|
+
# Serialize an instance of UpdateOrganizationResponse to a JSON object
|
47
|
+
#
|
48
|
+
# @return [String]
|
49
|
+
def to_json(*_args)
|
50
|
+
@_field_set&.to_json
|
51
|
+
end
|
52
|
+
|
53
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
54
|
+
# hash and check each fields type against the current object's property
|
55
|
+
# definitions.
|
56
|
+
#
|
57
|
+
# @param obj [Object]
|
58
|
+
# @return [Void]
|
59
|
+
def self.validate_raw(obj:)
|
60
|
+
obj.organization.nil? || SSOReady::Organization.validate_raw(obj: obj.organization)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "saml_connection"
|
4
|
+
require "ostruct"
|
5
|
+
require "json"
|
6
|
+
|
7
|
+
module SSOReady
|
8
|
+
class UpdateSAMLConnectionResponse
|
9
|
+
# @return [SSOReady::SAMLConnection] The updated SAML connection.
|
10
|
+
attr_reader :saml_connection
|
11
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
12
|
+
attr_reader :additional_properties
|
13
|
+
# @return [Object]
|
14
|
+
attr_reader :_field_set
|
15
|
+
protected :_field_set
|
16
|
+
|
17
|
+
OMIT = Object.new
|
18
|
+
|
19
|
+
# @param saml_connection [SSOReady::SAMLConnection] The updated SAML connection.
|
20
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
21
|
+
# @return [SSOReady::UpdateSAMLConnectionResponse]
|
22
|
+
def initialize(saml_connection: OMIT, additional_properties: nil)
|
23
|
+
@saml_connection = saml_connection if saml_connection != OMIT
|
24
|
+
@additional_properties = additional_properties
|
25
|
+
@_field_set = { "samlConnection": saml_connection }.reject do |_k, v|
|
26
|
+
v == OMIT
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# Deserialize a JSON object to an instance of UpdateSAMLConnectionResponse
|
31
|
+
#
|
32
|
+
# @param json_object [String]
|
33
|
+
# @return [SSOReady::UpdateSAMLConnectionResponse]
|
34
|
+
def self.from_json(json_object:)
|
35
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
36
|
+
parsed_json = JSON.parse(json_object)
|
37
|
+
if parsed_json["samlConnection"].nil?
|
38
|
+
saml_connection = nil
|
39
|
+
else
|
40
|
+
saml_connection = parsed_json["samlConnection"].to_json
|
41
|
+
saml_connection = SSOReady::SAMLConnection.from_json(json_object: saml_connection)
|
42
|
+
end
|
43
|
+
new(saml_connection: saml_connection, additional_properties: struct)
|
44
|
+
end
|
45
|
+
|
46
|
+
# Serialize an instance of UpdateSAMLConnectionResponse to a JSON object
|
47
|
+
#
|
48
|
+
# @return [String]
|
49
|
+
def to_json(*_args)
|
50
|
+
@_field_set&.to_json
|
51
|
+
end
|
52
|
+
|
53
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
54
|
+
# hash and check each fields type against the current object's property
|
55
|
+
# definitions.
|
56
|
+
#
|
57
|
+
# @param obj [Object]
|
58
|
+
# @return [Void]
|
59
|
+
def self.validate_raw(obj:)
|
60
|
+
obj.saml_connection.nil? || SSOReady::SAMLConnection.validate_raw(obj: obj.saml_connection)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|