Repository: airavata Updated Branches: refs/heads/master f6f2adc5a -> df6cfd7d2
http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/data-models/airavata_data_models.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/data-models/airavata_data_models.thrift b/thrift-interface-descriptions/data-models/airavata_data_models.thrift index 3237de3..6d41138 100644 --- a/thrift-interface-descriptions/data-models/airavata_data_models.thrift +++ b/thrift-interface-descriptions/data-models/airavata_data_models.thrift @@ -32,8 +32,9 @@ include "experiment-catalog-models/scheduling_model.thrift" include "experiment-catalog-models/status_models.thrift" include "resource-catalog-models/data_movement_models.thrift" include "replica-catalog-models/replica_catalog_models.thrift" -include "user-group-models/user_profile_model.thrift" -include "user-group-models/group_manager_model.thrift" +include "user-tenant-group-models/user_profile_model.thrift" +include "user-tenant-group-models/group_manager_model.thrift" +include "user-tenant-group-models/tenant_profile_model.thrift" include "credential-store-models/credential_store_data_models.thrift" namespace java org.apache.airavata.model http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift b/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift index fd4784d..3dcb53b 100644 --- a/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift +++ b/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift @@ -25,7 +25,7 @@ namespace py apache.airavata.model.appcatalog.userresourceprofile include "compute_resource_model.thrift" include "data_movement_models.thrift" -include "../user-group-models/user_profile_model.thrift" +include "../user-tenant-group-models/user_profile_model.thrift" /** * User specific preferences for a Computer Resource http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/data-models/user-group-models/group_manager_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/data-models/user-group-models/group_manager_model.thrift b/thrift-interface-descriptions/data-models/user-group-models/group_manager_model.thrift deleted file mode 100644 index 2bc3b2f..0000000 --- a/thrift-interface-descriptions/data-models/user-group-models/group_manager_model.thrift +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ - - include "../../airavata-apis/airavata_commons.thrift" - - namespace java org.apache.airavata.model.group - namespace php Airavata.Model.Group - namespace cpp apache.airavata.model.group - namespace py apache.airavata.model.group - - -enum ResourceType { - PROJECT, - EXPERIMENT, - DATA, - OTHER -} - -enum ResourcePermissionType { - WRITE, - READ, - OWNER -} - -struct GroupModel{ - 1: optional string id, - 2: optional string name, - 3: optional string ownerId, - 4: optional string description, - 5: optional list<string> members -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/data-models/user-group-models/user_profile_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/data-models/user-group-models/user_profile_model.thrift b/thrift-interface-descriptions/data-models/user-group-models/user_profile_model.thrift deleted file mode 100644 index 116d9eb..0000000 --- a/thrift-interface-descriptions/data-models/user-group-models/user_profile_model.thrift +++ /dev/null @@ -1,186 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ - - include "../../airavata-apis/airavata_commons.thrift" - - namespace java org.apache.airavata.model.user - namespace php Airavata.Model.User - namespace cpp apache.airavata.model.user - namespace py apache.airavata.model.user - -const string USER_PROFILE_VERSION = "1.0" - -enum Status { - ACTIVE, - CONFIRMED, - APPROVED, - DELETED, - DUPLICATE, - GRACE_PERIOD, - INVITED, - DENIED - PENDING, - PENDING_APPROVAL, - PENDING_CONFIRMATION - SUSPENDED - DECLINED - EXPIRED -} - -/** - * U.S. Citizen (see: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) - * -*/ -enum USCitizenship { - US_CITIZEN, - US_PERMANENT_RESIDENT, - OTHER_NON_US_CITIZEN -} - -/** - * Hispanic or Latino - a person of Mexican, Puerto Rican, Cuban, South or - * Central American, or other Spanish culture or origin, regardless of race. - * -*/ -enum ethnicity { - HISPANIC_LATINO, - NOT_HISPANIC_LATINO -} - -/** - * Asian - a person having origins in any of the original peoples of the Far East, - * Southeast Asia, or the Indian subcontinent including, for example, Cambodia, - * China, India, Japan, Korea, Malaysia, Pakistan, the Philippine Islands, - * Thailand, and Vietnam. - * American Indian or Alaskan Native - a person having origins in any of the original - * peoples of North and South America (including Central America), and who maintains - * tribal affiliation or community attachment. - * Black or African American - a person having origins in any of the black racial groups - * of Africa. - * Native Hawaiian or Pacific Islander - a person having origins in any of the original - * peoples of Hawaii, Guan, Samoa, or other Pacific Islands. - * White - a person having origins in any of the original peoples of Europe, the Middle East, or North Africa. - * -*/ -enum race { - ASIAN, - AMERICAN_INDIAN_OR_ALASKAN_NATIVE, - BLACK_OR_AFRICAN_AMERICAN, - NATIVE_HAWAIIAN_OR_PACIFIC_ISLANDER, - WHITE -} - -enum disability { - HEARING_IMAPAIRED, - VISUAL_IMPAIRED, - MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT, - OTHER_IMPAIRMENT -} - -/** - * A structure holding the NSF Demographic information. - * - * -*/ -struct NSFDemographics { - 1: required string airavataInternalUserId = airavata_commons.DEFAULT_ID, - 2: optional string gender, - 3: optional USCitizenship usCitizenship, - 4: optional list<ethnicity> ethnicities, - 5: optional list<race> races, - 6: optional list<disability> disabilities -} - -/** - * A structure holding the user profile and its child models. - * - * Notes: - * The model does not include passwords as it is assumed an external identity provider is used to authenticate user. - * References: - * NSF Demographic Information - http://www.nsf.gov/pubs/2000/00form1225/00form1225.doc - * LDAP Schema - https://tools.ietf.org/html/rfc4519 - * SCIM 2.0 - https://tools.ietf.org/html/rfc7643 - * - * userModelVersion: - * Version number of profile - * - * airavataInternalUserId: - * internal to Airavata, not intended to be used outside of the Airavata platform or possibly by gateways - * (that is, never shown to users), never reassigned, REQUIRED - * - * userId: - * Externally assertable unique identifier. SAML (primarly in higher education, academic) tends to keep - * user name less opaque. OpenID Connect maintains them to be opaque. - * - * emails: - * Email identifier are Verified, REQUIRED and MULTIVALUED - * - * userName: - * Name-based identifiers can be multivalues. To keep it simple, Airavata will make it a string. - * In the future these can be enumerated as: - * Official name (as asserted possibly by some external identity provider) - * Prefered name (as asserted or suggested by user directly) - * Components: - * givenName - * surname (familyName) - * displayName (often asserted by user to handle things like middle names, suffix, prefix, and the like) - * - * orcidId: ORCID ID - http://orcid.org/about/what-is-orcid) - * - * phones: Telephone MULTIVALUED - * - * country: Country of Residance - * - * nationality Countries of citizenship - * - * comments: - * Free-form information (treated as opaque by Airavata and simply passed to resource). - * - * labeledURI: - * Google Scholar, Web of Science, ACS, e.t.c - * - * timeZone: - * Userâs preferred timezone - IANA Timezone Databases - http://www.iana.org/time-zones. - * -*/ - -struct UserProfile { - 1: required string userModelVersion = USER_PROFILE_VERSION, - 2: required string airavataInternalUserId = airavata_commons.DEFAULT_ID, - 3: required string userId, - 4: required string gatewayId, - 5: required list<string> emails, - 6: optional string userName, - 7: optional string orcidId, - 8: optional list<string> phones, - 9: optional string country, - 10: optional list<string> nationality, - 11: optional string homeOrganization, - 12: optional string orginationAffiliation, - 13: required i64 creationTime, - 14: required i64 lastAccessTime, - 15: required i64 validUntil, - 16: required Status State, - 17: optional string comments, - 18: optional list<string> labeledURI, - 19: optional string gpgKey, - 20: optional string timeZone, - 21: optional NSFDemographics nsfDemographics -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/data-models/user-tenant-group-models/group_manager_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/data-models/user-tenant-group-models/group_manager_model.thrift b/thrift-interface-descriptions/data-models/user-tenant-group-models/group_manager_model.thrift new file mode 100644 index 0000000..2bc3b2f --- /dev/null +++ b/thrift-interface-descriptions/data-models/user-tenant-group-models/group_manager_model.thrift @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + + include "../../airavata-apis/airavata_commons.thrift" + + namespace java org.apache.airavata.model.group + namespace php Airavata.Model.Group + namespace cpp apache.airavata.model.group + namespace py apache.airavata.model.group + + +enum ResourceType { + PROJECT, + EXPERIMENT, + DATA, + OTHER +} + +enum ResourcePermissionType { + WRITE, + READ, + OWNER +} + +struct GroupModel{ + 1: optional string id, + 2: optional string name, + 3: optional string ownerId, + 4: optional string description, + 5: optional list<string> members +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/data-models/user-tenant-group-models/tenant_profile_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/data-models/user-tenant-group-models/tenant_profile_model.thrift b/thrift-interface-descriptions/data-models/user-tenant-group-models/tenant_profile_model.thrift new file mode 100644 index 0000000..557dddb --- /dev/null +++ b/thrift-interface-descriptions/data-models/user-tenant-group-models/tenant_profile_model.thrift @@ -0,0 +1,58 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + +include "../../airavata-apis/airavata_commons.thrift" + +namespace java org.apache.airavata.model.tenant +namespace php Airavata.Model.Tenant +namespace cpp apache.airavata.model.tenant +namespace py apache.airavata.model.tenant + +enum TenantApprovalStatus { + REQUESTED, + APPROVED, + ACTIVE, + DEACTIVATED, + CANCELLED, + DENIED, + CREATED +} + +struct Tenant { + 1: required string tenantId, + 2: required TenantApprovalStatus tenantApprovalStatus, + 3: optional string tenantName, + 4: optional string domain, + 5: optional string emailAddress + 6: optional string tenantAcronym, + 7: optional string tenantURL, + 8: optional string tenantPublicAbstract, + 9: optional string reviewProposalDescription, + 10: optional string tenantAdminFirstName, + 11: optional string tenantAdminLastName, + 12: optional string tenantAdminEmail, + 13: optional string identityServerUserName, + 14: optional string identityServerPasswordToken, + 15: optional string declinedReason, + 16: optional string oauthClientId, + 17: optional string oauthClientSecret, + 18: optional i64 requestCreationTime, + 19: optional string requesterUsername +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/data-models/user-tenant-group-models/user_profile_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/data-models/user-tenant-group-models/user_profile_model.thrift b/thrift-interface-descriptions/data-models/user-tenant-group-models/user_profile_model.thrift new file mode 100644 index 0000000..638eb01 --- /dev/null +++ b/thrift-interface-descriptions/data-models/user-tenant-group-models/user_profile_model.thrift @@ -0,0 +1,197 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + + include "../../airavata-apis/airavata_commons.thrift" + + namespace java org.apache.airavata.model.user + namespace php Airavata.Model.User + namespace cpp apache.airavata.model.user + namespace py apache.airavata.model.user + +const string USER_PROFILE_VERSION = "1.0" + +enum Status { + ACTIVE, + CONFIRMED, + APPROVED, + DELETED, + DUPLICATE, + GRACE_PERIOD, + INVITED, + DENIED + PENDING, + PENDING_APPROVAL, + PENDING_CONFIRMATION + SUSPENDED + DECLINED + EXPIRED +} + +/** + * U.S. Citizen (see: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) + * +*/ +enum USCitizenship { + US_CITIZEN, + US_PERMANENT_RESIDENT, + OTHER_NON_US_CITIZEN +} + +/** + * Hispanic or Latino - a person of Mexican, Puerto Rican, Cuban, South or + * Central American, or other Spanish culture or origin, regardless of race. + * +*/ +enum ethnicity { + HISPANIC_LATINO, + NOT_HISPANIC_LATINO +} + +/** + * Asian - a person having origins in any of the original peoples of the Far East, + * Southeast Asia, or the Indian subcontinent including, for example, Cambodia, + * China, India, Japan, Korea, Malaysia, Pakistan, the Philippine Islands, + * Thailand, and Vietnam. + * American Indian or Alaskan Native - a person having origins in any of the original + * peoples of North and South America (including Central America), and who maintains + * tribal affiliation or community attachment. + * Black or African American - a person having origins in any of the black racial groups + * of Africa. + * Native Hawaiian or Pacific Islander - a person having origins in any of the original + * peoples of Hawaii, Guan, Samoa, or other Pacific Islands. + * White - a person having origins in any of the original peoples of Europe, the Middle East, or North Africa. + * +*/ +enum race { + ASIAN, + AMERICAN_INDIAN_OR_ALASKAN_NATIVE, + BLACK_OR_AFRICAN_AMERICAN, + NATIVE_HAWAIIAN_OR_PACIFIC_ISLANDER, + WHITE +} + +enum disability { + HEARING_IMAPAIRED, + VISUAL_IMPAIRED, + MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT, + OTHER_IMPAIRMENT +} + +/** + * A structure holding the NSF Demographic information. + * + * +*/ +struct NSFDemographics { + 1: required string airavataInternalUserId = airavata_commons.DEFAULT_ID, + 2: optional string gender, + 3: optional USCitizenship usCitizenship, + 4: optional list<ethnicity> ethnicities, + 5: optional list<race> races, + 6: optional list<disability> disabilities +} + +/** + * A structure holding the user profile and its child models. + * + * Notes: + * The model does not include passwords as it is assumed an external identity provider is used to authenticate user. + * References: + * NSF Demographic Information - http://www.nsf.gov/pubs/2000/00form1225/00form1225.doc + * LDAP Schema - https://tools.ietf.org/html/rfc4519 + * SCIM 2.0 - https://tools.ietf.org/html/rfc7643 + * + * userModelVersion: + * Version number of profile + * + * airavataInternalUserId: + * internal to Airavata, not intended to be used outside of the Airavata platform or possibly by gateways + * (that is, never shown to users), never reassigned, REQUIRED + * + * userId: + * Externally assertable unique identifier. SAML (primarly in higher education, academic) tends to keep + * user name less opaque. OpenID Connect maintains them to be opaque. + * + * firstName, middleName, lastName: + * First and Last names as assertede by the user + * + * namePrefix, nameSuffix: + * prefix and suffix to the users name as asserted by the user + * + * emails: + * Email identifier are Verified, REQUIRED and MULTIVALUED + * + * userName: + * Name-based identifiers can be multivalues. To keep it simple, Airavata will make it a string. + * In the future these can be enumerated as: + * Official name (as asserted possibly by some external identity provider) + * Prefered name (as asserted or suggested by user directly) + * Components: + * givenName + * surname (familyName) + * displayName (often asserted by user to handle things like middle names, suffix, prefix, and the like) + * + * orcidId: ORCID ID - http://orcid.org/about/what-is-orcid) + * + * phones: Telephone MULTIVALUED + * + * country: Country of Residance + * + * nationality Countries of citizenship + * + * comments: + * Free-form information (treated as opaque by Airavata and simply passed to resource). + * + * labeledURI: + * Google Scholar, Web of Science, ACS, e.t.c + * + * timeZone: + * Userâs preferred timezone - IANA Timezone Databases - http://www.iana.org/time-zones. + * +*/ + +struct UserProfile { + 1: required string userModelVersion = USER_PROFILE_VERSION, + 2: required string airavataInternalUserId = airavata_commons.DEFAULT_ID, + 3: required string userId, + 4: required string gatewayId, + 5: required list<string> emails, + 6: required string firstName, + 7: required string lastName, + 8: optional string middleName, + 9: optional string namePrefix, + 10: optional string nameSuffix, + 11: optional string userName, + 12: optional string orcidId, + 13: optional list<string> phones, + 14: optional string country, + 15: optional list<string> nationality, + 16: optional string homeOrganization, + 17: optional string orginationAffiliation, + 18: required i64 creationTime, + 19: required i64 lastAccessTime, + 20: required i64 validUntil, + 21: required Status State, + 22: optional string comments, + 23: optional list<string> labeledURI, + 24: optional string gpgKey, + 25: optional string timeZone, + 26: optional NSFDemographics nsfDemographics +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift b/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift index 3f4d63e..36821d9 100644 --- a/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift +++ b/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift @@ -26,7 +26,7 @@ include "../../../airavata-apis/airavata_errors.thrift" include "../../../airavata-apis/security_model.thrift" include "../../../data-models/experiment-catalog-models/workspace_model.thrift" -include "../../../data-models/user-group-models/user_profile_model.thrift" +include "../../../data-models/user-tenant-group-models/user_profile_model.thrift" include "../../../data-models/credential-store-models/credential_store_data_models.thrift" include "iam_admin_services_cpi_errors.thrift" http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile-user-cpi.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile-user-cpi.thrift b/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile-user-cpi.thrift index f4f5de3..13f6a5c 100644 --- a/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile-user-cpi.thrift +++ b/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile-user-cpi.thrift @@ -25,7 +25,7 @@ include "../../../airavata-apis/airavata_errors.thrift" include "../../../airavata-apis/security_model.thrift" -include "../../../data-models/user-group-models/user_profile_model.thrift" +include "../../../data-models/user-tenant-group-models/user_profile_model.thrift" include "profile_user_cpi_errors.thrift"
