@@ -185,29 +185,44 @@ type AccessGroupDevicePostureRule struct {
185185
186186// AccessGroupGSuiteRule matches Google Workspace users.
187187type AccessGroupGSuiteRule struct {
188- Email string `json:"email"`
189- IdentityProviderID string `json:"identityProviderId"`
188+ Email string `json:"email"`
189+
190+ // IdpRef references an AccessIdentityProvider with flexible reference modes.
191+ // Can reference by K8s name, Cloudflare UUID, or Cloudflare display name.
192+ // +kubebuilder:validation:Optional
193+ IdpRef * AccessIdentityProviderRefV2 `json:"idpRef,omitempty"`
190194}
191195
192196// AccessGroupGitHubRule matches GitHub users.
193197type AccessGroupGitHubRule struct {
194- Name string `json:"name"`
195- IdentityProviderID string `json:"identityProviderId"`
196- Teams []string `json:"teams,omitempty"`
198+ Name string `json:"name"`
199+ Teams []string `json:"teams,omitempty"`
200+
201+ // IdpRef references an AccessIdentityProvider with flexible reference modes.
202+ // Can reference by K8s name, Cloudflare UUID, or Cloudflare display name.
203+ // +kubebuilder:validation:Optional
204+ IdpRef * AccessIdentityProviderRefV2 `json:"idpRef,omitempty"`
197205}
198206
199207// AccessGroupAzureRule matches Azure AD users.
200208type AccessGroupAzureRule struct {
201- ID string `json:"id"`
202- IdentityProviderID string `json:"identityProviderId"`
209+ ID string `json:"id"`
210+
211+ // IdpRef references an AccessIdentityProvider with flexible reference modes.
212+ // Can reference by K8s name, Cloudflare UUID, or Cloudflare display name.
213+ // +kubebuilder:validation:Optional
214+ IdpRef * AccessIdentityProviderRefV2 `json:"idpRef,omitempty"`
203215}
204216
205217// AccessGroupOktaRule matches Okta groups.
206218type AccessGroupOktaRule struct {
207219 // Name is the Okta group name.
208220 Name string `json:"name"`
209- // IdentityProviderID is the Cloudflare ID of the Okta identity provider.
210- IdentityProviderID string `json:"identityProviderId"`
221+
222+ // IdpRef references an AccessIdentityProvider with flexible reference modes.
223+ // Can reference by K8s name, Cloudflare UUID, or Cloudflare display name.
224+ // +kubebuilder:validation:Optional
225+ IdpRef * AccessIdentityProviderRefV2 `json:"idpRef,omitempty"`
211226}
212227
213228// AccessGroupAuthMethodRule enforces MFA options.
@@ -222,28 +237,41 @@ type AccessGroupAuthContextRule struct {
222237 ID string `json:"id"`
223238 // AcID is the Azure AD Conditional Access Policy ID.
224239 AcID string `json:"acId"`
225- // IdentityProviderID is the Cloudflare ID of the Azure identity provider.
226- IdentityProviderID string `json:"identityProviderId"`
240+
241+ // IdpRef references an AccessIdentityProvider with flexible reference modes.
242+ // Can reference by K8s name, Cloudflare UUID, or Cloudflare display name.
243+ // +kubebuilder:validation:Optional
244+ IdpRef * AccessIdentityProviderRefV2 `json:"idpRef,omitempty"`
227245}
228246
229247// AccessGroupLoginMethodRule matches a specific identity provider.
230248type AccessGroupLoginMethodRule struct {
231- // ID is the Cloudflare ID of the identity provider.
232- ID string `json:"id"`
249+ // IdpRef references an AccessIdentityProvider with flexible reference modes.
250+ // Can reference by K8s name, Cloudflare UUID, or Cloudflare display name.
251+ // +kubebuilder:validation:Optional
252+ IdpRef * AccessIdentityProviderRefV2 `json:"idpRef,omitempty"`
233253}
234254
235255// AccessGroupOIDCRule matches OIDC claims.
236256type AccessGroupOIDCRule struct {
237- ClaimName string `json:"claimName"`
238- ClaimValue string `json:"claimValue"`
239- IdentityProviderID string `json:"identityProviderId"`
257+ ClaimName string `json:"claimName"`
258+ ClaimValue string `json:"claimValue"`
259+
260+ // IdpRef references an AccessIdentityProvider with flexible reference modes.
261+ // Can reference by K8s name, Cloudflare UUID, or Cloudflare display name.
262+ // +kubebuilder:validation:Optional
263+ IdpRef * AccessIdentityProviderRefV2 `json:"idpRef,omitempty"`
240264}
241265
242266// AccessGroupSAMLRule matches SAML attributes.
243267type AccessGroupSAMLRule struct {
244- AttributeName string `json:"attributeName"`
245- AttributeValue string `json:"attributeValue"`
246- IdentityProviderID string `json:"identityProviderId"`
268+ AttributeName string `json:"attributeName"`
269+ AttributeValue string `json:"attributeValue"`
270+
271+ // IdpRef references an AccessIdentityProvider with flexible reference modes.
272+ // Can reference by K8s name, Cloudflare UUID, or Cloudflare display name.
273+ // +kubebuilder:validation:Optional
274+ IdpRef * AccessIdentityProviderRefV2 `json:"idpRef,omitempty"`
247275}
248276
249277// AccessGroupExternalEvaluationRule calls external endpoint.
0 commit comments