deploy-templates/crds/v1.edp.epam.com_keycloakclients.yaml (613 lines of code) (raw):

--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 name: keycloakclients.v1.edp.epam.com spec: group: v1.edp.epam.com names: kind: KeycloakClient listKind: KeycloakClientList plural: keycloakclients singular: keycloakclient scope: Namespaced versions: - additionalPrinterColumns: - description: Reconcilation status jsonPath: .status.value name: Status type: string name: v1 schema: openAPIV3Schema: description: KeycloakClient is the Schema for the keycloak clients API. properties: apiVersion: description: |- APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: description: |- Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: description: KeycloakClientSpec defines the desired state of KeycloakClient. properties: adminUrl: description: |- AdminUrl is client admin url. If empty - WebUrl will be used. type: string advancedProtocolMappers: description: AdvancedProtocolMappers is a flag to enable advanced protocol mappers. type: boolean attributes: additionalProperties: type: string default: post.logout.redirect.uris: + description: Attributes is a map of client attributes. nullable: true type: object authenticationFlowBindingOverrides: description: AuthenticationFlowBindingOverrides client auth flow overrides properties: browser: type: string directGrant: type: string type: object authorization: description: Authorization is a client authorization configuration. nullable: true properties: permissions: items: properties: decisionStrategy: default: UNANIMOUS description: DecisionStrategy is a permission decision strategy. enum: - UNANIMOUS - AFFIRMATIVE - CONSENSUS type: string description: description: Description is a permission description. type: string logic: default: POSITIVE description: Logic is a permission logic. enum: - POSITIVE - NEGATIVE type: string name: description: Name is a permission name. type: string policies: description: |- Policies is a list of policies names. Specifies all the policies that must be applied to the scopes defined by this policy or permission. example: - policy1 - policy2 items: type: string nullable: true type: array resources: description: |- Resources is a list of resources names. Specifies that this permission must be applied to all resource instances of a given type. example: - resource1 - resource2 items: type: string nullable: true type: array scopes: description: |- Scopes is a list of authorization scopes names. Specifies that this permission must be applied to one or more scopes. example: - scope1 - scope2 items: type: string nullable: true type: array type: description: Type is a permission type. enum: - resource - scope type: string required: - name - type type: object type: array policies: items: description: Policy represents a client authorization policy. properties: aggregatedPolicy: description: AggregatedPolicy is an aggregated policy settings. properties: policies: description: |- Policies is a list of aggregated policies names. Specifies all the policies that must be applied to the scopes defined by this policy or permission. example: policies: - policy1 - policy2 items: type: string type: array required: - policies type: object clientPolicy: description: ClientPolicy is a client policy settings. properties: clients: description: Clients is a list of client names. Specifies which client(s) are allowed by this policy. example: - clients1 - clients2 items: type: string type: array required: - clients type: object decisionStrategy: default: UNANIMOUS description: DecisionStrategy is a policy decision strategy. enum: - UNANIMOUS - AFFIRMATIVE - CONSENSUS type: string description: description: Description is a policy description. type: string groupPolicy: description: GroupPolicy is a group policy settings. properties: groups: description: Groups is a list of group names. Specifies which group(s) are allowed by this policy. example: '{"groups":[{"name":"group1","extendChildren":true},{"name":"group2"}]}' items: description: GroupDefinition represents a group in a GroupPolicyData. properties: extendChildren: description: ExtendChildren is a flag that specifies whether to extend children. type: boolean name: description: Name is a group name. example: group1 type: string required: - name type: object type: array groupsClaim: description: |- GroupsClaim is a group claim. If defined, the policy will fetch user's groups from the given claim within an access token or ID token representing the identity asking permissions. If not defined, user's groups are obtained from your realm configuration. type: string type: object logic: default: POSITIVE description: Logic is a policy logic. enum: - POSITIVE - NEGATIVE type: string name: description: Name is a policy name. type: string rolePolicy: description: RolePolicy is a role policy settings. properties: roles: description: Roles is a list of role. example: roles: - name: role1 required: true - name: role2 items: description: RoleDefinition represents a role in a RolePolicyData. properties: name: description: Name is a role name. example: role1 type: string required: description: Required is a flag that specifies whether the role is required. type: boolean required: - name type: object type: array required: - roles type: object timePolicy: description: ScopePolicy is a scope policy settings. properties: dayMonth: description: |- Day defines the month which the policy MUST be granted. You can also provide a range by filling the dayMonthEnd field. In this case, permission is granted only if current month is between or equal to the two values you provided. example: "1" type: string dayMonthEnd: example: "2" type: string hour: description: |- Hour defines the hour when the policy MUST be granted. You can also provide a range by filling the hourEnd. In this case, permission is granted only if current hour is between or equal to the two values you provided. example: "1" type: string hourEnd: example: "2" type: string minute: description: |- Minute defines the minute when the policy MUST be granted. You can also provide a range by filling the minuteEnd field. In this case, permission is granted only if current minute is between or equal to the two values you provided. example: "1" type: string minuteEnd: example: "2" type: string month: description: |- Month defines the month which the policy MUST be granted. You can also provide a range by filling the monthEnd. In this case, permission is granted only if current month is between or equal to the two values you provided. example: "1" type: string monthEnd: example: "2" type: string notBefore: description: |- NotBefore defines the time before which the policy MUST NOT be granted. Only granted if current date/time is after or equal to this value. example: "2024-03-03 00:00:00" type: string notOnOrAfter: description: |- NotOnOrAfter defines the time after which the policy MUST NOT be granted. Only granted if current date/time is before or equal to this value. example: "2024-04-04 00:00:00" type: string required: - notBefore - notOnOrAfter type: object type: description: Type is a policy type. enum: - aggregate - client - group - role - time - user type: string userPolicy: description: UserPolicy is a user policy settings. properties: users: description: Users is a list of usernames. Specifies which user(s) are allowed by this policy. example: - users1 - users2 items: type: string type: array required: - users type: object required: - name - type type: object type: array resources: items: properties: attributes: additionalProperties: items: type: string type: array description: Attributes is a map of resource attributes. nullable: true type: object displayName: description: DisplayName for Identity Providers. type: string iconUri: description: IconURI pointing to an icon. type: string name: description: Name is unique resource name. type: string ownerManagedAccess: description: OwnerManagedAccess if enabled, the access to this resource can be managed by the resource owner. type: boolean scopes: description: |- Scopes requested or assigned in advance to the client to determine whether the policy is applied to this client. Condition is evaluated during OpenID Connect authorization request and/or token request. items: type: string nullable: true type: array type: description: Type of this resource. It can be used to group different resource instances with the same type. type: string uris: description: URIs which are protected by resource. items: type: string nullable: true type: array required: - displayName - name type: object type: array scopes: items: type: string type: array type: object authorizationServicesEnabled: description: ServiceAccountsEnabled enable/disable fine-grained authorization support for a client. type: boolean bearerOnly: description: BearerOnly is a flag to enable bearer-only. type: boolean clientAuthenticatorType: default: client-secret description: ClientAuthenticatorType is a client authenticator type. type: string clientId: description: ClientId is a unique keycloak client ID referenced in URI and tokens. type: string clientRoles: description: ClientRoles is a list of client roles names assigned to client. items: type: string nullable: true type: array consentRequired: description: ConsentRequired is a flag to enable consent. type: boolean defaultClientScopes: description: DefaultClientScopes is a list of default client scopes assigned to client. items: type: string nullable: true type: array description: description: Description is a client description. type: string directAccess: description: DirectAccess is a flag to set client as direct access. type: boolean enabled: default: true description: Enabled is a flag to enable client. type: boolean frontChannelLogout: description: FrontChannelLogout is a flag to enable front channel logout. type: boolean fullScopeAllowed: default: true description: FullScopeAllowed is a flag to enable full scope. type: boolean homeUrl: description: HomeUrl is a client home url. type: string implicitFlowEnabled: description: ImplicitFlowEnabled is a flag to enable support for OpenID Connect redirect based authentication without authorization code. type: boolean name: description: Name is a client name. type: string optionalClientScopes: description: OptionalClientScopes is a list of optional client scopes assigned to client. items: type: string nullable: true type: array protocol: description: Protocol is a client protocol. nullable: true type: string protocolMappers: description: ProtocolMappers is a list of protocol mappers assigned to client. items: properties: config: additionalProperties: type: string description: Config is a map of protocol mapper configuration. nullable: true type: object name: description: Name is a protocol mapper name. type: string protocol: description: Protocol is a protocol name. type: string protocolMapper: description: ProtocolMapper is a protocol mapper name. type: string type: object nullable: true type: array public: description: Public is a flag to set client as public. type: boolean realmRef: description: RealmRef is reference to Realm custom resource. properties: kind: description: Kind specifies the kind of the Keycloak resource. enum: - KeycloakRealm - ClusterKeycloakRealm type: string name: description: Name specifies the name of the Keycloak resource. type: string type: object realmRoles: description: RealmRoles is a list of realm roles assigned to client. items: properties: composite: description: Composite is a realm composite role name. type: string name: description: Name is a realm role name. type: string required: - composite type: object nullable: true type: array reconciliationStrategy: description: ReconciliationStrategy is a strategy to reconcile client. enum: - full - addOnly type: string redirectUris: description: |- RedirectUris is a list of valid URI pattern a browser can redirect to after a successful login. Simple wildcards are allowed such as 'https://example.com/*'. Relative path can be specified too, such as /my/relative/path/*. Relative paths are relative to the client root URL. If not specified, spec.webUrl + "/*" will be used. example: - https://example.com/* - /my/relative/path/* items: type: string nullable: true type: array secret: description: |- Secret is kubernetes secret name where the client's secret will be stored. Secret should have the following format: $secretName:secretKey. If not specified, a client secret will be generated and stored in a secret with the name keycloak-client-{metadata.name}-secret. If keycloak client is public, secret property will be ignored. example: $keycloak-secret:client_secret type: string serviceAccount: description: ServiceAccount is a service account configuration. nullable: true properties: attributes: additionalProperties: type: string description: Attributes is a map of service account attributes. nullable: true type: object clientRoles: description: ClientRoles is a list of client roles assigned to service account. items: properties: clientId: description: ClientID is a client ID. type: string roles: description: Roles is a list of client roles names assigned to service account. items: type: string nullable: true type: array required: - clientId type: object nullable: true type: array enabled: description: Enabled is a flag to enable service account. type: boolean realmRoles: description: RealmRoles is a list of realm roles assigned to service account. items: type: string nullable: true type: array type: object standardFlowEnabled: default: true description: StandardFlowEnabled is a flag to enable standard flow. type: boolean surrogateAuthRequired: description: SurrogateAuthRequired is a flag to enable surrogate auth. type: boolean targetRealm: description: |- Deprecated: use RealmRef instead. TargetRealm is a realm name where client will be created. It has higher priority than RealmRef for backward compatibility. If both TargetRealm and RealmRef are specified, TargetRealm will be used for client creation. type: string webOrigins: description: |- WebOrigins is a list of allowed CORS origins. To permit all origins of Valid Redirect URIs, add '+'. This does not include the '*' wildcard though. To permit all origins, explicitly add '*'. If not specified, the value from `WebUrl` is used example: - https://example.com/* items: type: string nullable: true type: array webUrl: description: WebUrl is a client web url. type: string required: - clientId type: object status: description: KeycloakClientStatus defines the observed state of KeycloakClient. properties: clientId: type: string failureCount: format: int64 type: integer value: type: string type: object type: object served: true storage: true subresources: status: {}