openapi: 3.2.0 info: version: 1.0.0 title: Membership portal Organization Contacts API description: API used for reading and updating information about member organizations and it's associated metadata. contact: name: Software Development Team url: https://gitlab.eclipse.org/eclipsefdn/software-dev email: software-dev@eclipse-foundation.org license: name: Eclipse Public License - 2.0 url: https://www.eclipse.org/legal/epl-2.0/ servers: - url: https://membership.eclipse.org/api description: Production endpoint for the membership portal data tags: - name: Organization Contacts description: Definitions related to Eclipse Foundation organization contacts paths: /organizations/{organizationID}/contacts: parameters: - name: organizationID in: path description: The organization ID for the organization to retrieve required: true schema: type: number get: security: - openId: [] tags: - Organization Contacts summary: Organization description: Returns a list of contacts for the given organization with additional data such as name and email operationId: getOrganizationContacts responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/EnhancedPersons' '401': description: Unauthorized '403': description: Forbidden '404': description: Not found '500': description: Error while retrieving data /organizations/{organizationID}/contacts/{contactID}: parameters: - name: organizationID in: path description: The organization ID for the organization to retrieve required: true schema: type: number - name: contactID in: path description: The contact ID/username of the contact to retrieve required: true schema: type: string get: security: - openId: [] tags: - Organization Contacts summary: Organization description: Returns a list of contact relations for the given user in the passed organization operationId: getOrganizationContactRelations responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/OrganizationContacts' '401': description: Unauthorized '403': description: Forbidden '404': description: Not found '500': description: Error while retrieving data delete: security: - openId: [] tags: - Organization Contacts summary: Request Organization contact removal description: Fires a request for a organization contact to be removed. operationId: requestOrganizationContactRemoval requestBody: description: The working group to be updated or inserted into the data set. content: application/json: schema: $ref: '#/components/schemas/ContactRemovalRequest' responses: '200': description: Success '401': description: Unauthorized '403': description: Forbidden '404': description: Not found '500': description: Error while sending request /organizations/{organizationID}/contacts/{contactID}/{relation}: parameters: - name: organizationID in: path description: The organization ID for the organization to retrieve required: true schema: type: number - name: contactID in: path description: The contact ID/username of the contact to retrieve required: true schema: type: string - name: relation in: path description: The relation code of the relation type to retrieve/check for/update. required: true schema: type: string get: security: - openId: [] tags: - Organization Contacts summary: Organization description: Returns a contact relations for the given user and relation/position in the passed organization if it exists operationId: getOrganizationContactRelation responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/OrganizationContact' '401': description: Unauthorized '403': description: Forbidden '404': description: Not found '500': description: Error while retrieving data post: security: - openId: [] tags: - Organization Contacts summary: Organization description: Updates an organization contact and returns the updated entity operationId: updateOrganizationContactRelation responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/OrganizationContact' '400': description: Bad Request - Invalid relation content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized '403': description: Forbidden '500': description: Error while retrieving data delete: security: - openId: [] tags: - Organization Contacts summary: Organization description: Removes a single organization contact relation. Works for all relations except EMPLY and CR, which must be done manually through the membership team. operationId: removeOrganizationContactRelation responses: '200': description: Success '400': description: Bad Request - Invalid relation content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized '403': description: Forbidden '500': description: Error while retrieving data /organizations/{organizationID}/representatives: parameters: - name: organizationID in: path description: The organization ID for the organization to retrieve required: true schema: type: number get: security: - openId: [] tags: - Organization Contacts summary: Organization description: Returns a list of contacts with elevated roles for the given organization with their name. operationId: getOrganizationRepresentatives responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/EnhancedPersonData' '404': description: Not found '500': description: Error while retrieving data components: schemas: OrganizationContacts: type: array items: $ref: '#/components/schemas/OrganizationContact' ObjectID: description: Unique identifier for an addressable object in the API. Can be null when posting or updating objects in the API if part of the root element or is a new entity. Should always be set in responses. type: - string - 'null' minimum: 1 EnhancedPersons: type: array items: $ref: '#/components/schemas/EnhancedPersonData' Error: type: object properties: status_code: type: integer description: HTTP response code message: type: string description: Message containing error information url: type: - string - 'null' description: The URL OrganizationContact: type: object properties: organization_id: type: integer description: the target organization id person_id: $ref: '#/components/schemas/ObjectID' relation: type: string description: the relation of the contact to the organization comments: type: string description: System comments about the entry title: type: - string - 'null' description: Placeholder ContactRemovalRequest: type: object properties: organization_id: type: integer description: the target organization to remove user from username: type: string description: the user that should be removed from the organization reason: type: string description: the reason the user should be removed from the organization EnhancedPersonData: type: object required: - id - first_name - last_name - relations properties: id: type: string description: Description of the stored URL/product first_name: type: string description: First name of the user last_name: type: string description: Last name of the user email: oneOf: - type: string - type: 'null' description: Email of the user. Only included if the current user has elevated permissions for the current organization. relations: type: array description: list of relation codes that are active for the current user items: type: string securitySchemes: openId: type: openIdConnect openIdConnectUrl: https://auth.eclipse.org/auth/realms/foundation/.well-known/openid-configuration