type Organization implements Node { id: ID! name: String! logoUrl: String @goField(forceResolver: true) horizontalLogoUrl: String @goField(forceResolver: true) email: String description: String websiteUrl: String headquarterAddress: String createdAt: Datetime! updatedAt: Datetime! profiles( first: Int after: CursorKey last: Int before: CursorKey orderBy: ProfileOrder ): ProfileConnection @goField(forceResolver: true) samlConfigurations( first: Int after: CursorKey last: Int before: CursorKey ): SAMLConfigurationConnection @goField(forceResolver: true) scimConfiguration: SCIMConfiguration @goField(forceResolver: true) scimBridgeTypes: [SCIMBridgeTypeInfo!]! @goField(forceResolver: true) auditLogEntries( first: Int after: CursorKey last: Int before: CursorKey orderBy: AuditLogEntryOrder filter: AuditLogEntryFilter ): AuditLogEntryConnection! @goField(forceResolver: true) viewer: Profile @goField(forceResolver: true) permission(action: String!): Boolean! @goField(forceResolver: true) @session(required: PRESENT) } extend type Mutation { createOrganization( input: CreateOrganizationInput! ): CreateOrganizationPayload @session(required: PRESENT) updateOrganization( input: UpdateOrganizationInput! ): UpdateOrganizationPayload @session(required: PRESENT) deleteOrganization( input: DeleteOrganizationInput! ): DeleteOrganizationPayload @session(required: PRESENT) deleteOrganizationHorizontalLogo( input: DeleteOrganizationHorizontalLogoInput! ): DeleteOrganizationHorizontalLogoPayload @session(required: PRESENT) } input CreateOrganizationInput { name: String! logoFile: Upload horizontalLogoFile: Upload } input UpdateOrganizationInput { organizationId: ID! name: String logoFile: Upload horizontalLogoFile: Upload description: String @goField(omittable: true) websiteUrl: String @goField(omittable: true) email: String @goField(omittable: true) headquarterAddress: String @goField(omittable: true) } input DeleteOrganizationInput { organizationId: ID! } input DeleteOrganizationHorizontalLogoInput { organizationId: ID! } type CreateOrganizationPayload { organization: Organization profile: Profile! } type UpdateOrganizationPayload { organization: Organization } type DeleteOrganizationPayload { deletedOrganizationId: ID! } type DeleteOrganizationHorizontalLogoPayload { organization: Organization! }