diff --git a/output/schema/schema.json b/output/schema/schema.json index 052765732b..2034dc2781 100644 --- a/output/schema/schema.json +++ b/output/schema/schema.json @@ -171298,7 +171298,7 @@ "type": { "kind": "instance_of", "type": { - "name": "Name", + "name": "Names", "namespace": "_types" } } @@ -171326,27 +171326,21 @@ } }, { - "name": "metadata", - "required": false, - "type": { - "kind": "user_defined_value" - } - }, - { - "name": "realm", + "name": "realm.name", "required": false, "type": { "kind": "instance_of", "type": { - "name": "Realm", - "namespace": "security._types" + "name": "Name", + "namespace": "_types" } } } ], - "specLocation": "security/_types/RoleMappingRule.ts#L33-L42", + "specLocation": "security/_types/RoleMappingRule.ts#L34-L44", "variants": { - "kind": "container" + "kind": "container", + "nonExhaustive": true } }, { @@ -171628,27 +171622,6 @@ ], "specLocation": "security/_types/Privileges.ts#L197-L199" }, - { - "kind": "interface", - "name": { - "name": "Realm", - "namespace": "security._types" - }, - "properties": [ - { - "name": "name", - "required": true, - "type": { - "kind": "instance_of", - "type": { - "name": "Name", - "namespace": "_types" - } - } - } - ], - "specLocation": "security/_types/RoleMappingRule.ts#L44-L46" - }, { "kind": "interface", "name": { @@ -172080,7 +172053,7 @@ } } ], - "specLocation": "security/_types/RoleMappingRule.ts#L23-L31", + "specLocation": "security/_types/RoleMappingRule.ts#L24-L32", "variants": { "kind": "container" } diff --git a/output/typescript/types.ts b/output/typescript/types.ts index 7bf31b4677..9f4b4184b0 100644 --- a/output/typescript/types.ts +++ b/output/typescript/types.ts @@ -16091,11 +16091,10 @@ export interface SecurityCreatedStatus { } export interface SecurityFieldRule { - username?: Name + username?: Names dn?: Names groups?: Names - metadata?: any - realm?: SecurityRealm + 'realm.name'?: Name } export interface SecurityFieldSecurity { @@ -16125,10 +16124,6 @@ export interface SecurityManageUserPrivileges { applications: string[] } -export interface SecurityRealm { - name: Name -} - export interface SecurityRealmInfo { name: Name type: string diff --git a/specification/security/_types/RoleMappingRule.ts b/specification/security/_types/RoleMappingRule.ts index b373fb4eb0..85b52882a8 100644 --- a/specification/security/_types/RoleMappingRule.ts +++ b/specification/security/_types/RoleMappingRule.ts @@ -26,21 +26,19 @@ import { Name, Names } from '@_types/common' export class RoleMappingRule { any?: RoleMappingRule[] all?: RoleMappingRule[] + // `field` should have been defined as SingleKeyDictionary + // However, this was initially defined as a container with a limited number of variants, + // and was later made non_exhaustive to limit breaking changes. field?: FieldRule except?: RoleMappingRule } /** * @variants container + * @non_exhaustive */ export class FieldRule { - username?: Name + username?: Names dn?: Names groups?: Names - metadata?: UserDefinedValue - realm?: Realm -} - -export class Realm { - name: Name }