export type ClusterV1 = {clusterId: string, permissions?: (Array<'clusterViewBroker' | 'clusterEditSRCompatibility' | 'clusterEditBroker' | 'clusterViewACL' | 'clusterManageACL'>) | undefined, resourceType: 'Platform' | 'Cluster' | 'Topic' | 'ConsumerGroup' | 'KafkaConnect' | 'Subject' | 'KsqlDB'}; export type ConsumerGroupV1 = {clusterId: string, consumerGroupPattern: string, permissions?: (Array<'consumerGroupCreate' | 'consumerGroupReset' | 'consumerGroupDelete' | 'consumerGroupMetadataManage' | 'consumerGroupView'>) | undefined, resourceType: 'Platform' | 'Cluster' | 'Topic' | 'ConsumerGroup' | 'KafkaConnect' | 'Subject' | 'KsqlDB'}; export type KafkaConnectV1 = {clusterId: string, connectClusterId: string, connectorNamePattern: string, permissions?: (Array<'kafkaConnectorStatus' | 'kafkaConnectorEditConfig' | 'kafkaConnectorMetadataManage' | 'kafkaConnectorDelete' | 'kafkaConnectorCreate' | 'kafkaConnectorOffsetsView' | 'kafkaConnectorViewConfig' | 'kafkaConnectorStop' | 'kafkaConnectPauseResume' | 'kafkaConnectRestart' | 'kafkaConnectorOffsetsManage'>) | undefined, resourceType: 'Platform' | 'Cluster' | 'Topic' | 'ConsumerGroup' | 'KafkaConnect' | 'Subject' | 'KsqlDB'}; export type KsqlDBV1 = {clusterId: string, ksqlDBServerSlug: string, permissions?: Array<'ksqldbAccess'> | undefined, resourceType: 'Platform' | 'Cluster' | 'Topic' | 'ConsumerGroup' | 'KafkaConnect' | 'Subject' | 'KsqlDB'}; export type PlatformV1 = {permissions?: (Array<'taasView' | 'certificateManage' | 'userManage' | 'clusterConnectionsManage' | 'notificationChannelManage' | 'sqlManage' | 'datamaskingManage' | 'auditLogView' | 'chargebackManage' | 'chargebackView' | 'notificationChannelView' | 'clusterConnectionsView' | 'datamaskingView' | 'userView' | 'flinkManage'>) | undefined, resourceType: 'Platform' | 'Cluster' | 'Topic' | 'ConsumerGroup' | 'KafkaConnect' | 'Subject' | 'KsqlDB'}; export type SubjectV1 = {clusterId: string, subjectPattern: string, permissions?: (Array<'subjectCreateUpdate' | 'subjectDelete' | 'subjectEditCompatibility' | 'subjectView' | 'subjectMetadataManage'>) | undefined, resourceType: 'Platform' | 'Cluster' | 'Topic' | 'ConsumerGroup' | 'KafkaConnect' | 'Subject' | 'KsqlDB'}; export type TopicV1 = {clusterId: string, topicPattern: string, permissions?: (Array<'topicViewConfig' | 'topicEmpty' | 'topicConsume' | 'topicProduce' | 'topicEditConfig' | 'topicMetadataManage' | 'topicAddPartition' | 'topicDelete' | 'topicDataQualityManage' | 'topicCreate'>) | undefined, resourceType: 'Platform' | 'Cluster' | 'Topic' | 'ConsumerGroup' | 'KafkaConnect' | 'Subject' | 'KsqlDB'}; export type ResourcePermissions = ClusterV1 | ConsumerGroupV1 | KafkaConnectV1 | KsqlDBV1 | PlatformV1 | SubjectV1 | TopicV1; export type PatchApiPublicV1UsersEmailPermissionsArgs = {email: string, body: Array}; export type PatchApiPublicV1UsersEmailPermissionsOptions = {baseUrl: string, httpAuth?: string | undefined, fetch?: typeof fetch | undefined}; /** * Add permissions to user * * PATCH /public/v1/users/{email}/permissions */ export const patchApiPublicV1UsersEmailPermissions = async (args: PatchApiPublicV1UsersEmailPermissionsArgs, options: PatchApiPublicV1UsersEmailPermissionsOptions) => { const {baseUrl, fetch: fetchFn = fetch, httpAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") if (httpAuth !== undefined) headers.set('authorization', `Bearer ${httpAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/public/v1/users/${encodeURIComponent(String(args.email))}/permissions${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "PATCH", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return undefined };