@vendasta/iam 2.3.1 → 3.0.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.
- package/esm2020/lib/_generated/host.service.mjs +3 -3
- package/esm2020/lib/_internal/iam.api.service.mjs +3 -3
- package/esm2020/lib/_internal/objects/annotations.mjs +6 -6
- package/esm2020/lib/_internal/objects/api.mjs +360 -360
- package/esm2020/lib/_internal/objects/attributes.mjs +30 -30
- package/esm2020/lib/_internal/objects/field-mask.mjs +6 -6
- package/esm2020/lib/_internal/objects/policies.mjs +46 -46
- package/esm2020/lib/_internal/objects/resources.mjs +35 -35
- package/esm2020/lib/_internal/objects/security-logs.mjs +7 -7
- package/esm2020/lib/_internal/objects/subjects.mjs +62 -62
- package/esm2020/lib/_internal/objects/users.mjs +27 -27
- package/esm2020/lib/_internal/user-iam.api.service.mjs +3 -3
- package/esm2020/lib/http/http.mjs +23 -23
- package/esm2020/lib/http/iam.http.api.service.mjs +3 -3
- package/esm2020/lib/iam.service.mjs +11 -24
- package/fesm2015/vendasta-iam.mjs +973 -985
- package/fesm2015/vendasta-iam.mjs.map +1 -1
- package/fesm2020/vendasta-iam.mjs +2281 -2293
- package/fesm2020/vendasta-iam.mjs.map +1 -1
- package/lib/iam.service.d.ts +4 -8
- package/lib/personas/salesperson.d.ts +1 -1
- package/package.json +5 -7
- package/src/README.md +0 -113
- /package/{vendasta-iam.d.ts → index.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vendasta-iam.mjs","sources":["../../../iam_sdk/src/lib/_internal/objects/attributes.ts","../../../iam_sdk/src/lib/_internal/enums/policies.enum.ts","../../../iam_sdk/src/lib/_internal/enums/resources.enum.ts","../../../iam_sdk/src/lib/_internal/enums/subjects.enum.ts","../../../iam_sdk/src/lib/_internal/enums/users.enum.ts","../../../iam_sdk/src/lib/_internal/enums/api.enum.ts","../../../iam_sdk/src/lib/_internal/enums/index.ts","../../../iam_sdk/src/lib/_internal/objects/subjects.ts","../../../iam_sdk/src/lib/_internal/objects/field-mask.ts","../../../iam_sdk/src/lib/_internal/objects/policies.ts","../../../iam_sdk/src/lib/_internal/objects/resources.ts","../../../iam_sdk/src/lib/_internal/objects/security-logs.ts","../../../iam_sdk/src/lib/_internal/objects/users.ts","../../../iam_sdk/src/lib/_internal/objects/api.ts","../../../iam_sdk/src/lib/_internal/objects/annotations.ts","../../../iam_sdk/src/lib/_internal/objects/index.ts","../../../iam_sdk/src/lib/_generated/host.service.ts","../../../iam_sdk/src/lib/_internal/user-iam.api.service.ts","../../../iam_sdk/src/lib/http/http.ts","../../../iam_sdk/src/lib/http/iam.http.api.service.ts","../../../iam_sdk/src/lib/personas/persona-type.enum.ts","../../../iam_sdk/src/lib/personas/base-personas.ts","../../../iam_sdk/src/lib/personas/developer.ts","../../../iam_sdk/src/lib/personas/partner.ts","../../../iam_sdk/src/lib/personas/partner-app.ts","../../../iam_sdk/src/lib/personas/salesperson.ts","../../../iam_sdk/src/lib/personas/smb.ts","../../../iam_sdk/src/lib/personas/vendor.ts","../../../iam_sdk/src/lib/personas/digital-agent.ts","../../../iam_sdk/src/lib/personas/success.ts","../../../iam_sdk/src/lib/personas/account-group.ts","../../../iam_sdk/src/lib/personas/crm-role.ts","../../../iam_sdk/src/lib/personas/personas.ts","../../../iam_sdk/src/lib/_internal/iam.api.service.ts","../../../iam_sdk/src/lib/iam.service.ts","../../../iam_sdk/src/lib/_internal/index.ts","../../../iam_sdk/src/vendasta-iam.ts"],"sourcesContent":["// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Attribute implements i.AttributeInterface {\n intAttribute: number;\n doubleAttribute: number;\n stringAttribute: string;\n boolAttribute: boolean;\n structAttribute: StructAttribute;\n listAttribute: ListAttribute;\n timestampAttribute: Date;\n geopointAttribute: GeoPointAttribute;\n\n static fromProto(proto: any): Attribute {\n let m = new Attribute();\n m = Object.assign(m, proto);\n if (proto.intAttribute) {m.intAttribute = parseInt(proto.intAttribute, 10);}\n if (proto.structAttribute) {m.structAttribute = StructAttribute.fromProto(proto.structAttribute);}\n if (proto.listAttribute) {m.listAttribute = ListAttribute.fromProto(proto.listAttribute);}\n if (proto.timestampAttribute) {m.timestampAttribute = new Date(proto.timestampAttribute);}\n if (proto.geopointAttribute) {m.geopointAttribute = GeoPointAttribute.fromProto(proto.geopointAttribute);}\n return m;\n }\n\n constructor(kwargs?: i.AttributeInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.intAttribute !== 'undefined') {toReturn['intAttribute'] = this.intAttribute;}\n if (typeof this.doubleAttribute !== 'undefined') {toReturn['doubleAttribute'] = this.doubleAttribute;}\n if (typeof this.stringAttribute !== 'undefined') {toReturn['stringAttribute'] = this.stringAttribute;}\n if (typeof this.boolAttribute !== 'undefined') {toReturn['boolAttribute'] = this.boolAttribute;}\n if (typeof this.structAttribute !== 'undefined' && this.structAttribute !== null) {toReturn['structAttribute'] = 'toApiJson' in this.structAttribute ? (this.structAttribute as any).toApiJson() : this.structAttribute;}\n if (typeof this.listAttribute !== 'undefined' && this.listAttribute !== null) {toReturn['listAttribute'] = 'toApiJson' in this.listAttribute ? (this.listAttribute as any).toApiJson() : this.listAttribute;}\n if (typeof this.timestampAttribute !== 'undefined' && this.timestampAttribute !== null) {toReturn['timestampAttribute'] = 'toApiJson' in this.timestampAttribute ? (this.timestampAttribute as any).toApiJson() : this.timestampAttribute;}\n if (typeof this.geopointAttribute !== 'undefined' && this.geopointAttribute !== null) {toReturn['geopointAttribute'] = 'toApiJson' in this.geopointAttribute ? (this.geopointAttribute as any).toApiJson() : this.geopointAttribute;}\n return toReturn;\n }\n}\n\nexport class StructAttributeAttributesEntry implements i.StructAttributeAttributesEntryInterface {\n key: string;\n value: Attribute;\n\n static fromProto(proto: any): StructAttributeAttributesEntry {\n let m = new StructAttributeAttributesEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = Attribute.fromProto(proto.value);}\n return m;\n }\n\n constructor(kwargs?: i.StructAttributeAttributesEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined' && this.value !== null) {toReturn['value'] = 'toApiJson' in this.value ? (this.value as any).toApiJson() : this.value;}\n return toReturn;\n }\n}\n\nexport class GeoPointAttribute implements i.GeoPointAttributeInterface {\n latitude: number;\n longitude: number;\n\n static fromProto(proto: any): GeoPointAttribute {\n let m = new GeoPointAttribute();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GeoPointAttributeInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.latitude !== 'undefined') {toReturn['latitude'] = this.latitude;}\n if (typeof this.longitude !== 'undefined') {toReturn['longitude'] = this.longitude;}\n return toReturn;\n }\n}\n\nexport class ListAttribute implements i.ListAttributeInterface {\n attributes: Attribute[];\n\n static fromProto(proto: any): ListAttribute {\n let m = new ListAttribute();\n m = Object.assign(m, proto);\n if (proto.attributes) {m.attributes = proto.attributes.map(Attribute.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.ListAttributeInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {toReturn['attributes'] = 'toApiJson' in this.attributes ? (this.attributes as any).toApiJson() : this.attributes;}\n return toReturn;\n }\n}\n\nexport class StructAttribute implements i.StructAttributeInterface {\n attributes: {[key: string]: Attribute};\n\n static fromProto(proto: any): StructAttribute {\n let m = new StructAttribute();\n m = Object.assign(m, proto);\n if (proto.attributes) {m.attributes = Object.keys(proto.attributes).reduce<any>((obj, k) => { obj[k] = Attribute.fromProto(proto.attributes[k]); return obj; }, {});}\n return m;\n }\n\n constructor(kwargs?: i.StructAttributeInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {toReturn['attributes'] = 'toApiJson' in this.attributes ? (this.attributes as any).toApiJson() : this.attributes;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum BooleanOperator {\n AND = 0,\n OR = 1,\n NOT = 2,\n}\n\nexport enum ForOperator {\n ANY = 0,\n ALL = 1,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum AccessScope {\n READ = 0,\n WRITE = 1,\n DELETE = 2,\n LIST = 3,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum AlgorithmType {\n ALGORITHM_TYPE_ES256 = 0,\n ALGORITHM_TYPE_RS256 = 1,\n}\n\nexport enum OrderByDirection {\n ASCENDING = 0,\n DESCENDING = 1,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum RestrictionType {\n RESTRICTION_TYPE_UNSET = 0,\n RESTRICTION_TYPE_RESET_PASSWORD_BEFORE_LOGIN = 1,\n RESTRICTION_TYPE_FROZEN = 2,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum SortDirection {\n SORT_DIRECTION_INVALID = 0,\n SORT_DIRECTION_ASCENDING = 1,\n SORT_DIRECTION_DESCENDING = 2,\n}\n\nexport enum UserSortField {\n USER_SORT_FIELD_INVALID = 0,\n USER_SORT_FIELD_CREATED = 1,\n USER_SORT_FIELD_FIRST_NAME = 2,\n USER_SORT_FIELD_LAST_NAME = 3,\n USER_SORT_FIELD_EMAIL = 4,\n USER_SORT_FIELD_LAST_LOGIN = 5,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums Index.\n// *********************************\nexport {\n BooleanOperator,\n ForOperator,\n} from './policies.enum';\nexport {\n AccessScope,\n} from './resources.enum';\nexport {\n AlgorithmType,\n OrderByDirection,\n} from './subjects.enum';\nexport {\n RestrictionType,\n} from './users.enum';\nexport {\n SortDirection,\n UserSortField,\n} from './api.enum';\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { StructAttribute } from './attributes';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Context implements i.ContextInterface {\n namespaced: NamespacedContext;\n typed: TypedContext;\n\n static fromProto(proto: any): Context {\n let m = new Context();\n m = Object.assign(m, proto);\n if (proto.namespaced) {m.namespaced = NamespacedContext.fromProto(proto.namespaced);}\n if (proto.typed) {m.typed = TypedContext.fromProto(proto.typed);}\n return m;\n }\n\n constructor(kwargs?: i.ContextInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.namespaced !== 'undefined' && this.namespaced !== null) {toReturn['namespaced'] = 'toApiJson' in this.namespaced ? (this.namespaced as any).toApiJson() : this.namespaced;}\n if (typeof this.typed !== 'undefined' && this.typed !== null) {toReturn['typed'] = 'toApiJson' in this.typed ? (this.typed as any).toApiJson() : this.typed;}\n return toReturn;\n }\n}\n\nexport class MultiValueAttribute implements i.MultiValueAttributeInterface {\n key: string;\n values: string[];\n\n static fromProto(proto: any): MultiValueAttribute {\n let m = new MultiValueAttribute();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.MultiValueAttributeInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.values !== 'undefined') {toReturn['values'] = this.values;}\n return toReturn;\n }\n}\n\nexport class Mutation implements i.MutationInterface {\n add: SingleValueAttribute;\n replace: MultiValueAttribute;\n remove: SingleValueAttribute;\n dropKey: string;\n replaceAttributes: StructAttribute;\n addAttributes: StructAttribute;\n removeAttributes: StructAttribute;\n\n static fromProto(proto: any): Mutation {\n let m = new Mutation();\n m = Object.assign(m, proto);\n if (proto.add) {m.add = SingleValueAttribute.fromProto(proto.add);}\n if (proto.replace) {m.replace = MultiValueAttribute.fromProto(proto.replace);}\n if (proto.remove) {m.remove = SingleValueAttribute.fromProto(proto.remove);}\n if (proto.replaceAttributes) {m.replaceAttributes = StructAttribute.fromProto(proto.replaceAttributes);}\n if (proto.addAttributes) {m.addAttributes = StructAttribute.fromProto(proto.addAttributes);}\n if (proto.removeAttributes) {m.removeAttributes = StructAttribute.fromProto(proto.removeAttributes);}\n return m;\n }\n\n constructor(kwargs?: i.MutationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.add !== 'undefined' && this.add !== null) {toReturn['add'] = 'toApiJson' in this.add ? (this.add as any).toApiJson() : this.add;}\n if (typeof this.replace !== 'undefined' && this.replace !== null) {toReturn['replace'] = 'toApiJson' in this.replace ? (this.replace as any).toApiJson() : this.replace;}\n if (typeof this.remove !== 'undefined' && this.remove !== null) {toReturn['remove'] = 'toApiJson' in this.remove ? (this.remove as any).toApiJson() : this.remove;}\n if (typeof this.dropKey !== 'undefined') {toReturn['dropKey'] = this.dropKey;}\n if (typeof this.replaceAttributes !== 'undefined' && this.replaceAttributes !== null) {toReturn['replaceAttributes'] = 'toApiJson' in this.replaceAttributes ? (this.replaceAttributes as any).toApiJson() : this.replaceAttributes;}\n if (typeof this.addAttributes !== 'undefined' && this.addAttributes !== null) {toReturn['addAttributes'] = 'toApiJson' in this.addAttributes ? (this.addAttributes as any).toApiJson() : this.addAttributes;}\n if (typeof this.removeAttributes !== 'undefined' && this.removeAttributes !== null) {toReturn['removeAttributes'] = 'toApiJson' in this.removeAttributes ? (this.removeAttributes as any).toApiJson() : this.removeAttributes;}\n return toReturn;\n }\n}\n\nexport class NamespacedContext implements i.NamespacedContextInterface {\n namespace: string;\n type: string;\n\n static fromProto(proto: any): NamespacedContext {\n let m = new NamespacedContext();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.NamespacedContextInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.namespace !== 'undefined') {toReturn['namespace'] = this.namespace;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n return toReturn;\n }\n}\n\nexport class Persona implements i.PersonaInterface {\n subject: Subject;\n context: Context;\n\n static fromProto(proto: any): Persona {\n let m = new Persona();\n m = Object.assign(m, proto);\n if (proto.subject) {m.subject = Subject.fromProto(proto.subject);}\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n return m;\n }\n\n constructor(kwargs?: i.PersonaInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subject !== 'undefined' && this.subject !== null) {toReturn['subject'] = 'toApiJson' in this.subject ? (this.subject as any).toApiJson() : this.subject;}\n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n return toReturn;\n }\n}\n\nexport class PublicKey implements i.PublicKeyInterface {\n key: string;\n id: string;\n algorithmType: e.AlgorithmType;\n\n static fromProto(proto: any): PublicKey {\n let m = new PublicKey();\n m = Object.assign(m, proto);\n if (proto.algorithmType) {m.algorithmType = enumStringToValue<e.AlgorithmType>(e.AlgorithmType, proto.algorithmType);}\n return m;\n }\n\n constructor(kwargs?: i.PublicKeyInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.algorithmType !== 'undefined') {toReturn['algorithmType'] = this.algorithmType;}\n return toReturn;\n }\n}\n\nexport class Query implements i.QueryInterface {\n searchTerm: string;\n attributeKeys: string[];\n\n static fromProto(proto: any): Query {\n let m = new Query();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.QueryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.searchTerm !== 'undefined') {toReturn['searchTerm'] = this.searchTerm;}\n if (typeof this.attributeKeys !== 'undefined') {toReturn['attributeKeys'] = this.attributeKeys;}\n return toReturn;\n }\n}\n\nexport class SingleValueAttribute implements i.SingleValueAttributeInterface {\n key: string;\n value: string;\n\n static fromProto(proto: any): SingleValueAttribute {\n let m = new SingleValueAttribute();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SingleValueAttributeInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined') {toReturn['value'] = this.value;}\n return toReturn;\n }\n}\n\nexport class Subject implements i.SubjectInterface {\n subjectId: string;\n email: string;\n userId: string;\n partnerId: string;\n attributes: MultiValueAttribute[];\n created: Date;\n updated: Date;\n lastLogin: Date;\n publicKeys: PublicKey[];\n structAttributes: StructAttribute;\n\n static fromProto(proto: any): Subject {\n let m = new Subject();\n m = Object.assign(m, proto);\n if (proto.attributes) {m.attributes = proto.attributes.map(MultiValueAttribute.fromProto);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.lastLogin) {m.lastLogin = new Date(proto.lastLogin);}\n if (proto.publicKeys) {m.publicKeys = proto.publicKeys.map(PublicKey.fromProto);}\n if (proto.structAttributes) {m.structAttributes = StructAttribute.fromProto(proto.structAttributes);}\n return m;\n }\n\n constructor(kwargs?: i.SubjectInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n if (typeof this.partnerId !== 'undefined') {toReturn['partnerId'] = this.partnerId;}\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {toReturn['attributes'] = 'toApiJson' in this.attributes ? (this.attributes as any).toApiJson() : this.attributes;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.lastLogin !== 'undefined' && this.lastLogin !== null) {toReturn['lastLogin'] = 'toApiJson' in this.lastLogin ? (this.lastLogin as any).toApiJson() : this.lastLogin;}\n if (typeof this.publicKeys !== 'undefined' && this.publicKeys !== null) {toReturn['publicKeys'] = 'toApiJson' in this.publicKeys ? (this.publicKeys as any).toApiJson() : this.publicKeys;}\n if (typeof this.structAttributes !== 'undefined' && this.structAttributes !== null) {toReturn['structAttributes'] = 'toApiJson' in this.structAttributes ? (this.structAttributes as any).toApiJson() : this.structAttributes;}\n return toReturn;\n }\n}\n\nexport class SubjectResult implements i.SubjectResultInterface {\n subject: Subject;\n\n static fromProto(proto: any): SubjectResult {\n let m = new SubjectResult();\n m = Object.assign(m, proto);\n if (proto.subject) {m.subject = Subject.fromProto(proto.subject);}\n return m;\n }\n\n constructor(kwargs?: i.SubjectResultInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subject !== 'undefined' && this.subject !== null) {toReturn['subject'] = 'toApiJson' in this.subject ? (this.subject as any).toApiJson() : this.subject;}\n return toReturn;\n }\n}\n\nexport class TypedContext implements i.TypedContextInterface {\n type: string;\n\n static fromProto(proto: any): TypedContext {\n let m = new TypedContext();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.TypedContextInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class FieldMask implements i.FieldMaskInterface {\n paths: string[];\n\n static fromProto(proto: any): FieldMask {\n let m = new FieldMask();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.FieldMaskInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.paths !== 'undefined') {toReturn['paths'] = this.paths;}\n return toReturn;\n }\n}\n\n","// NOTE: THIS HAS BEEN MANUALLY EDITED. PLEASE SEE THE BELOW COMMENTS TO SEE WHERE IT HAS BEEN EDITED\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { Attribute } from './attributes';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class IfClause implements i.IfClauseInterface {\n resourceAttributeName: string;\n resourceAttributeValue: Attribute;\n thenPolicy: PolicyNode;\n elsePolicy: PolicyNode;\n\n static fromProto(proto: any): IfClause {\n let m = new IfClause();\n m = Object.assign(m, proto);\n if (proto.resourceAttributeValue) {m.resourceAttributeValue = Attribute.fromProto(proto.resourceAttributeValue);}\n if (proto.thenPolicy) {m.thenPolicy = PolicyNode.fromProto(proto.thenPolicy);}\n if (proto.elsePolicy) {m.elsePolicy = PolicyNode.fromProto(proto.elsePolicy);}\n return m;\n }\n\n constructor(kwargs?: i.IfClauseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.resourceAttributeName !== 'undefined') {toReturn['resourceAttributeName'] = this.resourceAttributeName;}\n if (typeof this.resourceAttributeValue !== 'undefined' && this.resourceAttributeValue !== null) {toReturn['resourceAttributeValue'] = 'toApiJson' in this.resourceAttributeValue ? (this.resourceAttributeValue as any).toApiJson() : this.resourceAttributeValue;}\n if (typeof this.thenPolicy !== 'undefined' && this.thenPolicy !== null) {toReturn['thenPolicy'] = 'toApiJson' in this.thenPolicy ? (this.thenPolicy as any).toApiJson() : this.thenPolicy;}\n if (typeof this.elsePolicy !== 'undefined' && this.elsePolicy !== null) {toReturn['elsePolicy'] = 'toApiJson' in this.elsePolicy ? (this.elsePolicy as any).toApiJson() : this.elsePolicy;}\n return toReturn;\n }\n}\n\nexport class Operator implements i.OperatorInterface {\n\n // Edited from e.policiesBooleanOperator to e.BooleanOperator\n operator: e.BooleanOperator;\n children: PolicyNode[];\n\n static fromProto(proto: any): Operator {\n let m = new Operator();\n m = Object.assign(m, proto);\n\n // Edited from e.policiesBooleanOperator to e.BooleanOperator\n if (proto.operator) {m.operator = enumStringToValue<e.BooleanOperator>(e.BooleanOperator, proto.operator);}\n if (proto.children) {m.children = proto.children.map(PolicyNode.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.OperatorInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.operator !== 'undefined') {toReturn['operator'] = this.operator;}\n if (typeof this.children !== 'undefined' && this.children !== null) {toReturn['children'] = 'toApiJson' in this.children ? (this.children as any).toApiJson() : this.children;}\n return toReturn;\n }\n}\n\nexport class PolicyNode implements i.PolicyNodeInterface {\n subjectResourceIntersection: SubjectResourceIntersectionClause;\n operator: Operator;\n subjectValueIntersection: SubjectValueIntersectionClause;\n subjectMissingValue: SubjectMissingValueClause;\n subjectResourceSubset: SubjectResourceSubsetClause;\n subjectResourceFor: SubjectResourceForClause;\n ifClause: IfClause;\n\n static fromProto(proto: any): PolicyNode {\n let m = new PolicyNode();\n m = Object.assign(m, proto);\n if (proto.subjectResourceIntersection) {m.subjectResourceIntersection = SubjectResourceIntersectionClause.fromProto(proto.subjectResourceIntersection);}\n if (proto.operator) {m.operator = Operator.fromProto(proto.operator);}\n if (proto.subjectValueIntersection) {m.subjectValueIntersection = SubjectValueIntersectionClause.fromProto(proto.subjectValueIntersection);}\n if (proto.subjectMissingValue) {m.subjectMissingValue = SubjectMissingValueClause.fromProto(proto.subjectMissingValue);}\n if (proto.subjectResourceSubset) {m.subjectResourceSubset = SubjectResourceSubsetClause.fromProto(proto.subjectResourceSubset);}\n if (proto.subjectResourceFor) {m.subjectResourceFor = SubjectResourceForClause.fromProto(proto.subjectResourceFor);}\n if (proto.ifClause) {m.ifClause = IfClause.fromProto(proto.ifClause);}\n return m;\n }\n\n constructor(kwargs?: i.PolicyNodeInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subjectResourceIntersection !== 'undefined' && this.subjectResourceIntersection !== null) {toReturn['subjectResourceIntersection'] = 'toApiJson' in this.subjectResourceIntersection ? (this.subjectResourceIntersection as any).toApiJson() : this.subjectResourceIntersection;}\n if (typeof this.operator !== 'undefined' && this.operator !== null) {toReturn['operator'] = 'toApiJson' in this.operator ? (this.operator as any).toApiJson() : this.operator;}\n if (typeof this.subjectValueIntersection !== 'undefined' && this.subjectValueIntersection !== null) {toReturn['subjectValueIntersection'] = 'toApiJson' in this.subjectValueIntersection ? (this.subjectValueIntersection as any).toApiJson() : this.subjectValueIntersection;}\n if (typeof this.subjectMissingValue !== 'undefined' && this.subjectMissingValue !== null) {toReturn['subjectMissingValue'] = 'toApiJson' in this.subjectMissingValue ? (this.subjectMissingValue as any).toApiJson() : this.subjectMissingValue;}\n if (typeof this.subjectResourceSubset !== 'undefined' && this.subjectResourceSubset !== null) {toReturn['subjectResourceSubset'] = 'toApiJson' in this.subjectResourceSubset ? (this.subjectResourceSubset as any).toApiJson() : this.subjectResourceSubset;}\n if (typeof this.subjectResourceFor !== 'undefined' && this.subjectResourceFor !== null) {toReturn['subjectResourceFor'] = 'toApiJson' in this.subjectResourceFor ? (this.subjectResourceFor as any).toApiJson() : this.subjectResourceFor;}\n if (typeof this.ifClause !== 'undefined' && this.ifClause !== null) {toReturn['ifClause'] = 'toApiJson' in this.ifClause ? (this.ifClause as any).toApiJson() : this.ifClause;}\n return toReturn;\n }\n}\n\nexport class SubjectMissingValueClause implements i.SubjectMissingValueClauseInterface {\n attributeName: string;\n\n static fromProto(proto: any): SubjectMissingValueClause {\n let m = new SubjectMissingValueClause();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SubjectMissingValueClauseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.attributeName !== 'undefined') {toReturn['attributeName'] = this.attributeName;}\n return toReturn;\n }\n}\n\nexport class SubjectResourceForClause implements i.SubjectResourceForClauseInterface {\n attributeName: string;\n // Edited from e.policiesForOperator to e.ForOperator\n operator: e.ForOperator;\n rules: PolicyNode;\n\n static fromProto(proto: any): SubjectResourceForClause {\n let m = new SubjectResourceForClause();\n m = Object.assign(m, proto);\n if (proto.operator) {m.operator = enumStringToValue<e.ForOperator>(e.ForOperator, proto.operator);}\n if (proto.rules) {m.rules = PolicyNode.fromProto(proto.rules);}\n return m;\n }\n\n constructor(kwargs?: i.SubjectResourceForClauseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.attributeName !== 'undefined') {toReturn['attributeName'] = this.attributeName;}\n if (typeof this.operator !== 'undefined') {toReturn['operator'] = this.operator;}\n if (typeof this.rules !== 'undefined' && this.rules !== null) {toReturn['rules'] = 'toApiJson' in this.rules ? (this.rules as any).toApiJson() : this.rules;}\n return toReturn;\n }\n}\n\nexport class SubjectResourceIntersectionClause implements i.SubjectResourceIntersectionClauseInterface {\n attributeName: string;\n resourceAttributeName: string;\n\n static fromProto(proto: any): SubjectResourceIntersectionClause {\n let m = new SubjectResourceIntersectionClause();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SubjectResourceIntersectionClauseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.attributeName !== 'undefined') {toReturn['attributeName'] = this.attributeName;}\n if (typeof this.resourceAttributeName !== 'undefined') {toReturn['resourceAttributeName'] = this.resourceAttributeName;}\n return toReturn;\n }\n}\n\nexport class SubjectResourceSubsetClause implements i.SubjectResourceSubsetClauseInterface {\n attributeName: string;\n resourceAttributeName: string;\n\n static fromProto(proto: any): SubjectResourceSubsetClause {\n let m = new SubjectResourceSubsetClause();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SubjectResourceSubsetClauseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.attributeName !== 'undefined') {toReturn['attributeName'] = this.attributeName;}\n if (typeof this.resourceAttributeName !== 'undefined') {toReturn['resourceAttributeName'] = this.resourceAttributeName;}\n return toReturn;\n }\n}\n\nexport class SubjectValueIntersectionClause implements i.SubjectValueIntersectionClauseInterface {\n attributeName: string;\n attributeValue: string;\n structuredAttributeValue: Attribute;\n\n static fromProto(proto: any): SubjectValueIntersectionClause {\n let m = new SubjectValueIntersectionClause();\n m = Object.assign(m, proto);\n if (proto.structuredAttributeValue) {m.structuredAttributeValue = Attribute.fromProto(proto.structuredAttributeValue);}\n return m;\n }\n\n constructor(kwargs?: i.SubjectValueIntersectionClauseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.attributeName !== 'undefined') {toReturn['attributeName'] = this.attributeName;}\n if (typeof this.attributeValue !== 'undefined') {toReturn['attributeValue'] = this.attributeValue;}\n if (typeof this.structuredAttributeValue !== 'undefined' && this.structuredAttributeValue !== null) {toReturn['structuredAttributeValue'] = 'toApiJson' in this.structuredAttributeValue ? (this.structuredAttributeValue as any).toApiJson() : this.structuredAttributeValue;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { PolicyNode } from './policies';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class AccessCheckFailures implements i.AccessCheckFailuresInterface {\n failures: ResourceIdentifier[];\n\n static fromProto(proto: any): AccessCheckFailures {\n let m = new AccessCheckFailures();\n m = Object.assign(m, proto);\n if (proto.failures) {m.failures = proto.failures.map(ResourceIdentifier.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.AccessCheckFailuresInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.failures !== 'undefined' && this.failures !== null) {toReturn['failures'] = 'toApiJson' in this.failures ? (this.failures as any).toApiJson() : this.failures;}\n return toReturn;\n }\n}\n\nexport class ResourceIdentifierIdentifiersEntry implements i.ResourceIdentifierIdentifiersEntryInterface {\n key: string;\n value: ValueList;\n\n static fromProto(proto: any): ResourceIdentifierIdentifiersEntry {\n let m = new ResourceIdentifierIdentifiersEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = ValueList.fromProto(proto.value);}\n return m;\n }\n\n constructor(kwargs?: i.ResourceIdentifierIdentifiersEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined' && this.value !== null) {toReturn['value'] = 'toApiJson' in this.value ? (this.value as any).toApiJson() : this.value;}\n return toReturn;\n }\n}\n\nexport class Policy implements i.PolicyInterface {\n appId: string;\n resourceId: string;\n policyId: string;\n policyName: string;\n operations: e.AccessScope[];\n actions: string[];\n policy: PolicyNode;\n\n static fromProto(proto: any): Policy {\n let m = new Policy();\n m = Object.assign(m, proto);\n if (proto.operations) {m.operations = proto.operations.map((v: string) => enumStringToValue<e.AccessScope>(e.AccessScope, v));}\n if (proto.policy) {m.policy = PolicyNode.fromProto(proto.policy);}\n return m;\n }\n\n constructor(kwargs?: i.PolicyInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.appId !== 'undefined') {toReturn['appId'] = this.appId;}\n if (typeof this.resourceId !== 'undefined') {toReturn['resourceId'] = this.resourceId;}\n if (typeof this.policyId !== 'undefined') {toReturn['policyId'] = this.policyId;}\n if (typeof this.policyName !== 'undefined') {toReturn['policyName'] = this.policyName;}\n if (typeof this.operations !== 'undefined') {toReturn['operations'] = this.operations;}\n if (typeof this.actions !== 'undefined') {toReturn['actions'] = this.actions;}\n if (typeof this.policy !== 'undefined' && this.policy !== null) {toReturn['policy'] = 'toApiJson' in this.policy ? (this.policy as any).toApiJson() : this.policy;}\n return toReturn;\n }\n}\n\nexport class ResourceIdentifier implements i.ResourceIdentifierInterface {\n identifiers: {[key: string]: ValueList};\n\n static fromProto(proto: any): ResourceIdentifier {\n let m = new ResourceIdentifier();\n m = Object.assign(m, proto);\n if (proto.identifiers) {m.identifiers = Object.keys(proto.identifiers).reduce<any>((obj, k) => { obj[k] = ValueList.fromProto(proto.identifiers[k]); return obj; }, {});}\n return m;\n }\n\n constructor(kwargs?: i.ResourceIdentifierInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.identifiers !== 'undefined' && this.identifiers !== null) {toReturn['identifiers'] = 'toApiJson' in this.identifiers ? (this.identifiers as any).toApiJson() : this.identifiers;}\n return toReturn;\n }\n}\n\nexport class ResourceOwner implements i.ResourceOwnerInterface {\n appId: string;\n appName: string;\n\n static fromProto(proto: any): ResourceOwner {\n let m = new ResourceOwner();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ResourceOwnerInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.appId !== 'undefined') {toReturn['appId'] = this.appId;}\n if (typeof this.appName !== 'undefined') {toReturn['appName'] = this.appName;}\n return toReturn;\n }\n}\n\nexport class ValueList implements i.ValueListInterface {\n values: string[];\n\n static fromProto(proto: any): ValueList {\n let m = new ValueList();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ValueListInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.values !== 'undefined') {toReturn['values'] = this.values;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class SecurityLog implements i.SecurityLogInterface {\n userId: string;\n actionId: string;\n logId: string;\n description: string;\n created: Date;\n\n static fromProto(proto: any): SecurityLog {\n let m = new SecurityLog();\n m = Object.assign(m, proto);\n if (proto.created) {m.created = new Date(proto.created);}\n return m;\n }\n\n constructor(kwargs?: i.SecurityLogInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n if (typeof this.actionId !== 'undefined') {toReturn['actionId'] = this.actionId;}\n if (typeof this.logId !== 'undefined') {toReturn['logId'] = this.logId;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { PublicKey } from './subjects';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Identifier implements i.IdentifierInterface {\n subjectId: string;\n userId: string;\n\n static fromProto(proto: any): Identifier {\n let m = new Identifier();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.IdentifierInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n return toReturn;\n }\n}\n\nexport class NamespacedEmail implements i.NamespacedEmailInterface {\n namespace: string;\n email: string;\n\n static fromProto(proto: any): NamespacedEmail {\n let m = new NamespacedEmail();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.NamespacedEmailInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.namespace !== 'undefined') {toReturn['namespace'] = this.namespace;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n return toReturn;\n }\n}\n\nexport class NamespacedSession implements i.NamespacedSessionInterface {\n namespace: string;\n session: string;\n\n static fromProto(proto: any): NamespacedSession {\n let m = new NamespacedSession();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.NamespacedSessionInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.namespace !== 'undefined') {toReturn['namespace'] = this.namespace;}\n if (typeof this.session !== 'undefined') {toReturn['session'] = this.session;}\n return toReturn;\n }\n}\n\nexport class TypedExternalIdentifier implements i.TypedExternalIdentifierInterface {\n externalIdType: string;\n externalId: string;\n\n static fromProto(proto: any): TypedExternalIdentifier {\n let m = new TypedExternalIdentifier();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.TypedExternalIdentifierInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.externalIdType !== 'undefined') {toReturn['externalIdType'] = this.externalIdType;}\n if (typeof this.externalId !== 'undefined') {toReturn['externalId'] = this.externalId;}\n return toReturn;\n }\n}\n\nexport class User implements i.UserInterface {\n userId: string;\n namespace: string;\n email: string;\n created: Date;\n updated: Date;\n firstName: string;\n greetingName: string;\n lastName: string;\n languageCode: string;\n emailVerified: boolean;\n roles: string[];\n lastLogin: Date;\n publicKeys: PublicKey[];\n\n static fromProto(proto: any): User {\n let m = new User();\n m = Object.assign(m, proto);\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.lastLogin) {m.lastLogin = new Date(proto.lastLogin);}\n if (proto.publicKeys) {m.publicKeys = proto.publicKeys.map(PublicKey.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.UserInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n if (typeof this.namespace !== 'undefined') {toReturn['namespace'] = this.namespace;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.firstName !== 'undefined') {toReturn['firstName'] = this.firstName;}\n if (typeof this.greetingName !== 'undefined') {toReturn['greetingName'] = this.greetingName;}\n if (typeof this.lastName !== 'undefined') {toReturn['lastName'] = this.lastName;}\n if (typeof this.languageCode !== 'undefined') {toReturn['languageCode'] = this.languageCode;}\n if (typeof this.emailVerified !== 'undefined') {toReturn['emailVerified'] = this.emailVerified;}\n if (typeof this.roles !== 'undefined') {toReturn['roles'] = this.roles;}\n if (typeof this.lastLogin !== 'undefined' && this.lastLogin !== null) {toReturn['lastLogin'] = 'toApiJson' in this.lastLogin ? (this.lastLogin as any).toApiJson() : this.lastLogin;}\n if (typeof this.publicKeys !== 'undefined' && this.publicKeys !== null) {toReturn['publicKeys'] = 'toApiJson' in this.publicKeys ? (this.publicKeys as any).toApiJson() : this.publicKeys;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { Context, SubjectResult, Persona, Mutation, MultiValueAttribute, Query, SingleValueAttribute } from './subjects';\nimport { FieldMask } from './field-mask';\nimport { ResourceIdentifier, Policy, ResourceOwner, ValueList } from './resources';\nimport { SecurityLog } from './security-logs';\nimport { StructAttribute } from './attributes';\nimport { TypedExternalIdentifier, Identifier, User, NamespacedEmail, NamespacedSession } from './users';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class AccessResourceRequest implements i.AccessResourceRequestInterface {\n context: Context;\n subjectId: string;\n email: string;\n userId: string;\n session: string;\n ownerId: string;\n resourceId: string;\n resourceEntityIdentifier: {[key: string]: ValueList};\n accessScope: e.AccessScope[];\n actions: string[];\n resourceEntityIdentifiers: ResourceIdentifier[];\n resourceAttributes: StructAttribute;\n\n static fromProto(proto: any): AccessResourceRequest {\n let m = new AccessResourceRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.resourceEntityIdentifier) {m.resourceEntityIdentifier = Object.keys(proto.resourceEntityIdentifier).reduce<any>((obj, k) => { obj[k] = ValueList.fromProto(proto.resourceEntityIdentifier[k]); return obj; }, {});}\n if (proto.accessScope) {m.accessScope = proto.accessScope.map((v: string) => enumStringToValue<e.AccessScope>(e.AccessScope, v));}\n if (proto.resourceEntityIdentifiers) {m.resourceEntityIdentifiers = proto.resourceEntityIdentifiers.map(ResourceIdentifier.fromProto);}\n if (proto.resourceAttributes) {m.resourceAttributes = StructAttribute.fromProto(proto.resourceAttributes);}\n return m;\n }\n\n constructor(kwargs?: i.AccessResourceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n if (typeof this.session !== 'undefined') {toReturn['session'] = this.session;}\n if (typeof this.ownerId !== 'undefined') {toReturn['ownerId'] = this.ownerId;}\n if (typeof this.resourceId !== 'undefined') {toReturn['resourceId'] = this.resourceId;}\n if (typeof this.resourceEntityIdentifier !== 'undefined' && this.resourceEntityIdentifier !== null) {toReturn['resourceEntityIdentifier'] = 'toApiJson' in this.resourceEntityIdentifier ? (this.resourceEntityIdentifier as any).toApiJson() : this.resourceEntityIdentifier;}\n if (typeof this.accessScope !== 'undefined') {toReturn['accessScope'] = this.accessScope;}\n if (typeof this.actions !== 'undefined') {toReturn['actions'] = this.actions;}\n if (typeof this.resourceEntityIdentifiers !== 'undefined' && this.resourceEntityIdentifiers !== null) {toReturn['resourceEntityIdentifiers'] = 'toApiJson' in this.resourceEntityIdentifiers ? (this.resourceEntityIdentifiers as any).toApiJson() : this.resourceEntityIdentifiers;}\n if (typeof this.resourceAttributes !== 'undefined' && this.resourceAttributes !== null) {toReturn['resourceAttributes'] = 'toApiJson' in this.resourceAttributes ? (this.resourceAttributes as any).toApiJson() : this.resourceAttributes;}\n return toReturn;\n }\n}\n\nexport class AddKeyRequest implements i.AddKeyRequestInterface {\n email: string;\n context: Context;\n algorithmType: e.AlgorithmType;\n userIdentifier: UserIdentifier;\n\n static fromProto(proto: any): AddKeyRequest {\n let m = new AddKeyRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.algorithmType) {m.algorithmType = enumStringToValue<e.AlgorithmType>(e.AlgorithmType, proto.algorithmType);}\n if (proto.userIdentifier) {m.userIdentifier = UserIdentifier.fromProto(proto.userIdentifier);}\n return m;\n }\n\n constructor(kwargs?: i.AddKeyRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.algorithmType !== 'undefined') {toReturn['algorithmType'] = this.algorithmType;}\n if (typeof this.userIdentifier !== 'undefined' && this.userIdentifier !== null) {toReturn['userIdentifier'] = 'toApiJson' in this.userIdentifier ? (this.userIdentifier as any).toApiJson() : this.userIdentifier;}\n return toReturn;\n }\n}\n\nexport class AddKeyResponse implements i.AddKeyResponseInterface {\n privateKey: string;\n keyId: string;\n\n static fromProto(proto: any): AddKeyResponse {\n let m = new AddKeyResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.AddKeyResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.privateKey !== 'undefined') {toReturn['privateKey'] = this.privateKey;}\n if (typeof this.keyId !== 'undefined') {toReturn['keyId'] = this.keyId;}\n return toReturn;\n }\n}\n\nexport class AddMultiUserRestrictionRequest implements i.AddMultiUserRestrictionRequestInterface {\n userIdentifiers: UserIdentifier[];\n restrictionType: e.RestrictionType;\n\n static fromProto(proto: any): AddMultiUserRestrictionRequest {\n let m = new AddMultiUserRestrictionRequest();\n m = Object.assign(m, proto);\n if (proto.userIdentifiers) {m.userIdentifiers = proto.userIdentifiers.map(UserIdentifier.fromProto);}\n if (proto.restrictionType) {m.restrictionType = enumStringToValue<e.RestrictionType>(e.RestrictionType, proto.restrictionType);}\n return m;\n }\n\n constructor(kwargs?: i.AddMultiUserRestrictionRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userIdentifiers !== 'undefined' && this.userIdentifiers !== null) {toReturn['userIdentifiers'] = 'toApiJson' in this.userIdentifiers ? (this.userIdentifiers as any).toApiJson() : this.userIdentifiers;}\n if (typeof this.restrictionType !== 'undefined') {toReturn['restrictionType'] = this.restrictionType;}\n return toReturn;\n }\n}\n\nexport class AuthenticateSubjectRequest implements i.AuthenticateSubjectRequestInterface {\n context: Context;\n email: string;\n password: string;\n\n static fromProto(proto: any): AuthenticateSubjectRequest {\n let m = new AuthenticateSubjectRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n return m;\n }\n\n constructor(kwargs?: i.AuthenticateSubjectRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.password !== 'undefined') {toReturn['password'] = this.password;}\n return toReturn;\n }\n}\n\nexport class ChangeSubjectEmailRequest implements i.ChangeSubjectEmailRequestInterface {\n context: Context;\n subjectId: string;\n newEmail: string;\n\n static fromProto(proto: any): ChangeSubjectEmailRequest {\n let m = new ChangeSubjectEmailRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n return m;\n }\n\n constructor(kwargs?: i.ChangeSubjectEmailRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n if (typeof this.newEmail !== 'undefined') {toReturn['newEmail'] = this.newEmail;}\n return toReturn;\n }\n}\n\nexport class CreateExternalIDRequest implements i.CreateExternalIDRequestInterface {\n userIdentifier: UserIdentifier;\n typedExternalIdentifier: TypedExternalIdentifier;\n\n static fromProto(proto: any): CreateExternalIDRequest {\n let m = new CreateExternalIDRequest();\n m = Object.assign(m, proto);\n if (proto.userIdentifier) {m.userIdentifier = UserIdentifier.fromProto(proto.userIdentifier);}\n if (proto.typedExternalIdentifier) {m.typedExternalIdentifier = TypedExternalIdentifier.fromProto(proto.typedExternalIdentifier);}\n return m;\n }\n\n constructor(kwargs?: i.CreateExternalIDRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userIdentifier !== 'undefined' && this.userIdentifier !== null) {toReturn['userIdentifier'] = 'toApiJson' in this.userIdentifier ? (this.userIdentifier as any).toApiJson() : this.userIdentifier;}\n if (typeof this.typedExternalIdentifier !== 'undefined' && this.typedExternalIdentifier !== null) {toReturn['typedExternalIdentifier'] = 'toApiJson' in this.typedExternalIdentifier ? (this.typedExternalIdentifier as any).toApiJson() : this.typedExternalIdentifier;}\n return toReturn;\n }\n}\n\nexport class CreateSessionRequest implements i.CreateSessionRequestInterface {\n context: Context;\n oauthCredentials: OAuthCredentials;\n subjectCredentials: SubjectCredentials;\n\n static fromProto(proto: any): CreateSessionRequest {\n let m = new CreateSessionRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.oauthCredentials) {m.oauthCredentials = OAuthCredentials.fromProto(proto.oauthCredentials);}\n if (proto.subjectCredentials) {m.subjectCredentials = SubjectCredentials.fromProto(proto.subjectCredentials);}\n return m;\n }\n\n constructor(kwargs?: i.CreateSessionRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.oauthCredentials !== 'undefined' && this.oauthCredentials !== null) {toReturn['oauthCredentials'] = 'toApiJson' in this.oauthCredentials ? (this.oauthCredentials as any).toApiJson() : this.oauthCredentials;}\n if (typeof this.subjectCredentials !== 'undefined' && this.subjectCredentials !== null) {toReturn['subjectCredentials'] = 'toApiJson' in this.subjectCredentials ? (this.subjectCredentials as any).toApiJson() : this.subjectCredentials;}\n return toReturn;\n }\n}\n\nexport class CreateSessionResponse implements i.CreateSessionResponseInterface {\n session: string;\n\n static fromProto(proto: any): CreateSessionResponse {\n let m = new CreateSessionResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.CreateSessionResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.session !== 'undefined') {toReturn['session'] = this.session;}\n return toReturn;\n }\n}\n\nexport class CreateTemporarySubjectRequest implements i.CreateTemporarySubjectRequestInterface {\n context: Context;\n subject: string;\n attributes: StructAttribute;\n\n static fromProto(proto: any): CreateTemporarySubjectRequest {\n let m = new CreateTemporarySubjectRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.attributes) {m.attributes = StructAttribute.fromProto(proto.attributes);}\n return m;\n }\n\n constructor(kwargs?: i.CreateTemporarySubjectRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.subject !== 'undefined') {toReturn['subject'] = this.subject;}\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {toReturn['attributes'] = 'toApiJson' in this.attributes ? (this.attributes as any).toApiJson() : this.attributes;}\n return toReturn;\n }\n}\n\nexport class CreateTemporarySubjectResponse implements i.CreateTemporarySubjectResponseInterface {\n session: string;\n\n static fromProto(proto: any): CreateTemporarySubjectResponse {\n let m = new CreateTemporarySubjectResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.CreateTemporarySubjectResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.session !== 'undefined') {toReturn['session'] = this.session;}\n return toReturn;\n }\n}\n\nexport class DeleteSubjectRequest implements i.DeleteSubjectRequestInterface {\n context: Context;\n subjectId: string;\n\n static fromProto(proto: any): DeleteSubjectRequest {\n let m = new DeleteSubjectRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n return m;\n }\n\n constructor(kwargs?: i.DeleteSubjectRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n return toReturn;\n }\n}\n\nexport class DeleteUserRequest implements i.DeleteUserRequestInterface {\n userIdentifier: UserIdentifier;\n\n static fromProto(proto: any): DeleteUserRequest {\n let m = new DeleteUserRequest();\n m = Object.assign(m, proto);\n if (proto.userIdentifier) {m.userIdentifier = UserIdentifier.fromProto(proto.userIdentifier);}\n return m;\n }\n\n constructor(kwargs?: i.DeleteUserRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userIdentifier !== 'undefined' && this.userIdentifier !== null) {toReturn['userIdentifier'] = 'toApiJson' in this.userIdentifier ? (this.userIdentifier as any).toApiJson() : this.userIdentifier;}\n return toReturn;\n }\n}\n\nexport class ListSecurityLogsRequestFilters implements i.ListSecurityLogsRequestFiltersInterface {\n actionId: string;\n\n static fromProto(proto: any): ListSecurityLogsRequestFilters {\n let m = new ListSecurityLogsRequestFilters();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ListSecurityLogsRequestFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.actionId !== 'undefined') {toReturn['actionId'] = this.actionId;}\n return toReturn;\n }\n}\n\nexport class GetImpersonationTokenRequest implements i.GetImpersonationTokenRequestInterface {\n impersonatee: UserIdentifier;\n impersonator: UserIdentifier;\n\n static fromProto(proto: any): GetImpersonationTokenRequest {\n let m = new GetImpersonationTokenRequest();\n m = Object.assign(m, proto);\n if (proto.impersonatee) {m.impersonatee = UserIdentifier.fromProto(proto.impersonatee);}\n if (proto.impersonator) {m.impersonator = UserIdentifier.fromProto(proto.impersonator);}\n return m;\n }\n\n constructor(kwargs?: i.GetImpersonationTokenRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.impersonatee !== 'undefined' && this.impersonatee !== null) {toReturn['impersonatee'] = 'toApiJson' in this.impersonatee ? (this.impersonatee as any).toApiJson() : this.impersonatee;}\n if (typeof this.impersonator !== 'undefined' && this.impersonator !== null) {toReturn['impersonator'] = 'toApiJson' in this.impersonator ? (this.impersonator as any).toApiJson() : this.impersonator;}\n return toReturn;\n }\n}\n\nexport class GetImpersonationTokenResponse implements i.GetImpersonationTokenResponseInterface {\n token: string;\n\n static fromProto(proto: any): GetImpersonationTokenResponse {\n let m = new GetImpersonationTokenResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetImpersonationTokenResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.token !== 'undefined') {toReturn['token'] = this.token;}\n return toReturn;\n }\n}\n\nexport class GetMultiExternalIDRequest implements i.GetMultiExternalIDRequestInterface {\n userIdentifiers: UserIdentifier[];\n externalIdType: string;\n\n static fromProto(proto: any): GetMultiExternalIDRequest {\n let m = new GetMultiExternalIDRequest();\n m = Object.assign(m, proto);\n if (proto.userIdentifiers) {m.userIdentifiers = proto.userIdentifiers.map(UserIdentifier.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiExternalIDRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userIdentifiers !== 'undefined' && this.userIdentifiers !== null) {toReturn['userIdentifiers'] = 'toApiJson' in this.userIdentifiers ? (this.userIdentifiers as any).toApiJson() : this.userIdentifiers;}\n if (typeof this.externalIdType !== 'undefined') {toReturn['externalIdType'] = this.externalIdType;}\n return toReturn;\n }\n}\n\nexport class GetMultiExternalIDResponse implements i.GetMultiExternalIDResponseInterface {\n externalIds: string[];\n\n static fromProto(proto: any): GetMultiExternalIDResponse {\n let m = new GetMultiExternalIDResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiExternalIDResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.externalIds !== 'undefined') {toReturn['externalIds'] = this.externalIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiUsersRequest implements i.GetMultiUsersRequestInterface {\n userIdentifiers: UserIdentifier[];\n\n static fromProto(proto: any): GetMultiUsersRequest {\n let m = new GetMultiUsersRequest();\n m = Object.assign(m, proto);\n if (proto.userIdentifiers) {m.userIdentifiers = proto.userIdentifiers.map(UserIdentifier.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiUsersRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userIdentifiers !== 'undefined' && this.userIdentifiers !== null) {toReturn['userIdentifiers'] = 'toApiJson' in this.userIdentifiers ? (this.userIdentifiers as any).toApiJson() : this.userIdentifiers;}\n return toReturn;\n }\n}\n\nexport class GetMultiUsersResponse implements i.GetMultiUsersResponseInterface {\n users: GetMultiUsersResponseUserContainer[];\n\n static fromProto(proto: any): GetMultiUsersResponse {\n let m = new GetMultiUsersResponse();\n m = Object.assign(m, proto);\n if (proto.users) {m.users = proto.users.map(GetMultiUsersResponseUserContainer.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiUsersResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.users !== 'undefined' && this.users !== null) {toReturn['users'] = 'toApiJson' in this.users ? (this.users as any).toApiJson() : this.users;}\n return toReturn;\n }\n}\n\nexport class GetResetPasswordTokenRequest implements i.GetResetPasswordTokenRequestInterface {\n context: Context;\n email: string;\n userIdentifier: UserIdentifier;\n\n static fromProto(proto: any): GetResetPasswordTokenRequest {\n let m = new GetResetPasswordTokenRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.userIdentifier) {m.userIdentifier = UserIdentifier.fromProto(proto.userIdentifier);}\n return m;\n }\n\n constructor(kwargs?: i.GetResetPasswordTokenRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.userIdentifier !== 'undefined' && this.userIdentifier !== null) {toReturn['userIdentifier'] = 'toApiJson' in this.userIdentifier ? (this.userIdentifier as any).toApiJson() : this.userIdentifier;}\n return toReturn;\n }\n}\n\nexport class GetSessionTokenRequest implements i.GetSessionTokenRequestInterface {\n token: string;\n\n static fromProto(proto: any): GetSessionTokenRequest {\n let m = new GetSessionTokenRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetSessionTokenRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.token !== 'undefined') {toReturn['token'] = this.token;}\n return toReturn;\n }\n}\n\nexport class GetShortLivedTokenRequest implements i.GetShortLivedTokenRequestInterface {\n context: Context;\n email: string;\n\n static fromProto(proto: any): GetShortLivedTokenRequest {\n let m = new GetShortLivedTokenRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n return m;\n }\n\n constructor(kwargs?: i.GetShortLivedTokenRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n return toReturn;\n }\n}\n\nexport class GetSubjectBySessionRequest implements i.GetSubjectBySessionRequestInterface {\n session: string;\n context: Context;\n\n static fromProto(proto: any): GetSubjectBySessionRequest {\n let m = new GetSubjectBySessionRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n return m;\n }\n\n constructor(kwargs?: i.GetSubjectBySessionRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.session !== 'undefined') {toReturn['session'] = this.session;}\n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n return toReturn;\n }\n}\n\nexport class GetSubjectContextRequest implements i.GetSubjectContextRequestInterface {\n subjectId: string;\n\n static fromProto(proto: any): GetSubjectContextRequest {\n let m = new GetSubjectContextRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetSubjectContextRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n return toReturn;\n }\n}\n\nexport class GetSubjectContextResponse implements i.GetSubjectContextResponseInterface {\n context: Context;\n\n static fromProto(proto: any): GetSubjectContextResponse {\n let m = new GetSubjectContextResponse();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n return m;\n }\n\n constructor(kwargs?: i.GetSubjectContextResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n return toReturn;\n }\n}\n\nexport class GetSubjectResponse implements i.GetSubjectResponseInterface {\n subject: SubjectResult;\n\n static fromProto(proto: any): GetSubjectResponse {\n let m = new GetSubjectResponse();\n m = Object.assign(m, proto);\n if (proto.subject) {m.subject = SubjectResult.fromProto(proto.subject);}\n return m;\n }\n\n constructor(kwargs?: i.GetSubjectResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subject !== 'undefined' && this.subject !== null) {toReturn['subject'] = 'toApiJson' in this.subject ? (this.subject as any).toApiJson() : this.subject;}\n return toReturn;\n }\n}\n\nexport class GetSubjectsByEmailRequest implements i.GetSubjectsByEmailRequestInterface {\n context: Context;\n emails: string[];\n fieldMask: FieldMask;\n\n static fromProto(proto: any): GetSubjectsByEmailRequest {\n let m = new GetSubjectsByEmailRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.fieldMask) {m.fieldMask = FieldMask.fromProto(proto.fieldMask);}\n return m;\n }\n\n constructor(kwargs?: i.GetSubjectsByEmailRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.emails !== 'undefined') {toReturn['emails'] = this.emails;}\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? (this.fieldMask as any).toApiJson() : this.fieldMask;}\n return toReturn;\n }\n}\n\nexport class GetSubjectsRequest implements i.GetSubjectsRequestInterface {\n context: Context;\n subjectIds: string[];\n fieldMask: FieldMask;\n identifiers: Identifier[];\n\n static fromProto(proto: any): GetSubjectsRequest {\n let m = new GetSubjectsRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.fieldMask) {m.fieldMask = FieldMask.fromProto(proto.fieldMask);}\n if (proto.identifiers) {m.identifiers = proto.identifiers.map(Identifier.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetSubjectsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.subjectIds !== 'undefined') {toReturn['subjectIds'] = this.subjectIds;}\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? (this.fieldMask as any).toApiJson() : this.fieldMask;}\n if (typeof this.identifiers !== 'undefined' && this.identifiers !== null) {toReturn['identifiers'] = 'toApiJson' in this.identifiers ? (this.identifiers as any).toApiJson() : this.identifiers;}\n return toReturn;\n }\n}\n\nexport class GetSubjectsResponse implements i.GetSubjectsResponseInterface {\n subjects: SubjectResult[];\n\n static fromProto(proto: any): GetSubjectsResponse {\n let m = new GetSubjectsResponse();\n m = Object.assign(m, proto);\n if (proto.subjects) {m.subjects = proto.subjects.map(SubjectResult.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetSubjectsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subjects !== 'undefined' && this.subjects !== null) {toReturn['subjects'] = 'toApiJson' in this.subjects ? (this.subjects as any).toApiJson() : this.subjects;}\n return toReturn;\n }\n}\n\nexport class GetTokenRequest implements i.GetTokenRequestInterface {\n\n static fromProto(proto: any): GetTokenRequest {\n let m = new GetTokenRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetTokenRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n return toReturn;\n }\n}\n\nexport class GetTokenResponse implements i.GetTokenResponseInterface {\n token: string;\n\n static fromProto(proto: any): GetTokenResponse {\n let m = new GetTokenResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetTokenResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.token !== 'undefined') {toReturn['token'] = this.token;}\n return toReturn;\n }\n}\n\nexport class IAMListPersonasRequest implements i.IAMListPersonasRequestInterface {\n userIdentifier: UserIdentifier;\n cursor: string;\n pageSize: number;\n type: string;\n namespace: string;\n alwaysIncludeSuperadmin: boolean;\n\n static fromProto(proto: any): IAMListPersonasRequest {\n let m = new IAMListPersonasRequest();\n m = Object.assign(m, proto);\n if (proto.userIdentifier) {m.userIdentifier = UserIdentifier.fromProto(proto.userIdentifier);}\n if (proto.pageSize) {m.pageSize = parseInt(proto.pageSize, 10);}\n return m;\n }\n\n constructor(kwargs?: i.IAMListPersonasRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userIdentifier !== 'undefined' && this.userIdentifier !== null) {toReturn['userIdentifier'] = 'toApiJson' in this.userIdentifier ? (this.userIdentifier as any).toApiJson() : this.userIdentifier;}\n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.namespace !== 'undefined') {toReturn['namespace'] = this.namespace;}\n if (typeof this.alwaysIncludeSuperadmin !== 'undefined') {toReturn['alwaysIncludeSuperadmin'] = this.alwaysIncludeSuperadmin;}\n return toReturn;\n }\n}\n\nexport class ListPersonasByEmailRequest implements i.ListPersonasByEmailRequestInterface {\n email: string;\n cursor: string;\n pageSize: number;\n type: string;\n namespace: string;\n\n static fromProto(proto: any): ListPersonasByEmailRequest {\n let m = new ListPersonasByEmailRequest();\n m = Object.assign(m, proto);\n if (proto.pageSize) {m.pageSize = parseInt(proto.pageSize, 10);}\n return m;\n }\n\n constructor(kwargs?: i.ListPersonasByEmailRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.namespace !== 'undefined') {toReturn['namespace'] = this.namespace;}\n return toReturn;\n }\n}\n\nexport class ListPersonasRequest implements i.ListPersonasRequestInterface {\n session: string;\n cursor: string;\n pageSize: number;\n type: string;\n namespace: string;\n\n static fromProto(proto: any): ListPersonasRequest {\n let m = new ListPersonasRequest();\n m = Object.assign(m, proto);\n if (proto.pageSize) {m.pageSize = parseInt(proto.pageSize, 10);}\n return m;\n }\n\n constructor(kwargs?: i.ListPersonasRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.session !== 'undefined') {toReturn['session'] = this.session;}\n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.namespace !== 'undefined') {toReturn['namespace'] = this.namespace;}\n return toReturn;\n }\n}\n\nexport class ListPersonasResponse implements i.ListPersonasResponseInterface {\n personas: Persona[];\n nextCursor: string;\n hasMore: boolean;\n\n static fromProto(proto: any): ListPersonasResponse {\n let m = new ListPersonasResponse();\n m = Object.assign(m, proto);\n if (proto.personas) {m.personas = proto.personas.map(Persona.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.ListPersonasResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.personas !== 'undefined' && this.personas !== null) {toReturn['personas'] = 'toApiJson' in this.personas ? (this.personas as any).toApiJson() : this.personas;}\n if (typeof this.nextCursor !== 'undefined') {toReturn['nextCursor'] = this.nextCursor;}\n if (typeof this.hasMore !== 'undefined') {toReturn['hasMore'] = this.hasMore;}\n return toReturn;\n }\n}\n\nexport class ListSecurityLogsRequest implements i.ListSecurityLogsRequestInterface {\n userId: string;\n filters: ListSecurityLogsRequestFilters;\n pageSize: number;\n cursor: string;\n\n static fromProto(proto: any): ListSecurityLogsRequest {\n let m = new ListSecurityLogsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListSecurityLogsRequestFilters.fromProto(proto.filters);}\n if (proto.pageSize) {m.pageSize = parseInt(proto.pageSize, 10);}\n return m;\n }\n\n constructor(kwargs?: i.ListSecurityLogsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n return toReturn;\n }\n}\n\nexport class ListSecurityLogsResponse implements i.ListSecurityLogsResponseInterface {\n logs: SecurityLog[];\n nextCursor: string;\n hasMore: boolean;\n\n static fromProto(proto: any): ListSecurityLogsResponse {\n let m = new ListSecurityLogsResponse();\n m = Object.assign(m, proto);\n if (proto.logs) {m.logs = proto.logs.map(SecurityLog.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.ListSecurityLogsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.logs !== 'undefined' && this.logs !== null) {toReturn['logs'] = 'toApiJson' in this.logs ? (this.logs as any).toApiJson() : this.logs;}\n if (typeof this.nextCursor !== 'undefined') {toReturn['nextCursor'] = this.nextCursor;}\n if (typeof this.hasMore !== 'undefined') {toReturn['hasMore'] = this.hasMore;}\n return toReturn;\n }\n}\n\nexport class ListUsersRequest implements i.ListUsersRequestInterface {\n namespace: string;\n email: string;\n cursor: string;\n pageSize: number;\n userFilter: UserFilter;\n sortOptions: UserSortOptions[];\n\n static fromProto(proto: any): ListUsersRequest {\n let m = new ListUsersRequest();\n m = Object.assign(m, proto);\n if (proto.pageSize) {m.pageSize = parseInt(proto.pageSize, 10);}\n if (proto.userFilter) {m.userFilter = UserFilter.fromProto(proto.userFilter);}\n if (proto.sortOptions) {m.sortOptions = proto.sortOptions.map(UserSortOptions.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.ListUsersRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.namespace !== 'undefined') {toReturn['namespace'] = this.namespace;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n if (typeof this.userFilter !== 'undefined' && this.userFilter !== null) {toReturn['userFilter'] = 'toApiJson' in this.userFilter ? (this.userFilter as any).toApiJson() : this.userFilter;}\n if (typeof this.sortOptions !== 'undefined' && this.sortOptions !== null) {toReturn['sortOptions'] = 'toApiJson' in this.sortOptions ? (this.sortOptions as any).toApiJson() : this.sortOptions;}\n return toReturn;\n }\n}\n\nexport class ListUsersResponse implements i.ListUsersResponseInterface {\n users: User[];\n nextCursor: string;\n hasMore: boolean;\n\n static fromProto(proto: any): ListUsersResponse {\n let m = new ListUsersResponse();\n m = Object.assign(m, proto);\n if (proto.users) {m.users = proto.users.map(User.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.ListUsersResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.users !== 'undefined' && this.users !== null) {toReturn['users'] = 'toApiJson' in this.users ? (this.users as any).toApiJson() : this.users;}\n if (typeof this.nextCursor !== 'undefined') {toReturn['nextCursor'] = this.nextCursor;}\n if (typeof this.hasMore !== 'undefined') {toReturn['hasMore'] = this.hasMore;}\n return toReturn;\n }\n}\n\nexport class MutateAttributesRequest implements i.MutateAttributesRequestInterface {\n context: Context;\n subjectId: string;\n mutations: Mutation[];\n\n static fromProto(proto: any): MutateAttributesRequest {\n let m = new MutateAttributesRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.mutations) {m.mutations = proto.mutations.map(Mutation.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.MutateAttributesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n if (typeof this.mutations !== 'undefined' && this.mutations !== null) {toReturn['mutations'] = 'toApiJson' in this.mutations ? (this.mutations as any).toApiJson() : this.mutations;}\n return toReturn;\n }\n}\n\nexport class OAuthCredentials implements i.OAuthCredentialsInterface {\n provider: string;\n idToken: string;\n accessToken: string;\n\n static fromProto(proto: any): OAuthCredentials {\n let m = new OAuthCredentials();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.OAuthCredentialsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.provider !== 'undefined') {toReturn['provider'] = this.provider;}\n if (typeof this.idToken !== 'undefined') {toReturn['idToken'] = this.idToken;}\n if (typeof this.accessToken !== 'undefined') {toReturn['accessToken'] = this.accessToken;}\n return toReturn;\n }\n}\n\nexport class UpdateUserRequestOperation implements i.UpdateUserRequestOperationInterface {\n firstName: string;\n greetingName: string;\n lastName: string;\n languageCode: string;\n\n static fromProto(proto: any): UpdateUserRequestOperation {\n let m = new UpdateUserRequestOperation();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.UpdateUserRequestOperationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.firstName !== 'undefined') {toReturn['firstName'] = this.firstName;}\n if (typeof this.greetingName !== 'undefined') {toReturn['greetingName'] = this.greetingName;}\n if (typeof this.lastName !== 'undefined') {toReturn['lastName'] = this.lastName;}\n if (typeof this.languageCode !== 'undefined') {toReturn['languageCode'] = this.languageCode;}\n return toReturn;\n }\n}\n\nexport class RegisterPolicyRequest implements i.RegisterPolicyRequestInterface {\n policy: Policy;\n\n static fromProto(proto: any): RegisterPolicyRequest {\n let m = new RegisterPolicyRequest();\n m = Object.assign(m, proto);\n if (proto.policy) {m.policy = Policy.fromProto(proto.policy);}\n return m;\n }\n\n constructor(kwargs?: i.RegisterPolicyRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.policy !== 'undefined' && this.policy !== null) {toReturn['policy'] = 'toApiJson' in this.policy ? (this.policy as any).toApiJson() : this.policy;}\n return toReturn;\n }\n}\n\nexport class RegisterResourceOwnerRequest implements i.RegisterResourceOwnerRequestInterface {\n owner: ResourceOwner;\n\n static fromProto(proto: any): RegisterResourceOwnerRequest {\n let m = new RegisterResourceOwnerRequest();\n m = Object.assign(m, proto);\n if (proto.owner) {m.owner = ResourceOwner.fromProto(proto.owner);}\n return m;\n }\n\n constructor(kwargs?: i.RegisterResourceOwnerRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.owner !== 'undefined' && this.owner !== null) {toReturn['owner'] = 'toApiJson' in this.owner ? (this.owner as any).toApiJson() : this.owner;}\n return toReturn;\n }\n}\n\nexport class RegisterResourceRequest implements i.RegisterResourceRequestInterface {\n appId: string;\n resourceId: string;\n resourceName: string;\n resourceOwnerServiceUrl: string;\n requiredResourceParams: string[];\n resourceOwnerAudience: string;\n\n static fromProto(proto: any): RegisterResourceRequest {\n let m = new RegisterResourceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.RegisterResourceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.appId !== 'undefined') {toReturn['appId'] = this.appId;}\n if (typeof this.resourceId !== 'undefined') {toReturn['resourceId'] = this.resourceId;}\n if (typeof this.resourceName !== 'undefined') {toReturn['resourceName'] = this.resourceName;}\n if (typeof this.resourceOwnerServiceUrl !== 'undefined') {toReturn['resourceOwnerServiceUrl'] = this.resourceOwnerServiceUrl;}\n if (typeof this.requiredResourceParams !== 'undefined') {toReturn['requiredResourceParams'] = this.requiredResourceParams;}\n if (typeof this.resourceOwnerAudience !== 'undefined') {toReturn['resourceOwnerAudience'] = this.resourceOwnerAudience;}\n return toReturn;\n }\n}\n\nexport class RegisterSubjectRequest implements i.RegisterSubjectRequestInterface {\n context: Context;\n email: string;\n password: string;\n attributes: MultiValueAttribute[];\n structAttributes: StructAttribute;\n\n static fromProto(proto: any): RegisterSubjectRequest {\n let m = new RegisterSubjectRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.attributes) {m.attributes = proto.attributes.map(MultiValueAttribute.fromProto);}\n if (proto.structAttributes) {m.structAttributes = StructAttribute.fromProto(proto.structAttributes);}\n return m;\n }\n\n constructor(kwargs?: i.RegisterSubjectRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.password !== 'undefined') {toReturn['password'] = this.password;}\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {toReturn['attributes'] = 'toApiJson' in this.attributes ? (this.attributes as any).toApiJson() : this.attributes;}\n if (typeof this.structAttributes !== 'undefined' && this.structAttributes !== null) {toReturn['structAttributes'] = 'toApiJson' in this.structAttributes ? (this.structAttributes as any).toApiJson() : this.structAttributes;}\n return toReturn;\n }\n}\n\nexport class RegisterSubjectResponse implements i.RegisterSubjectResponseInterface {\n subjectId: string;\n\n static fromProto(proto: any): RegisterSubjectResponse {\n let m = new RegisterSubjectResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.RegisterSubjectResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n return toReturn;\n }\n}\n\nexport class RemoveKeyRequest implements i.RemoveKeyRequestInterface {\n email: string;\n context: Context;\n keyId: string;\n userIdentifier: UserIdentifier;\n\n static fromProto(proto: any): RemoveKeyRequest {\n let m = new RemoveKeyRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.userIdentifier) {m.userIdentifier = UserIdentifier.fromProto(proto.userIdentifier);}\n return m;\n }\n\n constructor(kwargs?: i.RemoveKeyRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.keyId !== 'undefined') {toReturn['keyId'] = this.keyId;}\n if (typeof this.userIdentifier !== 'undefined' && this.userIdentifier !== null) {toReturn['userIdentifier'] = 'toApiJson' in this.userIdentifier ? (this.userIdentifier as any).toApiJson() : this.userIdentifier;}\n return toReturn;\n }\n}\n\nexport class RemoveMultiUserRestrictionRequest implements i.RemoveMultiUserRestrictionRequestInterface {\n userIdentifiers: UserIdentifier[];\n restrictionType: e.RestrictionType;\n\n static fromProto(proto: any): RemoveMultiUserRestrictionRequest {\n let m = new RemoveMultiUserRestrictionRequest();\n m = Object.assign(m, proto);\n if (proto.userIdentifiers) {m.userIdentifiers = proto.userIdentifiers.map(UserIdentifier.fromProto);}\n if (proto.restrictionType) {m.restrictionType = enumStringToValue<e.RestrictionType>(e.RestrictionType, proto.restrictionType);}\n return m;\n }\n\n constructor(kwargs?: i.RemoveMultiUserRestrictionRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userIdentifiers !== 'undefined' && this.userIdentifiers !== null) {toReturn['userIdentifiers'] = 'toApiJson' in this.userIdentifiers ? (this.userIdentifiers as any).toApiJson() : this.userIdentifiers;}\n if (typeof this.restrictionType !== 'undefined') {toReturn['restrictionType'] = this.restrictionType;}\n return toReturn;\n }\n}\n\nexport class ResetPasswordTokenResponse implements i.ResetPasswordTokenResponseInterface {\n token: string;\n\n static fromProto(proto: any): ResetPasswordTokenResponse {\n let m = new ResetPasswordTokenResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ResetPasswordTokenResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.token !== 'undefined') {toReturn['token'] = this.token;}\n return toReturn;\n }\n}\n\nexport class ResetPasswordWithTokenRequest implements i.ResetPasswordWithTokenRequestInterface {\n token: string;\n password: string;\n\n static fromProto(proto: any): ResetPasswordWithTokenRequest {\n let m = new ResetPasswordWithTokenRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ResetPasswordWithTokenRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.token !== 'undefined') {toReturn['token'] = this.token;}\n if (typeof this.password !== 'undefined') {toReturn['password'] = this.password;}\n return toReturn;\n }\n}\n\nexport class ResetSubjectPasswordRequest implements i.ResetSubjectPasswordRequestInterface {\n context: Context;\n subjectId: string;\n newPassword: string;\n\n static fromProto(proto: any): ResetSubjectPasswordRequest {\n let m = new ResetSubjectPasswordRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n return m;\n }\n\n constructor(kwargs?: i.ResetSubjectPasswordRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n if (typeof this.newPassword !== 'undefined') {toReturn['newPassword'] = this.newPassword;}\n return toReturn;\n }\n}\n\nexport class AccessResourceRequestResourceEntityIdentifierEntry implements i.AccessResourceRequestResourceEntityIdentifierEntryInterface {\n key: string;\n value: ValueList;\n\n static fromProto(proto: any): AccessResourceRequestResourceEntityIdentifierEntry {\n let m = new AccessResourceRequestResourceEntityIdentifierEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = ValueList.fromProto(proto.value);}\n return m;\n }\n\n constructor(kwargs?: i.AccessResourceRequestResourceEntityIdentifierEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined' && this.value !== null) {toReturn['value'] = 'toApiJson' in this.value ? (this.value as any).toApiJson() : this.value;}\n return toReturn;\n }\n}\n\nexport class SearchSubjectRequest implements i.SearchSubjectRequestInterface {\n context: Context;\n query: Query;\n filters: SingleValueAttribute[];\n orderBy: string;\n orderByDirection: e.OrderByDirection;\n cursor: string;\n pageSize: number;\n fieldMask: FieldMask;\n\n static fromProto(proto: any): SearchSubjectRequest {\n let m = new SearchSubjectRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.query) {m.query = Query.fromProto(proto.query);}\n if (proto.filters) {m.filters = proto.filters.map(SingleValueAttribute.fromProto);}\n if (proto.orderByDirection) {m.orderByDirection = enumStringToValue<e.OrderByDirection>(e.OrderByDirection, proto.orderByDirection);}\n if (proto.pageSize) {m.pageSize = parseInt(proto.pageSize, 10);}\n if (proto.fieldMask) {m.fieldMask = FieldMask.fromProto(proto.fieldMask);}\n return m;\n }\n\n constructor(kwargs?: i.SearchSubjectRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.query !== 'undefined' && this.query !== null) {toReturn['query'] = 'toApiJson' in this.query ? (this.query as any).toApiJson() : this.query;}\n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.orderBy !== 'undefined') {toReturn['orderBy'] = this.orderBy;}\n if (typeof this.orderByDirection !== 'undefined') {toReturn['orderByDirection'] = this.orderByDirection;}\n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? (this.fieldMask as any).toApiJson() : this.fieldMask;}\n return toReturn;\n }\n}\n\nexport class SearchSubjectResponse implements i.SearchSubjectResponseInterface {\n result: SubjectResult[];\n nextCursor: string;\n hasMore: boolean;\n totalResults: number;\n\n static fromProto(proto: any): SearchSubjectResponse {\n let m = new SearchSubjectResponse();\n m = Object.assign(m, proto);\n if (proto.result) {m.result = proto.result.map(SubjectResult.fromProto);}\n if (proto.totalResults) {m.totalResults = parseInt(proto.totalResults, 10);}\n return m;\n }\n\n constructor(kwargs?: i.SearchSubjectResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.result !== 'undefined' && this.result !== null) {toReturn['result'] = 'toApiJson' in this.result ? (this.result as any).toApiJson() : this.result;}\n if (typeof this.nextCursor !== 'undefined') {toReturn['nextCursor'] = this.nextCursor;}\n if (typeof this.hasMore !== 'undefined') {toReturn['hasMore'] = this.hasMore;}\n if (typeof this.totalResults !== 'undefined') {toReturn['totalResults'] = this.totalResults;}\n return toReturn;\n }\n}\n\nexport class SendEmailVerificationRequest implements i.SendEmailVerificationRequestInterface {\n userId: string;\n\n static fromProto(proto: any): SendEmailVerificationRequest {\n let m = new SendEmailVerificationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SendEmailVerificationRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n return toReturn;\n }\n}\n\nexport class SubjectCredentials implements i.SubjectCredentialsInterface {\n email: string;\n password: string;\n\n static fromProto(proto: any): SubjectCredentials {\n let m = new SubjectCredentials();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SubjectCredentialsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.password !== 'undefined') {toReturn['password'] = this.password;}\n return toReturn;\n }\n}\n\nexport class UpdateUserRequest implements i.UpdateUserRequestInterface {\n userId: string;\n operations: UpdateUserRequestOperation[];\n\n static fromProto(proto: any): UpdateUserRequest {\n let m = new UpdateUserRequest();\n m = Object.assign(m, proto);\n if (proto.operations) {m.operations = proto.operations.map(UpdateUserRequestOperation.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateUserRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n if (typeof this.operations !== 'undefined' && this.operations !== null) {toReturn['operations'] = 'toApiJson' in this.operations ? (this.operations as any).toApiJson() : this.operations;}\n return toReturn;\n }\n}\n\nexport class GetMultiUsersResponseUserContainer implements i.GetMultiUsersResponseUserContainerInterface {\n user: User;\n\n static fromProto(proto: any): GetMultiUsersResponseUserContainer {\n let m = new GetMultiUsersResponseUserContainer();\n m = Object.assign(m, proto);\n if (proto.user) {m.user = User.fromProto(proto.user);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiUsersResponseUserContainerInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.user !== 'undefined' && this.user !== null) {toReturn['user'] = 'toApiJson' in this.user ? (this.user as any).toApiJson() : this.user;}\n return toReturn;\n }\n}\n\nexport class UserFilter implements i.UserFilterInterface {\n subjectTypes: string[];\n searchTerms: string[];\n\n static fromProto(proto: any): UserFilter {\n let m = new UserFilter();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.UserFilterInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subjectTypes !== 'undefined') {toReturn['subjectTypes'] = this.subjectTypes;}\n if (typeof this.searchTerms !== 'undefined') {toReturn['searchTerms'] = this.searchTerms;}\n return toReturn;\n }\n}\n\nexport class UserIdentifier implements i.UserIdentifierInterface {\n userId: string;\n namespacedEmail: NamespacedEmail;\n namespacedSession: NamespacedSession;\n token: string;\n typedExternalIdentifier: TypedExternalIdentifier;\n subjectId: string;\n\n static fromProto(proto: any): UserIdentifier {\n let m = new UserIdentifier();\n m = Object.assign(m, proto);\n if (proto.namespacedEmail) {m.namespacedEmail = NamespacedEmail.fromProto(proto.namespacedEmail);}\n if (proto.namespacedSession) {m.namespacedSession = NamespacedSession.fromProto(proto.namespacedSession);}\n if (proto.typedExternalIdentifier) {m.typedExternalIdentifier = TypedExternalIdentifier.fromProto(proto.typedExternalIdentifier);}\n return m;\n }\n\n constructor(kwargs?: i.UserIdentifierInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n if (typeof this.namespacedEmail !== 'undefined' && this.namespacedEmail !== null) {toReturn['namespacedEmail'] = 'toApiJson' in this.namespacedEmail ? (this.namespacedEmail as any).toApiJson() : this.namespacedEmail;}\n if (typeof this.namespacedSession !== 'undefined' && this.namespacedSession !== null) {toReturn['namespacedSession'] = 'toApiJson' in this.namespacedSession ? (this.namespacedSession as any).toApiJson() : this.namespacedSession;}\n if (typeof this.token !== 'undefined') {toReturn['token'] = this.token;}\n if (typeof this.typedExternalIdentifier !== 'undefined' && this.typedExternalIdentifier !== null) {toReturn['typedExternalIdentifier'] = 'toApiJson' in this.typedExternalIdentifier ? (this.typedExternalIdentifier as any).toApiJson() : this.typedExternalIdentifier;}\n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n return toReturn;\n }\n}\n\nexport class UserSortOptions implements i.UserSortOptionsInterface {\n direction: e.SortDirection;\n field: e.UserSortField;\n\n static fromProto(proto: any): UserSortOptions {\n let m = new UserSortOptions();\n m = Object.assign(m, proto);\n if (proto.direction) {m.direction = enumStringToValue<e.SortDirection>(e.SortDirection, proto.direction);}\n if (proto.field) {m.field = enumStringToValue<e.UserSortField>(e.UserSortField, proto.field);}\n return m;\n }\n\n constructor(kwargs?: i.UserSortOptionsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.direction !== 'undefined') {toReturn['direction'] = this.direction;}\n if (typeof this.field !== 'undefined') {toReturn['field'] = this.field;}\n return toReturn;\n }\n}\n\nexport class VerifyEmailRequest implements i.VerifyEmailRequestInterface {\n token: string;\n\n static fromProto(proto: any): VerifyEmailRequest {\n let m = new VerifyEmailRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.VerifyEmailRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.token !== 'undefined') {toReturn['token'] = this.token;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Access implements i.AccessInterface {\n scope: string[];\n public: boolean;\n\n static fromProto(proto: any): Access {\n let m = new Access();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.AccessInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.scope !== 'undefined') {toReturn['scope'] = this.scope;}\n if (typeof this.public !== 'undefined') {toReturn['public'] = this.public;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects Index.\n// *********************************\nexport {\n FieldMask,\n} from './field-mask';\n\nexport {\n Attribute,\n StructAttributeAttributesEntry,\n GeoPointAttribute,\n ListAttribute,\n StructAttribute,\n} from './attributes';\n\nexport {\n IfClause,\n Operator,\n PolicyNode,\n SubjectMissingValueClause,\n SubjectResourceForClause,\n SubjectResourceIntersectionClause,\n SubjectResourceSubsetClause,\n SubjectValueIntersectionClause,\n} from './policies';\n\nexport {\n AccessCheckFailures,\n ResourceIdentifierIdentifiersEntry,\n Policy,\n ResourceIdentifier,\n ResourceOwner,\n ValueList,\n} from './resources';\n\nexport {\n Context,\n MultiValueAttribute,\n Mutation,\n NamespacedContext,\n Persona,\n PublicKey,\n Query,\n SingleValueAttribute,\n Subject,\n SubjectResult,\n TypedContext,\n} from './subjects';\n\nexport {\n SecurityLog,\n} from './security-logs';\n\nexport {\n Identifier,\n NamespacedEmail,\n NamespacedSession,\n TypedExternalIdentifier,\n User,\n} from './users';\n\nexport {\n Access,\n} from './annotations';\n\nexport {\n AccessResourceRequest,\n AddKeyRequest,\n AddKeyResponse,\n AddMultiUserRestrictionRequest,\n AuthenticateSubjectRequest,\n ChangeSubjectEmailRequest,\n CreateExternalIDRequest,\n CreateSessionRequest,\n CreateSessionResponse,\n CreateTemporarySubjectRequest,\n CreateTemporarySubjectResponse,\n DeleteSubjectRequest,\n DeleteUserRequest,\n ListSecurityLogsRequestFilters,\n GetImpersonationTokenRequest,\n GetImpersonationTokenResponse,\n GetMultiExternalIDRequest,\n GetMultiExternalIDResponse,\n GetMultiUsersRequest,\n GetMultiUsersResponse,\n GetResetPasswordTokenRequest,\n GetSessionTokenRequest,\n GetShortLivedTokenRequest,\n GetSubjectBySessionRequest,\n GetSubjectContextRequest,\n GetSubjectContextResponse,\n GetSubjectResponse,\n GetSubjectsByEmailRequest,\n GetSubjectsRequest,\n GetSubjectsResponse,\n GetTokenRequest,\n GetTokenResponse,\n IAMListPersonasRequest,\n ListPersonasByEmailRequest,\n ListPersonasRequest,\n ListPersonasResponse,\n ListSecurityLogsRequest,\n ListSecurityLogsResponse,\n ListUsersRequest,\n ListUsersResponse,\n MutateAttributesRequest,\n OAuthCredentials,\n UpdateUserRequestOperation,\n RegisterPolicyRequest,\n RegisterResourceOwnerRequest,\n RegisterResourceRequest,\n RegisterSubjectRequest,\n RegisterSubjectResponse,\n RemoveKeyRequest,\n RemoveMultiUserRestrictionRequest,\n ResetPasswordTokenResponse,\n ResetPasswordWithTokenRequest,\n ResetSubjectPasswordRequest,\n AccessResourceRequestResourceEntityIdentifierEntry,\n SearchSubjectRequest,\n SearchSubjectResponse,\n SendEmailVerificationRequest,\n SubjectCredentials,\n UpdateUserRequest,\n GetMultiUsersResponseUserContainer,\n UserFilter,\n UserIdentifier,\n UserSortOptions,\n VerifyEmailRequest,\n} from './api';\n\n","import { Injectable } from '@angular/core';\n\ndeclare const window: any;\nconst environment: string = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap: { [key: string]: string } = {\n 'local': 'iam.vendasta-local.com',\n 'test': '',\n 'demo': 'iam-api-demo.apigateway.co',\n 'prod': 'iam-api-prod.apigateway.co',\n 'production': 'iam-api-prod.apigateway.co',\n};\n\n@Injectable({providedIn: 'root'})\nexport class HostService {\n get host(): string {\n return hostMap[environment.toLowerCase()];\n }\n\n get hostWithScheme(): string {\n return 'https://' + this.host;\n }\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n GetImpersonationTokenRequest,\n GetImpersonationTokenResponse,\n GetSessionTokenRequest,\n GetSubjectBySessionRequest,\n GetSubjectResponse,\n GetTokenRequest,\n GetTokenResponse,\n ListPersonasRequest,\n ListPersonasResponse,\n ResetPasswordWithTokenRequest,\n} from './objects/';\nimport {\n GetImpersonationTokenRequestInterface,\n GetImpersonationTokenResponseInterface,\n GetSessionTokenRequestInterface,\n GetSubjectBySessionRequestInterface,\n GetSubjectResponseInterface,\n GetTokenRequestInterface,\n GetTokenResponseInterface,\n ListPersonasRequestInterface,\n ListPersonasResponseInterface,\n ResetPasswordWithTokenRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class UserIAMApiService {\n private _host = this.hostService.hostWithScheme;\n \n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n getSubjectBySession(r: GetSubjectBySessionRequest | GetSubjectBySessionRequestInterface): Observable<GetSubjectResponse> {\n const request = ((<GetSubjectBySessionRequest>r).toApiJson) ? (<GetSubjectBySessionRequest>r) : new GetSubjectBySessionRequest(r);\n return this.http.post<GetSubjectResponseInterface>(this._host + \"/iam.v1.UserIAM/GetSubjectBySession\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetSubjectResponse.fromProto(resp)),\n );\n }\n listPersonas(r: ListPersonasRequest | ListPersonasRequestInterface): Observable<ListPersonasResponse> {\n const request = ((<ListPersonasRequest>r).toApiJson) ? (<ListPersonasRequest>r) : new ListPersonasRequest(r);\n return this.http.post<ListPersonasResponseInterface>(this._host + \"/iam.v1.UserIAM/ListPersonas\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListPersonasResponse.fromProto(resp)),\n );\n }\n getToken(r: GetTokenRequest | GetTokenRequestInterface): Observable<GetTokenResponse> {\n const request = ((<GetTokenRequest>r).toApiJson) ? (<GetTokenRequest>r) : new GetTokenRequest(r);\n return this.http.post<GetTokenResponseInterface>(this._host + \"/iam.v1.UserIAM/GetToken\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetTokenResponse.fromProto(resp)),\n );\n }\n getSessionToken(r: GetSessionTokenRequest | GetSessionTokenRequestInterface): Observable<GetTokenResponse> {\n const request = ((<GetSessionTokenRequest>r).toApiJson) ? (<GetSessionTokenRequest>r) : new GetSessionTokenRequest(r);\n return this.http.post<GetTokenResponseInterface>(this._host + \"/iam.v1.UserIAM/GetSessionToken\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetTokenResponse.fromProto(resp)),\n );\n }\n resetPasswordWithToken(r: ResetPasswordWithTokenRequest | ResetPasswordWithTokenRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ResetPasswordWithTokenRequest>r).toApiJson) ? (<ResetPasswordWithTokenRequest>r) : new ResetPasswordWithTokenRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.UserIAM/ResetPasswordWithToken\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getImpersonationToken(r: GetImpersonationTokenRequest | GetImpersonationTokenRequestInterface): Observable<GetImpersonationTokenResponse> {\n const request = ((<GetImpersonationTokenRequest>r).toApiJson) ? (<GetImpersonationTokenRequest>r) : new GetImpersonationTokenRequest(r);\n return this.http.post<GetImpersonationTokenResponseInterface>(this._host + \"/iam.v1.UserIAM/GetImpersonationToken\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetImpersonationTokenResponse.fromProto(resp)),\n );\n }\n \n}\n","import {\n LoginRequestInterface, LoginResponseInterface, LogoutResponseInterface, SSOLoginRequestInterface\n} from './http.interface';\n\nexport class LoginRequest implements LoginRequestInterface {\n namespace: string;\n type: string;\n email: string;\n password: string;\n providerIdToken: string;\n provider: string;\n\n static fromProto(proto: any): LoginRequest {\n if (!proto) {\n return new LoginRequest();\n }\n let m = new LoginRequest();\n /* eslint-disable @typescript-eslint/no-unsafe-assignment */\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: LoginRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.namespace === 'undefined' &&\n typeof this.type === 'undefined' &&\n typeof this.email === 'undefined' &&\n typeof this.password === 'undefined' &&\n typeof this.providerIdToken === 'undefined' &&\n typeof this.provider === 'undefined') {\n return {};\n }\n\n return {\n 'namespace': (typeof this.namespace !== 'undefined') ? this.namespace : null,\n 'type': (typeof this.type !== 'undefined') ? this.type : null,\n 'email': (typeof this.email !== 'undefined') ? this.email : null,\n 'password': (typeof this.password !== 'undefined') ? this.password : null,\n 'provider_id_token': (typeof this.providerIdToken !== 'undefined') ? this.providerIdToken : null,\n 'provider': (typeof this.provider !== 'undefined') ? this.provider : null\n }\n }\n}\n\nexport class LoginResponse implements LoginResponseInterface {\n sessionId: string;\n\n static fromProto(proto: any): LoginResponse {\n /* eslint-disable */\n const m = new LoginResponse();\n m.sessionId = proto['session_id'];\n return m;\n }\n\n constructor(kwargs?: LoginRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.sessionId === 'undefined') {\n return {};\n }\n\n return {\n 'sessionId': (typeof this.sessionId !== 'undefined') ? this.sessionId : null\n }\n }\n}\n\nexport class LogoutResponse implements LogoutResponseInterface {\n success: boolean;\n\n static fromProto(proto: any): LogoutResponse {\n let m = new LogoutResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: LogoutResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.success === 'undefined') {\n return {};\n }\n\n return {\n 'success': (typeof this.success !== 'undefined') ? this.success : null\n }\n }\n}\n\nexport class SSOLoginRequest implements SSOLoginRequestInterface {\n nextUrl: string;\n namespace: string;\n type: string;\n\n static fromProto(proto: any): SSOLoginRequest {\n let m = new SSOLoginRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: SSOLoginRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): any {\n if (\n typeof this.nextUrl === 'undefined' &&\n typeof this.namespace === 'undefined' &&\n typeof this.type === 'undefined') {\n return null;\n }\n\n return {\n 'next_url': (typeof this.nextUrl !== 'undefined') ? this.nextUrl : null,\n 'namespace': (typeof this.namespace !== 'undefined') ? this.namespace : null,\n 'type': (typeof this.type !== 'undefined') ? this.type : null\n }\n }\n}\n","/* eslint-disable */\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map, share } from 'rxjs/operators';\n\nimport { HostService } from '../_generated/host.service';\nimport {\n LoginRequestInterface,\n LoginResponseInterface,\n LogoutResponseInterface,\n SSOLoginRequestInterface,\n} from './http.interface';\nimport { LoginRequest, LoginResponse, LogoutResponse, SSOLoginRequest } from './http';\n\n@Injectable({ providedIn: 'root' })\nexport class IamHttpApiService {\n private _host = this.hostService.hostWithScheme;\n\n constructor(private http: HttpClient, private hostService: HostService) {}\n\n private apiOptions(includeCredentials?: boolean): {\n headers: HttpHeaders;\n withCredentials?: boolean;\n } {\n if (includeCredentials) {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/x-www-form-urlencoded',\n }),\n withCredentials: true,\n };\n }\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/x-www-form-urlencoded',\n }),\n };\n }\n\n login(r: LoginRequest | LoginRequestInterface): Observable<LoginResponse> {\n const toApiJson = (<LoginRequest>r).toApiJson;\n const request = typeof toApiJson !== 'undefined' ? <LoginRequest>r : new LoginRequest(r);\n return this.http\n .post<LoginResponseInterface>(\n this._host + '/_ajax/v1/login',\n request.toApiJson(),\n this.apiOptions(),\n )\n .pipe(\n map((resp: LoginResponseInterface) => LoginResponse.fromProto(resp)),\n share(),\n );\n }\n\n logout(): Observable<LogoutResponse> {\n return this.http\n .post<LogoutResponseInterface>(\n this._host + '/_ajax/v1/logout',\n {},\n this.apiOptions(true),\n )\n .pipe(\n map((resp) => LogoutResponse.fromProto(resp)),\n share(),\n );\n }\n\n ssoLogin(r: SSOLoginRequest | SSOLoginRequestInterface): void {\n const toApiJson = (<SSOLoginRequest>r).toApiJson;\n const request = typeof toApiJson !== 'undefined' ? <SSOLoginRequest>r : new SSOLoginRequest(r);\n const params = new URLSearchParams();\n const apiJson = request.toApiJson();\n\n for (const key in apiJson) {\n if (!apiJson.hasOwnProperty(key)) {\n continue;\n }\n const value = apiJson[key];\n if (value === null) {\n continue;\n }\n params.append(key, value);\n }\n\n window.location.href = `${this._host}/sso-login?${params.toString()}`;\n }\n}\n","export enum PersonaType {\n partner = 'partner',\n partner_app = 'partner_app',\n sales_person = 'sales_person',\n smb = 'smb',\n vendor = 'vendor',\n digital_agent = 'digital_agent',\n developer = 'developer',\n success = 'success',\n account_group = 'account_group',\n crm_role = 'crm_role'\n}\n","import {AttributeInterface, StructAttributeInterface} from '../_internal/interfaces/attributes.interface';\nimport {Persona} from '../_internal/objects/subjects';\nimport {PersonaType} from './persona-type.enum';\n\nexport class BasePersona {\n type: PersonaType;\n subjectId: string;\n email: string;\n userId: string;\n\n created: Date;\n updated: Date;\n lastLogin: Date;\n\n firstName: string;\n lastName: string;\n\n fromPersona(p: Persona): BasePersona {\n const s = p.subject;\n this.subjectId = s.subjectId;\n this.email = s.email;\n this.created = s.created;\n this.updated = s.updated;\n this.lastLogin = s.lastLogin;\n this.userId = s.userId;\n return this.readAttributes(s.structAttributes);\n }\n\n readAttributes(attributes: StructAttributeInterface): BasePersona {\n if (!attributes) {\n return this;\n }\n /* eslint-disable @typescript-eslint/no-unsafe-assignment */\n const attrs = getValueFromAttribute({structAttribute: {attributes: attributes.attributes}});\n Object.assign(this, attrs);\n return this;\n }\n}\n\nexport class TypedPersona extends BasePersona {\n}\n\nexport class NamespacedPersona extends BasePersona {\n partnerId = '';\n\n fromPersona(p: Persona): BasePersona {\n this.partnerId = p.context.namespaced.namespace;\n return super.fromPersona(p);\n }\n}\n\nexport function getValueFromAttribute(attr: AttributeInterface): any {\n if (typeof attr === 'undefined') {\n return null;\n } else if (typeof attr.stringAttribute !== 'undefined') {\n return attr.stringAttribute;\n } else if (typeof attr.intAttribute !== 'undefined') {\n return attr.intAttribute;\n } else if (typeof attr.doubleAttribute !== 'undefined') {\n return attr.doubleAttribute;\n } else if (typeof attr.boolAttribute !== 'undefined') {\n return attr.boolAttribute;\n } else if (typeof attr.listAttribute !== 'undefined') {\n const vals: any[] = [];\n /* eslint-disable @typescript-eslint/no-unsafe-return */\n if (typeof attr.listAttribute.attributes === 'undefined') {\n /* eslint-disable @typescript-eslint/no-unsafe-return */\n return vals;\n }\n for (const val of attr.listAttribute.attributes) {\n vals.push(getValueFromAttribute(val))\n }\n return vals;\n } else if (typeof attr.timestampAttribute !== 'undefined') {\n return attr.timestampAttribute;\n } else if (typeof attr.geopointAttribute !== 'undefined') {\n return attr.geopointAttribute;\n } else if (typeof attr.structAttribute !== 'undefined') {\n const result: any = {};\n for (const a in attr.structAttribute.attributes) {\n if (!attr.structAttribute.attributes.hasOwnProperty(a)) {\n continue;\n }\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n result[CamelCase(a)] = getValueFromAttribute(attr.structAttribute.attributes[a]);\n }\n return result;\n }\n}\n\nexport function CamelCase(str: string): string {\n let result = '';\n\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '_') {\n result += str[i + 1].toUpperCase();\n i++;\n } else {\n result += str[i];\n }\n }\n\n return result\n}\n","import {TypedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport class DeveloperPersona extends TypedPersona {\n type = PersonaType.developer;\n}\n","import {TypedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport class PartnerPersona extends TypedPersona {\n type = PersonaType.partner;\n rmUid: string;\n msUid: string;\n nbUid: string;\n armUid: string;\n smUid: string;\n\n accessibleMarkets: string[];\n isSuperAdmin = false;\n isAdmin = false;\n\n canCustomizeWhitelabel = false;\n canAccessBilling = false;\n canAccessAccounts = false;\n canAccessMarketing = false;\n canAccessSales = false;\n canAccessConcierge = false;\n canAccessBrands = false;\n canAccessDashboard = false;\n canAccessOrders = false;\n canAccessCompanyProfile = false;\n canAccessAutomations = false;\n canAccessMarketplace = false;\n canEnableApps = false;\n canAccessRetailBilling = false;\n}\n","import {NamespacedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport class PartnerAppPersona extends NamespacedPersona {\n type = PersonaType.partner_app;\n}\n","import {NamespacedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport const TitleChoice = {\n PARTNER_FOR_SMB: 'partnerForSmb',\n REP_MAN_FOR_SMB: 'repManForSmb',\n MARKET_FOR_SMB: 'marketForSmb'\n};\nexport type TitleChoice = (typeof TitleChoice)[keyof typeof TitleChoice];\n\nexport class SalespersonPersona extends NamespacedPersona {\n type = PersonaType.sales_person;\n\n emailLower: string;\n\n jobTitle: string;\n department: string;\n region: string;\n supervisor: string;\n marketId: string;\n\n isSalesManager: boolean;\n\n phoneNumbers: string[];\n address: string;\n city: string;\n state: string;\n country: string;\n zipCode: string;\n titleChoice: TitleChoice = TitleChoice.PARTNER_FOR_SMB;\n pictureName: string;\n pictureServingUrl: string;\n pictureServingUrlSecure: string;\n}\n","import {NamespacedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport interface AccountAccessPermission {\n accountGroupId: string;\n accountIds: string[];\n}\n\nexport class SMBPersona extends NamespacedPersona {\n type = PersonaType.smb;\n\n workPhone: string;\n defaultAccountGroup: string;\n accountGroupAssociations: string[];\n accountAccessPermissions: AccountAccessPermission[];\n notificationsEnabled = true;\n}\n","import {TypedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport class VendorPersona extends TypedPersona {\n type = PersonaType.vendor;\n\n appIds: string[];\n vendorName: string;\n isAdmin: boolean;\n}\n","import {TypedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport class DigitalAgentPersona extends TypedPersona {\n type = PersonaType.digital_agent;\n\n accessiblePartnerIds: string[];\n profilePicture: string;\n}\n","import {TypedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport class SuccessPersona extends TypedPersona {\n type = PersonaType.success;\n}\n","import {TypedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport class AccountGroupPersona extends TypedPersona {\n type = PersonaType.account_group;\n}\n","import {NamespacedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport class CRMRolePersona extends NamespacedPersona {\n type = PersonaType.crm_role;\n}","import {Context, Persona} from '../_internal/objects/subjects';\nimport {DeveloperPersona} from './developer';\nimport {PersonaType} from './persona-type.enum';\nimport {BasePersona, NamespacedPersona} from './base-personas';\nimport {PartnerPersona} from './partner';\nimport {PartnerAppPersona} from './partner-app';\nimport {SalespersonPersona} from './salesperson';\nimport {SMBPersona} from './smb';\nimport {VendorPersona} from './vendor';\nimport {DigitalAgentPersona} from './digital-agent';\nimport {SuccessPersona} from './success';\nimport {AccountGroupPersona} from './account-group';\nimport {CRMRolePersona} from \"./crm-role\";\n\nexport function fromPersona(persona: Persona): BasePersona | null {\n const type = getTypeFromContext(persona.context);\n if (type === null) {\n return null;\n }\n\n const personaCls = getPersonaFromType(type);\n personaCls.fromPersona(persona);\n return personaCls;\n}\n\nexport function getTypeFromContext(ctx: Context): PersonaType | null {\n const type = (!!ctx.namespaced) ? ctx.namespaced.type : ctx.typed.type;\n switch (type) {\n case 'partner':\n return PersonaType.partner;\n case 'partner_app':\n return PersonaType.partner_app;\n case 'sales_person':\n return PersonaType.sales_person;\n case 'smb':\n return PersonaType.smb;\n case 'vendor':\n return PersonaType.vendor;\n case 'digital_agent':\n return PersonaType.digital_agent;\n case 'developer':\n return PersonaType.developer;\n case 'success':\n return PersonaType.success;\n case 'account_group':\n return PersonaType.account_group;\n case 'crm_role':\n return PersonaType.crm_role;\n }\n return null;\n}\n\nexport function getPersonaFromType(personaType: PersonaType): BasePersona {\n return new {\n 'partner': PartnerPersona,\n 'partner_app': PartnerAppPersona,\n 'sales_person': SalespersonPersona,\n 'smb': SMBPersona,\n 'vendor': VendorPersona,\n 'digital_agent': DigitalAgentPersona,\n 'developer': DeveloperPersona,\n 'success': SuccessPersona,\n 'account_group': AccountGroupPersona,\n 'crm_role': CRMRolePersona,\n }[personaType]();\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n AccessResourceRequest,\n AddKeyRequest,\n AddKeyResponse,\n AddMultiUserRestrictionRequest,\n AuthenticateSubjectRequest,\n ChangeSubjectEmailRequest,\n CreateExternalIDRequest,\n CreateSessionRequest,\n CreateSessionResponse,\n CreateTemporarySubjectRequest,\n CreateTemporarySubjectResponse,\n DeleteSubjectRequest,\n DeleteUserRequest,\n GetMultiExternalIDRequest,\n GetMultiExternalIDResponse,\n GetMultiUsersRequest,\n GetMultiUsersResponse,\n GetResetPasswordTokenRequest,\n GetSessionTokenRequest,\n GetShortLivedTokenRequest,\n GetSubjectContextRequest,\n GetSubjectContextResponse,\n GetSubjectsByEmailRequest,\n GetSubjectsRequest,\n GetSubjectsResponse,\n GetTokenResponse,\n IAMListPersonasRequest,\n ListPersonasByEmailRequest,\n ListPersonasResponse,\n ListSecurityLogsRequest,\n ListSecurityLogsResponse,\n ListUsersRequest,\n ListUsersResponse,\n MutateAttributesRequest,\n RegisterPolicyRequest,\n RegisterResourceOwnerRequest,\n RegisterResourceRequest,\n RegisterSubjectRequest,\n RegisterSubjectResponse,\n RemoveKeyRequest,\n RemoveMultiUserRestrictionRequest,\n ResetPasswordTokenResponse,\n ResetSubjectPasswordRequest,\n SearchSubjectRequest,\n SearchSubjectResponse,\n SendEmailVerificationRequest,\n UpdateUserRequest,\n VerifyEmailRequest,\n} from './objects/';\nimport {\n AccessResourceRequestInterface,\n AddKeyRequestInterface,\n AddKeyResponseInterface,\n AddMultiUserRestrictionRequestInterface,\n AuthenticateSubjectRequestInterface,\n ChangeSubjectEmailRequestInterface,\n CreateExternalIDRequestInterface,\n CreateSessionRequestInterface,\n CreateSessionResponseInterface,\n CreateTemporarySubjectRequestInterface,\n CreateTemporarySubjectResponseInterface,\n DeleteSubjectRequestInterface,\n DeleteUserRequestInterface,\n GetMultiExternalIDRequestInterface,\n GetMultiExternalIDResponseInterface,\n GetMultiUsersRequestInterface,\n GetMultiUsersResponseInterface,\n GetResetPasswordTokenRequestInterface,\n GetSessionTokenRequestInterface,\n GetShortLivedTokenRequestInterface,\n GetSubjectContextRequestInterface,\n GetSubjectContextResponseInterface,\n GetSubjectsByEmailRequestInterface,\n GetSubjectsRequestInterface,\n GetSubjectsResponseInterface,\n GetTokenResponseInterface,\n IAMListPersonasRequestInterface,\n ListPersonasByEmailRequestInterface,\n ListPersonasResponseInterface,\n ListSecurityLogsRequestInterface,\n ListSecurityLogsResponseInterface,\n ListUsersRequestInterface,\n ListUsersResponseInterface,\n MutateAttributesRequestInterface,\n RegisterPolicyRequestInterface,\n RegisterResourceOwnerRequestInterface,\n RegisterResourceRequestInterface,\n RegisterSubjectRequestInterface,\n RegisterSubjectResponseInterface,\n RemoveKeyRequestInterface,\n RemoveMultiUserRestrictionRequestInterface,\n ResetPasswordTokenResponseInterface,\n ResetSubjectPasswordRequestInterface,\n SearchSubjectRequestInterface,\n SearchSubjectResponseInterface,\n SendEmailVerificationRequestInterface,\n UpdateUserRequestInterface,\n VerifyEmailRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class IAMApiService {\n private _host = this.hostService.hostWithScheme;\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n registerSubject(r: RegisterSubjectRequest | RegisterSubjectRequestInterface): Observable<RegisterSubjectResponse> {\n const request = ((<RegisterSubjectRequest>r).toApiJson) ? (<RegisterSubjectRequest>r) : new RegisterSubjectRequest(r);\n return this.http.post<RegisterSubjectResponseInterface>(this._host + \"/iam.v1.IAM/RegisterSubject\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => RegisterSubjectResponse.fromProto(resp)),\n );\n }\n authenticateSubject(r: AuthenticateSubjectRequest | AuthenticateSubjectRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<AuthenticateSubjectRequest>r).toApiJson) ? (<AuthenticateSubjectRequest>r) : new AuthenticateSubjectRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/AuthenticateSubject\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getSubjects(r: GetSubjectsRequest | GetSubjectsRequestInterface): Observable<GetSubjectsResponse> {\n const request = ((<GetSubjectsRequest>r).toApiJson) ? (<GetSubjectsRequest>r) : new GetSubjectsRequest(r);\n return this.http.post<GetSubjectsResponseInterface>(this._host + \"/iam.v1.IAM/GetSubjects\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetSubjectsResponse.fromProto(resp)),\n );\n }\n getSubjectsByEmail(r: GetSubjectsByEmailRequest | GetSubjectsByEmailRequestInterface): Observable<GetSubjectsResponse> {\n const request = ((<GetSubjectsByEmailRequest>r).toApiJson) ? (<GetSubjectsByEmailRequest>r) : new GetSubjectsByEmailRequest(r);\n return this.http.post<GetSubjectsResponseInterface>(this._host + \"/iam.v1.IAM/GetSubjectsByEmail\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetSubjectsResponse.fromProto(resp)),\n );\n }\n mutateAttributes(r: MutateAttributesRequest | MutateAttributesRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<MutateAttributesRequest>r).toApiJson) ? (<MutateAttributesRequest>r) : new MutateAttributesRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/MutateAttributes\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n resetSubjectPassword(r: ResetSubjectPasswordRequest | ResetSubjectPasswordRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ResetSubjectPasswordRequest>r).toApiJson) ? (<ResetSubjectPasswordRequest>r) : new ResetSubjectPasswordRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/ResetSubjectPassword\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n changeSubjectEmail(r: ChangeSubjectEmailRequest | ChangeSubjectEmailRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ChangeSubjectEmailRequest>r).toApiJson) ? (<ChangeSubjectEmailRequest>r) : new ChangeSubjectEmailRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/ChangeSubjectEmail\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n deleteSubject(r: DeleteSubjectRequest | DeleteSubjectRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeleteSubjectRequest>r).toApiJson) ? (<DeleteSubjectRequest>r) : new DeleteSubjectRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/DeleteSubject\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n searchSubject(r: SearchSubjectRequest | SearchSubjectRequestInterface): Observable<SearchSubjectResponse> {\n const request = ((<SearchSubjectRequest>r).toApiJson) ? (<SearchSubjectRequest>r) : new SearchSubjectRequest(r);\n return this.http.post<SearchSubjectResponseInterface>(this._host + \"/iam.v1.IAM/SearchSubject\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => SearchSubjectResponse.fromProto(resp)),\n );\n }\n getSubjectContext(r: GetSubjectContextRequest | GetSubjectContextRequestInterface): Observable<GetSubjectContextResponse> {\n const request = ((<GetSubjectContextRequest>r).toApiJson) ? (<GetSubjectContextRequest>r) : new GetSubjectContextRequest(r);\n return this.http.post<GetSubjectContextResponseInterface>(this._host + \"/iam.v1.IAM/GetSubjectContext\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetSubjectContextResponse.fromProto(resp)),\n );\n }\n registerResourceOwner(r: RegisterResourceOwnerRequest | RegisterResourceOwnerRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<RegisterResourceOwnerRequest>r).toApiJson) ? (<RegisterResourceOwnerRequest>r) : new RegisterResourceOwnerRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/RegisterResourceOwner\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n registerResource(r: RegisterResourceRequest | RegisterResourceRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<RegisterResourceRequest>r).toApiJson) ? (<RegisterResourceRequest>r) : new RegisterResourceRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/RegisterResource\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n registerPolicy(r: RegisterPolicyRequest | RegisterPolicyRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<RegisterPolicyRequest>r).toApiJson) ? (<RegisterPolicyRequest>r) : new RegisterPolicyRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/RegisterPolicy\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n accessResource(r: AccessResourceRequest | AccessResourceRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<AccessResourceRequest>r).toApiJson) ? (<AccessResourceRequest>r) : new AccessResourceRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/AccessResource\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getShortLivedToken(r: GetShortLivedTokenRequest | GetShortLivedTokenRequestInterface): Observable<GetTokenResponse> {\n const request = ((<GetShortLivedTokenRequest>r).toApiJson) ? (<GetShortLivedTokenRequest>r) : new GetShortLivedTokenRequest(r);\n return this.http.post<GetTokenResponseInterface>(this._host + \"/iam.v1.IAM/GetShortLivedToken\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetTokenResponse.fromProto(resp)),\n );\n }\n getSessionToken(r: GetSessionTokenRequest | GetSessionTokenRequestInterface): Observable<GetTokenResponse> {\n const request = ((<GetSessionTokenRequest>r).toApiJson) ? (<GetSessionTokenRequest>r) : new GetSessionTokenRequest(r);\n return this.http.post<GetTokenResponseInterface>(this._host + \"/iam.v1.IAM/GetSessionToken\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetTokenResponse.fromProto(resp)),\n );\n }\n addKey(r: AddKeyRequest | AddKeyRequestInterface): Observable<AddKeyResponse> {\n const request = ((<AddKeyRequest>r).toApiJson) ? (<AddKeyRequest>r) : new AddKeyRequest(r);\n return this.http.post<AddKeyResponseInterface>(this._host + \"/iam.v1.IAM/AddKey\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => AddKeyResponse.fromProto(resp)),\n );\n }\n removeKey(r: RemoveKeyRequest | RemoveKeyRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<RemoveKeyRequest>r).toApiJson) ? (<RemoveKeyRequest>r) : new RemoveKeyRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/RemoveKey\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n createSession(r: CreateSessionRequest | CreateSessionRequestInterface): Observable<CreateSessionResponse> {\n const request = ((<CreateSessionRequest>r).toApiJson) ? (<CreateSessionRequest>r) : new CreateSessionRequest(r);\n return this.http.post<CreateSessionResponseInterface>(this._host + \"/iam.v1.IAM/CreateSession\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => CreateSessionResponse.fromProto(resp)),\n );\n }\n getResetPasswordToken(r: GetResetPasswordTokenRequest | GetResetPasswordTokenRequestInterface): Observable<ResetPasswordTokenResponse> {\n const request = ((<GetResetPasswordTokenRequest>r).toApiJson) ? (<GetResetPasswordTokenRequest>r) : new GetResetPasswordTokenRequest(r);\n return this.http.post<ResetPasswordTokenResponseInterface>(this._host + \"/iam.v1.IAM/GetResetPasswordToken\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ResetPasswordTokenResponse.fromProto(resp)),\n );\n }\n listPersonasByEmail(r: ListPersonasByEmailRequest | ListPersonasByEmailRequestInterface): Observable<ListPersonasResponse> {\n const request = ((<ListPersonasByEmailRequest>r).toApiJson) ? (<ListPersonasByEmailRequest>r) : new ListPersonasByEmailRequest(r);\n return this.http.post<ListPersonasResponseInterface>(this._host + \"/iam.v1.IAM/ListPersonasByEmail\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListPersonasResponse.fromProto(resp)),\n );\n }\n listPersonas(r: IAMListPersonasRequest | IAMListPersonasRequestInterface): Observable<ListPersonasResponse> {\n const request = ((<IAMListPersonasRequest>r).toApiJson) ? (<IAMListPersonasRequest>r) : new IAMListPersonasRequest(r);\n return this.http.post<ListPersonasResponseInterface>(this._host + \"/iam.v1.IAM/ListPersonas\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListPersonasResponse.fromProto(resp)),\n );\n }\n createTemporarySubject(r: CreateTemporarySubjectRequest | CreateTemporarySubjectRequestInterface): Observable<CreateTemporarySubjectResponse> {\n const request = ((<CreateTemporarySubjectRequest>r).toApiJson) ? (<CreateTemporarySubjectRequest>r) : new CreateTemporarySubjectRequest(r);\n return this.http.post<CreateTemporarySubjectResponseInterface>(this._host + \"/iam.v1.IAM/CreateTemporarySubject\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => CreateTemporarySubjectResponse.fromProto(resp)),\n );\n }\n getMultiUsers(r: GetMultiUsersRequest | GetMultiUsersRequestInterface): Observable<GetMultiUsersResponse> {\n const request = ((<GetMultiUsersRequest>r).toApiJson) ? (<GetMultiUsersRequest>r) : new GetMultiUsersRequest(r);\n return this.http.post<GetMultiUsersResponseInterface>(this._host + \"/iam.v1.IAM/GetMultiUsers\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiUsersResponse.fromProto(resp)),\n );\n }\n listUsers(r: ListUsersRequest | ListUsersRequestInterface): Observable<ListUsersResponse> {\n const request = ((<ListUsersRequest>r).toApiJson) ? (<ListUsersRequest>r) : new ListUsersRequest(r);\n return this.http.post<ListUsersResponseInterface>(this._host + \"/iam.v1.IAM/ListUsers\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListUsersResponse.fromProto(resp)),\n );\n }\n updateUser(r: UpdateUserRequest | UpdateUserRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpdateUserRequest>r).toApiJson) ? (<UpdateUserRequest>r) : new UpdateUserRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/UpdateUser\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n deleteUser(r: DeleteUserRequest | DeleteUserRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeleteUserRequest>r).toApiJson) ? (<DeleteUserRequest>r) : new DeleteUserRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/DeleteUser\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n listSecurityLogs(r: ListSecurityLogsRequest | ListSecurityLogsRequestInterface): Observable<ListSecurityLogsResponse> {\n const request = ((<ListSecurityLogsRequest>r).toApiJson) ? (<ListSecurityLogsRequest>r) : new ListSecurityLogsRequest(r);\n return this.http.post<ListSecurityLogsResponseInterface>(this._host + \"/iam.v1.IAM/ListSecurityLogs\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListSecurityLogsResponse.fromProto(resp)),\n );\n }\n verifyEmail(r: VerifyEmailRequest | VerifyEmailRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<VerifyEmailRequest>r).toApiJson) ? (<VerifyEmailRequest>r) : new VerifyEmailRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/VerifyEmail\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n sendEmailVerification(r: SendEmailVerificationRequest | SendEmailVerificationRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<SendEmailVerificationRequest>r).toApiJson) ? (<SendEmailVerificationRequest>r) : new SendEmailVerificationRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/SendEmailVerification\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getMultiExternalId(r: GetMultiExternalIDRequest | GetMultiExternalIDRequestInterface): Observable<GetMultiExternalIDResponse> {\n const request = ((<GetMultiExternalIDRequest>r).toApiJson) ? (<GetMultiExternalIDRequest>r) : new GetMultiExternalIDRequest(r);\n return this.http.post<GetMultiExternalIDResponseInterface>(this._host + \"/iam.v1.IAM/GetMultiExternalID\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiExternalIDResponse.fromProto(resp)),\n );\n }\n createExternalId(r: CreateExternalIDRequest | CreateExternalIDRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<CreateExternalIDRequest>r).toApiJson) ? (<CreateExternalIDRequest>r) : new CreateExternalIDRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/CreateExternalID\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n addMultiUserRestriction(r: AddMultiUserRestrictionRequest | AddMultiUserRestrictionRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<AddMultiUserRestrictionRequest>r).toApiJson) ? (<AddMultiUserRestrictionRequest>r) : new AddMultiUserRestrictionRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/AddMultiUserRestriction\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n removeMultiUserRestriction(r: RemoveMultiUserRestrictionRequest | RemoveMultiUserRestrictionRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<RemoveMultiUserRestrictionRequest>r).toApiJson) ? (<RemoveMultiUserRestrictionRequest>r) : new RemoveMultiUserRestrictionRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/RemoveMultiUserRestriction\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n \n}\n","import {Injectable} from '@angular/core';\nimport {SessionService} from '@vendasta/core';\nimport {Observable} from 'rxjs';\nimport {map, switchMap, filter} from 'rxjs/operators';\nimport {ContextInterface} from './_internal/interfaces/subjects.interface';\n\nimport {\n GetSubjectResponse,\n GetTokenResponse,\n ListPersonasResponse as ListPersonasProtoResponse,\n ListSecurityLogsRequestFilters,\n ListSecurityLogsResponse,\n ListUsersResponse\n} from './_internal/objects/api';\nimport {Context, NamespacedContext, Persona, TypedContext} from './_internal/objects/subjects';\nimport {UserIAMApiService} from './_internal/user-iam.api.service';\nimport {LoginResponseInterface, LogoutResponseInterface} from './http/http.interface';\nimport {IamHttpApiService} from './http/iam.http.api.service';\nimport {BasePersona} from './personas/base-personas';\nimport {PersonaType} from './personas/persona-type.enum';\nimport {fromPersona} from './personas/personas';\nimport {User} from './_internal/objects/users';\nimport {IAMApiService} from './_internal/iam.api.service';\nimport {UserFilterInterface, UserIdentifierInterface, UserSortOptionsInterface} from './_internal/interfaces';\n\n@Injectable({providedIn: 'root'})\nexport class IAMService {\n constructor(\n private api: UserIAMApiService,\n private httpApi: IamHttpApiService,\n private sessionService: SessionService,\n private iamApi: IAMApiService\n ) {\n }\n\n // Get a subject from the session ID\n getSubjectBySession(sessionId: string, personaType: PersonaType, partnerId?: string): Observable<BasePersona | null> {\n let context: ContextInterface;\n if (!!partnerId) {\n context = new Context({\n namespaced: new NamespacedContext({\n namespace: partnerId,\n type: PersonaType[personaType]\n })\n });\n } else {\n context = new Context({ typed: new TypedContext({ type: PersonaType[personaType] }) });\n }\n return this.api\n .getSubjectBySession({\n session: sessionId,\n context: context\n })\n .pipe(map((r: GetSubjectResponse) => fromPersona(\n new Persona({ subject: r.subject.subject, context: context })\n )));\n }\n\n // Get persona type from the current session\n getLoggedInSubject(personaType: PersonaType, partnerId?: string): Observable<BasePersona | null> {\n return this.sessionService\n .getSessionId()\n .pipe(\n switchMap((sessionId: string | null) => this.getSubjectBySession(sessionId!, personaType, partnerId)),\n );\n }\n\n // List all available personas for the session. Optionally pass a persona type to filter by that persona.\n listPersonas(sessionId: string, personaType?: PersonaType): Observable<BasePersona[]> {\n return this.api\n .listPersonas({\n session: sessionId,\n pageSize: 100,\n type: personaType\n })\n .pipe(\n map((r: ListPersonasProtoResponse) => {\n const personas: BasePersona[] = [];\n if (!r || !r.personas) {\n return [];\n }\n for (const p of r.personas) {\n const persona = fromPersona(p);\n if (!!persona) {\n personas.push(persona);\n }\n }\n return personas;\n })\n );\n }\n\n // List all available personas for the current session. Optionally pass a persona type to filter by that persona.\n listLoggedInPersonas(personaType?: PersonaType): Observable<BasePersona[]> {\n return this.sessionService.getSessionId().pipe(switchMap((sessionId: string | null) => this.listPersonas(sessionId!,\n personaType)));\n }\n\n // Get a short lived session token\n getToken(): Observable<string> {\n return this.api.getToken({}).pipe(map((r: GetTokenResponse) => r.token));\n }\n\n // Login into a user. Optionally specify the partner and persona type you want to log into\n login(email: string, password: string, personaType?: PersonaType, partnerId?: string): Observable<string> {\n return this.httpApi\n .login({\n email: email,\n password: password,\n namespace: partnerId,\n type: personaType\n })\n .pipe(map((r: LoginResponseInterface) => r.sessionId || ''));\n }\n\n // Logout of the current session, returns true if successful\n logout(): Observable<boolean> {\n return this.httpApi.logout().pipe(map((r: LogoutResponseInterface) => r.success));\n }\n\n // This will redirect the browser to IAM's sso login handler.\n ssoLogin(nextUrl: string, personaType?: PersonaType, partnerId?: string): void {\n this.httpApi.ssoLogin({\n nextUrl: nextUrl,\n namespace: partnerId,\n type: personaType\n });\n }\n\n // getMultiUsers takes an array of user identifiers and calls IAM to convert them into Users\n getMultiUsers(userIdentifiers: UserIdentifierInterface[]): Observable<User[]> {\n return this.iamApi.getMultiUsers({\n userIdentifiers\n }).pipe(\n map(resp => {\n if (!!resp.users) {\n return resp.users\n }\n return [];\n }),\n map(userContainers => userContainers.map(u => u.user))\n );\n }\n\n // listSecurityLogs returns security logs for a userId passed in. This is a paged function, but the\n // handling of paged information is left to the implementor (for now).\n listSecurityLogs(userId: string, cursor?: string, pageSize?: number, actionId = ''):\n Observable<ListSecurityLogsResponse> {\n const optionalArgs: {[key: string]: ListSecurityLogsRequestFilters} = {};\n if (actionId !== '') {\n optionalArgs.filters = new ListSecurityLogsRequestFilters({actionId});\n }\n return this.iamApi.listSecurityLogs({\n userId,\n cursor,\n pageSize,\n ...optionalArgs\n })\n }\n\n // listUsers returns users for a namespace passed in. This is a paged function, but the\n // handling of paged information is left to the implementor (for now).\n // An empty namespace will return users that exist outside of a namespace.\n listUsers(namespace: string, email?: string, cursor?: string, pageSize?: number, subjectTypes?: string[],\n searchTerms?: string[], sortOptions?: UserSortOptionsInterface[]): Observable<ListUsersResponse> {\n const userFilter: UserFilterInterface = {};\n if (!!subjectTypes && subjectTypes.length > 0) {\n userFilter.subjectTypes = subjectTypes;\n }\n if (!!searchTerms && searchTerms.length > 0) {\n userFilter.searchTerms = searchTerms;\n }\n\n return this.iamApi.listUsers({\n namespace: namespace,\n email: email,\n cursor: cursor,\n pageSize: pageSize,\n userFilter: userFilter,\n sortOptions: (sortOptions || [])\n })\n }\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Index.\n// *********************************\n\nexport * from './enums';\nexport * from './objects';\nexport * from './interfaces';\nexport { IAMApiService } from './iam.api.service';\nexport { UserIAMApiService } from './user-iam.api.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["enumStringToValue","e.AlgorithmType","e.BooleanOperator","e.ForOperator","e.AccessScope","e.RestrictionType","e.OrderByDirection","e.SortDirection","e.UserSortField","i2.HostService","i1.UserIAMApiService","i2.IamHttpApiService","i4.IAMApiService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vendasta-iam.mjs","sources":["../../../iam_sdk/src/lib/_generated/host.service.ts","../../../iam_sdk/src/lib/http/http.ts","../../../iam_sdk/src/lib/http/iam.http.api.service.ts","../../../iam_sdk/src/lib/personas/persona-type.enum.ts","../../../iam_sdk/src/lib/personas/base-personas.ts","../../../iam_sdk/src/lib/personas/developer.ts","../../../iam_sdk/src/lib/personas/partner.ts","../../../iam_sdk/src/lib/personas/partner-app.ts","../../../iam_sdk/src/lib/personas/salesperson.ts","../../../iam_sdk/src/lib/personas/smb.ts","../../../iam_sdk/src/lib/personas/vendor.ts","../../../iam_sdk/src/lib/personas/digital-agent.ts","../../../iam_sdk/src/lib/personas/success.ts","../../../iam_sdk/src/lib/personas/account-group.ts","../../../iam_sdk/src/lib/personas/crm-role.ts","../../../iam_sdk/src/lib/personas/personas.ts","../../../iam_sdk/src/lib/_internal/objects/field-mask.ts","../../../iam_sdk/src/lib/_internal/objects/attributes.ts","../../../iam_sdk/src/lib/_internal/enums/policies.enum.ts","../../../iam_sdk/src/lib/_internal/enums/resources.enum.ts","../../../iam_sdk/src/lib/_internal/enums/subjects.enum.ts","../../../iam_sdk/src/lib/_internal/enums/users.enum.ts","../../../iam_sdk/src/lib/_internal/enums/api.enum.ts","../../../iam_sdk/src/lib/_internal/enums/index.ts","../../../iam_sdk/src/lib/_internal/objects/policies.ts","../../../iam_sdk/src/lib/_internal/objects/resources.ts","../../../iam_sdk/src/lib/_internal/objects/subjects.ts","../../../iam_sdk/src/lib/_internal/objects/security-logs.ts","../../../iam_sdk/src/lib/_internal/objects/users.ts","../../../iam_sdk/src/lib/_internal/objects/annotations.ts","../../../iam_sdk/src/lib/_internal/objects/api.ts","../../../iam_sdk/src/lib/_internal/objects/index.ts","../../../iam_sdk/src/lib/_internal/iam.api.service.ts","../../../iam_sdk/src/lib/_internal/user-iam.api.service.ts","../../../iam_sdk/src/lib/iam.service.ts","../../../iam_sdk/src/lib/_internal/index.ts","../../../iam_sdk/src/vendasta-iam.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\ndeclare const window: any;\nconst environment: string = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap: { [key: string]: string } = {\n 'local': 'iam.vendasta-local.com',\n 'test': '',\n 'demo': 'iam-api-demo.apigateway.co',\n 'prod': 'iam-api-prod.apigateway.co',\n 'production': 'iam-api-prod.apigateway.co',\n};\n\n@Injectable({providedIn: 'root'})\nexport class HostService {\n get host(): string {\n return hostMap[environment.toLowerCase()];\n }\n\n get hostWithScheme(): string {\n return 'https://' + this.host;\n }\n}\n","import {\n LoginRequestInterface, LoginResponseInterface, LogoutResponseInterface, SSOLoginRequestInterface\n} from './http.interface';\n\nexport class LoginRequest implements LoginRequestInterface {\n namespace: string;\n type: string;\n email: string;\n password: string;\n providerIdToken: string;\n provider: string;\n\n static fromProto(proto: any): LoginRequest {\n if (!proto) {\n return new LoginRequest();\n }\n let m = new LoginRequest();\n /* eslint-disable @typescript-eslint/no-unsafe-assignment */\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: LoginRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.namespace === 'undefined' &&\n typeof this.type === 'undefined' &&\n typeof this.email === 'undefined' &&\n typeof this.password === 'undefined' &&\n typeof this.providerIdToken === 'undefined' &&\n typeof this.provider === 'undefined') {\n return {};\n }\n\n return {\n 'namespace': (typeof this.namespace !== 'undefined') ? this.namespace : null,\n 'type': (typeof this.type !== 'undefined') ? this.type : null,\n 'email': (typeof this.email !== 'undefined') ? this.email : null,\n 'password': (typeof this.password !== 'undefined') ? this.password : null,\n 'provider_id_token': (typeof this.providerIdToken !== 'undefined') ? this.providerIdToken : null,\n 'provider': (typeof this.provider !== 'undefined') ? this.provider : null\n }\n }\n}\n\nexport class LoginResponse implements LoginResponseInterface {\n sessionId: string;\n\n static fromProto(proto: any): LoginResponse {\n /* eslint-disable */\n const m = new LoginResponse();\n m.sessionId = proto['session_id'];\n return m;\n }\n\n constructor(kwargs?: LoginRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.sessionId === 'undefined') {\n return {};\n }\n\n return {\n 'sessionId': (typeof this.sessionId !== 'undefined') ? this.sessionId : null\n }\n }\n}\n\nexport class LogoutResponse implements LogoutResponseInterface {\n success: boolean;\n\n static fromProto(proto: any): LogoutResponse {\n let m = new LogoutResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: LogoutResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.success === 'undefined') {\n return {};\n }\n\n return {\n 'success': (typeof this.success !== 'undefined') ? this.success : null\n }\n }\n}\n\nexport class SSOLoginRequest implements SSOLoginRequestInterface {\n nextUrl: string;\n namespace: string;\n type: string;\n\n static fromProto(proto: any): SSOLoginRequest {\n let m = new SSOLoginRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: SSOLoginRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): any {\n if (\n typeof this.nextUrl === 'undefined' &&\n typeof this.namespace === 'undefined' &&\n typeof this.type === 'undefined') {\n return null;\n }\n\n return {\n 'next_url': (typeof this.nextUrl !== 'undefined') ? this.nextUrl : null,\n 'namespace': (typeof this.namespace !== 'undefined') ? this.namespace : null,\n 'type': (typeof this.type !== 'undefined') ? this.type : null\n }\n }\n}\n","/* eslint-disable */\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map, share } from 'rxjs/operators';\n\nimport { HostService } from '../_generated/host.service';\nimport {\n LoginRequestInterface,\n LoginResponseInterface,\n LogoutResponseInterface,\n SSOLoginRequestInterface,\n} from './http.interface';\nimport { LoginRequest, LoginResponse, LogoutResponse, SSOLoginRequest } from './http';\n\n@Injectable({ providedIn: 'root' })\nexport class IamHttpApiService {\n private _host = this.hostService.hostWithScheme;\n\n constructor(private http: HttpClient, private hostService: HostService) {}\n\n private apiOptions(includeCredentials?: boolean): {\n headers: HttpHeaders;\n withCredentials?: boolean;\n } {\n if (includeCredentials) {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/x-www-form-urlencoded',\n }),\n withCredentials: true,\n };\n }\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/x-www-form-urlencoded',\n }),\n };\n }\n\n login(r: LoginRequest | LoginRequestInterface): Observable<LoginResponse> {\n const toApiJson = (<LoginRequest>r).toApiJson;\n const request = typeof toApiJson !== 'undefined' ? <LoginRequest>r : new LoginRequest(r);\n return this.http\n .post<LoginResponseInterface>(\n this._host + '/_ajax/v1/login',\n request.toApiJson(),\n this.apiOptions(),\n )\n .pipe(\n map((resp: LoginResponseInterface) => LoginResponse.fromProto(resp)),\n share(),\n );\n }\n\n logout(): Observable<LogoutResponse> {\n return this.http\n .post<LogoutResponseInterface>(\n this._host + '/_ajax/v1/logout',\n {},\n this.apiOptions(true),\n )\n .pipe(\n map((resp) => LogoutResponse.fromProto(resp)),\n share(),\n );\n }\n\n ssoLogin(r: SSOLoginRequest | SSOLoginRequestInterface): void {\n const toApiJson = (<SSOLoginRequest>r).toApiJson;\n const request = typeof toApiJson !== 'undefined' ? <SSOLoginRequest>r : new SSOLoginRequest(r);\n const params = new URLSearchParams();\n const apiJson = request.toApiJson();\n\n for (const key in apiJson) {\n if (!apiJson.hasOwnProperty(key)) {\n continue;\n }\n const value = apiJson[key];\n if (value === null) {\n continue;\n }\n params.append(key, value);\n }\n\n window.location.href = `${this._host}/sso-login?${params.toString()}`;\n }\n}\n","export enum PersonaType {\n partner = 'partner',\n partner_app = 'partner_app',\n sales_person = 'sales_person',\n smb = 'smb',\n vendor = 'vendor',\n digital_agent = 'digital_agent',\n developer = 'developer',\n success = 'success',\n account_group = 'account_group',\n crm_role = 'crm_role'\n}\n","import {AttributeInterface, StructAttributeInterface} from '../_internal/interfaces/attributes.interface';\nimport {Persona} from '../_internal/objects/subjects';\nimport {PersonaType} from './persona-type.enum';\n\nexport class BasePersona {\n type: PersonaType;\n subjectId: string;\n email: string;\n userId: string;\n\n created: Date;\n updated: Date;\n lastLogin: Date;\n\n firstName: string;\n lastName: string;\n\n fromPersona(p: Persona): BasePersona {\n const s = p.subject;\n this.subjectId = s.subjectId;\n this.email = s.email;\n this.created = s.created;\n this.updated = s.updated;\n this.lastLogin = s.lastLogin;\n this.userId = s.userId;\n return this.readAttributes(s.structAttributes);\n }\n\n readAttributes(attributes: StructAttributeInterface): BasePersona {\n if (!attributes) {\n return this;\n }\n /* eslint-disable @typescript-eslint/no-unsafe-assignment */\n const attrs = getValueFromAttribute({structAttribute: {attributes: attributes.attributes}});\n Object.assign(this, attrs);\n return this;\n }\n}\n\nexport class TypedPersona extends BasePersona {\n}\n\nexport class NamespacedPersona extends BasePersona {\n partnerId = '';\n\n fromPersona(p: Persona): BasePersona {\n this.partnerId = p.context.namespaced.namespace;\n return super.fromPersona(p);\n }\n}\n\nexport function getValueFromAttribute(attr: AttributeInterface): any {\n if (typeof attr === 'undefined') {\n return null;\n } else if (typeof attr.stringAttribute !== 'undefined') {\n return attr.stringAttribute;\n } else if (typeof attr.intAttribute !== 'undefined') {\n return attr.intAttribute;\n } else if (typeof attr.doubleAttribute !== 'undefined') {\n return attr.doubleAttribute;\n } else if (typeof attr.boolAttribute !== 'undefined') {\n return attr.boolAttribute;\n } else if (typeof attr.listAttribute !== 'undefined') {\n const vals: any[] = [];\n /* eslint-disable @typescript-eslint/no-unsafe-return */\n if (typeof attr.listAttribute.attributes === 'undefined') {\n /* eslint-disable @typescript-eslint/no-unsafe-return */\n return vals;\n }\n for (const val of attr.listAttribute.attributes) {\n vals.push(getValueFromAttribute(val))\n }\n return vals;\n } else if (typeof attr.timestampAttribute !== 'undefined') {\n return attr.timestampAttribute;\n } else if (typeof attr.geopointAttribute !== 'undefined') {\n return attr.geopointAttribute;\n } else if (typeof attr.structAttribute !== 'undefined') {\n const result: any = {};\n for (const a in attr.structAttribute.attributes) {\n if (!attr.structAttribute.attributes.hasOwnProperty(a)) {\n continue;\n }\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n result[CamelCase(a)] = getValueFromAttribute(attr.structAttribute.attributes[a]);\n }\n return result;\n }\n}\n\nexport function CamelCase(str: string): string {\n let result = '';\n\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '_') {\n result += str[i + 1].toUpperCase();\n i++;\n } else {\n result += str[i];\n }\n }\n\n return result\n}\n","import {TypedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport class DeveloperPersona extends TypedPersona {\n type = PersonaType.developer;\n}\n","import {TypedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport class PartnerPersona extends TypedPersona {\n type = PersonaType.partner;\n rmUid: string;\n msUid: string;\n nbUid: string;\n armUid: string;\n smUid: string;\n\n accessibleMarkets: string[];\n isSuperAdmin = false;\n isAdmin = false;\n\n canCustomizeWhitelabel = false;\n canAccessBilling = false;\n canAccessAccounts = false;\n canAccessMarketing = false;\n canAccessSales = false;\n canAccessConcierge = false;\n canAccessBrands = false;\n canAccessDashboard = false;\n canAccessOrders = false;\n canAccessCompanyProfile = false;\n canAccessAutomations = false;\n canAccessMarketplace = false;\n canEnableApps = false;\n canAccessRetailBilling = false;\n}\n","import {NamespacedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport class PartnerAppPersona extends NamespacedPersona {\n type = PersonaType.partner_app;\n}\n","import {NamespacedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport const TitleChoice = {\n PARTNER_FOR_SMB: 'partnerForSmb',\n REP_MAN_FOR_SMB: 'repManForSmb',\n MARKET_FOR_SMB: 'marketForSmb'\n};\nexport type TitleChoice = (typeof TitleChoice)[keyof typeof TitleChoice];\n\nexport class SalespersonPersona extends NamespacedPersona {\n type = PersonaType.sales_person;\n\n emailLower: string;\n\n jobTitle: string;\n department: string;\n region: string;\n supervisor: string;\n marketId: string;\n\n isSalesManager: boolean;\n\n phoneNumbers: string[];\n address: string;\n city: string;\n state: string;\n country: string;\n zipCode: string;\n titleChoice: TitleChoice = TitleChoice.PARTNER_FOR_SMB;\n pictureName: string;\n pictureServingUrl: string;\n pictureServingUrlSecure: string;\n}\n","import {NamespacedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport interface AccountAccessPermission {\n accountGroupId: string;\n accountIds: string[];\n}\n\nexport class SMBPersona extends NamespacedPersona {\n type = PersonaType.smb;\n\n workPhone: string;\n defaultAccountGroup: string;\n accountGroupAssociations: string[];\n accountAccessPermissions: AccountAccessPermission[];\n notificationsEnabled = true;\n}\n","import {TypedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport class VendorPersona extends TypedPersona {\n type = PersonaType.vendor;\n\n appIds: string[];\n vendorName: string;\n isAdmin: boolean;\n}\n","import {TypedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport class DigitalAgentPersona extends TypedPersona {\n type = PersonaType.digital_agent;\n\n accessiblePartnerIds: string[];\n profilePicture: string;\n}\n","import {TypedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport class SuccessPersona extends TypedPersona {\n type = PersonaType.success;\n}\n","import {TypedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport class AccountGroupPersona extends TypedPersona {\n type = PersonaType.account_group;\n}\n","import {NamespacedPersona} from './base-personas';\nimport {PersonaType} from './persona-type.enum';\n\nexport class CRMRolePersona extends NamespacedPersona {\n type = PersonaType.crm_role;\n}","import {Context, Persona} from '../_internal/objects/subjects';\nimport {DeveloperPersona} from './developer';\nimport {PersonaType} from './persona-type.enum';\nimport {BasePersona, NamespacedPersona} from './base-personas';\nimport {PartnerPersona} from './partner';\nimport {PartnerAppPersona} from './partner-app';\nimport {SalespersonPersona} from './salesperson';\nimport {SMBPersona} from './smb';\nimport {VendorPersona} from './vendor';\nimport {DigitalAgentPersona} from './digital-agent';\nimport {SuccessPersona} from './success';\nimport {AccountGroupPersona} from './account-group';\nimport {CRMRolePersona} from \"./crm-role\";\n\nexport function fromPersona(persona: Persona): BasePersona | null {\n const type = getTypeFromContext(persona.context);\n if (type === null) {\n return null;\n }\n\n const personaCls = getPersonaFromType(type);\n personaCls.fromPersona(persona);\n return personaCls;\n}\n\nexport function getTypeFromContext(ctx: Context): PersonaType | null {\n const type = (!!ctx.namespaced) ? ctx.namespaced.type : ctx.typed.type;\n switch (type) {\n case 'partner':\n return PersonaType.partner;\n case 'partner_app':\n return PersonaType.partner_app;\n case 'sales_person':\n return PersonaType.sales_person;\n case 'smb':\n return PersonaType.smb;\n case 'vendor':\n return PersonaType.vendor;\n case 'digital_agent':\n return PersonaType.digital_agent;\n case 'developer':\n return PersonaType.developer;\n case 'success':\n return PersonaType.success;\n case 'account_group':\n return PersonaType.account_group;\n case 'crm_role':\n return PersonaType.crm_role;\n }\n return null;\n}\n\nexport function getPersonaFromType(personaType: PersonaType): BasePersona {\n return new {\n 'partner': PartnerPersona,\n 'partner_app': PartnerAppPersona,\n 'sales_person': SalespersonPersona,\n 'smb': SMBPersona,\n 'vendor': VendorPersona,\n 'digital_agent': DigitalAgentPersona,\n 'developer': DeveloperPersona,\n 'success': SuccessPersona,\n 'account_group': AccountGroupPersona,\n 'crm_role': CRMRolePersona,\n }[personaType]();\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class FieldMask implements i.FieldMaskInterface {\n paths: string[];\n\n static fromProto(proto: any): FieldMask {\n let m = new FieldMask();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.FieldMaskInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.paths !== 'undefined') {toReturn['paths'] = this.paths;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Attribute implements i.AttributeInterface {\n intAttribute: number;\n doubleAttribute: number;\n stringAttribute: string;\n boolAttribute: boolean;\n structAttribute: StructAttribute;\n listAttribute: ListAttribute;\n timestampAttribute: Date;\n geopointAttribute: GeoPointAttribute;\n\n static fromProto(proto: any): Attribute {\n let m = new Attribute();\n m = Object.assign(m, proto);\n if (proto.intAttribute) {m.intAttribute = parseInt(proto.intAttribute, 10);}\n if (proto.structAttribute) {m.structAttribute = StructAttribute.fromProto(proto.structAttribute);}\n if (proto.listAttribute) {m.listAttribute = ListAttribute.fromProto(proto.listAttribute);}\n if (proto.timestampAttribute) {m.timestampAttribute = new Date(proto.timestampAttribute);}\n if (proto.geopointAttribute) {m.geopointAttribute = GeoPointAttribute.fromProto(proto.geopointAttribute);}\n return m;\n }\n\n constructor(kwargs?: i.AttributeInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.intAttribute !== 'undefined') {toReturn['intAttribute'] = this.intAttribute;}\n if (typeof this.doubleAttribute !== 'undefined') {toReturn['doubleAttribute'] = this.doubleAttribute;}\n if (typeof this.stringAttribute !== 'undefined') {toReturn['stringAttribute'] = this.stringAttribute;}\n if (typeof this.boolAttribute !== 'undefined') {toReturn['boolAttribute'] = this.boolAttribute;}\n if (typeof this.structAttribute !== 'undefined' && this.structAttribute !== null) {toReturn['structAttribute'] = 'toApiJson' in this.structAttribute ? (this.structAttribute as any).toApiJson() : this.structAttribute;}\n if (typeof this.listAttribute !== 'undefined' && this.listAttribute !== null) {toReturn['listAttribute'] = 'toApiJson' in this.listAttribute ? (this.listAttribute as any).toApiJson() : this.listAttribute;}\n if (typeof this.timestampAttribute !== 'undefined' && this.timestampAttribute !== null) {toReturn['timestampAttribute'] = 'toApiJson' in this.timestampAttribute ? (this.timestampAttribute as any).toApiJson() : this.timestampAttribute;}\n if (typeof this.geopointAttribute !== 'undefined' && this.geopointAttribute !== null) {toReturn['geopointAttribute'] = 'toApiJson' in this.geopointAttribute ? (this.geopointAttribute as any).toApiJson() : this.geopointAttribute;}\n return toReturn;\n }\n}\n\nexport class StructAttributeAttributesEntry implements i.StructAttributeAttributesEntryInterface {\n key: string;\n value: Attribute;\n\n static fromProto(proto: any): StructAttributeAttributesEntry {\n let m = new StructAttributeAttributesEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = Attribute.fromProto(proto.value);}\n return m;\n }\n\n constructor(kwargs?: i.StructAttributeAttributesEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined' && this.value !== null) {toReturn['value'] = 'toApiJson' in this.value ? (this.value as any).toApiJson() : this.value;}\n return toReturn;\n }\n}\n\nexport class GeoPointAttribute implements i.GeoPointAttributeInterface {\n latitude: number;\n longitude: number;\n\n static fromProto(proto: any): GeoPointAttribute {\n let m = new GeoPointAttribute();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GeoPointAttributeInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.latitude !== 'undefined') {toReturn['latitude'] = this.latitude;}\n if (typeof this.longitude !== 'undefined') {toReturn['longitude'] = this.longitude;}\n return toReturn;\n }\n}\n\nexport class ListAttribute implements i.ListAttributeInterface {\n attributes: Attribute[];\n\n static fromProto(proto: any): ListAttribute {\n let m = new ListAttribute();\n m = Object.assign(m, proto);\n if (proto.attributes) {m.attributes = proto.attributes.map(Attribute.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.ListAttributeInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {toReturn['attributes'] = 'toApiJson' in this.attributes ? (this.attributes as any).toApiJson() : this.attributes;}\n return toReturn;\n }\n}\n\nexport class StructAttribute implements i.StructAttributeInterface {\n attributes: {[key: string]: Attribute};\n\n static fromProto(proto: any): StructAttribute {\n let m = new StructAttribute();\n m = Object.assign(m, proto);\n if (proto.attributes) {m.attributes = Object.keys(proto.attributes).reduce<any>((obj, k) => { obj[k] = Attribute.fromProto(proto.attributes[k]); return obj; }, {});}\n return m;\n }\n\n constructor(kwargs?: i.StructAttributeInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {toReturn['attributes'] = 'toApiJson' in this.attributes ? (this.attributes as any).toApiJson() : this.attributes;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum BooleanOperator {\n AND = 0,\n OR = 1,\n NOT = 2,\n}\n\nexport enum ForOperator {\n ANY = 0,\n ALL = 1,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum AccessScope {\n READ = 0,\n WRITE = 1,\n DELETE = 2,\n LIST = 3,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum AlgorithmType {\n ALGORITHM_TYPE_ES256 = 0,\n ALGORITHM_TYPE_RS256 = 1,\n}\n\nexport enum OrderByDirection {\n ASCENDING = 0,\n DESCENDING = 1,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum RestrictionType {\n RESTRICTION_TYPE_UNSET = 0,\n RESTRICTION_TYPE_RESET_PASSWORD_BEFORE_LOGIN = 1,\n RESTRICTION_TYPE_FROZEN = 2,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum SortDirection {\n SORT_DIRECTION_INVALID = 0,\n SORT_DIRECTION_ASCENDING = 1,\n SORT_DIRECTION_DESCENDING = 2,\n}\n\nexport enum UserSortField {\n USER_SORT_FIELD_INVALID = 0,\n USER_SORT_FIELD_CREATED = 1,\n USER_SORT_FIELD_FIRST_NAME = 2,\n USER_SORT_FIELD_LAST_NAME = 3,\n USER_SORT_FIELD_EMAIL = 4,\n USER_SORT_FIELD_LAST_LOGIN = 5,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums Index.\n// *********************************\nexport {\n BooleanOperator,\n ForOperator,\n} from './policies.enum';\nexport {\n AccessScope,\n} from './resources.enum';\nexport {\n AlgorithmType,\n OrderByDirection,\n} from './subjects.enum';\nexport {\n RestrictionType,\n} from './users.enum';\nexport {\n SortDirection,\n UserSortField,\n} from './api.enum';\n","// NOTE: THIS HAS BEEN MANUALLY EDITED. PLEASE SEE THE BELOW COMMENTS TO SEE WHERE IT HAS BEEN EDITED\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { Attribute } from './attributes';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class IfClause implements i.IfClauseInterface {\n resourceAttributeName: string;\n resourceAttributeValue: Attribute;\n thenPolicy: PolicyNode;\n elsePolicy: PolicyNode;\n\n static fromProto(proto: any): IfClause {\n let m = new IfClause();\n m = Object.assign(m, proto);\n if (proto.resourceAttributeValue) {m.resourceAttributeValue = Attribute.fromProto(proto.resourceAttributeValue);}\n if (proto.thenPolicy) {m.thenPolicy = PolicyNode.fromProto(proto.thenPolicy);}\n if (proto.elsePolicy) {m.elsePolicy = PolicyNode.fromProto(proto.elsePolicy);}\n return m;\n }\n\n constructor(kwargs?: i.IfClauseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.resourceAttributeName !== 'undefined') {toReturn['resourceAttributeName'] = this.resourceAttributeName;}\n if (typeof this.resourceAttributeValue !== 'undefined' && this.resourceAttributeValue !== null) {toReturn['resourceAttributeValue'] = 'toApiJson' in this.resourceAttributeValue ? (this.resourceAttributeValue as any).toApiJson() : this.resourceAttributeValue;}\n if (typeof this.thenPolicy !== 'undefined' && this.thenPolicy !== null) {toReturn['thenPolicy'] = 'toApiJson' in this.thenPolicy ? (this.thenPolicy as any).toApiJson() : this.thenPolicy;}\n if (typeof this.elsePolicy !== 'undefined' && this.elsePolicy !== null) {toReturn['elsePolicy'] = 'toApiJson' in this.elsePolicy ? (this.elsePolicy as any).toApiJson() : this.elsePolicy;}\n return toReturn;\n }\n}\n\nexport class Operator implements i.OperatorInterface {\n\n // Edited from e.policiesBooleanOperator to e.BooleanOperator\n operator: e.BooleanOperator;\n children: PolicyNode[];\n\n static fromProto(proto: any): Operator {\n let m = new Operator();\n m = Object.assign(m, proto);\n\n // Edited from e.policiesBooleanOperator to e.BooleanOperator\n if (proto.operator) {m.operator = enumStringToValue<e.BooleanOperator>(e.BooleanOperator, proto.operator);}\n if (proto.children) {m.children = proto.children.map(PolicyNode.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.OperatorInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.operator !== 'undefined') {toReturn['operator'] = this.operator;}\n if (typeof this.children !== 'undefined' && this.children !== null) {toReturn['children'] = 'toApiJson' in this.children ? (this.children as any).toApiJson() : this.children;}\n return toReturn;\n }\n}\n\nexport class PolicyNode implements i.PolicyNodeInterface {\n subjectResourceIntersection: SubjectResourceIntersectionClause;\n operator: Operator;\n subjectValueIntersection: SubjectValueIntersectionClause;\n subjectMissingValue: SubjectMissingValueClause;\n subjectResourceSubset: SubjectResourceSubsetClause;\n subjectResourceFor: SubjectResourceForClause;\n ifClause: IfClause;\n\n static fromProto(proto: any): PolicyNode {\n let m = new PolicyNode();\n m = Object.assign(m, proto);\n if (proto.subjectResourceIntersection) {m.subjectResourceIntersection = SubjectResourceIntersectionClause.fromProto(proto.subjectResourceIntersection);}\n if (proto.operator) {m.operator = Operator.fromProto(proto.operator);}\n if (proto.subjectValueIntersection) {m.subjectValueIntersection = SubjectValueIntersectionClause.fromProto(proto.subjectValueIntersection);}\n if (proto.subjectMissingValue) {m.subjectMissingValue = SubjectMissingValueClause.fromProto(proto.subjectMissingValue);}\n if (proto.subjectResourceSubset) {m.subjectResourceSubset = SubjectResourceSubsetClause.fromProto(proto.subjectResourceSubset);}\n if (proto.subjectResourceFor) {m.subjectResourceFor = SubjectResourceForClause.fromProto(proto.subjectResourceFor);}\n if (proto.ifClause) {m.ifClause = IfClause.fromProto(proto.ifClause);}\n return m;\n }\n\n constructor(kwargs?: i.PolicyNodeInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subjectResourceIntersection !== 'undefined' && this.subjectResourceIntersection !== null) {toReturn['subjectResourceIntersection'] = 'toApiJson' in this.subjectResourceIntersection ? (this.subjectResourceIntersection as any).toApiJson() : this.subjectResourceIntersection;}\n if (typeof this.operator !== 'undefined' && this.operator !== null) {toReturn['operator'] = 'toApiJson' in this.operator ? (this.operator as any).toApiJson() : this.operator;}\n if (typeof this.subjectValueIntersection !== 'undefined' && this.subjectValueIntersection !== null) {toReturn['subjectValueIntersection'] = 'toApiJson' in this.subjectValueIntersection ? (this.subjectValueIntersection as any).toApiJson() : this.subjectValueIntersection;}\n if (typeof this.subjectMissingValue !== 'undefined' && this.subjectMissingValue !== null) {toReturn['subjectMissingValue'] = 'toApiJson' in this.subjectMissingValue ? (this.subjectMissingValue as any).toApiJson() : this.subjectMissingValue;}\n if (typeof this.subjectResourceSubset !== 'undefined' && this.subjectResourceSubset !== null) {toReturn['subjectResourceSubset'] = 'toApiJson' in this.subjectResourceSubset ? (this.subjectResourceSubset as any).toApiJson() : this.subjectResourceSubset;}\n if (typeof this.subjectResourceFor !== 'undefined' && this.subjectResourceFor !== null) {toReturn['subjectResourceFor'] = 'toApiJson' in this.subjectResourceFor ? (this.subjectResourceFor as any).toApiJson() : this.subjectResourceFor;}\n if (typeof this.ifClause !== 'undefined' && this.ifClause !== null) {toReturn['ifClause'] = 'toApiJson' in this.ifClause ? (this.ifClause as any).toApiJson() : this.ifClause;}\n return toReturn;\n }\n}\n\nexport class SubjectMissingValueClause implements i.SubjectMissingValueClauseInterface {\n attributeName: string;\n\n static fromProto(proto: any): SubjectMissingValueClause {\n let m = new SubjectMissingValueClause();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SubjectMissingValueClauseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.attributeName !== 'undefined') {toReturn['attributeName'] = this.attributeName;}\n return toReturn;\n }\n}\n\nexport class SubjectResourceForClause implements i.SubjectResourceForClauseInterface {\n attributeName: string;\n // Edited from e.policiesForOperator to e.ForOperator\n operator: e.ForOperator;\n rules: PolicyNode;\n\n static fromProto(proto: any): SubjectResourceForClause {\n let m = new SubjectResourceForClause();\n m = Object.assign(m, proto);\n if (proto.operator) {m.operator = enumStringToValue<e.ForOperator>(e.ForOperator, proto.operator);}\n if (proto.rules) {m.rules = PolicyNode.fromProto(proto.rules);}\n return m;\n }\n\n constructor(kwargs?: i.SubjectResourceForClauseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.attributeName !== 'undefined') {toReturn['attributeName'] = this.attributeName;}\n if (typeof this.operator !== 'undefined') {toReturn['operator'] = this.operator;}\n if (typeof this.rules !== 'undefined' && this.rules !== null) {toReturn['rules'] = 'toApiJson' in this.rules ? (this.rules as any).toApiJson() : this.rules;}\n return toReturn;\n }\n}\n\nexport class SubjectResourceIntersectionClause implements i.SubjectResourceIntersectionClauseInterface {\n attributeName: string;\n resourceAttributeName: string;\n\n static fromProto(proto: any): SubjectResourceIntersectionClause {\n let m = new SubjectResourceIntersectionClause();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SubjectResourceIntersectionClauseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.attributeName !== 'undefined') {toReturn['attributeName'] = this.attributeName;}\n if (typeof this.resourceAttributeName !== 'undefined') {toReturn['resourceAttributeName'] = this.resourceAttributeName;}\n return toReturn;\n }\n}\n\nexport class SubjectResourceSubsetClause implements i.SubjectResourceSubsetClauseInterface {\n attributeName: string;\n resourceAttributeName: string;\n\n static fromProto(proto: any): SubjectResourceSubsetClause {\n let m = new SubjectResourceSubsetClause();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SubjectResourceSubsetClauseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.attributeName !== 'undefined') {toReturn['attributeName'] = this.attributeName;}\n if (typeof this.resourceAttributeName !== 'undefined') {toReturn['resourceAttributeName'] = this.resourceAttributeName;}\n return toReturn;\n }\n}\n\nexport class SubjectValueIntersectionClause implements i.SubjectValueIntersectionClauseInterface {\n attributeName: string;\n attributeValue: string;\n structuredAttributeValue: Attribute;\n\n static fromProto(proto: any): SubjectValueIntersectionClause {\n let m = new SubjectValueIntersectionClause();\n m = Object.assign(m, proto);\n if (proto.structuredAttributeValue) {m.structuredAttributeValue = Attribute.fromProto(proto.structuredAttributeValue);}\n return m;\n }\n\n constructor(kwargs?: i.SubjectValueIntersectionClauseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.attributeName !== 'undefined') {toReturn['attributeName'] = this.attributeName;}\n if (typeof this.attributeValue !== 'undefined') {toReturn['attributeValue'] = this.attributeValue;}\n if (typeof this.structuredAttributeValue !== 'undefined' && this.structuredAttributeValue !== null) {toReturn['structuredAttributeValue'] = 'toApiJson' in this.structuredAttributeValue ? (this.structuredAttributeValue as any).toApiJson() : this.structuredAttributeValue;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { PolicyNode } from './policies';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class AccessCheckFailures implements i.AccessCheckFailuresInterface {\n failures: ResourceIdentifier[];\n\n static fromProto(proto: any): AccessCheckFailures {\n let m = new AccessCheckFailures();\n m = Object.assign(m, proto);\n if (proto.failures) {m.failures = proto.failures.map(ResourceIdentifier.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.AccessCheckFailuresInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.failures !== 'undefined' && this.failures !== null) {toReturn['failures'] = 'toApiJson' in this.failures ? (this.failures as any).toApiJson() : this.failures;}\n return toReturn;\n }\n}\n\nexport class ResourceIdentifierIdentifiersEntry implements i.ResourceIdentifierIdentifiersEntryInterface {\n key: string;\n value: ValueList;\n\n static fromProto(proto: any): ResourceIdentifierIdentifiersEntry {\n let m = new ResourceIdentifierIdentifiersEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = ValueList.fromProto(proto.value);}\n return m;\n }\n\n constructor(kwargs?: i.ResourceIdentifierIdentifiersEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined' && this.value !== null) {toReturn['value'] = 'toApiJson' in this.value ? (this.value as any).toApiJson() : this.value;}\n return toReturn;\n }\n}\n\nexport class Policy implements i.PolicyInterface {\n appId: string;\n resourceId: string;\n policyId: string;\n policyName: string;\n operations: e.AccessScope[];\n actions: string[];\n policy: PolicyNode;\n\n static fromProto(proto: any): Policy {\n let m = new Policy();\n m = Object.assign(m, proto);\n if (proto.operations) {m.operations = proto.operations.map((v: string) => enumStringToValue<e.AccessScope>(e.AccessScope, v));}\n if (proto.policy) {m.policy = PolicyNode.fromProto(proto.policy);}\n return m;\n }\n\n constructor(kwargs?: i.PolicyInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.appId !== 'undefined') {toReturn['appId'] = this.appId;}\n if (typeof this.resourceId !== 'undefined') {toReturn['resourceId'] = this.resourceId;}\n if (typeof this.policyId !== 'undefined') {toReturn['policyId'] = this.policyId;}\n if (typeof this.policyName !== 'undefined') {toReturn['policyName'] = this.policyName;}\n if (typeof this.operations !== 'undefined') {toReturn['operations'] = this.operations;}\n if (typeof this.actions !== 'undefined') {toReturn['actions'] = this.actions;}\n if (typeof this.policy !== 'undefined' && this.policy !== null) {toReturn['policy'] = 'toApiJson' in this.policy ? (this.policy as any).toApiJson() : this.policy;}\n return toReturn;\n }\n}\n\nexport class ResourceIdentifier implements i.ResourceIdentifierInterface {\n identifiers: {[key: string]: ValueList};\n\n static fromProto(proto: any): ResourceIdentifier {\n let m = new ResourceIdentifier();\n m = Object.assign(m, proto);\n if (proto.identifiers) {m.identifiers = Object.keys(proto.identifiers).reduce<any>((obj, k) => { obj[k] = ValueList.fromProto(proto.identifiers[k]); return obj; }, {});}\n return m;\n }\n\n constructor(kwargs?: i.ResourceIdentifierInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.identifiers !== 'undefined' && this.identifiers !== null) {toReturn['identifiers'] = 'toApiJson' in this.identifiers ? (this.identifiers as any).toApiJson() : this.identifiers;}\n return toReturn;\n }\n}\n\nexport class ResourceOwner implements i.ResourceOwnerInterface {\n appId: string;\n appName: string;\n\n static fromProto(proto: any): ResourceOwner {\n let m = new ResourceOwner();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ResourceOwnerInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.appId !== 'undefined') {toReturn['appId'] = this.appId;}\n if (typeof this.appName !== 'undefined') {toReturn['appName'] = this.appName;}\n return toReturn;\n }\n}\n\nexport class ValueList implements i.ValueListInterface {\n values: string[];\n\n static fromProto(proto: any): ValueList {\n let m = new ValueList();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ValueListInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.values !== 'undefined') {toReturn['values'] = this.values;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { StructAttribute } from './attributes';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Context implements i.ContextInterface {\n namespaced: NamespacedContext;\n typed: TypedContext;\n\n static fromProto(proto: any): Context {\n let m = new Context();\n m = Object.assign(m, proto);\n if (proto.namespaced) {m.namespaced = NamespacedContext.fromProto(proto.namespaced);}\n if (proto.typed) {m.typed = TypedContext.fromProto(proto.typed);}\n return m;\n }\n\n constructor(kwargs?: i.ContextInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.namespaced !== 'undefined' && this.namespaced !== null) {toReturn['namespaced'] = 'toApiJson' in this.namespaced ? (this.namespaced as any).toApiJson() : this.namespaced;}\n if (typeof this.typed !== 'undefined' && this.typed !== null) {toReturn['typed'] = 'toApiJson' in this.typed ? (this.typed as any).toApiJson() : this.typed;}\n return toReturn;\n }\n}\n\nexport class MultiValueAttribute implements i.MultiValueAttributeInterface {\n key: string;\n values: string[];\n\n static fromProto(proto: any): MultiValueAttribute {\n let m = new MultiValueAttribute();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.MultiValueAttributeInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.values !== 'undefined') {toReturn['values'] = this.values;}\n return toReturn;\n }\n}\n\nexport class Mutation implements i.MutationInterface {\n add: SingleValueAttribute;\n replace: MultiValueAttribute;\n remove: SingleValueAttribute;\n dropKey: string;\n replaceAttributes: StructAttribute;\n addAttributes: StructAttribute;\n removeAttributes: StructAttribute;\n\n static fromProto(proto: any): Mutation {\n let m = new Mutation();\n m = Object.assign(m, proto);\n if (proto.add) {m.add = SingleValueAttribute.fromProto(proto.add);}\n if (proto.replace) {m.replace = MultiValueAttribute.fromProto(proto.replace);}\n if (proto.remove) {m.remove = SingleValueAttribute.fromProto(proto.remove);}\n if (proto.replaceAttributes) {m.replaceAttributes = StructAttribute.fromProto(proto.replaceAttributes);}\n if (proto.addAttributes) {m.addAttributes = StructAttribute.fromProto(proto.addAttributes);}\n if (proto.removeAttributes) {m.removeAttributes = StructAttribute.fromProto(proto.removeAttributes);}\n return m;\n }\n\n constructor(kwargs?: i.MutationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.add !== 'undefined' && this.add !== null) {toReturn['add'] = 'toApiJson' in this.add ? (this.add as any).toApiJson() : this.add;}\n if (typeof this.replace !== 'undefined' && this.replace !== null) {toReturn['replace'] = 'toApiJson' in this.replace ? (this.replace as any).toApiJson() : this.replace;}\n if (typeof this.remove !== 'undefined' && this.remove !== null) {toReturn['remove'] = 'toApiJson' in this.remove ? (this.remove as any).toApiJson() : this.remove;}\n if (typeof this.dropKey !== 'undefined') {toReturn['dropKey'] = this.dropKey;}\n if (typeof this.replaceAttributes !== 'undefined' && this.replaceAttributes !== null) {toReturn['replaceAttributes'] = 'toApiJson' in this.replaceAttributes ? (this.replaceAttributes as any).toApiJson() : this.replaceAttributes;}\n if (typeof this.addAttributes !== 'undefined' && this.addAttributes !== null) {toReturn['addAttributes'] = 'toApiJson' in this.addAttributes ? (this.addAttributes as any).toApiJson() : this.addAttributes;}\n if (typeof this.removeAttributes !== 'undefined' && this.removeAttributes !== null) {toReturn['removeAttributes'] = 'toApiJson' in this.removeAttributes ? (this.removeAttributes as any).toApiJson() : this.removeAttributes;}\n return toReturn;\n }\n}\n\nexport class NamespacedContext implements i.NamespacedContextInterface {\n namespace: string;\n type: string;\n\n static fromProto(proto: any): NamespacedContext {\n let m = new NamespacedContext();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.NamespacedContextInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.namespace !== 'undefined') {toReturn['namespace'] = this.namespace;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n return toReturn;\n }\n}\n\nexport class Persona implements i.PersonaInterface {\n subject: Subject;\n context: Context;\n\n static fromProto(proto: any): Persona {\n let m = new Persona();\n m = Object.assign(m, proto);\n if (proto.subject) {m.subject = Subject.fromProto(proto.subject);}\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n return m;\n }\n\n constructor(kwargs?: i.PersonaInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subject !== 'undefined' && this.subject !== null) {toReturn['subject'] = 'toApiJson' in this.subject ? (this.subject as any).toApiJson() : this.subject;}\n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n return toReturn;\n }\n}\n\nexport class PublicKey implements i.PublicKeyInterface {\n key: string;\n id: string;\n algorithmType: e.AlgorithmType;\n\n static fromProto(proto: any): PublicKey {\n let m = new PublicKey();\n m = Object.assign(m, proto);\n if (proto.algorithmType) {m.algorithmType = enumStringToValue<e.AlgorithmType>(e.AlgorithmType, proto.algorithmType);}\n return m;\n }\n\n constructor(kwargs?: i.PublicKeyInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.id !== 'undefined') {toReturn['id'] = this.id;}\n if (typeof this.algorithmType !== 'undefined') {toReturn['algorithmType'] = this.algorithmType;}\n return toReturn;\n }\n}\n\nexport class Query implements i.QueryInterface {\n searchTerm: string;\n attributeKeys: string[];\n\n static fromProto(proto: any): Query {\n let m = new Query();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.QueryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.searchTerm !== 'undefined') {toReturn['searchTerm'] = this.searchTerm;}\n if (typeof this.attributeKeys !== 'undefined') {toReturn['attributeKeys'] = this.attributeKeys;}\n return toReturn;\n }\n}\n\nexport class SingleValueAttribute implements i.SingleValueAttributeInterface {\n key: string;\n value: string;\n\n static fromProto(proto: any): SingleValueAttribute {\n let m = new SingleValueAttribute();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SingleValueAttributeInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined') {toReturn['value'] = this.value;}\n return toReturn;\n }\n}\n\nexport class Subject implements i.SubjectInterface {\n subjectId: string;\n email: string;\n userId: string;\n partnerId: string;\n attributes: MultiValueAttribute[];\n created: Date;\n updated: Date;\n lastLogin: Date;\n publicKeys: PublicKey[];\n structAttributes: StructAttribute;\n\n static fromProto(proto: any): Subject {\n let m = new Subject();\n m = Object.assign(m, proto);\n if (proto.attributes) {m.attributes = proto.attributes.map(MultiValueAttribute.fromProto);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.lastLogin) {m.lastLogin = new Date(proto.lastLogin);}\n if (proto.publicKeys) {m.publicKeys = proto.publicKeys.map(PublicKey.fromProto);}\n if (proto.structAttributes) {m.structAttributes = StructAttribute.fromProto(proto.structAttributes);}\n return m;\n }\n\n constructor(kwargs?: i.SubjectInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n if (typeof this.partnerId !== 'undefined') {toReturn['partnerId'] = this.partnerId;}\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {toReturn['attributes'] = 'toApiJson' in this.attributes ? (this.attributes as any).toApiJson() : this.attributes;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.lastLogin !== 'undefined' && this.lastLogin !== null) {toReturn['lastLogin'] = 'toApiJson' in this.lastLogin ? (this.lastLogin as any).toApiJson() : this.lastLogin;}\n if (typeof this.publicKeys !== 'undefined' && this.publicKeys !== null) {toReturn['publicKeys'] = 'toApiJson' in this.publicKeys ? (this.publicKeys as any).toApiJson() : this.publicKeys;}\n if (typeof this.structAttributes !== 'undefined' && this.structAttributes !== null) {toReturn['structAttributes'] = 'toApiJson' in this.structAttributes ? (this.structAttributes as any).toApiJson() : this.structAttributes;}\n return toReturn;\n }\n}\n\nexport class SubjectResult implements i.SubjectResultInterface {\n subject: Subject;\n\n static fromProto(proto: any): SubjectResult {\n let m = new SubjectResult();\n m = Object.assign(m, proto);\n if (proto.subject) {m.subject = Subject.fromProto(proto.subject);}\n return m;\n }\n\n constructor(kwargs?: i.SubjectResultInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subject !== 'undefined' && this.subject !== null) {toReturn['subject'] = 'toApiJson' in this.subject ? (this.subject as any).toApiJson() : this.subject;}\n return toReturn;\n }\n}\n\nexport class TypedContext implements i.TypedContextInterface {\n type: string;\n\n static fromProto(proto: any): TypedContext {\n let m = new TypedContext();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.TypedContextInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class SecurityLog implements i.SecurityLogInterface {\n userId: string;\n actionId: string;\n logId: string;\n description: string;\n created: Date;\n\n static fromProto(proto: any): SecurityLog {\n let m = new SecurityLog();\n m = Object.assign(m, proto);\n if (proto.created) {m.created = new Date(proto.created);}\n return m;\n }\n\n constructor(kwargs?: i.SecurityLogInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n if (typeof this.actionId !== 'undefined') {toReturn['actionId'] = this.actionId;}\n if (typeof this.logId !== 'undefined') {toReturn['logId'] = this.logId;}\n if (typeof this.description !== 'undefined') {toReturn['description'] = this.description;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { PublicKey } from './subjects';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Identifier implements i.IdentifierInterface {\n subjectId: string;\n userId: string;\n\n static fromProto(proto: any): Identifier {\n let m = new Identifier();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.IdentifierInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n return toReturn;\n }\n}\n\nexport class NamespacedEmail implements i.NamespacedEmailInterface {\n namespace: string;\n email: string;\n\n static fromProto(proto: any): NamespacedEmail {\n let m = new NamespacedEmail();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.NamespacedEmailInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.namespace !== 'undefined') {toReturn['namespace'] = this.namespace;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n return toReturn;\n }\n}\n\nexport class NamespacedSession implements i.NamespacedSessionInterface {\n namespace: string;\n session: string;\n\n static fromProto(proto: any): NamespacedSession {\n let m = new NamespacedSession();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.NamespacedSessionInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.namespace !== 'undefined') {toReturn['namespace'] = this.namespace;}\n if (typeof this.session !== 'undefined') {toReturn['session'] = this.session;}\n return toReturn;\n }\n}\n\nexport class TypedExternalIdentifier implements i.TypedExternalIdentifierInterface {\n externalIdType: string;\n externalId: string;\n\n static fromProto(proto: any): TypedExternalIdentifier {\n let m = new TypedExternalIdentifier();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.TypedExternalIdentifierInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.externalIdType !== 'undefined') {toReturn['externalIdType'] = this.externalIdType;}\n if (typeof this.externalId !== 'undefined') {toReturn['externalId'] = this.externalId;}\n return toReturn;\n }\n}\n\nexport class User implements i.UserInterface {\n userId: string;\n namespace: string;\n email: string;\n created: Date;\n updated: Date;\n firstName: string;\n greetingName: string;\n lastName: string;\n languageCode: string;\n emailVerified: boolean;\n roles: string[];\n lastLogin: Date;\n publicKeys: PublicKey[];\n\n static fromProto(proto: any): User {\n let m = new User();\n m = Object.assign(m, proto);\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.lastLogin) {m.lastLogin = new Date(proto.lastLogin);}\n if (proto.publicKeys) {m.publicKeys = proto.publicKeys.map(PublicKey.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.UserInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n if (typeof this.namespace !== 'undefined') {toReturn['namespace'] = this.namespace;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.firstName !== 'undefined') {toReturn['firstName'] = this.firstName;}\n if (typeof this.greetingName !== 'undefined') {toReturn['greetingName'] = this.greetingName;}\n if (typeof this.lastName !== 'undefined') {toReturn['lastName'] = this.lastName;}\n if (typeof this.languageCode !== 'undefined') {toReturn['languageCode'] = this.languageCode;}\n if (typeof this.emailVerified !== 'undefined') {toReturn['emailVerified'] = this.emailVerified;}\n if (typeof this.roles !== 'undefined') {toReturn['roles'] = this.roles;}\n if (typeof this.lastLogin !== 'undefined' && this.lastLogin !== null) {toReturn['lastLogin'] = 'toApiJson' in this.lastLogin ? (this.lastLogin as any).toApiJson() : this.lastLogin;}\n if (typeof this.publicKeys !== 'undefined' && this.publicKeys !== null) {toReturn['publicKeys'] = 'toApiJson' in this.publicKeys ? (this.publicKeys as any).toApiJson() : this.publicKeys;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Access implements i.AccessInterface {\n scope: string[];\n public: boolean;\n\n static fromProto(proto: any): Access {\n let m = new Access();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.AccessInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.scope !== 'undefined') {toReturn['scope'] = this.scope;}\n if (typeof this.public !== 'undefined') {toReturn['public'] = this.public;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { Context, SubjectResult, Persona, Mutation, MultiValueAttribute, Query, SingleValueAttribute } from './subjects';\nimport { FieldMask } from './field-mask';\nimport { ResourceIdentifier, Policy, ResourceOwner, ValueList } from './resources';\nimport { SecurityLog } from './security-logs';\nimport { StructAttribute } from './attributes';\nimport { TypedExternalIdentifier, Identifier, User, NamespacedEmail, NamespacedSession } from './users';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class AccessResourceRequest implements i.AccessResourceRequestInterface {\n context: Context;\n subjectId: string;\n email: string;\n userId: string;\n session: string;\n ownerId: string;\n resourceId: string;\n resourceEntityIdentifier: {[key: string]: ValueList};\n accessScope: e.AccessScope[];\n actions: string[];\n resourceEntityIdentifiers: ResourceIdentifier[];\n resourceAttributes: StructAttribute;\n\n static fromProto(proto: any): AccessResourceRequest {\n let m = new AccessResourceRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.resourceEntityIdentifier) {m.resourceEntityIdentifier = Object.keys(proto.resourceEntityIdentifier).reduce<any>((obj, k) => { obj[k] = ValueList.fromProto(proto.resourceEntityIdentifier[k]); return obj; }, {});}\n if (proto.accessScope) {m.accessScope = proto.accessScope.map((v: string) => enumStringToValue<e.AccessScope>(e.AccessScope, v));}\n if (proto.resourceEntityIdentifiers) {m.resourceEntityIdentifiers = proto.resourceEntityIdentifiers.map(ResourceIdentifier.fromProto);}\n if (proto.resourceAttributes) {m.resourceAttributes = StructAttribute.fromProto(proto.resourceAttributes);}\n return m;\n }\n\n constructor(kwargs?: i.AccessResourceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n if (typeof this.session !== 'undefined') {toReturn['session'] = this.session;}\n if (typeof this.ownerId !== 'undefined') {toReturn['ownerId'] = this.ownerId;}\n if (typeof this.resourceId !== 'undefined') {toReturn['resourceId'] = this.resourceId;}\n if (typeof this.resourceEntityIdentifier !== 'undefined' && this.resourceEntityIdentifier !== null) {toReturn['resourceEntityIdentifier'] = 'toApiJson' in this.resourceEntityIdentifier ? (this.resourceEntityIdentifier as any).toApiJson() : this.resourceEntityIdentifier;}\n if (typeof this.accessScope !== 'undefined') {toReturn['accessScope'] = this.accessScope;}\n if (typeof this.actions !== 'undefined') {toReturn['actions'] = this.actions;}\n if (typeof this.resourceEntityIdentifiers !== 'undefined' && this.resourceEntityIdentifiers !== null) {toReturn['resourceEntityIdentifiers'] = 'toApiJson' in this.resourceEntityIdentifiers ? (this.resourceEntityIdentifiers as any).toApiJson() : this.resourceEntityIdentifiers;}\n if (typeof this.resourceAttributes !== 'undefined' && this.resourceAttributes !== null) {toReturn['resourceAttributes'] = 'toApiJson' in this.resourceAttributes ? (this.resourceAttributes as any).toApiJson() : this.resourceAttributes;}\n return toReturn;\n }\n}\n\nexport class AddKeyRequest implements i.AddKeyRequestInterface {\n email: string;\n context: Context;\n algorithmType: e.AlgorithmType;\n userIdentifier: UserIdentifier;\n\n static fromProto(proto: any): AddKeyRequest {\n let m = new AddKeyRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.algorithmType) {m.algorithmType = enumStringToValue<e.AlgorithmType>(e.AlgorithmType, proto.algorithmType);}\n if (proto.userIdentifier) {m.userIdentifier = UserIdentifier.fromProto(proto.userIdentifier);}\n return m;\n }\n\n constructor(kwargs?: i.AddKeyRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.algorithmType !== 'undefined') {toReturn['algorithmType'] = this.algorithmType;}\n if (typeof this.userIdentifier !== 'undefined' && this.userIdentifier !== null) {toReturn['userIdentifier'] = 'toApiJson' in this.userIdentifier ? (this.userIdentifier as any).toApiJson() : this.userIdentifier;}\n return toReturn;\n }\n}\n\nexport class AddKeyResponse implements i.AddKeyResponseInterface {\n privateKey: string;\n keyId: string;\n\n static fromProto(proto: any): AddKeyResponse {\n let m = new AddKeyResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.AddKeyResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.privateKey !== 'undefined') {toReturn['privateKey'] = this.privateKey;}\n if (typeof this.keyId !== 'undefined') {toReturn['keyId'] = this.keyId;}\n return toReturn;\n }\n}\n\nexport class AddMultiUserRestrictionRequest implements i.AddMultiUserRestrictionRequestInterface {\n userIdentifiers: UserIdentifier[];\n restrictionType: e.RestrictionType;\n\n static fromProto(proto: any): AddMultiUserRestrictionRequest {\n let m = new AddMultiUserRestrictionRequest();\n m = Object.assign(m, proto);\n if (proto.userIdentifiers) {m.userIdentifiers = proto.userIdentifiers.map(UserIdentifier.fromProto);}\n if (proto.restrictionType) {m.restrictionType = enumStringToValue<e.RestrictionType>(e.RestrictionType, proto.restrictionType);}\n return m;\n }\n\n constructor(kwargs?: i.AddMultiUserRestrictionRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userIdentifiers !== 'undefined' && this.userIdentifiers !== null) {toReturn['userIdentifiers'] = 'toApiJson' in this.userIdentifiers ? (this.userIdentifiers as any).toApiJson() : this.userIdentifiers;}\n if (typeof this.restrictionType !== 'undefined') {toReturn['restrictionType'] = this.restrictionType;}\n return toReturn;\n }\n}\n\nexport class AuthenticateSubjectRequest implements i.AuthenticateSubjectRequestInterface {\n context: Context;\n email: string;\n password: string;\n\n static fromProto(proto: any): AuthenticateSubjectRequest {\n let m = new AuthenticateSubjectRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n return m;\n }\n\n constructor(kwargs?: i.AuthenticateSubjectRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.password !== 'undefined') {toReturn['password'] = this.password;}\n return toReturn;\n }\n}\n\nexport class ChangeSubjectEmailRequest implements i.ChangeSubjectEmailRequestInterface {\n context: Context;\n subjectId: string;\n newEmail: string;\n\n static fromProto(proto: any): ChangeSubjectEmailRequest {\n let m = new ChangeSubjectEmailRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n return m;\n }\n\n constructor(kwargs?: i.ChangeSubjectEmailRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n if (typeof this.newEmail !== 'undefined') {toReturn['newEmail'] = this.newEmail;}\n return toReturn;\n }\n}\n\nexport class CreateExternalIDRequest implements i.CreateExternalIDRequestInterface {\n userIdentifier: UserIdentifier;\n typedExternalIdentifier: TypedExternalIdentifier;\n\n static fromProto(proto: any): CreateExternalIDRequest {\n let m = new CreateExternalIDRequest();\n m = Object.assign(m, proto);\n if (proto.userIdentifier) {m.userIdentifier = UserIdentifier.fromProto(proto.userIdentifier);}\n if (proto.typedExternalIdentifier) {m.typedExternalIdentifier = TypedExternalIdentifier.fromProto(proto.typedExternalIdentifier);}\n return m;\n }\n\n constructor(kwargs?: i.CreateExternalIDRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userIdentifier !== 'undefined' && this.userIdentifier !== null) {toReturn['userIdentifier'] = 'toApiJson' in this.userIdentifier ? (this.userIdentifier as any).toApiJson() : this.userIdentifier;}\n if (typeof this.typedExternalIdentifier !== 'undefined' && this.typedExternalIdentifier !== null) {toReturn['typedExternalIdentifier'] = 'toApiJson' in this.typedExternalIdentifier ? (this.typedExternalIdentifier as any).toApiJson() : this.typedExternalIdentifier;}\n return toReturn;\n }\n}\n\nexport class CreateSessionRequest implements i.CreateSessionRequestInterface {\n context: Context;\n oauthCredentials: OAuthCredentials;\n subjectCredentials: SubjectCredentials;\n\n static fromProto(proto: any): CreateSessionRequest {\n let m = new CreateSessionRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.oauthCredentials) {m.oauthCredentials = OAuthCredentials.fromProto(proto.oauthCredentials);}\n if (proto.subjectCredentials) {m.subjectCredentials = SubjectCredentials.fromProto(proto.subjectCredentials);}\n return m;\n }\n\n constructor(kwargs?: i.CreateSessionRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.oauthCredentials !== 'undefined' && this.oauthCredentials !== null) {toReturn['oauthCredentials'] = 'toApiJson' in this.oauthCredentials ? (this.oauthCredentials as any).toApiJson() : this.oauthCredentials;}\n if (typeof this.subjectCredentials !== 'undefined' && this.subjectCredentials !== null) {toReturn['subjectCredentials'] = 'toApiJson' in this.subjectCredentials ? (this.subjectCredentials as any).toApiJson() : this.subjectCredentials;}\n return toReturn;\n }\n}\n\nexport class CreateSessionResponse implements i.CreateSessionResponseInterface {\n session: string;\n\n static fromProto(proto: any): CreateSessionResponse {\n let m = new CreateSessionResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.CreateSessionResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.session !== 'undefined') {toReturn['session'] = this.session;}\n return toReturn;\n }\n}\n\nexport class CreateTemporarySubjectRequest implements i.CreateTemporarySubjectRequestInterface {\n context: Context;\n subject: string;\n attributes: StructAttribute;\n\n static fromProto(proto: any): CreateTemporarySubjectRequest {\n let m = new CreateTemporarySubjectRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.attributes) {m.attributes = StructAttribute.fromProto(proto.attributes);}\n return m;\n }\n\n constructor(kwargs?: i.CreateTemporarySubjectRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.subject !== 'undefined') {toReturn['subject'] = this.subject;}\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {toReturn['attributes'] = 'toApiJson' in this.attributes ? (this.attributes as any).toApiJson() : this.attributes;}\n return toReturn;\n }\n}\n\nexport class CreateTemporarySubjectResponse implements i.CreateTemporarySubjectResponseInterface {\n session: string;\n\n static fromProto(proto: any): CreateTemporarySubjectResponse {\n let m = new CreateTemporarySubjectResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.CreateTemporarySubjectResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.session !== 'undefined') {toReturn['session'] = this.session;}\n return toReturn;\n }\n}\n\nexport class DeleteSubjectRequest implements i.DeleteSubjectRequestInterface {\n context: Context;\n subjectId: string;\n\n static fromProto(proto: any): DeleteSubjectRequest {\n let m = new DeleteSubjectRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n return m;\n }\n\n constructor(kwargs?: i.DeleteSubjectRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n return toReturn;\n }\n}\n\nexport class DeleteUserRequest implements i.DeleteUserRequestInterface {\n userIdentifier: UserIdentifier;\n\n static fromProto(proto: any): DeleteUserRequest {\n let m = new DeleteUserRequest();\n m = Object.assign(m, proto);\n if (proto.userIdentifier) {m.userIdentifier = UserIdentifier.fromProto(proto.userIdentifier);}\n return m;\n }\n\n constructor(kwargs?: i.DeleteUserRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userIdentifier !== 'undefined' && this.userIdentifier !== null) {toReturn['userIdentifier'] = 'toApiJson' in this.userIdentifier ? (this.userIdentifier as any).toApiJson() : this.userIdentifier;}\n return toReturn;\n }\n}\n\nexport class ListSecurityLogsRequestFilters implements i.ListSecurityLogsRequestFiltersInterface {\n actionId: string;\n\n static fromProto(proto: any): ListSecurityLogsRequestFilters {\n let m = new ListSecurityLogsRequestFilters();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ListSecurityLogsRequestFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.actionId !== 'undefined') {toReturn['actionId'] = this.actionId;}\n return toReturn;\n }\n}\n\nexport class GetImpersonationTokenRequest implements i.GetImpersonationTokenRequestInterface {\n impersonatee: UserIdentifier;\n impersonator: UserIdentifier;\n\n static fromProto(proto: any): GetImpersonationTokenRequest {\n let m = new GetImpersonationTokenRequest();\n m = Object.assign(m, proto);\n if (proto.impersonatee) {m.impersonatee = UserIdentifier.fromProto(proto.impersonatee);}\n if (proto.impersonator) {m.impersonator = UserIdentifier.fromProto(proto.impersonator);}\n return m;\n }\n\n constructor(kwargs?: i.GetImpersonationTokenRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.impersonatee !== 'undefined' && this.impersonatee !== null) {toReturn['impersonatee'] = 'toApiJson' in this.impersonatee ? (this.impersonatee as any).toApiJson() : this.impersonatee;}\n if (typeof this.impersonator !== 'undefined' && this.impersonator !== null) {toReturn['impersonator'] = 'toApiJson' in this.impersonator ? (this.impersonator as any).toApiJson() : this.impersonator;}\n return toReturn;\n }\n}\n\nexport class GetImpersonationTokenResponse implements i.GetImpersonationTokenResponseInterface {\n token: string;\n\n static fromProto(proto: any): GetImpersonationTokenResponse {\n let m = new GetImpersonationTokenResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetImpersonationTokenResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.token !== 'undefined') {toReturn['token'] = this.token;}\n return toReturn;\n }\n}\n\nexport class GetMultiExternalIDRequest implements i.GetMultiExternalIDRequestInterface {\n userIdentifiers: UserIdentifier[];\n externalIdType: string;\n\n static fromProto(proto: any): GetMultiExternalIDRequest {\n let m = new GetMultiExternalIDRequest();\n m = Object.assign(m, proto);\n if (proto.userIdentifiers) {m.userIdentifiers = proto.userIdentifiers.map(UserIdentifier.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiExternalIDRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userIdentifiers !== 'undefined' && this.userIdentifiers !== null) {toReturn['userIdentifiers'] = 'toApiJson' in this.userIdentifiers ? (this.userIdentifiers as any).toApiJson() : this.userIdentifiers;}\n if (typeof this.externalIdType !== 'undefined') {toReturn['externalIdType'] = this.externalIdType;}\n return toReturn;\n }\n}\n\nexport class GetMultiExternalIDResponse implements i.GetMultiExternalIDResponseInterface {\n externalIds: string[];\n\n static fromProto(proto: any): GetMultiExternalIDResponse {\n let m = new GetMultiExternalIDResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiExternalIDResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.externalIds !== 'undefined') {toReturn['externalIds'] = this.externalIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiUsersRequest implements i.GetMultiUsersRequestInterface {\n userIdentifiers: UserIdentifier[];\n\n static fromProto(proto: any): GetMultiUsersRequest {\n let m = new GetMultiUsersRequest();\n m = Object.assign(m, proto);\n if (proto.userIdentifiers) {m.userIdentifiers = proto.userIdentifiers.map(UserIdentifier.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiUsersRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userIdentifiers !== 'undefined' && this.userIdentifiers !== null) {toReturn['userIdentifiers'] = 'toApiJson' in this.userIdentifiers ? (this.userIdentifiers as any).toApiJson() : this.userIdentifiers;}\n return toReturn;\n }\n}\n\nexport class GetMultiUsersResponse implements i.GetMultiUsersResponseInterface {\n users: GetMultiUsersResponseUserContainer[];\n\n static fromProto(proto: any): GetMultiUsersResponse {\n let m = new GetMultiUsersResponse();\n m = Object.assign(m, proto);\n if (proto.users) {m.users = proto.users.map(GetMultiUsersResponseUserContainer.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiUsersResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.users !== 'undefined' && this.users !== null) {toReturn['users'] = 'toApiJson' in this.users ? (this.users as any).toApiJson() : this.users;}\n return toReturn;\n }\n}\n\nexport class GetResetPasswordTokenRequest implements i.GetResetPasswordTokenRequestInterface {\n context: Context;\n email: string;\n userIdentifier: UserIdentifier;\n\n static fromProto(proto: any): GetResetPasswordTokenRequest {\n let m = new GetResetPasswordTokenRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.userIdentifier) {m.userIdentifier = UserIdentifier.fromProto(proto.userIdentifier);}\n return m;\n }\n\n constructor(kwargs?: i.GetResetPasswordTokenRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.userIdentifier !== 'undefined' && this.userIdentifier !== null) {toReturn['userIdentifier'] = 'toApiJson' in this.userIdentifier ? (this.userIdentifier as any).toApiJson() : this.userIdentifier;}\n return toReturn;\n }\n}\n\nexport class GetSessionTokenRequest implements i.GetSessionTokenRequestInterface {\n token: string;\n\n static fromProto(proto: any): GetSessionTokenRequest {\n let m = new GetSessionTokenRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetSessionTokenRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.token !== 'undefined') {toReturn['token'] = this.token;}\n return toReturn;\n }\n}\n\nexport class GetShortLivedTokenRequest implements i.GetShortLivedTokenRequestInterface {\n context: Context;\n email: string;\n\n static fromProto(proto: any): GetShortLivedTokenRequest {\n let m = new GetShortLivedTokenRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n return m;\n }\n\n constructor(kwargs?: i.GetShortLivedTokenRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n return toReturn;\n }\n}\n\nexport class GetSubjectBySessionRequest implements i.GetSubjectBySessionRequestInterface {\n session: string;\n context: Context;\n\n static fromProto(proto: any): GetSubjectBySessionRequest {\n let m = new GetSubjectBySessionRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n return m;\n }\n\n constructor(kwargs?: i.GetSubjectBySessionRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.session !== 'undefined') {toReturn['session'] = this.session;}\n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n return toReturn;\n }\n}\n\nexport class GetSubjectContextRequest implements i.GetSubjectContextRequestInterface {\n subjectId: string;\n\n static fromProto(proto: any): GetSubjectContextRequest {\n let m = new GetSubjectContextRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetSubjectContextRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n return toReturn;\n }\n}\n\nexport class GetSubjectContextResponse implements i.GetSubjectContextResponseInterface {\n context: Context;\n\n static fromProto(proto: any): GetSubjectContextResponse {\n let m = new GetSubjectContextResponse();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n return m;\n }\n\n constructor(kwargs?: i.GetSubjectContextResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n return toReturn;\n }\n}\n\nexport class GetSubjectResponse implements i.GetSubjectResponseInterface {\n subject: SubjectResult;\n\n static fromProto(proto: any): GetSubjectResponse {\n let m = new GetSubjectResponse();\n m = Object.assign(m, proto);\n if (proto.subject) {m.subject = SubjectResult.fromProto(proto.subject);}\n return m;\n }\n\n constructor(kwargs?: i.GetSubjectResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subject !== 'undefined' && this.subject !== null) {toReturn['subject'] = 'toApiJson' in this.subject ? (this.subject as any).toApiJson() : this.subject;}\n return toReturn;\n }\n}\n\nexport class GetSubjectsByEmailRequest implements i.GetSubjectsByEmailRequestInterface {\n context: Context;\n emails: string[];\n fieldMask: FieldMask;\n\n static fromProto(proto: any): GetSubjectsByEmailRequest {\n let m = new GetSubjectsByEmailRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.fieldMask) {m.fieldMask = FieldMask.fromProto(proto.fieldMask);}\n return m;\n }\n\n constructor(kwargs?: i.GetSubjectsByEmailRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.emails !== 'undefined') {toReturn['emails'] = this.emails;}\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? (this.fieldMask as any).toApiJson() : this.fieldMask;}\n return toReturn;\n }\n}\n\nexport class GetSubjectsRequest implements i.GetSubjectsRequestInterface {\n context: Context;\n subjectIds: string[];\n fieldMask: FieldMask;\n identifiers: Identifier[];\n\n static fromProto(proto: any): GetSubjectsRequest {\n let m = new GetSubjectsRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.fieldMask) {m.fieldMask = FieldMask.fromProto(proto.fieldMask);}\n if (proto.identifiers) {m.identifiers = proto.identifiers.map(Identifier.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetSubjectsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.subjectIds !== 'undefined') {toReturn['subjectIds'] = this.subjectIds;}\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? (this.fieldMask as any).toApiJson() : this.fieldMask;}\n if (typeof this.identifiers !== 'undefined' && this.identifiers !== null) {toReturn['identifiers'] = 'toApiJson' in this.identifiers ? (this.identifiers as any).toApiJson() : this.identifiers;}\n return toReturn;\n }\n}\n\nexport class GetSubjectsResponse implements i.GetSubjectsResponseInterface {\n subjects: SubjectResult[];\n\n static fromProto(proto: any): GetSubjectsResponse {\n let m = new GetSubjectsResponse();\n m = Object.assign(m, proto);\n if (proto.subjects) {m.subjects = proto.subjects.map(SubjectResult.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetSubjectsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subjects !== 'undefined' && this.subjects !== null) {toReturn['subjects'] = 'toApiJson' in this.subjects ? (this.subjects as any).toApiJson() : this.subjects;}\n return toReturn;\n }\n}\n\nexport class GetTokenRequest implements i.GetTokenRequestInterface {\n\n static fromProto(proto: any): GetTokenRequest {\n let m = new GetTokenRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetTokenRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n return toReturn;\n }\n}\n\nexport class GetTokenResponse implements i.GetTokenResponseInterface {\n token: string;\n\n static fromProto(proto: any): GetTokenResponse {\n let m = new GetTokenResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetTokenResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.token !== 'undefined') {toReturn['token'] = this.token;}\n return toReturn;\n }\n}\n\nexport class IAMListPersonasRequest implements i.IAMListPersonasRequestInterface {\n userIdentifier: UserIdentifier;\n cursor: string;\n pageSize: number;\n type: string;\n namespace: string;\n alwaysIncludeSuperadmin: boolean;\n\n static fromProto(proto: any): IAMListPersonasRequest {\n let m = new IAMListPersonasRequest();\n m = Object.assign(m, proto);\n if (proto.userIdentifier) {m.userIdentifier = UserIdentifier.fromProto(proto.userIdentifier);}\n if (proto.pageSize) {m.pageSize = parseInt(proto.pageSize, 10);}\n return m;\n }\n\n constructor(kwargs?: i.IAMListPersonasRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userIdentifier !== 'undefined' && this.userIdentifier !== null) {toReturn['userIdentifier'] = 'toApiJson' in this.userIdentifier ? (this.userIdentifier as any).toApiJson() : this.userIdentifier;}\n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.namespace !== 'undefined') {toReturn['namespace'] = this.namespace;}\n if (typeof this.alwaysIncludeSuperadmin !== 'undefined') {toReturn['alwaysIncludeSuperadmin'] = this.alwaysIncludeSuperadmin;}\n return toReturn;\n }\n}\n\nexport class ListPersonasByEmailRequest implements i.ListPersonasByEmailRequestInterface {\n email: string;\n cursor: string;\n pageSize: number;\n type: string;\n namespace: string;\n\n static fromProto(proto: any): ListPersonasByEmailRequest {\n let m = new ListPersonasByEmailRequest();\n m = Object.assign(m, proto);\n if (proto.pageSize) {m.pageSize = parseInt(proto.pageSize, 10);}\n return m;\n }\n\n constructor(kwargs?: i.ListPersonasByEmailRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.namespace !== 'undefined') {toReturn['namespace'] = this.namespace;}\n return toReturn;\n }\n}\n\nexport class ListPersonasRequest implements i.ListPersonasRequestInterface {\n session: string;\n cursor: string;\n pageSize: number;\n type: string;\n namespace: string;\n\n static fromProto(proto: any): ListPersonasRequest {\n let m = new ListPersonasRequest();\n m = Object.assign(m, proto);\n if (proto.pageSize) {m.pageSize = parseInt(proto.pageSize, 10);}\n return m;\n }\n\n constructor(kwargs?: i.ListPersonasRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.session !== 'undefined') {toReturn['session'] = this.session;}\n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.namespace !== 'undefined') {toReturn['namespace'] = this.namespace;}\n return toReturn;\n }\n}\n\nexport class ListPersonasResponse implements i.ListPersonasResponseInterface {\n personas: Persona[];\n nextCursor: string;\n hasMore: boolean;\n\n static fromProto(proto: any): ListPersonasResponse {\n let m = new ListPersonasResponse();\n m = Object.assign(m, proto);\n if (proto.personas) {m.personas = proto.personas.map(Persona.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.ListPersonasResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.personas !== 'undefined' && this.personas !== null) {toReturn['personas'] = 'toApiJson' in this.personas ? (this.personas as any).toApiJson() : this.personas;}\n if (typeof this.nextCursor !== 'undefined') {toReturn['nextCursor'] = this.nextCursor;}\n if (typeof this.hasMore !== 'undefined') {toReturn['hasMore'] = this.hasMore;}\n return toReturn;\n }\n}\n\nexport class ListSecurityLogsRequest implements i.ListSecurityLogsRequestInterface {\n userId: string;\n filters: ListSecurityLogsRequestFilters;\n pageSize: number;\n cursor: string;\n\n static fromProto(proto: any): ListSecurityLogsRequest {\n let m = new ListSecurityLogsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListSecurityLogsRequestFilters.fromProto(proto.filters);}\n if (proto.pageSize) {m.pageSize = parseInt(proto.pageSize, 10);}\n return m;\n }\n\n constructor(kwargs?: i.ListSecurityLogsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n return toReturn;\n }\n}\n\nexport class ListSecurityLogsResponse implements i.ListSecurityLogsResponseInterface {\n logs: SecurityLog[];\n nextCursor: string;\n hasMore: boolean;\n\n static fromProto(proto: any): ListSecurityLogsResponse {\n let m = new ListSecurityLogsResponse();\n m = Object.assign(m, proto);\n if (proto.logs) {m.logs = proto.logs.map(SecurityLog.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.ListSecurityLogsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.logs !== 'undefined' && this.logs !== null) {toReturn['logs'] = 'toApiJson' in this.logs ? (this.logs as any).toApiJson() : this.logs;}\n if (typeof this.nextCursor !== 'undefined') {toReturn['nextCursor'] = this.nextCursor;}\n if (typeof this.hasMore !== 'undefined') {toReturn['hasMore'] = this.hasMore;}\n return toReturn;\n }\n}\n\nexport class ListUsersRequest implements i.ListUsersRequestInterface {\n namespace: string;\n email: string;\n cursor: string;\n pageSize: number;\n userFilter: UserFilter;\n sortOptions: UserSortOptions[];\n\n static fromProto(proto: any): ListUsersRequest {\n let m = new ListUsersRequest();\n m = Object.assign(m, proto);\n if (proto.pageSize) {m.pageSize = parseInt(proto.pageSize, 10);}\n if (proto.userFilter) {m.userFilter = UserFilter.fromProto(proto.userFilter);}\n if (proto.sortOptions) {m.sortOptions = proto.sortOptions.map(UserSortOptions.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.ListUsersRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.namespace !== 'undefined') {toReturn['namespace'] = this.namespace;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n if (typeof this.userFilter !== 'undefined' && this.userFilter !== null) {toReturn['userFilter'] = 'toApiJson' in this.userFilter ? (this.userFilter as any).toApiJson() : this.userFilter;}\n if (typeof this.sortOptions !== 'undefined' && this.sortOptions !== null) {toReturn['sortOptions'] = 'toApiJson' in this.sortOptions ? (this.sortOptions as any).toApiJson() : this.sortOptions;}\n return toReturn;\n }\n}\n\nexport class ListUsersResponse implements i.ListUsersResponseInterface {\n users: User[];\n nextCursor: string;\n hasMore: boolean;\n\n static fromProto(proto: any): ListUsersResponse {\n let m = new ListUsersResponse();\n m = Object.assign(m, proto);\n if (proto.users) {m.users = proto.users.map(User.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.ListUsersResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.users !== 'undefined' && this.users !== null) {toReturn['users'] = 'toApiJson' in this.users ? (this.users as any).toApiJson() : this.users;}\n if (typeof this.nextCursor !== 'undefined') {toReturn['nextCursor'] = this.nextCursor;}\n if (typeof this.hasMore !== 'undefined') {toReturn['hasMore'] = this.hasMore;}\n return toReturn;\n }\n}\n\nexport class MutateAttributesRequest implements i.MutateAttributesRequestInterface {\n context: Context;\n subjectId: string;\n mutations: Mutation[];\n\n static fromProto(proto: any): MutateAttributesRequest {\n let m = new MutateAttributesRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.mutations) {m.mutations = proto.mutations.map(Mutation.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.MutateAttributesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n if (typeof this.mutations !== 'undefined' && this.mutations !== null) {toReturn['mutations'] = 'toApiJson' in this.mutations ? (this.mutations as any).toApiJson() : this.mutations;}\n return toReturn;\n }\n}\n\nexport class OAuthCredentials implements i.OAuthCredentialsInterface {\n provider: string;\n idToken: string;\n accessToken: string;\n\n static fromProto(proto: any): OAuthCredentials {\n let m = new OAuthCredentials();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.OAuthCredentialsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.provider !== 'undefined') {toReturn['provider'] = this.provider;}\n if (typeof this.idToken !== 'undefined') {toReturn['idToken'] = this.idToken;}\n if (typeof this.accessToken !== 'undefined') {toReturn['accessToken'] = this.accessToken;}\n return toReturn;\n }\n}\n\nexport class UpdateUserRequestOperation implements i.UpdateUserRequestOperationInterface {\n firstName: string;\n greetingName: string;\n lastName: string;\n languageCode: string;\n\n static fromProto(proto: any): UpdateUserRequestOperation {\n let m = new UpdateUserRequestOperation();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.UpdateUserRequestOperationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.firstName !== 'undefined') {toReturn['firstName'] = this.firstName;}\n if (typeof this.greetingName !== 'undefined') {toReturn['greetingName'] = this.greetingName;}\n if (typeof this.lastName !== 'undefined') {toReturn['lastName'] = this.lastName;}\n if (typeof this.languageCode !== 'undefined') {toReturn['languageCode'] = this.languageCode;}\n return toReturn;\n }\n}\n\nexport class RegisterPolicyRequest implements i.RegisterPolicyRequestInterface {\n policy: Policy;\n\n static fromProto(proto: any): RegisterPolicyRequest {\n let m = new RegisterPolicyRequest();\n m = Object.assign(m, proto);\n if (proto.policy) {m.policy = Policy.fromProto(proto.policy);}\n return m;\n }\n\n constructor(kwargs?: i.RegisterPolicyRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.policy !== 'undefined' && this.policy !== null) {toReturn['policy'] = 'toApiJson' in this.policy ? (this.policy as any).toApiJson() : this.policy;}\n return toReturn;\n }\n}\n\nexport class RegisterResourceOwnerRequest implements i.RegisterResourceOwnerRequestInterface {\n owner: ResourceOwner;\n\n static fromProto(proto: any): RegisterResourceOwnerRequest {\n let m = new RegisterResourceOwnerRequest();\n m = Object.assign(m, proto);\n if (proto.owner) {m.owner = ResourceOwner.fromProto(proto.owner);}\n return m;\n }\n\n constructor(kwargs?: i.RegisterResourceOwnerRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.owner !== 'undefined' && this.owner !== null) {toReturn['owner'] = 'toApiJson' in this.owner ? (this.owner as any).toApiJson() : this.owner;}\n return toReturn;\n }\n}\n\nexport class RegisterResourceRequest implements i.RegisterResourceRequestInterface {\n appId: string;\n resourceId: string;\n resourceName: string;\n resourceOwnerServiceUrl: string;\n requiredResourceParams: string[];\n resourceOwnerAudience: string;\n\n static fromProto(proto: any): RegisterResourceRequest {\n let m = new RegisterResourceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.RegisterResourceRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.appId !== 'undefined') {toReturn['appId'] = this.appId;}\n if (typeof this.resourceId !== 'undefined') {toReturn['resourceId'] = this.resourceId;}\n if (typeof this.resourceName !== 'undefined') {toReturn['resourceName'] = this.resourceName;}\n if (typeof this.resourceOwnerServiceUrl !== 'undefined') {toReturn['resourceOwnerServiceUrl'] = this.resourceOwnerServiceUrl;}\n if (typeof this.requiredResourceParams !== 'undefined') {toReturn['requiredResourceParams'] = this.requiredResourceParams;}\n if (typeof this.resourceOwnerAudience !== 'undefined') {toReturn['resourceOwnerAudience'] = this.resourceOwnerAudience;}\n return toReturn;\n }\n}\n\nexport class RegisterSubjectRequest implements i.RegisterSubjectRequestInterface {\n context: Context;\n email: string;\n password: string;\n attributes: MultiValueAttribute[];\n structAttributes: StructAttribute;\n\n static fromProto(proto: any): RegisterSubjectRequest {\n let m = new RegisterSubjectRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.attributes) {m.attributes = proto.attributes.map(MultiValueAttribute.fromProto);}\n if (proto.structAttributes) {m.structAttributes = StructAttribute.fromProto(proto.structAttributes);}\n return m;\n }\n\n constructor(kwargs?: i.RegisterSubjectRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.password !== 'undefined') {toReturn['password'] = this.password;}\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {toReturn['attributes'] = 'toApiJson' in this.attributes ? (this.attributes as any).toApiJson() : this.attributes;}\n if (typeof this.structAttributes !== 'undefined' && this.structAttributes !== null) {toReturn['structAttributes'] = 'toApiJson' in this.structAttributes ? (this.structAttributes as any).toApiJson() : this.structAttributes;}\n return toReturn;\n }\n}\n\nexport class RegisterSubjectResponse implements i.RegisterSubjectResponseInterface {\n subjectId: string;\n\n static fromProto(proto: any): RegisterSubjectResponse {\n let m = new RegisterSubjectResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.RegisterSubjectResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n return toReturn;\n }\n}\n\nexport class RemoveKeyRequest implements i.RemoveKeyRequestInterface {\n email: string;\n context: Context;\n keyId: string;\n userIdentifier: UserIdentifier;\n\n static fromProto(proto: any): RemoveKeyRequest {\n let m = new RemoveKeyRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.userIdentifier) {m.userIdentifier = UserIdentifier.fromProto(proto.userIdentifier);}\n return m;\n }\n\n constructor(kwargs?: i.RemoveKeyRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.keyId !== 'undefined') {toReturn['keyId'] = this.keyId;}\n if (typeof this.userIdentifier !== 'undefined' && this.userIdentifier !== null) {toReturn['userIdentifier'] = 'toApiJson' in this.userIdentifier ? (this.userIdentifier as any).toApiJson() : this.userIdentifier;}\n return toReturn;\n }\n}\n\nexport class RemoveMultiUserRestrictionRequest implements i.RemoveMultiUserRestrictionRequestInterface {\n userIdentifiers: UserIdentifier[];\n restrictionType: e.RestrictionType;\n\n static fromProto(proto: any): RemoveMultiUserRestrictionRequest {\n let m = new RemoveMultiUserRestrictionRequest();\n m = Object.assign(m, proto);\n if (proto.userIdentifiers) {m.userIdentifiers = proto.userIdentifiers.map(UserIdentifier.fromProto);}\n if (proto.restrictionType) {m.restrictionType = enumStringToValue<e.RestrictionType>(e.RestrictionType, proto.restrictionType);}\n return m;\n }\n\n constructor(kwargs?: i.RemoveMultiUserRestrictionRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userIdentifiers !== 'undefined' && this.userIdentifiers !== null) {toReturn['userIdentifiers'] = 'toApiJson' in this.userIdentifiers ? (this.userIdentifiers as any).toApiJson() : this.userIdentifiers;}\n if (typeof this.restrictionType !== 'undefined') {toReturn['restrictionType'] = this.restrictionType;}\n return toReturn;\n }\n}\n\nexport class ResetPasswordTokenResponse implements i.ResetPasswordTokenResponseInterface {\n token: string;\n\n static fromProto(proto: any): ResetPasswordTokenResponse {\n let m = new ResetPasswordTokenResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ResetPasswordTokenResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.token !== 'undefined') {toReturn['token'] = this.token;}\n return toReturn;\n }\n}\n\nexport class ResetPasswordWithTokenRequest implements i.ResetPasswordWithTokenRequestInterface {\n token: string;\n password: string;\n\n static fromProto(proto: any): ResetPasswordWithTokenRequest {\n let m = new ResetPasswordWithTokenRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ResetPasswordWithTokenRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.token !== 'undefined') {toReturn['token'] = this.token;}\n if (typeof this.password !== 'undefined') {toReturn['password'] = this.password;}\n return toReturn;\n }\n}\n\nexport class ResetSubjectPasswordRequest implements i.ResetSubjectPasswordRequestInterface {\n context: Context;\n subjectId: string;\n newPassword: string;\n\n static fromProto(proto: any): ResetSubjectPasswordRequest {\n let m = new ResetSubjectPasswordRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n return m;\n }\n\n constructor(kwargs?: i.ResetSubjectPasswordRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n if (typeof this.newPassword !== 'undefined') {toReturn['newPassword'] = this.newPassword;}\n return toReturn;\n }\n}\n\nexport class AccessResourceRequestResourceEntityIdentifierEntry implements i.AccessResourceRequestResourceEntityIdentifierEntryInterface {\n key: string;\n value: ValueList;\n\n static fromProto(proto: any): AccessResourceRequestResourceEntityIdentifierEntry {\n let m = new AccessResourceRequestResourceEntityIdentifierEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = ValueList.fromProto(proto.value);}\n return m;\n }\n\n constructor(kwargs?: i.AccessResourceRequestResourceEntityIdentifierEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined' && this.value !== null) {toReturn['value'] = 'toApiJson' in this.value ? (this.value as any).toApiJson() : this.value;}\n return toReturn;\n }\n}\n\nexport class SearchSubjectRequest implements i.SearchSubjectRequestInterface {\n context: Context;\n query: Query;\n filters: SingleValueAttribute[];\n orderBy: string;\n orderByDirection: e.OrderByDirection;\n cursor: string;\n pageSize: number;\n fieldMask: FieldMask;\n\n static fromProto(proto: any): SearchSubjectRequest {\n let m = new SearchSubjectRequest();\n m = Object.assign(m, proto);\n if (proto.context) {m.context = Context.fromProto(proto.context);}\n if (proto.query) {m.query = Query.fromProto(proto.query);}\n if (proto.filters) {m.filters = proto.filters.map(SingleValueAttribute.fromProto);}\n if (proto.orderByDirection) {m.orderByDirection = enumStringToValue<e.OrderByDirection>(e.OrderByDirection, proto.orderByDirection);}\n if (proto.pageSize) {m.pageSize = parseInt(proto.pageSize, 10);}\n if (proto.fieldMask) {m.fieldMask = FieldMask.fromProto(proto.fieldMask);}\n return m;\n }\n\n constructor(kwargs?: i.SearchSubjectRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.context !== 'undefined' && this.context !== null) {toReturn['context'] = 'toApiJson' in this.context ? (this.context as any).toApiJson() : this.context;}\n if (typeof this.query !== 'undefined' && this.query !== null) {toReturn['query'] = 'toApiJson' in this.query ? (this.query as any).toApiJson() : this.query;}\n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.orderBy !== 'undefined') {toReturn['orderBy'] = this.orderBy;}\n if (typeof this.orderByDirection !== 'undefined') {toReturn['orderByDirection'] = this.orderByDirection;}\n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? (this.fieldMask as any).toApiJson() : this.fieldMask;}\n return toReturn;\n }\n}\n\nexport class SearchSubjectResponse implements i.SearchSubjectResponseInterface {\n result: SubjectResult[];\n nextCursor: string;\n hasMore: boolean;\n totalResults: number;\n\n static fromProto(proto: any): SearchSubjectResponse {\n let m = new SearchSubjectResponse();\n m = Object.assign(m, proto);\n if (proto.result) {m.result = proto.result.map(SubjectResult.fromProto);}\n if (proto.totalResults) {m.totalResults = parseInt(proto.totalResults, 10);}\n return m;\n }\n\n constructor(kwargs?: i.SearchSubjectResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.result !== 'undefined' && this.result !== null) {toReturn['result'] = 'toApiJson' in this.result ? (this.result as any).toApiJson() : this.result;}\n if (typeof this.nextCursor !== 'undefined') {toReturn['nextCursor'] = this.nextCursor;}\n if (typeof this.hasMore !== 'undefined') {toReturn['hasMore'] = this.hasMore;}\n if (typeof this.totalResults !== 'undefined') {toReturn['totalResults'] = this.totalResults;}\n return toReturn;\n }\n}\n\nexport class SendEmailVerificationRequest implements i.SendEmailVerificationRequestInterface {\n userId: string;\n\n static fromProto(proto: any): SendEmailVerificationRequest {\n let m = new SendEmailVerificationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SendEmailVerificationRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n return toReturn;\n }\n}\n\nexport class SubjectCredentials implements i.SubjectCredentialsInterface {\n email: string;\n password: string;\n\n static fromProto(proto: any): SubjectCredentials {\n let m = new SubjectCredentials();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SubjectCredentialsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.password !== 'undefined') {toReturn['password'] = this.password;}\n return toReturn;\n }\n}\n\nexport class UpdateUserRequest implements i.UpdateUserRequestInterface {\n userId: string;\n operations: UpdateUserRequestOperation[];\n\n static fromProto(proto: any): UpdateUserRequest {\n let m = new UpdateUserRequest();\n m = Object.assign(m, proto);\n if (proto.operations) {m.operations = proto.operations.map(UpdateUserRequestOperation.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateUserRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n if (typeof this.operations !== 'undefined' && this.operations !== null) {toReturn['operations'] = 'toApiJson' in this.operations ? (this.operations as any).toApiJson() : this.operations;}\n return toReturn;\n }\n}\n\nexport class GetMultiUsersResponseUserContainer implements i.GetMultiUsersResponseUserContainerInterface {\n user: User;\n\n static fromProto(proto: any): GetMultiUsersResponseUserContainer {\n let m = new GetMultiUsersResponseUserContainer();\n m = Object.assign(m, proto);\n if (proto.user) {m.user = User.fromProto(proto.user);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiUsersResponseUserContainerInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.user !== 'undefined' && this.user !== null) {toReturn['user'] = 'toApiJson' in this.user ? (this.user as any).toApiJson() : this.user;}\n return toReturn;\n }\n}\n\nexport class UserFilter implements i.UserFilterInterface {\n subjectTypes: string[];\n searchTerms: string[];\n\n static fromProto(proto: any): UserFilter {\n let m = new UserFilter();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.UserFilterInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.subjectTypes !== 'undefined') {toReturn['subjectTypes'] = this.subjectTypes;}\n if (typeof this.searchTerms !== 'undefined') {toReturn['searchTerms'] = this.searchTerms;}\n return toReturn;\n }\n}\n\nexport class UserIdentifier implements i.UserIdentifierInterface {\n userId: string;\n namespacedEmail: NamespacedEmail;\n namespacedSession: NamespacedSession;\n token: string;\n typedExternalIdentifier: TypedExternalIdentifier;\n subjectId: string;\n\n static fromProto(proto: any): UserIdentifier {\n let m = new UserIdentifier();\n m = Object.assign(m, proto);\n if (proto.namespacedEmail) {m.namespacedEmail = NamespacedEmail.fromProto(proto.namespacedEmail);}\n if (proto.namespacedSession) {m.namespacedSession = NamespacedSession.fromProto(proto.namespacedSession);}\n if (proto.typedExternalIdentifier) {m.typedExternalIdentifier = TypedExternalIdentifier.fromProto(proto.typedExternalIdentifier);}\n return m;\n }\n\n constructor(kwargs?: i.UserIdentifierInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.userId !== 'undefined') {toReturn['userId'] = this.userId;}\n if (typeof this.namespacedEmail !== 'undefined' && this.namespacedEmail !== null) {toReturn['namespacedEmail'] = 'toApiJson' in this.namespacedEmail ? (this.namespacedEmail as any).toApiJson() : this.namespacedEmail;}\n if (typeof this.namespacedSession !== 'undefined' && this.namespacedSession !== null) {toReturn['namespacedSession'] = 'toApiJson' in this.namespacedSession ? (this.namespacedSession as any).toApiJson() : this.namespacedSession;}\n if (typeof this.token !== 'undefined') {toReturn['token'] = this.token;}\n if (typeof this.typedExternalIdentifier !== 'undefined' && this.typedExternalIdentifier !== null) {toReturn['typedExternalIdentifier'] = 'toApiJson' in this.typedExternalIdentifier ? (this.typedExternalIdentifier as any).toApiJson() : this.typedExternalIdentifier;}\n if (typeof this.subjectId !== 'undefined') {toReturn['subjectId'] = this.subjectId;}\n return toReturn;\n }\n}\n\nexport class UserSortOptions implements i.UserSortOptionsInterface {\n direction: e.SortDirection;\n field: e.UserSortField;\n\n static fromProto(proto: any): UserSortOptions {\n let m = new UserSortOptions();\n m = Object.assign(m, proto);\n if (proto.direction) {m.direction = enumStringToValue<e.SortDirection>(e.SortDirection, proto.direction);}\n if (proto.field) {m.field = enumStringToValue<e.UserSortField>(e.UserSortField, proto.field);}\n return m;\n }\n\n constructor(kwargs?: i.UserSortOptionsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.direction !== 'undefined') {toReturn['direction'] = this.direction;}\n if (typeof this.field !== 'undefined') {toReturn['field'] = this.field;}\n return toReturn;\n }\n}\n\nexport class VerifyEmailRequest implements i.VerifyEmailRequestInterface {\n token: string;\n\n static fromProto(proto: any): VerifyEmailRequest {\n let m = new VerifyEmailRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.VerifyEmailRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.token !== 'undefined') {toReturn['token'] = this.token;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects Index.\n// *********************************\nexport {\n FieldMask,\n} from './field-mask';\n\nexport {\n Attribute,\n StructAttributeAttributesEntry,\n GeoPointAttribute,\n ListAttribute,\n StructAttribute,\n} from './attributes';\n\nexport {\n IfClause,\n Operator,\n PolicyNode,\n SubjectMissingValueClause,\n SubjectResourceForClause,\n SubjectResourceIntersectionClause,\n SubjectResourceSubsetClause,\n SubjectValueIntersectionClause,\n} from './policies';\n\nexport {\n AccessCheckFailures,\n ResourceIdentifierIdentifiersEntry,\n Policy,\n ResourceIdentifier,\n ResourceOwner,\n ValueList,\n} from './resources';\n\nexport {\n Context,\n MultiValueAttribute,\n Mutation,\n NamespacedContext,\n Persona,\n PublicKey,\n Query,\n SingleValueAttribute,\n Subject,\n SubjectResult,\n TypedContext,\n} from './subjects';\n\nexport {\n SecurityLog,\n} from './security-logs';\n\nexport {\n Identifier,\n NamespacedEmail,\n NamespacedSession,\n TypedExternalIdentifier,\n User,\n} from './users';\n\nexport {\n Access,\n} from './annotations';\n\nexport {\n AccessResourceRequest,\n AddKeyRequest,\n AddKeyResponse,\n AddMultiUserRestrictionRequest,\n AuthenticateSubjectRequest,\n ChangeSubjectEmailRequest,\n CreateExternalIDRequest,\n CreateSessionRequest,\n CreateSessionResponse,\n CreateTemporarySubjectRequest,\n CreateTemporarySubjectResponse,\n DeleteSubjectRequest,\n DeleteUserRequest,\n ListSecurityLogsRequestFilters,\n GetImpersonationTokenRequest,\n GetImpersonationTokenResponse,\n GetMultiExternalIDRequest,\n GetMultiExternalIDResponse,\n GetMultiUsersRequest,\n GetMultiUsersResponse,\n GetResetPasswordTokenRequest,\n GetSessionTokenRequest,\n GetShortLivedTokenRequest,\n GetSubjectBySessionRequest,\n GetSubjectContextRequest,\n GetSubjectContextResponse,\n GetSubjectResponse,\n GetSubjectsByEmailRequest,\n GetSubjectsRequest,\n GetSubjectsResponse,\n GetTokenRequest,\n GetTokenResponse,\n IAMListPersonasRequest,\n ListPersonasByEmailRequest,\n ListPersonasRequest,\n ListPersonasResponse,\n ListSecurityLogsRequest,\n ListSecurityLogsResponse,\n ListUsersRequest,\n ListUsersResponse,\n MutateAttributesRequest,\n OAuthCredentials,\n UpdateUserRequestOperation,\n RegisterPolicyRequest,\n RegisterResourceOwnerRequest,\n RegisterResourceRequest,\n RegisterSubjectRequest,\n RegisterSubjectResponse,\n RemoveKeyRequest,\n RemoveMultiUserRestrictionRequest,\n ResetPasswordTokenResponse,\n ResetPasswordWithTokenRequest,\n ResetSubjectPasswordRequest,\n AccessResourceRequestResourceEntityIdentifierEntry,\n SearchSubjectRequest,\n SearchSubjectResponse,\n SendEmailVerificationRequest,\n SubjectCredentials,\n UpdateUserRequest,\n GetMultiUsersResponseUserContainer,\n UserFilter,\n UserIdentifier,\n UserSortOptions,\n VerifyEmailRequest,\n} from './api';\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n AccessResourceRequest,\n AddKeyRequest,\n AddKeyResponse,\n AddMultiUserRestrictionRequest,\n AuthenticateSubjectRequest,\n ChangeSubjectEmailRequest,\n CreateExternalIDRequest,\n CreateSessionRequest,\n CreateSessionResponse,\n CreateTemporarySubjectRequest,\n CreateTemporarySubjectResponse,\n DeleteSubjectRequest,\n DeleteUserRequest,\n GetMultiExternalIDRequest,\n GetMultiExternalIDResponse,\n GetMultiUsersRequest,\n GetMultiUsersResponse,\n GetResetPasswordTokenRequest,\n GetSessionTokenRequest,\n GetShortLivedTokenRequest,\n GetSubjectContextRequest,\n GetSubjectContextResponse,\n GetSubjectsByEmailRequest,\n GetSubjectsRequest,\n GetSubjectsResponse,\n GetTokenResponse,\n IAMListPersonasRequest,\n ListPersonasByEmailRequest,\n ListPersonasResponse,\n ListSecurityLogsRequest,\n ListSecurityLogsResponse,\n ListUsersRequest,\n ListUsersResponse,\n MutateAttributesRequest,\n RegisterPolicyRequest,\n RegisterResourceOwnerRequest,\n RegisterResourceRequest,\n RegisterSubjectRequest,\n RegisterSubjectResponse,\n RemoveKeyRequest,\n RemoveMultiUserRestrictionRequest,\n ResetPasswordTokenResponse,\n ResetSubjectPasswordRequest,\n SearchSubjectRequest,\n SearchSubjectResponse,\n SendEmailVerificationRequest,\n UpdateUserRequest,\n VerifyEmailRequest,\n} from './objects/';\nimport {\n AccessResourceRequestInterface,\n AddKeyRequestInterface,\n AddKeyResponseInterface,\n AddMultiUserRestrictionRequestInterface,\n AuthenticateSubjectRequestInterface,\n ChangeSubjectEmailRequestInterface,\n CreateExternalIDRequestInterface,\n CreateSessionRequestInterface,\n CreateSessionResponseInterface,\n CreateTemporarySubjectRequestInterface,\n CreateTemporarySubjectResponseInterface,\n DeleteSubjectRequestInterface,\n DeleteUserRequestInterface,\n GetMultiExternalIDRequestInterface,\n GetMultiExternalIDResponseInterface,\n GetMultiUsersRequestInterface,\n GetMultiUsersResponseInterface,\n GetResetPasswordTokenRequestInterface,\n GetSessionTokenRequestInterface,\n GetShortLivedTokenRequestInterface,\n GetSubjectContextRequestInterface,\n GetSubjectContextResponseInterface,\n GetSubjectsByEmailRequestInterface,\n GetSubjectsRequestInterface,\n GetSubjectsResponseInterface,\n GetTokenResponseInterface,\n IAMListPersonasRequestInterface,\n ListPersonasByEmailRequestInterface,\n ListPersonasResponseInterface,\n ListSecurityLogsRequestInterface,\n ListSecurityLogsResponseInterface,\n ListUsersRequestInterface,\n ListUsersResponseInterface,\n MutateAttributesRequestInterface,\n RegisterPolicyRequestInterface,\n RegisterResourceOwnerRequestInterface,\n RegisterResourceRequestInterface,\n RegisterSubjectRequestInterface,\n RegisterSubjectResponseInterface,\n RemoveKeyRequestInterface,\n RemoveMultiUserRestrictionRequestInterface,\n ResetPasswordTokenResponseInterface,\n ResetSubjectPasswordRequestInterface,\n SearchSubjectRequestInterface,\n SearchSubjectResponseInterface,\n SendEmailVerificationRequestInterface,\n UpdateUserRequestInterface,\n VerifyEmailRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class IAMApiService {\n private _host = this.hostService.hostWithScheme;\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n registerSubject(r: RegisterSubjectRequest | RegisterSubjectRequestInterface): Observable<RegisterSubjectResponse> {\n const request = ((<RegisterSubjectRequest>r).toApiJson) ? (<RegisterSubjectRequest>r) : new RegisterSubjectRequest(r);\n return this.http.post<RegisterSubjectResponseInterface>(this._host + \"/iam.v1.IAM/RegisterSubject\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => RegisterSubjectResponse.fromProto(resp)),\n );\n }\n authenticateSubject(r: AuthenticateSubjectRequest | AuthenticateSubjectRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<AuthenticateSubjectRequest>r).toApiJson) ? (<AuthenticateSubjectRequest>r) : new AuthenticateSubjectRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/AuthenticateSubject\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getSubjects(r: GetSubjectsRequest | GetSubjectsRequestInterface): Observable<GetSubjectsResponse> {\n const request = ((<GetSubjectsRequest>r).toApiJson) ? (<GetSubjectsRequest>r) : new GetSubjectsRequest(r);\n return this.http.post<GetSubjectsResponseInterface>(this._host + \"/iam.v1.IAM/GetSubjects\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetSubjectsResponse.fromProto(resp)),\n );\n }\n getSubjectsByEmail(r: GetSubjectsByEmailRequest | GetSubjectsByEmailRequestInterface): Observable<GetSubjectsResponse> {\n const request = ((<GetSubjectsByEmailRequest>r).toApiJson) ? (<GetSubjectsByEmailRequest>r) : new GetSubjectsByEmailRequest(r);\n return this.http.post<GetSubjectsResponseInterface>(this._host + \"/iam.v1.IAM/GetSubjectsByEmail\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetSubjectsResponse.fromProto(resp)),\n );\n }\n mutateAttributes(r: MutateAttributesRequest | MutateAttributesRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<MutateAttributesRequest>r).toApiJson) ? (<MutateAttributesRequest>r) : new MutateAttributesRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/MutateAttributes\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n resetSubjectPassword(r: ResetSubjectPasswordRequest | ResetSubjectPasswordRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ResetSubjectPasswordRequest>r).toApiJson) ? (<ResetSubjectPasswordRequest>r) : new ResetSubjectPasswordRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/ResetSubjectPassword\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n changeSubjectEmail(r: ChangeSubjectEmailRequest | ChangeSubjectEmailRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ChangeSubjectEmailRequest>r).toApiJson) ? (<ChangeSubjectEmailRequest>r) : new ChangeSubjectEmailRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/ChangeSubjectEmail\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n deleteSubject(r: DeleteSubjectRequest | DeleteSubjectRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeleteSubjectRequest>r).toApiJson) ? (<DeleteSubjectRequest>r) : new DeleteSubjectRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/DeleteSubject\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n searchSubject(r: SearchSubjectRequest | SearchSubjectRequestInterface): Observable<SearchSubjectResponse> {\n const request = ((<SearchSubjectRequest>r).toApiJson) ? (<SearchSubjectRequest>r) : new SearchSubjectRequest(r);\n return this.http.post<SearchSubjectResponseInterface>(this._host + \"/iam.v1.IAM/SearchSubject\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => SearchSubjectResponse.fromProto(resp)),\n );\n }\n getSubjectContext(r: GetSubjectContextRequest | GetSubjectContextRequestInterface): Observable<GetSubjectContextResponse> {\n const request = ((<GetSubjectContextRequest>r).toApiJson) ? (<GetSubjectContextRequest>r) : new GetSubjectContextRequest(r);\n return this.http.post<GetSubjectContextResponseInterface>(this._host + \"/iam.v1.IAM/GetSubjectContext\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetSubjectContextResponse.fromProto(resp)),\n );\n }\n registerResourceOwner(r: RegisterResourceOwnerRequest | RegisterResourceOwnerRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<RegisterResourceOwnerRequest>r).toApiJson) ? (<RegisterResourceOwnerRequest>r) : new RegisterResourceOwnerRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/RegisterResourceOwner\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n registerResource(r: RegisterResourceRequest | RegisterResourceRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<RegisterResourceRequest>r).toApiJson) ? (<RegisterResourceRequest>r) : new RegisterResourceRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/RegisterResource\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n registerPolicy(r: RegisterPolicyRequest | RegisterPolicyRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<RegisterPolicyRequest>r).toApiJson) ? (<RegisterPolicyRequest>r) : new RegisterPolicyRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/RegisterPolicy\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n accessResource(r: AccessResourceRequest | AccessResourceRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<AccessResourceRequest>r).toApiJson) ? (<AccessResourceRequest>r) : new AccessResourceRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/AccessResource\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getShortLivedToken(r: GetShortLivedTokenRequest | GetShortLivedTokenRequestInterface): Observable<GetTokenResponse> {\n const request = ((<GetShortLivedTokenRequest>r).toApiJson) ? (<GetShortLivedTokenRequest>r) : new GetShortLivedTokenRequest(r);\n return this.http.post<GetTokenResponseInterface>(this._host + \"/iam.v1.IAM/GetShortLivedToken\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetTokenResponse.fromProto(resp)),\n );\n }\n getSessionToken(r: GetSessionTokenRequest | GetSessionTokenRequestInterface): Observable<GetTokenResponse> {\n const request = ((<GetSessionTokenRequest>r).toApiJson) ? (<GetSessionTokenRequest>r) : new GetSessionTokenRequest(r);\n return this.http.post<GetTokenResponseInterface>(this._host + \"/iam.v1.IAM/GetSessionToken\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetTokenResponse.fromProto(resp)),\n );\n }\n addKey(r: AddKeyRequest | AddKeyRequestInterface): Observable<AddKeyResponse> {\n const request = ((<AddKeyRequest>r).toApiJson) ? (<AddKeyRequest>r) : new AddKeyRequest(r);\n return this.http.post<AddKeyResponseInterface>(this._host + \"/iam.v1.IAM/AddKey\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => AddKeyResponse.fromProto(resp)),\n );\n }\n removeKey(r: RemoveKeyRequest | RemoveKeyRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<RemoveKeyRequest>r).toApiJson) ? (<RemoveKeyRequest>r) : new RemoveKeyRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/RemoveKey\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n createSession(r: CreateSessionRequest | CreateSessionRequestInterface): Observable<CreateSessionResponse> {\n const request = ((<CreateSessionRequest>r).toApiJson) ? (<CreateSessionRequest>r) : new CreateSessionRequest(r);\n return this.http.post<CreateSessionResponseInterface>(this._host + \"/iam.v1.IAM/CreateSession\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => CreateSessionResponse.fromProto(resp)),\n );\n }\n getResetPasswordToken(r: GetResetPasswordTokenRequest | GetResetPasswordTokenRequestInterface): Observable<ResetPasswordTokenResponse> {\n const request = ((<GetResetPasswordTokenRequest>r).toApiJson) ? (<GetResetPasswordTokenRequest>r) : new GetResetPasswordTokenRequest(r);\n return this.http.post<ResetPasswordTokenResponseInterface>(this._host + \"/iam.v1.IAM/GetResetPasswordToken\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ResetPasswordTokenResponse.fromProto(resp)),\n );\n }\n listPersonasByEmail(r: ListPersonasByEmailRequest | ListPersonasByEmailRequestInterface): Observable<ListPersonasResponse> {\n const request = ((<ListPersonasByEmailRequest>r).toApiJson) ? (<ListPersonasByEmailRequest>r) : new ListPersonasByEmailRequest(r);\n return this.http.post<ListPersonasResponseInterface>(this._host + \"/iam.v1.IAM/ListPersonasByEmail\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListPersonasResponse.fromProto(resp)),\n );\n }\n listPersonas(r: IAMListPersonasRequest | IAMListPersonasRequestInterface): Observable<ListPersonasResponse> {\n const request = ((<IAMListPersonasRequest>r).toApiJson) ? (<IAMListPersonasRequest>r) : new IAMListPersonasRequest(r);\n return this.http.post<ListPersonasResponseInterface>(this._host + \"/iam.v1.IAM/ListPersonas\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListPersonasResponse.fromProto(resp)),\n );\n }\n createTemporarySubject(r: CreateTemporarySubjectRequest | CreateTemporarySubjectRequestInterface): Observable<CreateTemporarySubjectResponse> {\n const request = ((<CreateTemporarySubjectRequest>r).toApiJson) ? (<CreateTemporarySubjectRequest>r) : new CreateTemporarySubjectRequest(r);\n return this.http.post<CreateTemporarySubjectResponseInterface>(this._host + \"/iam.v1.IAM/CreateTemporarySubject\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => CreateTemporarySubjectResponse.fromProto(resp)),\n );\n }\n getMultiUsers(r: GetMultiUsersRequest | GetMultiUsersRequestInterface): Observable<GetMultiUsersResponse> {\n const request = ((<GetMultiUsersRequest>r).toApiJson) ? (<GetMultiUsersRequest>r) : new GetMultiUsersRequest(r);\n return this.http.post<GetMultiUsersResponseInterface>(this._host + \"/iam.v1.IAM/GetMultiUsers\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiUsersResponse.fromProto(resp)),\n );\n }\n listUsers(r: ListUsersRequest | ListUsersRequestInterface): Observable<ListUsersResponse> {\n const request = ((<ListUsersRequest>r).toApiJson) ? (<ListUsersRequest>r) : new ListUsersRequest(r);\n return this.http.post<ListUsersResponseInterface>(this._host + \"/iam.v1.IAM/ListUsers\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListUsersResponse.fromProto(resp)),\n );\n }\n updateUser(r: UpdateUserRequest | UpdateUserRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpdateUserRequest>r).toApiJson) ? (<UpdateUserRequest>r) : new UpdateUserRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/UpdateUser\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n deleteUser(r: DeleteUserRequest | DeleteUserRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeleteUserRequest>r).toApiJson) ? (<DeleteUserRequest>r) : new DeleteUserRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/DeleteUser\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n listSecurityLogs(r: ListSecurityLogsRequest | ListSecurityLogsRequestInterface): Observable<ListSecurityLogsResponse> {\n const request = ((<ListSecurityLogsRequest>r).toApiJson) ? (<ListSecurityLogsRequest>r) : new ListSecurityLogsRequest(r);\n return this.http.post<ListSecurityLogsResponseInterface>(this._host + \"/iam.v1.IAM/ListSecurityLogs\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListSecurityLogsResponse.fromProto(resp)),\n );\n }\n verifyEmail(r: VerifyEmailRequest | VerifyEmailRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<VerifyEmailRequest>r).toApiJson) ? (<VerifyEmailRequest>r) : new VerifyEmailRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/VerifyEmail\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n sendEmailVerification(r: SendEmailVerificationRequest | SendEmailVerificationRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<SendEmailVerificationRequest>r).toApiJson) ? (<SendEmailVerificationRequest>r) : new SendEmailVerificationRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/SendEmailVerification\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getMultiExternalId(r: GetMultiExternalIDRequest | GetMultiExternalIDRequestInterface): Observable<GetMultiExternalIDResponse> {\n const request = ((<GetMultiExternalIDRequest>r).toApiJson) ? (<GetMultiExternalIDRequest>r) : new GetMultiExternalIDRequest(r);\n return this.http.post<GetMultiExternalIDResponseInterface>(this._host + \"/iam.v1.IAM/GetMultiExternalID\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiExternalIDResponse.fromProto(resp)),\n );\n }\n createExternalId(r: CreateExternalIDRequest | CreateExternalIDRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<CreateExternalIDRequest>r).toApiJson) ? (<CreateExternalIDRequest>r) : new CreateExternalIDRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/CreateExternalID\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n addMultiUserRestriction(r: AddMultiUserRestrictionRequest | AddMultiUserRestrictionRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<AddMultiUserRestrictionRequest>r).toApiJson) ? (<AddMultiUserRestrictionRequest>r) : new AddMultiUserRestrictionRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/AddMultiUserRestriction\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n removeMultiUserRestriction(r: RemoveMultiUserRestrictionRequest | RemoveMultiUserRestrictionRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<RemoveMultiUserRestrictionRequest>r).toApiJson) ? (<RemoveMultiUserRestrictionRequest>r) : new RemoveMultiUserRestrictionRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.IAM/RemoveMultiUserRestriction\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n \n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n GetImpersonationTokenRequest,\n GetImpersonationTokenResponse,\n GetSessionTokenRequest,\n GetSubjectBySessionRequest,\n GetSubjectResponse,\n GetTokenRequest,\n GetTokenResponse,\n ListPersonasRequest,\n ListPersonasResponse,\n ResetPasswordWithTokenRequest,\n} from './objects/';\nimport {\n GetImpersonationTokenRequestInterface,\n GetImpersonationTokenResponseInterface,\n GetSessionTokenRequestInterface,\n GetSubjectBySessionRequestInterface,\n GetSubjectResponseInterface,\n GetTokenRequestInterface,\n GetTokenResponseInterface,\n ListPersonasRequestInterface,\n ListPersonasResponseInterface,\n ResetPasswordWithTokenRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class UserIAMApiService {\n private _host = this.hostService.hostWithScheme;\n \n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n getSubjectBySession(r: GetSubjectBySessionRequest | GetSubjectBySessionRequestInterface): Observable<GetSubjectResponse> {\n const request = ((<GetSubjectBySessionRequest>r).toApiJson) ? (<GetSubjectBySessionRequest>r) : new GetSubjectBySessionRequest(r);\n return this.http.post<GetSubjectResponseInterface>(this._host + \"/iam.v1.UserIAM/GetSubjectBySession\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetSubjectResponse.fromProto(resp)),\n );\n }\n listPersonas(r: ListPersonasRequest | ListPersonasRequestInterface): Observable<ListPersonasResponse> {\n const request = ((<ListPersonasRequest>r).toApiJson) ? (<ListPersonasRequest>r) : new ListPersonasRequest(r);\n return this.http.post<ListPersonasResponseInterface>(this._host + \"/iam.v1.UserIAM/ListPersonas\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListPersonasResponse.fromProto(resp)),\n );\n }\n getToken(r: GetTokenRequest | GetTokenRequestInterface): Observable<GetTokenResponse> {\n const request = ((<GetTokenRequest>r).toApiJson) ? (<GetTokenRequest>r) : new GetTokenRequest(r);\n return this.http.post<GetTokenResponseInterface>(this._host + \"/iam.v1.UserIAM/GetToken\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetTokenResponse.fromProto(resp)),\n );\n }\n getSessionToken(r: GetSessionTokenRequest | GetSessionTokenRequestInterface): Observable<GetTokenResponse> {\n const request = ((<GetSessionTokenRequest>r).toApiJson) ? (<GetSessionTokenRequest>r) : new GetSessionTokenRequest(r);\n return this.http.post<GetTokenResponseInterface>(this._host + \"/iam.v1.UserIAM/GetSessionToken\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetTokenResponse.fromProto(resp)),\n );\n }\n resetPasswordWithToken(r: ResetPasswordWithTokenRequest | ResetPasswordWithTokenRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ResetPasswordWithTokenRequest>r).toApiJson) ? (<ResetPasswordWithTokenRequest>r) : new ResetPasswordWithTokenRequest(r);\n return this.http.post<null>(this._host + \"/iam.v1.UserIAM/ResetPasswordWithToken\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getImpersonationToken(r: GetImpersonationTokenRequest | GetImpersonationTokenRequestInterface): Observable<GetImpersonationTokenResponse> {\n const request = ((<GetImpersonationTokenRequest>r).toApiJson) ? (<GetImpersonationTokenRequest>r) : new GetImpersonationTokenRequest(r);\n return this.http.post<GetImpersonationTokenResponseInterface>(this._host + \"/iam.v1.UserIAM/GetImpersonationToken\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetImpersonationTokenResponse.fromProto(resp)),\n );\n }\n \n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { LoginResponseInterface, LogoutResponseInterface } from './http/http.interface';\nimport { IamHttpApiService } from './http/iam.http.api.service';\nimport { BasePersona } from './personas/base-personas';\nimport { PersonaType } from './personas/persona-type.enum';\nimport { fromPersona } from './personas/personas';\nimport { IAMApiService } from './_internal/iam.api.service';\nimport { UserFilterInterface, UserIdentifierInterface, UserSortOptionsInterface } from './_internal/interfaces';\nimport { ContextInterface } from './_internal/interfaces/subjects.interface';\nimport {\n GetSubjectResponse,\n GetTokenResponse,\n ListPersonasResponse as ListPersonasProtoResponse,\n ListSecurityLogsRequestFilters,\n ListSecurityLogsResponse,\n ListUsersResponse\n} from './_internal/objects/api';\nimport { Context, NamespacedContext, Persona, TypedContext } from './_internal/objects/subjects';\nimport { User } from './_internal/objects/users';\nimport { UserIAMApiService } from './_internal/user-iam.api.service';\n\n@Injectable({providedIn: 'root'})\nexport class IAMService {\n constructor(\n private api: UserIAMApiService,\n private httpApi: IamHttpApiService,\n private iamApi: IAMApiService\n ) {\n }\n\n // Get a subject from the session ID\n getSubjectBySession(sessionId: string, personaType: PersonaType, partnerId?: string): Observable<BasePersona | null> {\n let context: ContextInterface;\n if (!!partnerId) {\n context = new Context({\n namespaced: new NamespacedContext({\n namespace: partnerId,\n type: PersonaType[personaType]\n })\n });\n } else {\n context = new Context({ typed: new TypedContext({ type: PersonaType[personaType] }) });\n }\n return this.api\n .getSubjectBySession({\n session: sessionId,\n context: context\n })\n .pipe(map((r: GetSubjectResponse) => fromPersona(\n new Persona({ subject: r.subject.subject, context: context })\n )));\n }\n\n // List all available personas for the session. Optionally pass a persona type to filter by that persona.\n listPersonas(sessionId: string, personaType?: PersonaType): Observable<BasePersona[]> {\n return this.api\n .listPersonas({\n session: sessionId,\n pageSize: 100,\n type: personaType\n })\n .pipe(\n map((r: ListPersonasProtoResponse) => {\n const personas: BasePersona[] = [];\n if (!r || !r.personas) {\n return [];\n }\n for (const p of r.personas) {\n const persona = fromPersona(p);\n if (!!persona) {\n personas.push(persona);\n }\n }\n return personas;\n })\n );\n }\n\n // Get a short lived session token\n getToken(): Observable<string> {\n return this.api.getToken({}).pipe(map((r: GetTokenResponse) => r.token));\n }\n\n // Login into a user. Optionally specify the partner and persona type you want to log into\n login(email: string, password: string, personaType?: PersonaType, partnerId?: string): Observable<string> {\n return this.httpApi\n .login({\n email: email,\n password: password,\n namespace: partnerId,\n type: personaType\n })\n .pipe(map((r: LoginResponseInterface) => r.sessionId || ''));\n }\n\n // Logout of the current session, returns true if successful\n logout(): Observable<boolean> {\n return this.httpApi.logout().pipe(map((r: LogoutResponseInterface) => r.success));\n }\n\n // This will redirect the browser to IAM's sso login handler.\n ssoLogin(nextUrl: string, personaType?: PersonaType, partnerId?: string): void {\n this.httpApi.ssoLogin({\n nextUrl: nextUrl,\n namespace: partnerId,\n type: personaType\n });\n }\n\n // getMultiUsers takes an array of user identifiers and calls IAM to convert them into Users\n getMultiUsers(userIdentifiers: UserIdentifierInterface[]): Observable<User[]> {\n return this.iamApi.getMultiUsers({\n userIdentifiers\n }).pipe(\n map(resp => {\n if (!!resp.users) {\n return resp.users\n }\n return [];\n }),\n map(userContainers => userContainers.map(u => u.user))\n );\n }\n\n // listSecurityLogs returns security logs for a userId passed in. This is a paged function, but the\n // handling of paged information is left to the implementor (for now).\n listSecurityLogs(userId: string, cursor?: string, pageSize?: number, actionId = ''):\n Observable<ListSecurityLogsResponse> {\n const optionalArgs: {[key: string]: ListSecurityLogsRequestFilters} = {};\n if (actionId !== '') {\n optionalArgs.filters = new ListSecurityLogsRequestFilters({actionId});\n }\n return this.iamApi.listSecurityLogs({\n userId,\n cursor,\n pageSize,\n ...optionalArgs\n })\n }\n\n // listUsers returns users for a namespace passed in. This is a paged function, but the\n // handling of paged information is left to the implementor (for now).\n // An empty namespace will return users that exist outside of a namespace.\n listUsers(namespace: string, email?: string, cursor?: string, pageSize?: number, subjectTypes?: string[],\n searchTerms?: string[], sortOptions?: UserSortOptionsInterface[]): Observable<ListUsersResponse> {\n const userFilter: UserFilterInterface = {};\n if (!!subjectTypes && subjectTypes.length > 0) {\n userFilter.subjectTypes = subjectTypes;\n }\n if (!!searchTerms && searchTerms.length > 0) {\n userFilter.searchTerms = searchTerms;\n }\n\n return this.iamApi.listUsers({\n namespace: namespace,\n email: email,\n cursor: cursor,\n pageSize: pageSize,\n userFilter: userFilter,\n sortOptions: (sortOptions || [])\n })\n }\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Index.\n// *********************************\n\nexport * from './enums';\nexport * from './objects';\nexport * from './interfaces';\nexport { IAMApiService } from './iam.api.service';\nexport { UserIAMApiService } from './user-iam.api.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2.HostService","enumStringToValue","e.BooleanOperator","e.ForOperator","e.AccessScope","e.AlgorithmType","e.RestrictionType","e.OrderByDirection","e.SortDirection","e.UserSortField","i1.UserIAMApiService","i2.IamHttpApiService","i3.IAMApiService"],"mappings":"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"}
|