Missing discriminators in OpenAPI spec 5.1.0

Hi, I tried to generate a custom Okta Management API client from OpenAPI specification version 5.1.0 using Microsoft Kiota. These are some of the errors I got:

  • The schema AppUserUpdateRequest is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema UserFactorActivateRequest is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema GroupProfile is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema OAuth2ClientJsonSigningKeyRequest is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema DeviceIntegrationsMetadata is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema UserFactorTokenVerify is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema UserFactorVerifyRequest is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema OAuth2ClientJsonSigningKeyResponse is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema /oauth2/v1/clients/{clientId}/roles is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema /oauth2/v1/clients/{clientId}/roles/{roleAssignmentId} is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema /api/v1/groups/{groupId}/roles is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema /api/v1/users/{userId}/roles is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema /oauth2/v1/clients/{clientId}/roles is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema /api/v1/groups/{groupId}/roles/{roleAssignmentId} is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema /api/v1/users/{userId}/roles/{roleAssignmentId} is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema /api/v1/inlineHooks/{inlineHookId}/execute is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema /api/v1/apps/{appId}/credentials/jwks/{keyId} is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema /api/v1/apps/{appId}/credentials/jwks is a polymorphic type but does not define a discriminator. This will result in serialization errors.
  • The schema /api/v1/apps/{appId}/credentials/jwks/{keyId}/lifecycle/activate is a polymorphic type but does not define a discriminator. This will result in serialization errors.

This might be the reason why even the official SDKs generated from the OpenAPI specification, e.g., Okta .NET SDK v10, fail when trying to retrieve groups or app role assignments.

Additionally, many properties used as discriminators are not marked as required in the OpenAPI specification:

  • #/components/schemas/AppConfig/discriminator - Schema must contain property specified in the discriminator type in the required field list.
  • #/components/schemas/ApplicationFeature/discriminator - Schema must contain property specified in the discriminator name in the required field list.
  • #/components/schemas/AuthenticatorBase/discriminator - Schema must contain property specified in the discriminator key in the required field list.
  • #/components/schemas/AuthenticatorMethodBase/discriminator - Schema must contain property specified in the discriminator type in the required field list.
  • #/components/schemas/DeviceAssurance/discriminator - Schema must contain property specified in the discriminator platform in the required field list.
  • #/components/schemas/EnrollmentPolicyAuthenticatorGracePeriod/discriminator - Schema must contain property specified in the discriminator type in the required field list.
  • #/components/schemas/EntityRiskPolicyRuleActionsObject/discriminator - Schema must contain property specified in the discriminator action in the required field list.
  • #/components/schemas/InlineHookChannel/discriminator - Schema must contain property specified in the discriminator type in the required field list.
  • #/components/schemas/InlineHookChannelCreate/discriminator - Schema must contain property specified in the discriminator type in the required field list.
  • #/components/schemas/InlineHookOAuthChannelConfig/discriminator - Schema must contain property specified in the discriminator authType in the required field list.
  • #/components/schemas/InlineHookOAuthChannelConfigCreate/discriminator - Schema must contain property specified in the discriminator authType in the required field list.
  • #/components/schemas/OrgContactTypeObj/discriminator - Schema must contain property specified in the discriminator contactType in the required field list.
  • #/components/schemas/PolicyRule/discriminator - Schema must contain property specified in the discriminator type in the required field list.
  • #/components/schemas/PostAuthSessionFailureActionsObject/discriminator - Schema must contain property specified in the discriminator action in the required field list.
  • #/components/schemas/PushProvider/discriminator - Schema must contain property specified in the discriminator providerType in the required field list.
  • #/components/schemas/RegistrationInlineHookRequest/discriminator - Schema must contain property specified in the discriminator requestType in the required field list.
  • #/components/schemas/ResendUserFactor/discriminator - Schema must contain property specified in the discriminator factorType in the required field list.
  • #/components/schemas/SamlAttributeStatement/discriminator - Schema must contain property specified in the discriminator type in the required field list.
  • #/components/schemas/UserFactor/discriminator - Schema must contain property specified in the discriminator factorType in the required field list.
  • #/components/schemas/UserFactorActivateResponse/discriminator - Schema must contain property specified in the discriminator factorType in the required field list.
  • #/components/schemas/UserFactorPushTransaction/discriminator - Schema must contain property specified in the discriminator factorResult in the required field list.
  • #/components/schemas/UserFactorPushTransactionSuccess/discriminator - Schema UserFactorPushTransaction must contain property specified in the discriminator factorResult in the required field list.
  • #/components/schemas/UserRiskGetResponse/discriminator - Schema must contain property specified in the discriminator riskLevel in the required field list.
  • #/components/schemas/VerificationMethod/discriminator - Schema must contain property specified in the discriminator type in the required field list.

Could someone from Okta please look into it?