From 4d4644795f19f339145e6869594712572ac9b425 Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Wed, 19 Mar 2025 14:49:44 -0600 Subject: [PATCH 01/18] CDI-412: Add Copyright Headers to Golang Files --- cmd/auth/auth.go | 2 ++ cmd/auth/auth_test.go | 2 ++ cmd/auth/login.go | 2 ++ cmd/auth/logout.go | 2 ++ cmd/common/cobra_utils.go | 2 ++ cmd/common/cobra_utils_test.go | 2 ++ cmd/completion/cmd.go | 2 ++ cmd/completion/cmd_test.go | 2 ++ cmd/config/add_profile.go | 2 ++ cmd/config/add_profile_test.go | 2 ++ cmd/config/config.go | 2 ++ cmd/config/config_test.go | 2 ++ cmd/config/delete_profile.go | 2 ++ cmd/config/delete_profile_test.go | 2 ++ cmd/config/get.go | 2 ++ cmd/config/get_test.go | 2 ++ cmd/config/list_keys.go | 2 ++ cmd/config/list_keys_test.go | 2 ++ cmd/config/list_profiles.go | 2 ++ cmd/config/list_profiles_test.go | 2 ++ cmd/config/set.go | 2 ++ cmd/config/set_active_profile.go | 2 ++ cmd/config/set_active_profile_test.go | 2 ++ cmd/config/set_test.go | 2 ++ cmd/config/unset.go | 2 ++ cmd/config/unset_test.go | 2 ++ cmd/config/view_profile.go | 2 ++ cmd/config/view_profile_test.go | 2 ++ cmd/feedback/feedback.go | 2 ++ cmd/feedback/feedback_test.go | 2 ++ cmd/platform/export.go | 2 ++ cmd/platform/export_test.go | 2 ++ cmd/platform/platform.go | 2 ++ cmd/platform/platform_test.go | 2 ++ cmd/request/request.go | 2 ++ cmd/request/request_test.go | 2 ++ cmd/root.go | 2 ++ cmd/root_test.go | 2 ++ internal/autocompletion/config_args.go | 2 ++ internal/autocompletion/export_flags.go | 2 ++ internal/autocompletion/request_flags.go | 2 ++ internal/autocompletion/root_flags.go | 2 ++ internal/commands/config/add_profile_internal.go | 2 ++ internal/commands/config/add_profile_internal_test.go | 2 ++ internal/commands/config/delete_profile_internal.go | 2 ++ internal/commands/config/delete_profile_internal_test.go | 2 ++ internal/commands/config/get_internal.go | 2 ++ internal/commands/config/get_internal_test.go | 2 ++ internal/commands/config/list_keys_internal.go | 2 ++ internal/commands/config/list_keys_internal_test.go | 2 ++ internal/commands/config/list_profiles_internal.go | 2 ++ internal/commands/config/list_profiles_internal_test.go | 2 ++ internal/commands/config/set_active_profile_internal.go | 2 ++ internal/commands/config/set_active_profile_internal_test.go | 2 ++ internal/commands/config/set_internal.go | 2 ++ internal/commands/config/set_internal_test.go | 2 ++ internal/commands/config/unset_internal.go | 2 ++ internal/commands/config/unset_internal_test.go | 2 ++ internal/commands/config/view_profile_internal.go | 2 ++ internal/commands/config/view_profile_internal_test.go | 2 ++ internal/commands/feedback/feedback_internal.go | 2 ++ internal/commands/platform/export_internal.go | 2 ++ internal/commands/platform/export_internal_test.go | 2 ++ internal/commands/request/request_internal.go | 2 ++ internal/commands/request/request_internal_test.go | 2 ++ internal/configuration/config/add_profile.go | 2 ++ internal/configuration/config/delete_profile.go | 2 ++ internal/configuration/config/list_keys_yaml.go | 2 ++ internal/configuration/configuration.go | 2 ++ internal/configuration/configuration_test.go | 2 ++ internal/configuration/options/options.go | 2 ++ internal/configuration/options/options_test.go | 2 ++ internal/configuration/platform/export.go | 2 ++ internal/configuration/profiles/profiles.go | 2 ++ internal/configuration/request/request.go | 2 ++ internal/configuration/root/root.go | 2 ++ internal/configuration/services/pingfederate.go | 2 ++ internal/configuration/services/pingone.go | 2 ++ internal/connector/authenticatable.go | 2 ++ internal/connector/common/common_utils.go | 2 ++ internal/connector/common/resources_common.go | 2 ++ internal/connector/exportable.go | 2 ++ internal/connector/exportable_resource.go | 2 ++ internal/connector/exportable_resource_test.go | 2 ++ internal/connector/pingfederate/pingfederate_connector.go | 2 ++ internal/connector/pingfederate/pingfederate_connector_test.go | 2 ++ .../pingfederate/resources/authentication_api_application.go | 2 ++ .../resources/authentication_api_application_test.go | 2 ++ .../pingfederate/resources/authentication_api_settings.go | 2 ++ .../pingfederate/resources/authentication_api_settings_test.go | 2 ++ .../connector/pingfederate/resources/authentication_policies.go | 2 ++ .../pingfederate/resources/authentication_policies_fragment.go | 2 ++ .../resources/authentication_policies_fragment_test.go | 2 ++ .../pingfederate/resources/authentication_policies_settings.go | 2 ++ .../resources/authentication_policies_settings_test.go | 2 ++ .../pingfederate/resources/authentication_policies_test.go | 2 ++ .../pingfederate/resources/authentication_policy_contract.go | 2 ++ .../resources/authentication_policy_contract_test.go | 2 ++ .../connector/pingfederate/resources/authentication_selector.go | 2 ++ .../pingfederate/resources/authentication_selector_test.go | 2 ++ internal/connector/pingfederate/resources/captcha_provider.go | 2 ++ .../pingfederate/resources/captcha_provider_settings.go | 2 ++ .../pingfederate/resources/captcha_provider_settings_test.go | 2 ++ .../connector/pingfederate/resources/captcha_provider_test.go | 2 ++ internal/connector/pingfederate/resources/certificate_ca.go | 2 ++ .../connector/pingfederate/resources/certificate_ca_test.go | 2 ++ .../resources/certificates_revocation_ocsp_certificate.go | 2 ++ .../resources/certificates_revocation_ocsp_certificate_test.go | 2 ++ .../pingfederate/resources/certificates_revocation_settings.go | 2 ++ .../resources/certificates_revocation_settings_test.go | 2 ++ internal/connector/pingfederate/resources/cluster_settings.go | 2 ++ .../connector/pingfederate/resources/cluster_settings_test.go | 2 ++ .../resources/configuration_encryption_keys_rotate.go | 2 ++ .../resources/configuration_encryption_keys_rotate_test.go | 2 ++ internal/connector/pingfederate/resources/data_store.go | 2 ++ internal/connector/pingfederate/resources/data_store_test.go | 2 ++ internal/connector/pingfederate/resources/default_urls.go | 2 ++ internal/connector/pingfederate/resources/default_urls_test.go | 2 ++ .../connector/pingfederate/resources/extended_properties.go | 2 ++ .../pingfederate/resources/extended_properties_test.go | 2 ++ .../pingfederate/resources/identity_store_provisioner.go | 2 ++ .../pingfederate/resources/identity_store_provisioner_test.go | 2 ++ internal/connector/pingfederate/resources/idp_adapter.go | 2 ++ internal/connector/pingfederate/resources/idp_adapter_test.go | 2 ++ internal/connector/pingfederate/resources/idp_sp_connection.go | 2 ++ .../connector/pingfederate/resources/idp_sp_connection_test.go | 2 ++ .../resources/idp_sts_request_parameters_contract.go | 2 ++ .../resources/idp_sts_request_parameters_contract_test.go | 2 ++ .../pingfederate/resources/idp_to_sp_adapter_mapping.go | 2 ++ .../pingfederate/resources/idp_to_sp_adapter_mapping_test.go | 2 ++ .../connector/pingfederate/resources/idp_token_processor.go | 2 ++ .../pingfederate/resources/idp_token_processor_test.go | 2 ++ .../connector/pingfederate/resources/incoming_proxy_settings.go | 2 ++ .../pingfederate/resources/incoming_proxy_settings_test.go | 2 ++ internal/connector/pingfederate/resources/kerberos_realm.go | 2 ++ .../connector/pingfederate/resources/kerberos_realm_settings.go | 2 ++ .../pingfederate/resources/kerberos_realm_settings_test.go | 2 ++ .../connector/pingfederate/resources/kerberos_realm_test.go | 2 ++ .../pingfederate/resources/keypairs_oauth_openid_connect.go | 2 ++ .../keypairs_oauth_openid_connect_additional_key_set.go | 2 ++ .../keypairs_oauth_openid_connect_additional_key_set_test.go | 2 ++ .../resources/keypairs_oauth_openid_connect_test.go | 2 ++ .../resources/keypairs_signing_key_rotation_settings.go | 2 ++ .../resources/keypairs_signing_key_rotation_settings_test.go | 2 ++ .../pingfederate/resources/keypairs_ssl_server_settings.go | 2 ++ .../pingfederate/resources/keypairs_ssl_server_settings_test.go | 2 ++ .../connector/pingfederate/resources/local_identity_profile.go | 2 ++ .../pingfederate/resources/local_identity_profile_test.go | 2 ++ internal/connector/pingfederate/resources/metadata_url.go | 2 ++ internal/connector/pingfederate/resources/metadata_url_test.go | 2 ++ .../connector/pingfederate/resources/notification_publisher.go | 2 ++ .../pingfederate/resources/notification_publisher_settings.go | 2 ++ .../resources/notification_publisher_settings_test.go | 2 ++ .../pingfederate/resources/notification_publisher_test.go | 2 ++ .../pingfederate/resources/oauth_access_token_manager.go | 2 ++ .../resources/oauth_access_token_manager_settings.go | 2 ++ .../resources/oauth_access_token_manager_settings_test.go | 2 ++ .../pingfederate/resources/oauth_access_token_manager_test.go | 2 ++ .../pingfederate/resources/oauth_access_token_mapping.go | 2 ++ .../pingfederate/resources/oauth_access_token_mapping_test.go | 2 ++ .../resources/oauth_authentication_policy_contract_mapping.go | 2 ++ .../oauth_authentication_policy_contract_mapping_test.go | 2 ++ .../resources/oauth_ciba_server_policy_request_policy.go | 2 ++ .../resources/oauth_ciba_server_policy_request_policy_test.go | 2 ++ .../pingfederate/resources/oauth_ciba_server_policy_settings.go | 2 ++ .../resources/oauth_ciba_server_policy_settings_test.go | 2 ++ internal/connector/pingfederate/resources/oauth_client.go | 2 ++ .../pingfederate/resources/oauth_client_registration_policy.go | 2 ++ .../resources/oauth_client_registration_policy_test.go | 2 ++ .../connector/pingfederate/resources/oauth_client_settings.go | 2 ++ .../pingfederate/resources/oauth_client_settings_test.go | 2 ++ internal/connector/pingfederate/resources/oauth_client_test.go | 2 ++ .../pingfederate/resources/oauth_idp_adapter_mapping.go | 2 ++ .../pingfederate/resources/oauth_idp_adapter_mapping_test.go | 2 ++ internal/connector/pingfederate/resources/oauth_issuer.go | 2 ++ internal/connector/pingfederate/resources/oauth_issuer_test.go | 2 ++ .../connector/pingfederate/resources/oauth_server_settings.go | 2 ++ .../pingfederate/resources/oauth_server_settings_test.go | 2 ++ .../resources/oauth_token_exchange_generator_settings.go | 2 ++ .../resources/oauth_token_exchange_generator_settings_test.go | 2 ++ .../resources/oauth_token_exchange_token_generator_mapping.go | 2 ++ .../oauth_token_exchange_token_generator_mapping_test.go | 2 ++ .../connector/pingfederate/resources/openid_connect_policy.go | 2 ++ .../pingfederate/resources/openid_connect_policy_test.go | 2 ++ .../connector/pingfederate/resources/openid_connect_settings.go | 2 ++ .../pingfederate/resources/openid_connect_settings_test.go | 2 ++ .../pingfederate/resources/password_credential_validator.go | 2 ++ .../resources/password_credential_validator_test.go | 2 ++ internal/connector/pingfederate/resources/pingone_connection.go | 2 ++ .../connector/pingfederate/resources/pingone_connection_test.go | 2 ++ .../resources/protocol_metadata_lifetime_settings.go | 2 ++ .../resources/protocol_metadata_lifetime_settings_test.go | 2 ++ .../resources/protocol_metadata_signing_settings.go | 2 ++ .../resources/protocol_metadata_signing_settings_test.go | 2 ++ .../connector/pingfederate/resources/redirect_validation.go | 2 ++ .../pingfederate/resources/redirect_validation_test.go | 2 ++ internal/connector/pingfederate/resources/secret_manager.go | 2 ++ .../connector/pingfederate/resources/secret_manager_test.go | 2 ++ internal/connector/pingfederate/resources/server_settings.go | 2 ++ .../connector/pingfederate/resources/server_settings_general.go | 2 ++ .../pingfederate/resources/server_settings_general_test.go | 2 ++ .../connector/pingfederate/resources/server_settings_logging.go | 2 ++ .../pingfederate/resources/server_settings_logging_test.go | 2 ++ .../resources/server_settings_system_keys_rotate.go | 2 ++ .../resources/server_settings_system_keys_rotate_test.go | 2 ++ .../connector/pingfederate/resources/server_settings_test.go | 2 ++ .../resources/server_settings_ws_trust_sts_settings.go | 2 ++ .../server_settings_ws_trust_sts_settings_issuer_certificate.go | 2 ++ ...er_settings_ws_trust_sts_settings_issuer_certificate_test.go | 2 ++ .../resources/server_settings_ws_trust_sts_settings_test.go | 2 ++ .../connector/pingfederate/resources/service_authentication.go | 2 ++ .../pingfederate/resources/service_authentication_test.go | 2 ++ .../pingfederate/resources/session_application_policy.go | 2 ++ .../pingfederate/resources/session_application_policy_test.go | 2 ++ .../resources/session_authentication_policies_global.go | 2 ++ .../resources/session_authentication_policies_global_test.go | 2 ++ .../pingfederate/resources/session_authentication_policy.go | 2 ++ .../resources/session_authentication_policy_test.go | 2 ++ internal/connector/pingfederate/resources/session_settings.go | 2 ++ .../connector/pingfederate/resources/session_settings_test.go | 2 ++ internal/connector/pingfederate/resources/sp_adapter.go | 2 ++ internal/connector/pingfederate/resources/sp_adapter_test.go | 2 ++ .../resources/sp_authentication_policy_contract_mapping.go | 2 ++ .../resources/sp_authentication_policy_contract_mapping_test.go | 2 ++ internal/connector/pingfederate/resources/sp_idp_connection.go | 2 ++ .../connector/pingfederate/resources/sp_idp_connection_test.go | 2 ++ .../connector/pingfederate/resources/sp_target_url_mappings.go | 2 ++ .../pingfederate/resources/sp_target_url_mappings_test.go | 2 ++ .../resources/token_processor_to_token_generator_mapping.go | 2 ++ .../token_processor_to_token_generator_mapping_test.go | 2 ++ internal/connector/pingfederate/resources/virtual_host_names.go | 2 ++ .../connector/pingfederate/resources/virtual_host_names_test.go | 2 ++ .../connector/pingone/authorize/pingone_authorize_connector.go | 2 ++ .../pingone/authorize/pingone_authorize_connector_test.go | 2 ++ .../pingone/authorize/resources/pingone_application_resource.go | 2 ++ .../resources/pingone_application_resource_permission.go | 2 ++ .../resources/pingone_application_resource_permission_test.go | 2 ++ .../authorize/resources/pingone_application_resource_test.go | 2 ++ .../authorize/resources/pingone_authorize_api_service.go | 2 ++ .../resources/pingone_authorize_api_service_deployment.go | 2 ++ .../resources/pingone_authorize_api_service_deployment_test.go | 2 ++ .../resources/pingone_authorize_api_service_operation.go | 2 ++ .../resources/pingone_authorize_api_service_operation_test.go | 2 ++ .../authorize/resources/pingone_authorize_api_service_test.go | 2 ++ .../authorize/resources/pingone_authorize_application_role.go | 2 ++ .../resources/pingone_authorize_application_role_permission.go | 2 ++ .../pingone_authorize_application_role_permission_test.go | 2 ++ .../resources/pingone_authorize_application_role_test.go | 2 ++ .../authorize/resources/pingone_authorize_decision_endpoint.go | 2 ++ .../resources/pingone_authorize_decision_endpoint_test.go | 2 ++ internal/connector/pingone/common.go | 2 ++ internal/connector/pingone/mfa/pingone_mfa_connector.go | 2 ++ internal/connector/pingone/mfa/pingone_mfa_connector_test.go | 2 ++ .../mfa/resources/pingone_mfa_application_push_credential.go | 2 ++ .../resources/pingone_mfa_application_push_credential_test.go | 2 ++ .../pingone/mfa/resources/pingone_mfa_device_policy.go | 2 ++ .../pingone/mfa/resources/pingone_mfa_device_policy_test.go | 2 ++ .../connector/pingone/mfa/resources/pingone_mfa_fido2_policy.go | 2 ++ .../pingone/mfa/resources/pingone_mfa_fido2_policy_test.go | 2 ++ .../connector/pingone/mfa/resources/pingone_mfa_settings.go | 2 ++ .../pingone/mfa/resources/pingone_mfa_settings_test.go | 2 ++ .../connector/pingone/platform/pingone_platform_connector.go | 2 ++ .../pingone/platform/pingone_platform_connector_test.go | 2 ++ .../connector/pingone/platform/resources/pingone_agreement.go | 2 ++ .../pingone/platform/resources/pingone_agreement_enable.go | 2 ++ .../pingone/platform/resources/pingone_agreement_enable_test.go | 2 ++ .../platform/resources/pingone_agreement_localization.go | 2 ++ .../platform/resources/pingone_agreement_localization_enable.go | 2 ++ .../resources/pingone_agreement_localization_enable_test.go | 2 ++ .../resources/pingone_agreement_localization_revision.go | 2 ++ .../resources/pingone_agreement_localization_revision_test.go | 2 ++ .../platform/resources/pingone_agreement_localization_test.go | 2 ++ .../pingone/platform/resources/pingone_agreement_test.go | 2 ++ .../pingone/platform/resources/pingone_alert_channel.go | 2 ++ .../pingone/platform/resources/pingone_alert_channel_test.go | 2 ++ .../pingone/platform/resources/pingone_branding_settings.go | 2 ++ .../platform/resources/pingone_branding_settings_test.go | 2 ++ .../pingone/platform/resources/pingone_branding_theme.go | 2 ++ .../platform/resources/pingone_branding_theme_default.go | 2 ++ .../platform/resources/pingone_branding_theme_default_test.go | 2 ++ .../pingone/platform/resources/pingone_branding_theme_test.go | 2 ++ .../connector/pingone/platform/resources/pingone_certificate.go | 2 ++ .../pingone/platform/resources/pingone_certificate_test.go | 2 ++ .../pingone/platform/resources/pingone_custom_domain.go | 2 ++ .../pingone/platform/resources/pingone_custom_domain_test.go | 2 ++ .../connector/pingone/platform/resources/pingone_environment.go | 2 ++ .../pingone/platform/resources/pingone_environment_test.go | 2 ++ internal/connector/pingone/platform/resources/pingone_form.go | 2 ++ .../connector/pingone/platform/resources/pingone_form_test.go | 2 ++ .../pingone/platform/resources/pingone_forms_recaptcha_v2.go | 2 ++ .../platform/resources/pingone_forms_recaptcha_v2_test.go | 2 ++ .../connector/pingone/platform/resources/pingone_gateway.go | 2 ++ .../pingone/platform/resources/pingone_gateway_credential.go | 2 ++ .../platform/resources/pingone_gateway_credential_test.go | 2 ++ .../platform/resources/pingone_gateway_role_assignment.go | 2 ++ .../platform/resources/pingone_gateway_role_assignment_test.go | 2 ++ .../pingone/platform/resources/pingone_gateway_test.go | 2 ++ .../platform/resources/pingone_identity_propagation_plan.go | 2 ++ .../resources/pingone_identity_propagation_plan_test.go | 2 ++ internal/connector/pingone/platform/resources/pingone_key.go | 2 ++ .../pingone/platform/resources/pingone_key_rotation_policy.go | 2 ++ .../platform/resources/pingone_key_rotation_policy_test.go | 2 ++ .../connector/pingone/platform/resources/pingone_key_test.go | 2 ++ .../connector/pingone/platform/resources/pingone_language.go | 2 ++ .../pingone/platform/resources/pingone_language_test.go | 2 ++ .../pingone/platform/resources/pingone_language_update.go | 2 ++ .../pingone/platform/resources/pingone_language_update_test.go | 2 ++ .../pingone/platform/resources/pingone_notification_policy.go | 2 ++ .../platform/resources/pingone_notification_policy_test.go | 2 ++ .../pingone/platform/resources/pingone_notification_settings.go | 2 ++ .../platform/resources/pingone_notification_settings_email.go | 2 ++ .../resources/pingone_notification_settings_email_test.go | 2 ++ .../platform/resources/pingone_notification_settings_test.go | 2 ++ .../platform/resources/pingone_notification_template_content.go | 2 ++ .../resources/pingone_notification_template_content_test.go | 2 ++ .../platform/resources/pingone_phone_delivery_settings.go | 2 ++ .../platform/resources/pingone_phone_delivery_settings_test.go | 2 ++ .../pingone/platform/resources/pingone_system_application.go | 2 ++ .../platform/resources/pingone_system_application_test.go | 2 ++ .../pingone/platform/resources/pingone_trusted_email_address.go | 2 ++ .../platform/resources/pingone_trusted_email_address_test.go | 2 ++ .../pingone/platform/resources/pingone_trusted_email_domain.go | 2 ++ .../platform/resources/pingone_trusted_email_domain_test.go | 2 ++ .../connector/pingone/platform/resources/pingone_webhook.go | 2 ++ .../pingone/platform/resources/pingone_webhook_test.go | 2 ++ internal/connector/pingone/protect/pingone_protect_connector.go | 2 ++ .../connector/pingone/protect/pingone_protect_connector_test.go | 2 ++ .../connector/pingone/protect/resources/pingone_risk_policy.go | 2 ++ .../pingone/protect/resources/pingone_risk_policy_test.go | 2 ++ .../pingone/protect/resources/pingone_risk_predictor.go | 2 ++ .../pingone/protect/resources/pingone_risk_predictor_test.go | 2 ++ internal/connector/pingone/sso/pingone_sso_connector.go | 2 ++ internal/connector/pingone/sso/pingone_sso_connector_test.go | 2 ++ internal/connector/pingone/sso/resources/pingone_application.go | 2 ++ .../sso/resources/pingone_application_attribute_mapping.go | 2 ++ .../sso/resources/pingone_application_attribute_mapping_test.go | 2 ++ .../sso/resources/pingone_application_flow_policy_assignment.go | 2 ++ .../pingone_application_flow_policy_assignment_test.go | 2 ++ .../pingone/sso/resources/pingone_application_resource_grant.go | 2 ++ .../sso/resources/pingone_application_resource_grant_test.go | 2 ++ .../sso/resources/pingone_application_role_assignment.go | 2 ++ .../sso/resources/pingone_application_role_assignment_test.go | 2 ++ .../pingone/sso/resources/pingone_application_secret.go | 2 ++ .../pingone/sso/resources/pingone_application_secret_test.go | 2 ++ .../resources/pingone_application_sign_on_policy_assignment.go | 2 ++ .../pingone_application_sign_on_policy_assignment_test.go | 2 ++ .../connector/pingone/sso/resources/pingone_application_test.go | 2 ++ internal/connector/pingone/sso/resources/pingone_group.go | 2 ++ .../connector/pingone/sso/resources/pingone_group_nesting.go | 2 ++ .../pingone/sso/resources/pingone_group_nesting_test.go | 2 ++ .../pingone/sso/resources/pingone_group_role_assignment.go | 2 ++ .../pingone/sso/resources/pingone_group_role_assignment_test.go | 2 ++ internal/connector/pingone/sso/resources/pingone_group_test.go | 2 ++ .../pingone/sso/resources/pingone_identity_provider.go | 2 ++ .../sso/resources/pingone_identity_provider_attribute.go | 2 ++ .../sso/resources/pingone_identity_provider_attribute_test.go | 2 ++ .../pingone/sso/resources/pingone_identity_provider_test.go | 2 ++ .../connector/pingone/sso/resources/pingone_password_policy.go | 2 ++ .../pingone/sso/resources/pingone_password_policy_test.go | 2 ++ internal/connector/pingone/sso/resources/pingone_population.go | 2 ++ .../pingone/sso/resources/pingone_population_default.go | 2 ++ .../resources/pingone_population_default_identity_provider.go | 2 ++ .../pingone_population_default_identity_provider_test.go | 2 ++ .../pingone/sso/resources/pingone_population_default_test.go | 2 ++ .../connector/pingone/sso/resources/pingone_population_test.go | 2 ++ internal/connector/pingone/sso/resources/pingone_resource.go | 2 ++ .../pingone/sso/resources/pingone_resource_attribute.go | 2 ++ .../pingone/sso/resources/pingone_resource_attribute_test.go | 2 ++ .../connector/pingone/sso/resources/pingone_resource_scope.go | 2 ++ .../pingone/sso/resources/pingone_resource_scope_openid.go | 2 ++ .../pingone/sso/resources/pingone_resource_scope_openid_test.go | 2 ++ .../pingone/sso/resources/pingone_resource_scope_pingone_api.go | 2 ++ .../sso/resources/pingone_resource_scope_pingone_api_test.go | 2 ++ .../pingone/sso/resources/pingone_resource_scope_test.go | 2 ++ .../connector/pingone/sso/resources/pingone_resource_secret.go | 2 ++ .../pingone/sso/resources/pingone_resource_secret_test.go | 2 ++ .../connector/pingone/sso/resources/pingone_resource_test.go | 2 ++ .../connector/pingone/sso/resources/pingone_schema_attribute.go | 2 ++ .../pingone/sso/resources/pingone_schema_attribute_test.go | 2 ++ .../connector/pingone/sso/resources/pingone_sign_on_policy.go | 2 ++ .../pingone/sso/resources/pingone_sign_on_policy_action.go | 2 ++ .../pingone/sso/resources/pingone_sign_on_policy_action_test.go | 2 ++ .../pingone/sso/resources/pingone_sign_on_policy_test.go | 2 ++ internal/customtypes/bool.go | 2 ++ internal/customtypes/bool_test.go | 2 ++ internal/customtypes/export_format.go | 2 ++ internal/customtypes/export_format_test.go | 2 ++ internal/customtypes/export_services.go | 2 ++ internal/customtypes/export_services_test.go | 2 ++ internal/customtypes/http_method.go | 2 ++ internal/customtypes/http_method_test.go | 2 ++ internal/customtypes/int.go | 2 ++ internal/customtypes/int_test.go | 2 ++ internal/customtypes/output_format.go | 2 ++ internal/customtypes/output_format_test.go | 2 ++ internal/customtypes/pingfederate_auth_type.go | 2 ++ internal/customtypes/pingfederate_auth_type_test.go | 2 ++ internal/customtypes/pingone_auth_type.go | 2 ++ internal/customtypes/pingone_auth_type_test.go | 2 ++ internal/customtypes/pingone_region_code.go | 2 ++ internal/customtypes/pingone_region_code_test.go | 2 ++ internal/customtypes/request_services.go | 2 ++ internal/customtypes/request_services_test.go | 2 ++ internal/customtypes/string.go | 2 ++ internal/customtypes/string_slice.go | 2 ++ internal/customtypes/string_slice_test.go | 2 ++ internal/customtypes/uuid.go | 2 ++ internal/customtypes/uuid_test.go | 2 ++ internal/input/input.go | 2 ++ internal/input/input_test.go | 2 ++ internal/logger/logger.go | 2 ++ internal/output/output.go | 2 ++ internal/profiles/validate.go | 2 ++ internal/profiles/validate_test.go | 2 ++ internal/profiles/viper.go | 2 ++ internal/profiles/viper_test.go | 2 ++ internal/testing/testutils/utils.go | 2 ++ internal/testing/testutils_cobra/cobra_utils.go | 2 ++ .../pingfederate/authentication_api_application.go | 2 ++ .../pingfederate/authentication_api_settings.go | 2 ++ .../testutils_resource/pingfederate/authentication_policies.go | 2 ++ .../pingfederate/authentication_policies_fragment.go | 2 ++ .../pingfederate/authentication_policies_settings.go | 2 ++ .../pingfederate/authentication_policy_contract.go | 2 ++ .../testutils_resource/pingfederate/authentication_selector.go | 2 ++ .../testing/testutils_resource/pingfederate/captcha_provider.go | 2 ++ .../pingfederate/captcha_provider_settings.go | 2 ++ .../testing/testutils_resource/pingfederate/certificate_ca.go | 2 ++ .../pingfederate/certificates_revocation_ocsp_certificate.go | 2 ++ .../pingfederate/certificates_revocation_settings.go | 2 ++ .../testing/testutils_resource/pingfederate/cluster_settings.go | 2 ++ .../pingfederate/configuration_encryption_keys_rotate.go | 2 ++ internal/testing/testutils_resource/pingfederate/data_store.go | 2 ++ .../testing/testutils_resource/pingfederate/default_urls.go | 2 ++ .../testutils_resource/pingfederate/extended_properties.go | 2 ++ .../pingfederate/identity_store_provisioner.go | 2 ++ internal/testing/testutils_resource/pingfederate/idp_adapter.go | 2 ++ .../testutils_resource/pingfederate/idp_sp_connection.go | 2 ++ .../pingfederate/idp_sts_request_parameters_contract.go | 2 ++ .../pingfederate/idp_to_sp_adapter_mapping.go | 2 ++ .../testutils_resource/pingfederate/idp_token_processor.go | 2 ++ .../testutils_resource/pingfederate/incoming_proxy_settings.go | 2 ++ .../testing/testutils_resource/pingfederate/kerberos_realm.go | 2 ++ .../testutils_resource/pingfederate/kerberos_realm_settings.go | 2 ++ .../pingfederate/keypairs_oauth_openid_connect.go | 2 ++ .../keypairs_oauth_openid_connect_additional_key_set.go | 2 ++ .../testutils_resource/pingfederate/keypairs_signing_key.go | 2 ++ .../pingfederate/keypairs_signing_key_rotation_settings.go | 2 ++ .../pingfederate/keypairs_ssl_server_settings.go | 2 ++ .../testutils_resource/pingfederate/local_identity_profile.go | 2 ++ .../testing/testutils_resource/pingfederate/metadata_url.go | 2 ++ .../testutils_resource/pingfederate/notification_publisher.go | 2 ++ .../pingfederate/notification_publisher_settings.go | 2 ++ .../pingfederate/oauth_access_token_manager.go | 2 ++ .../pingfederate/oauth_access_token_manager_settings.go | 2 ++ .../pingfederate/oauth_access_token_mapping.go | 2 ++ .../oauth_authentication_policy_contract_mapping.go | 2 ++ .../pingfederate/oauth_ciba_server_policy_request_policy.go | 2 ++ .../pingfederate/oauth_ciba_server_policy_settings.go | 2 ++ .../testing/testutils_resource/pingfederate/oauth_client.go | 2 ++ .../pingfederate/oauth_client_registration_policy.go | 2 ++ .../testutils_resource/pingfederate/oauth_client_settings.go | 2 ++ .../pingfederate/oauth_idp_adapter_mapping.go | 2 ++ .../testing/testutils_resource/pingfederate/oauth_issuer.go | 2 ++ .../testutils_resource/pingfederate/oauth_server_settings.go | 2 ++ .../pingfederate/oauth_token_exchange_generator_settings.go | 2 ++ .../pingfederate/oauth_token_exchange_processor_policy.go | 2 ++ .../oauth_token_exchange_token_generator_mapping.go | 2 ++ .../testutils_resource/pingfederate/openid_connect_policy.go | 2 ++ .../testutils_resource/pingfederate/openid_connect_settings.go | 2 ++ .../testutils_resource/pingfederate/out_of_band_auth_plugins.go | 2 ++ .../pingfederate/password_credential_validator.go | 2 ++ .../testutils_resource/pingfederate/pingone_connection.go | 2 ++ .../pingfederate/protocol_metadata_lifetime_settings.go | 2 ++ .../pingfederate/protocol_metadata_signing_settings.go | 2 ++ .../testutils_resource/pingfederate/redirect_validation.go | 2 ++ .../testing/testutils_resource/pingfederate/secret_manager.go | 2 ++ .../testing/testutils_resource/pingfederate/server_settings.go | 2 ++ .../testutils_resource/pingfederate/server_settings_general.go | 2 ++ .../testutils_resource/pingfederate/server_settings_logging.go | 2 ++ .../pingfederate/server_settings_system_keys_rotate.go | 2 ++ .../pingfederate/server_settings_ws_trust_sts_settings.go | 2 ++ .../server_settings_ws_trust_sts_settings_issuer_certificate.go | 2 ++ .../testutils_resource/pingfederate/service_authentication.go | 2 ++ .../pingfederate/session_application_policy.go | 2 ++ .../pingfederate/session_authentication_policies_global.go | 2 ++ .../pingfederate/session_authentication_policy.go | 2 ++ .../testing/testutils_resource/pingfederate/session_settings.go | 2 ++ internal/testing/testutils_resource/pingfederate/sp_adapter.go | 2 ++ .../pingfederate/sp_authentication_policy_contract_mapping.go | 2 ++ .../testutils_resource/pingfederate/sp_idp_connection.go | 2 ++ .../testutils_resource/pingfederate/sp_target_url_mappings.go | 2 ++ .../testutils_resource/pingfederate/sp_token_generator.go | 2 ++ .../pingfederate/token_processor_to_token_generator_mapping.go | 2 ++ .../testutils_resource/pingfederate/virtual_host_names.go | 2 ++ .../testutils_resource/pingone/device_auth_application.go | 2 ++ .../testing/testutils_resource/pingone/pingfederate_gateway.go | 2 ++ .../pingone/pingfederate_gateway_credential.go | 2 ++ internal/testing/testutils_resource/testutils_resource.go | 2 ++ internal/testing/testutils_terraform/terraform_utils.go | 2 ++ internal/testing/testutils_viper/viper_utils.go | 2 ++ internal/utils/utils.go | 2 ++ main.go | 2 ++ 503 files changed, 1006 insertions(+) diff --git a/cmd/auth/auth.go b/cmd/auth/auth.go index 3a7c1695..89a7c6d5 100644 --- a/cmd/auth/auth.go +++ b/cmd/auth/auth.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package auth import ( diff --git a/cmd/auth/auth_test.go b/cmd/auth/auth_test.go index cbdecacb..5ba95ddc 100644 --- a/cmd/auth/auth_test.go +++ b/cmd/auth/auth_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package auth_test // Test Auth Login Command Executes without issue diff --git a/cmd/auth/login.go b/cmd/auth/login.go index 662a689d..630f9dd4 100644 --- a/cmd/auth/login.go +++ b/cmd/auth/login.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package auth import ( diff --git a/cmd/auth/logout.go b/cmd/auth/logout.go index 2f741d5d..3858d9ae 100644 --- a/cmd/auth/logout.go +++ b/cmd/auth/logout.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package auth import ( diff --git a/cmd/common/cobra_utils.go b/cmd/common/cobra_utils.go index 831307ad..833f20d1 100644 --- a/cmd/common/cobra_utils.go +++ b/cmd/common/cobra_utils.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package common import ( diff --git a/cmd/common/cobra_utils_test.go b/cmd/common/cobra_utils_test.go index 2858887e..09506a8f 100644 --- a/cmd/common/cobra_utils_test.go +++ b/cmd/common/cobra_utils_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package common_test import ( diff --git a/cmd/completion/cmd.go b/cmd/completion/cmd.go index 17196524..01266a33 100644 --- a/cmd/completion/cmd.go +++ b/cmd/completion/cmd.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package completion import ( diff --git a/cmd/completion/cmd_test.go b/cmd/completion/cmd_test.go index 298d7a53..0732a306 100644 --- a/cmd/completion/cmd_test.go +++ b/cmd/completion/cmd_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package completion_test import ( diff --git a/cmd/config/add_profile.go b/cmd/config/add_profile.go index 7a5327fe..0c586f11 100644 --- a/cmd/config/add_profile.go +++ b/cmd/config/add_profile.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config import ( diff --git a/cmd/config/add_profile_test.go b/cmd/config/add_profile_test.go index c2e35845..02e4c489 100644 --- a/cmd/config/add_profile_test.go +++ b/cmd/config/add_profile_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_test import ( diff --git a/cmd/config/config.go b/cmd/config/config.go index 0d6a7ddc..08cd5e76 100644 --- a/cmd/config/config.go +++ b/cmd/config/config.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config import ( diff --git a/cmd/config/config_test.go b/cmd/config/config_test.go index a53f7663..5272e5c6 100644 --- a/cmd/config/config_test.go +++ b/cmd/config/config_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_test import ( diff --git a/cmd/config/delete_profile.go b/cmd/config/delete_profile.go index c0f15d74..cd701eea 100644 --- a/cmd/config/delete_profile.go +++ b/cmd/config/delete_profile.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config import ( diff --git a/cmd/config/delete_profile_test.go b/cmd/config/delete_profile_test.go index 1fc65f80..555c67c7 100644 --- a/cmd/config/delete_profile_test.go +++ b/cmd/config/delete_profile_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_test import ( diff --git a/cmd/config/get.go b/cmd/config/get.go index 338b9396..b63c427f 100644 --- a/cmd/config/get.go +++ b/cmd/config/get.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config import ( diff --git a/cmd/config/get_test.go b/cmd/config/get_test.go index f0399b82..bab8ee18 100644 --- a/cmd/config/get_test.go +++ b/cmd/config/get_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_test import ( diff --git a/cmd/config/list_keys.go b/cmd/config/list_keys.go index 5777c44c..1ab580e3 100644 --- a/cmd/config/list_keys.go +++ b/cmd/config/list_keys.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config import ( diff --git a/cmd/config/list_keys_test.go b/cmd/config/list_keys_test.go index be4bf0a8..9020d211 100644 --- a/cmd/config/list_keys_test.go +++ b/cmd/config/list_keys_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_test import ( diff --git a/cmd/config/list_profiles.go b/cmd/config/list_profiles.go index fd48ce43..632c7950 100644 --- a/cmd/config/list_profiles.go +++ b/cmd/config/list_profiles.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config import ( diff --git a/cmd/config/list_profiles_test.go b/cmd/config/list_profiles_test.go index fff88e63..bbb0d95d 100644 --- a/cmd/config/list_profiles_test.go +++ b/cmd/config/list_profiles_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_test import ( diff --git a/cmd/config/set.go b/cmd/config/set.go index 5b6505ed..611d4bd2 100644 --- a/cmd/config/set.go +++ b/cmd/config/set.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config import ( diff --git a/cmd/config/set_active_profile.go b/cmd/config/set_active_profile.go index 7b896289..bb0f0a64 100644 --- a/cmd/config/set_active_profile.go +++ b/cmd/config/set_active_profile.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config import ( diff --git a/cmd/config/set_active_profile_test.go b/cmd/config/set_active_profile_test.go index 1fa511c3..0684f5a6 100644 --- a/cmd/config/set_active_profile_test.go +++ b/cmd/config/set_active_profile_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_test import ( diff --git a/cmd/config/set_test.go b/cmd/config/set_test.go index ce4365bb..3058f566 100644 --- a/cmd/config/set_test.go +++ b/cmd/config/set_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_test import ( diff --git a/cmd/config/unset.go b/cmd/config/unset.go index 09a6efae..12c9c323 100644 --- a/cmd/config/unset.go +++ b/cmd/config/unset.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config import ( diff --git a/cmd/config/unset_test.go b/cmd/config/unset_test.go index a6a9f088..776e7b86 100644 --- a/cmd/config/unset_test.go +++ b/cmd/config/unset_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_test import ( diff --git a/cmd/config/view_profile.go b/cmd/config/view_profile.go index f93a5d26..8047d732 100644 --- a/cmd/config/view_profile.go +++ b/cmd/config/view_profile.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config import ( diff --git a/cmd/config/view_profile_test.go b/cmd/config/view_profile_test.go index 5aeb0e31..a70ef76e 100644 --- a/cmd/config/view_profile_test.go +++ b/cmd/config/view_profile_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_test import ( diff --git a/cmd/feedback/feedback.go b/cmd/feedback/feedback.go index 97f290cf..e75d1d93 100644 --- a/cmd/feedback/feedback.go +++ b/cmd/feedback/feedback.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package feedback import ( diff --git a/cmd/feedback/feedback_test.go b/cmd/feedback/feedback_test.go index affac942..45903fc5 100644 --- a/cmd/feedback/feedback_test.go +++ b/cmd/feedback/feedback_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package feedback_test import ( diff --git a/cmd/platform/export.go b/cmd/platform/export.go index 8b58271d..605e46b9 100644 --- a/cmd/platform/export.go +++ b/cmd/platform/export.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package platform import ( diff --git a/cmd/platform/export_test.go b/cmd/platform/export_test.go index 329b959c..cbb4f443 100644 --- a/cmd/platform/export_test.go +++ b/cmd/platform/export_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package platform_test import ( diff --git a/cmd/platform/platform.go b/cmd/platform/platform.go index 19e03d7e..3c6be0e6 100644 --- a/cmd/platform/platform.go +++ b/cmd/platform/platform.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package platform import ( diff --git a/cmd/platform/platform_test.go b/cmd/platform/platform_test.go index bb528b4f..6e03ee8c 100644 --- a/cmd/platform/platform_test.go +++ b/cmd/platform/platform_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package platform_test import ( diff --git a/cmd/request/request.go b/cmd/request/request.go index 31d3c869..74e86a35 100644 --- a/cmd/request/request.go +++ b/cmd/request/request.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package request import ( diff --git a/cmd/request/request_test.go b/cmd/request/request_test.go index c9af9fa5..1b1964ac 100644 --- a/cmd/request/request_test.go +++ b/cmd/request/request_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package request_test import ( diff --git a/cmd/root.go b/cmd/root.go index e821455d..12c26d57 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package cmd import ( diff --git a/cmd/root_test.go b/cmd/root_test.go index 1e0834f8..51b4a05b 100644 --- a/cmd/root_test.go +++ b/cmd/root_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package cmd_test import ( diff --git a/internal/autocompletion/config_args.go b/internal/autocompletion/config_args.go index 8a7cc2ab..ca635cb4 100644 --- a/internal/autocompletion/config_args.go +++ b/internal/autocompletion/config_args.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package autocompletion import ( diff --git a/internal/autocompletion/export_flags.go b/internal/autocompletion/export_flags.go index 078c3513..f6626102 100644 --- a/internal/autocompletion/export_flags.go +++ b/internal/autocompletion/export_flags.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package autocompletion import ( diff --git a/internal/autocompletion/request_flags.go b/internal/autocompletion/request_flags.go index f4cc1157..62e00409 100644 --- a/internal/autocompletion/request_flags.go +++ b/internal/autocompletion/request_flags.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package autocompletion import ( diff --git a/internal/autocompletion/root_flags.go b/internal/autocompletion/root_flags.go index 2a3b455f..fc929f08 100644 --- a/internal/autocompletion/root_flags.go +++ b/internal/autocompletion/root_flags.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package autocompletion import ( diff --git a/internal/commands/config/add_profile_internal.go b/internal/commands/config/add_profile_internal.go index f964ef9d..50ac01d8 100644 --- a/internal/commands/config/add_profile_internal.go +++ b/internal/commands/config/add_profile_internal.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/config/add_profile_internal_test.go b/internal/commands/config/add_profile_internal_test.go index f3e6ec7c..18520a18 100644 --- a/internal/commands/config/add_profile_internal_test.go +++ b/internal/commands/config/add_profile_internal_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/config/delete_profile_internal.go b/internal/commands/config/delete_profile_internal.go index d2f4f210..89a4ae5b 100644 --- a/internal/commands/config/delete_profile_internal.go +++ b/internal/commands/config/delete_profile_internal.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/config/delete_profile_internal_test.go b/internal/commands/config/delete_profile_internal_test.go index c47ba362..7a3a4a97 100644 --- a/internal/commands/config/delete_profile_internal_test.go +++ b/internal/commands/config/delete_profile_internal_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/config/get_internal.go b/internal/commands/config/get_internal.go index 91c0bad5..edf62ec2 100644 --- a/internal/commands/config/get_internal.go +++ b/internal/commands/config/get_internal.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/config/get_internal_test.go b/internal/commands/config/get_internal_test.go index 69cfc0eb..4d8379ed 100644 --- a/internal/commands/config/get_internal_test.go +++ b/internal/commands/config/get_internal_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/config/list_keys_internal.go b/internal/commands/config/list_keys_internal.go index 5c04167f..16aa0b6b 100644 --- a/internal/commands/config/list_keys_internal.go +++ b/internal/commands/config/list_keys_internal.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/config/list_keys_internal_test.go b/internal/commands/config/list_keys_internal_test.go index 1b4119a5..24404125 100644 --- a/internal/commands/config/list_keys_internal_test.go +++ b/internal/commands/config/list_keys_internal_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/config/list_profiles_internal.go b/internal/commands/config/list_profiles_internal.go index 164f8281..854be968 100644 --- a/internal/commands/config/list_profiles_internal.go +++ b/internal/commands/config/list_profiles_internal.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/config/list_profiles_internal_test.go b/internal/commands/config/list_profiles_internal_test.go index 6f214b15..31a3825d 100644 --- a/internal/commands/config/list_profiles_internal_test.go +++ b/internal/commands/config/list_profiles_internal_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/config/set_active_profile_internal.go b/internal/commands/config/set_active_profile_internal.go index af590197..04994f27 100644 --- a/internal/commands/config/set_active_profile_internal.go +++ b/internal/commands/config/set_active_profile_internal.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/config/set_active_profile_internal_test.go b/internal/commands/config/set_active_profile_internal_test.go index 5e31db1a..9ed0d879 100644 --- a/internal/commands/config/set_active_profile_internal_test.go +++ b/internal/commands/config/set_active_profile_internal_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/config/set_internal.go b/internal/commands/config/set_internal.go index 17ce9460..5418d35e 100644 --- a/internal/commands/config/set_internal.go +++ b/internal/commands/config/set_internal.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/config/set_internal_test.go b/internal/commands/config/set_internal_test.go index 89976eb9..2b8c8833 100644 --- a/internal/commands/config/set_internal_test.go +++ b/internal/commands/config/set_internal_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/config/unset_internal.go b/internal/commands/config/unset_internal.go index 304a4612..3207569f 100644 --- a/internal/commands/config/unset_internal.go +++ b/internal/commands/config/unset_internal.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/config/unset_internal_test.go b/internal/commands/config/unset_internal_test.go index 7c73a38d..ca2994c7 100644 --- a/internal/commands/config/unset_internal_test.go +++ b/internal/commands/config/unset_internal_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/config/view_profile_internal.go b/internal/commands/config/view_profile_internal.go index 2cf6f33c..ebf2fdeb 100644 --- a/internal/commands/config/view_profile_internal.go +++ b/internal/commands/config/view_profile_internal.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/config/view_profile_internal_test.go b/internal/commands/config/view_profile_internal_test.go index 2fee080a..cb836c76 100644 --- a/internal/commands/config/view_profile_internal_test.go +++ b/internal/commands/config/view_profile_internal_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package config_internal import ( diff --git a/internal/commands/feedback/feedback_internal.go b/internal/commands/feedback/feedback_internal.go index 132702a3..72f94362 100644 --- a/internal/commands/feedback/feedback_internal.go +++ b/internal/commands/feedback/feedback_internal.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package feedback_internal import ( diff --git a/internal/commands/platform/export_internal.go b/internal/commands/platform/export_internal.go index 225991b7..927f8434 100644 --- a/internal/commands/platform/export_internal.go +++ b/internal/commands/platform/export_internal.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package platform_internal import ( diff --git a/internal/commands/platform/export_internal_test.go b/internal/commands/platform/export_internal_test.go index 22a8a20f..a8381ba5 100644 --- a/internal/commands/platform/export_internal_test.go +++ b/internal/commands/platform/export_internal_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package platform_internal import ( diff --git a/internal/commands/request/request_internal.go b/internal/commands/request/request_internal.go index f528d647..1f707e0b 100644 --- a/internal/commands/request/request_internal.go +++ b/internal/commands/request/request_internal.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package request_internal import ( diff --git a/internal/commands/request/request_internal_test.go b/internal/commands/request/request_internal_test.go index 232c435d..14397ea8 100644 --- a/internal/commands/request/request_internal_test.go +++ b/internal/commands/request/request_internal_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package request_internal import ( diff --git a/internal/configuration/config/add_profile.go b/internal/configuration/config/add_profile.go index 30a3e8b2..f75e3c1c 100644 --- a/internal/configuration/config/add_profile.go +++ b/internal/configuration/config/add_profile.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package configuration_config import ( diff --git a/internal/configuration/config/delete_profile.go b/internal/configuration/config/delete_profile.go index b26773f0..6e844653 100644 --- a/internal/configuration/config/delete_profile.go +++ b/internal/configuration/config/delete_profile.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package configuration_config import ( diff --git a/internal/configuration/config/list_keys_yaml.go b/internal/configuration/config/list_keys_yaml.go index bc2f540c..2d770669 100644 --- a/internal/configuration/config/list_keys_yaml.go +++ b/internal/configuration/config/list_keys_yaml.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package configuration_config import ( diff --git a/internal/configuration/configuration.go b/internal/configuration/configuration.go index 26390eb1..4c13d722 100644 --- a/internal/configuration/configuration.go +++ b/internal/configuration/configuration.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package configuration import ( diff --git a/internal/configuration/configuration_test.go b/internal/configuration/configuration_test.go index d2d3c52f..7c3a6c93 100644 --- a/internal/configuration/configuration_test.go +++ b/internal/configuration/configuration_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package configuration_test import ( diff --git a/internal/configuration/options/options.go b/internal/configuration/options/options.go index 52e0781d..ab8ce905 100644 --- a/internal/configuration/options/options.go +++ b/internal/configuration/options/options.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package options import ( diff --git a/internal/configuration/options/options_test.go b/internal/configuration/options/options_test.go index 1686aa2d..9e12aae2 100644 --- a/internal/configuration/options/options_test.go +++ b/internal/configuration/options/options_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package options_test import ( diff --git a/internal/configuration/platform/export.go b/internal/configuration/platform/export.go index cbe4bc63..325a90da 100644 --- a/internal/configuration/platform/export.go +++ b/internal/configuration/platform/export.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package configuration_platform import ( diff --git a/internal/configuration/profiles/profiles.go b/internal/configuration/profiles/profiles.go index 3c375edd..f3e33331 100644 --- a/internal/configuration/profiles/profiles.go +++ b/internal/configuration/profiles/profiles.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package configuration_profiles import ( diff --git a/internal/configuration/request/request.go b/internal/configuration/request/request.go index 800fc1e9..982e758d 100644 --- a/internal/configuration/request/request.go +++ b/internal/configuration/request/request.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package configuration_request import ( diff --git a/internal/configuration/root/root.go b/internal/configuration/root/root.go index 3929004b..9f042549 100644 --- a/internal/configuration/root/root.go +++ b/internal/configuration/root/root.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package configuration_root import ( diff --git a/internal/configuration/services/pingfederate.go b/internal/configuration/services/pingfederate.go index 2aba87fc..d8a9e080 100644 --- a/internal/configuration/services/pingfederate.go +++ b/internal/configuration/services/pingfederate.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package configuration_services import ( diff --git a/internal/configuration/services/pingone.go b/internal/configuration/services/pingone.go index eca3d5d3..115cbcb6 100644 --- a/internal/configuration/services/pingone.go +++ b/internal/configuration/services/pingone.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package configuration_services import ( diff --git a/internal/connector/authenticatable.go b/internal/connector/authenticatable.go index 20fc6f1b..d145db73 100644 --- a/internal/connector/authenticatable.go +++ b/internal/connector/authenticatable.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package connector // A connector that allows authentication diff --git a/internal/connector/common/common_utils.go b/internal/connector/common/common_utils.go index 02432464..68570da7 100644 --- a/internal/connector/common/common_utils.go +++ b/internal/connector/common/common_utils.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package common import ( diff --git a/internal/connector/common/resources_common.go b/internal/connector/common/resources_common.go index 5e49b498..370024e8 100644 --- a/internal/connector/common/resources_common.go +++ b/internal/connector/common/resources_common.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package common import ( diff --git a/internal/connector/exportable.go b/internal/connector/exportable.go index cdfa7006..bb097a12 100644 --- a/internal/connector/exportable.go +++ b/internal/connector/exportable.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package connector import ( diff --git a/internal/connector/exportable_resource.go b/internal/connector/exportable_resource.go index 2b34891a..5871eea7 100644 --- a/internal/connector/exportable_resource.go +++ b/internal/connector/exportable_resource.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package connector import ( diff --git a/internal/connector/exportable_resource_test.go b/internal/connector/exportable_resource_test.go index a6aec148..3e70dd70 100644 --- a/internal/connector/exportable_resource_test.go +++ b/internal/connector/exportable_resource_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package connector_test import ( diff --git a/internal/connector/pingfederate/pingfederate_connector.go b/internal/connector/pingfederate/pingfederate_connector.go index b869b07c..69c236e8 100644 --- a/internal/connector/pingfederate/pingfederate_connector.go +++ b/internal/connector/pingfederate/pingfederate_connector.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/connector/pingfederate/pingfederate_connector_test.go b/internal/connector/pingfederate/pingfederate_connector_test.go index 0be87b6a..b936197d 100644 --- a/internal/connector/pingfederate/pingfederate_connector_test.go +++ b/internal/connector/pingfederate/pingfederate_connector_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate_test import ( diff --git a/internal/connector/pingfederate/resources/authentication_api_application.go b/internal/connector/pingfederate/resources/authentication_api_application.go index 767f9305..4c166866 100644 --- a/internal/connector/pingfederate/resources/authentication_api_application.go +++ b/internal/connector/pingfederate/resources/authentication_api_application.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/authentication_api_application_test.go b/internal/connector/pingfederate/resources/authentication_api_application_test.go index 5115162a..ba9d8b77 100644 --- a/internal/connector/pingfederate/resources/authentication_api_application_test.go +++ b/internal/connector/pingfederate/resources/authentication_api_application_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/authentication_api_settings.go b/internal/connector/pingfederate/resources/authentication_api_settings.go index 6192c996..78ae490a 100644 --- a/internal/connector/pingfederate/resources/authentication_api_settings.go +++ b/internal/connector/pingfederate/resources/authentication_api_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/authentication_api_settings_test.go b/internal/connector/pingfederate/resources/authentication_api_settings_test.go index b91aa1fa..eee0e207 100644 --- a/internal/connector/pingfederate/resources/authentication_api_settings_test.go +++ b/internal/connector/pingfederate/resources/authentication_api_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/authentication_policies.go b/internal/connector/pingfederate/resources/authentication_policies.go index 94392ecc..50bb089e 100644 --- a/internal/connector/pingfederate/resources/authentication_policies.go +++ b/internal/connector/pingfederate/resources/authentication_policies.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/authentication_policies_fragment.go b/internal/connector/pingfederate/resources/authentication_policies_fragment.go index 62287c9c..bb3081be 100644 --- a/internal/connector/pingfederate/resources/authentication_policies_fragment.go +++ b/internal/connector/pingfederate/resources/authentication_policies_fragment.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/authentication_policies_fragment_test.go b/internal/connector/pingfederate/resources/authentication_policies_fragment_test.go index e62918c2..882c5178 100644 --- a/internal/connector/pingfederate/resources/authentication_policies_fragment_test.go +++ b/internal/connector/pingfederate/resources/authentication_policies_fragment_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/authentication_policies_settings.go b/internal/connector/pingfederate/resources/authentication_policies_settings.go index ba776aad..f3723f4a 100644 --- a/internal/connector/pingfederate/resources/authentication_policies_settings.go +++ b/internal/connector/pingfederate/resources/authentication_policies_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/authentication_policies_settings_test.go b/internal/connector/pingfederate/resources/authentication_policies_settings_test.go index fe792311..461aa73c 100644 --- a/internal/connector/pingfederate/resources/authentication_policies_settings_test.go +++ b/internal/connector/pingfederate/resources/authentication_policies_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/authentication_policies_test.go b/internal/connector/pingfederate/resources/authentication_policies_test.go index 344929b4..d91dd916 100644 --- a/internal/connector/pingfederate/resources/authentication_policies_test.go +++ b/internal/connector/pingfederate/resources/authentication_policies_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/authentication_policy_contract.go b/internal/connector/pingfederate/resources/authentication_policy_contract.go index ddf4c0d4..f09d414c 100644 --- a/internal/connector/pingfederate/resources/authentication_policy_contract.go +++ b/internal/connector/pingfederate/resources/authentication_policy_contract.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/authentication_policy_contract_test.go b/internal/connector/pingfederate/resources/authentication_policy_contract_test.go index d8c672a3..7da4826d 100644 --- a/internal/connector/pingfederate/resources/authentication_policy_contract_test.go +++ b/internal/connector/pingfederate/resources/authentication_policy_contract_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/authentication_selector.go b/internal/connector/pingfederate/resources/authentication_selector.go index c2e78b99..e129aa55 100644 --- a/internal/connector/pingfederate/resources/authentication_selector.go +++ b/internal/connector/pingfederate/resources/authentication_selector.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/authentication_selector_test.go b/internal/connector/pingfederate/resources/authentication_selector_test.go index 20649728..5481dba7 100644 --- a/internal/connector/pingfederate/resources/authentication_selector_test.go +++ b/internal/connector/pingfederate/resources/authentication_selector_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/captcha_provider.go b/internal/connector/pingfederate/resources/captcha_provider.go index eb134a31..74a7719b 100644 --- a/internal/connector/pingfederate/resources/captcha_provider.go +++ b/internal/connector/pingfederate/resources/captcha_provider.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/captcha_provider_settings.go b/internal/connector/pingfederate/resources/captcha_provider_settings.go index 8d47f0f8..092e73d4 100644 --- a/internal/connector/pingfederate/resources/captcha_provider_settings.go +++ b/internal/connector/pingfederate/resources/captcha_provider_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/captcha_provider_settings_test.go b/internal/connector/pingfederate/resources/captcha_provider_settings_test.go index 5c6defd4..87d3e646 100644 --- a/internal/connector/pingfederate/resources/captcha_provider_settings_test.go +++ b/internal/connector/pingfederate/resources/captcha_provider_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/captcha_provider_test.go b/internal/connector/pingfederate/resources/captcha_provider_test.go index 694b169f..d96b2d95 100644 --- a/internal/connector/pingfederate/resources/captcha_provider_test.go +++ b/internal/connector/pingfederate/resources/captcha_provider_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/certificate_ca.go b/internal/connector/pingfederate/resources/certificate_ca.go index bd4b9aaf..d7bf0b8c 100644 --- a/internal/connector/pingfederate/resources/certificate_ca.go +++ b/internal/connector/pingfederate/resources/certificate_ca.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/certificate_ca_test.go b/internal/connector/pingfederate/resources/certificate_ca_test.go index edcfb6fa..4ed82ce8 100644 --- a/internal/connector/pingfederate/resources/certificate_ca_test.go +++ b/internal/connector/pingfederate/resources/certificate_ca_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate.go b/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate.go index 8b211ab7..22d9f961 100644 --- a/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate.go +++ b/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate_test.go b/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate_test.go index f80e1d1a..377ca853 100644 --- a/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate_test.go +++ b/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/certificates_revocation_settings.go b/internal/connector/pingfederate/resources/certificates_revocation_settings.go index d395b3f3..f2d93fcd 100644 --- a/internal/connector/pingfederate/resources/certificates_revocation_settings.go +++ b/internal/connector/pingfederate/resources/certificates_revocation_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/certificates_revocation_settings_test.go b/internal/connector/pingfederate/resources/certificates_revocation_settings_test.go index cb876e63..fb29e67e 100644 --- a/internal/connector/pingfederate/resources/certificates_revocation_settings_test.go +++ b/internal/connector/pingfederate/resources/certificates_revocation_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/cluster_settings.go b/internal/connector/pingfederate/resources/cluster_settings.go index e6112cf4..11ddd0fe 100644 --- a/internal/connector/pingfederate/resources/cluster_settings.go +++ b/internal/connector/pingfederate/resources/cluster_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/cluster_settings_test.go b/internal/connector/pingfederate/resources/cluster_settings_test.go index 649bd791..de380914 100644 --- a/internal/connector/pingfederate/resources/cluster_settings_test.go +++ b/internal/connector/pingfederate/resources/cluster_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate.go b/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate.go index c8d89620..f444dc68 100644 --- a/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate.go +++ b/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate_test.go b/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate_test.go index 0d1f9f29..64112d88 100644 --- a/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate_test.go +++ b/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/data_store.go b/internal/connector/pingfederate/resources/data_store.go index 61ae5e9c..f648aff8 100644 --- a/internal/connector/pingfederate/resources/data_store.go +++ b/internal/connector/pingfederate/resources/data_store.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/data_store_test.go b/internal/connector/pingfederate/resources/data_store_test.go index 267e33d2..10361bf0 100644 --- a/internal/connector/pingfederate/resources/data_store_test.go +++ b/internal/connector/pingfederate/resources/data_store_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/default_urls.go b/internal/connector/pingfederate/resources/default_urls.go index 8d9d8615..62542396 100644 --- a/internal/connector/pingfederate/resources/default_urls.go +++ b/internal/connector/pingfederate/resources/default_urls.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/default_urls_test.go b/internal/connector/pingfederate/resources/default_urls_test.go index 6699ed00..faed92e9 100644 --- a/internal/connector/pingfederate/resources/default_urls_test.go +++ b/internal/connector/pingfederate/resources/default_urls_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/extended_properties.go b/internal/connector/pingfederate/resources/extended_properties.go index 4d992b79..8dde27f7 100644 --- a/internal/connector/pingfederate/resources/extended_properties.go +++ b/internal/connector/pingfederate/resources/extended_properties.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/extended_properties_test.go b/internal/connector/pingfederate/resources/extended_properties_test.go index 74a76def..38f389cf 100644 --- a/internal/connector/pingfederate/resources/extended_properties_test.go +++ b/internal/connector/pingfederate/resources/extended_properties_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/identity_store_provisioner.go b/internal/connector/pingfederate/resources/identity_store_provisioner.go index dc7e68bd..85169fc2 100644 --- a/internal/connector/pingfederate/resources/identity_store_provisioner.go +++ b/internal/connector/pingfederate/resources/identity_store_provisioner.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/identity_store_provisioner_test.go b/internal/connector/pingfederate/resources/identity_store_provisioner_test.go index 21e2ce12..90288f72 100644 --- a/internal/connector/pingfederate/resources/identity_store_provisioner_test.go +++ b/internal/connector/pingfederate/resources/identity_store_provisioner_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/idp_adapter.go b/internal/connector/pingfederate/resources/idp_adapter.go index fecaa301..ede665df 100644 --- a/internal/connector/pingfederate/resources/idp_adapter.go +++ b/internal/connector/pingfederate/resources/idp_adapter.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/idp_adapter_test.go b/internal/connector/pingfederate/resources/idp_adapter_test.go index d0212ac9..b6889608 100644 --- a/internal/connector/pingfederate/resources/idp_adapter_test.go +++ b/internal/connector/pingfederate/resources/idp_adapter_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/idp_sp_connection.go b/internal/connector/pingfederate/resources/idp_sp_connection.go index 03e06f8c..842fd739 100644 --- a/internal/connector/pingfederate/resources/idp_sp_connection.go +++ b/internal/connector/pingfederate/resources/idp_sp_connection.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/idp_sp_connection_test.go b/internal/connector/pingfederate/resources/idp_sp_connection_test.go index 1aa35f98..50ee1498 100644 --- a/internal/connector/pingfederate/resources/idp_sp_connection_test.go +++ b/internal/connector/pingfederate/resources/idp_sp_connection_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract.go b/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract.go index e4d383a4..c3f04dbf 100644 --- a/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract.go +++ b/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract_test.go b/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract_test.go index e90d36db..15a76082 100644 --- a/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract_test.go +++ b/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping.go b/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping.go index 0b32f8c6..d95236e9 100644 --- a/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping.go +++ b/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping_test.go b/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping_test.go index 967dabed..e6969594 100644 --- a/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping_test.go +++ b/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/idp_token_processor.go b/internal/connector/pingfederate/resources/idp_token_processor.go index d24196e5..488e4fc4 100644 --- a/internal/connector/pingfederate/resources/idp_token_processor.go +++ b/internal/connector/pingfederate/resources/idp_token_processor.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/idp_token_processor_test.go b/internal/connector/pingfederate/resources/idp_token_processor_test.go index 02f3e10b..949312f6 100644 --- a/internal/connector/pingfederate/resources/idp_token_processor_test.go +++ b/internal/connector/pingfederate/resources/idp_token_processor_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/incoming_proxy_settings.go b/internal/connector/pingfederate/resources/incoming_proxy_settings.go index e9da780c..b52941e6 100644 --- a/internal/connector/pingfederate/resources/incoming_proxy_settings.go +++ b/internal/connector/pingfederate/resources/incoming_proxy_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/incoming_proxy_settings_test.go b/internal/connector/pingfederate/resources/incoming_proxy_settings_test.go index 9197c9d0..ce199d68 100644 --- a/internal/connector/pingfederate/resources/incoming_proxy_settings_test.go +++ b/internal/connector/pingfederate/resources/incoming_proxy_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/kerberos_realm.go b/internal/connector/pingfederate/resources/kerberos_realm.go index 5d94e427..67736906 100644 --- a/internal/connector/pingfederate/resources/kerberos_realm.go +++ b/internal/connector/pingfederate/resources/kerberos_realm.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/kerberos_realm_settings.go b/internal/connector/pingfederate/resources/kerberos_realm_settings.go index c0571084..50835608 100644 --- a/internal/connector/pingfederate/resources/kerberos_realm_settings.go +++ b/internal/connector/pingfederate/resources/kerberos_realm_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/kerberos_realm_settings_test.go b/internal/connector/pingfederate/resources/kerberos_realm_settings_test.go index 243856f2..5a80c963 100644 --- a/internal/connector/pingfederate/resources/kerberos_realm_settings_test.go +++ b/internal/connector/pingfederate/resources/kerberos_realm_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/kerberos_realm_test.go b/internal/connector/pingfederate/resources/kerberos_realm_test.go index 719248e1..ddde0858 100644 --- a/internal/connector/pingfederate/resources/kerberos_realm_test.go +++ b/internal/connector/pingfederate/resources/kerberos_realm_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect.go b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect.go index a77dfa5a..041b38b4 100644 --- a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect.go +++ b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set.go b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set.go index 823f5556..1c8cd82b 100644 --- a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set.go +++ b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set_test.go b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set_test.go index 052a925b..845d093b 100644 --- a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set_test.go +++ b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_test.go b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_test.go index aadb7726..1a1f73fc 100644 --- a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_test.go +++ b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings.go b/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings.go index 47b1e406..e1b7f9d8 100644 --- a/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings.go +++ b/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings_test.go b/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings_test.go index 5dbe3e15..f0f91b3b 100644 --- a/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings_test.go +++ b/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/keypairs_ssl_server_settings.go b/internal/connector/pingfederate/resources/keypairs_ssl_server_settings.go index 7b2610d6..b5376629 100644 --- a/internal/connector/pingfederate/resources/keypairs_ssl_server_settings.go +++ b/internal/connector/pingfederate/resources/keypairs_ssl_server_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/keypairs_ssl_server_settings_test.go b/internal/connector/pingfederate/resources/keypairs_ssl_server_settings_test.go index 361b2e57..729ac6f9 100644 --- a/internal/connector/pingfederate/resources/keypairs_ssl_server_settings_test.go +++ b/internal/connector/pingfederate/resources/keypairs_ssl_server_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/local_identity_profile.go b/internal/connector/pingfederate/resources/local_identity_profile.go index ac5a8ba9..bba27bdd 100644 --- a/internal/connector/pingfederate/resources/local_identity_profile.go +++ b/internal/connector/pingfederate/resources/local_identity_profile.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/local_identity_profile_test.go b/internal/connector/pingfederate/resources/local_identity_profile_test.go index 33f6c7f0..3dd257d0 100644 --- a/internal/connector/pingfederate/resources/local_identity_profile_test.go +++ b/internal/connector/pingfederate/resources/local_identity_profile_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/metadata_url.go b/internal/connector/pingfederate/resources/metadata_url.go index 63e278eb..5ecd0611 100644 --- a/internal/connector/pingfederate/resources/metadata_url.go +++ b/internal/connector/pingfederate/resources/metadata_url.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/metadata_url_test.go b/internal/connector/pingfederate/resources/metadata_url_test.go index 8a1c86dd..0b3c632c 100644 --- a/internal/connector/pingfederate/resources/metadata_url_test.go +++ b/internal/connector/pingfederate/resources/metadata_url_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/notification_publisher.go b/internal/connector/pingfederate/resources/notification_publisher.go index 9c83610f..e1cf8b1a 100644 --- a/internal/connector/pingfederate/resources/notification_publisher.go +++ b/internal/connector/pingfederate/resources/notification_publisher.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/notification_publisher_settings.go b/internal/connector/pingfederate/resources/notification_publisher_settings.go index a63a039c..d30edb40 100644 --- a/internal/connector/pingfederate/resources/notification_publisher_settings.go +++ b/internal/connector/pingfederate/resources/notification_publisher_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/notification_publisher_settings_test.go b/internal/connector/pingfederate/resources/notification_publisher_settings_test.go index 9b8ee6aa..20090da3 100644 --- a/internal/connector/pingfederate/resources/notification_publisher_settings_test.go +++ b/internal/connector/pingfederate/resources/notification_publisher_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/notification_publisher_test.go b/internal/connector/pingfederate/resources/notification_publisher_test.go index 4d8c437b..3dd66268 100644 --- a/internal/connector/pingfederate/resources/notification_publisher_test.go +++ b/internal/connector/pingfederate/resources/notification_publisher_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/oauth_access_token_manager.go b/internal/connector/pingfederate/resources/oauth_access_token_manager.go index bec74cc6..e8ac0a0b 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_manager.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_manager.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/oauth_access_token_manager_settings.go b/internal/connector/pingfederate/resources/oauth_access_token_manager_settings.go index f60dc183..6f475ff2 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_manager_settings.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_manager_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/oauth_access_token_manager_settings_test.go b/internal/connector/pingfederate/resources/oauth_access_token_manager_settings_test.go index c56b8315..c541d5cd 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_manager_settings_test.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_manager_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/oauth_access_token_manager_test.go b/internal/connector/pingfederate/resources/oauth_access_token_manager_test.go index a85f5599..98fa3b78 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_manager_test.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_manager_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/oauth_access_token_mapping.go b/internal/connector/pingfederate/resources/oauth_access_token_mapping.go index 59543e47..f9e012d7 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_mapping.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_mapping.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/oauth_access_token_mapping_test.go b/internal/connector/pingfederate/resources/oauth_access_token_mapping_test.go index 432c2620..061c7ada 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_mapping_test.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_mapping_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping.go b/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping.go index 50a14702..cb1967f5 100644 --- a/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping.go +++ b/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping_test.go b/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping_test.go index ddd84b3a..6f42c6d6 100644 --- a/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping_test.go +++ b/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy.go b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy.go index 9a863e49..7fa547b5 100644 --- a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy.go +++ b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy_test.go b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy_test.go index b3751aac..f8d59f66 100644 --- a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy_test.go +++ b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings.go b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings.go index f7e2ad25..9a62fbe8 100644 --- a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings.go +++ b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings_test.go b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings_test.go index 0e7076b6..b7b2b8b4 100644 --- a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings_test.go +++ b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/oauth_client.go b/internal/connector/pingfederate/resources/oauth_client.go index 75aecb4f..9debc034 100644 --- a/internal/connector/pingfederate/resources/oauth_client.go +++ b/internal/connector/pingfederate/resources/oauth_client.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/oauth_client_registration_policy.go b/internal/connector/pingfederate/resources/oauth_client_registration_policy.go index 70ab4bb2..9d99bea0 100644 --- a/internal/connector/pingfederate/resources/oauth_client_registration_policy.go +++ b/internal/connector/pingfederate/resources/oauth_client_registration_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/oauth_client_registration_policy_test.go b/internal/connector/pingfederate/resources/oauth_client_registration_policy_test.go index 2283c34a..50ab258f 100644 --- a/internal/connector/pingfederate/resources/oauth_client_registration_policy_test.go +++ b/internal/connector/pingfederate/resources/oauth_client_registration_policy_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/oauth_client_settings.go b/internal/connector/pingfederate/resources/oauth_client_settings.go index f42882e2..4cd1e233 100644 --- a/internal/connector/pingfederate/resources/oauth_client_settings.go +++ b/internal/connector/pingfederate/resources/oauth_client_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/oauth_client_settings_test.go b/internal/connector/pingfederate/resources/oauth_client_settings_test.go index 7b8008d1..83177001 100644 --- a/internal/connector/pingfederate/resources/oauth_client_settings_test.go +++ b/internal/connector/pingfederate/resources/oauth_client_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/oauth_client_test.go b/internal/connector/pingfederate/resources/oauth_client_test.go index 385dbcbf..ee19f948 100644 --- a/internal/connector/pingfederate/resources/oauth_client_test.go +++ b/internal/connector/pingfederate/resources/oauth_client_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping.go b/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping.go index 953c3efd..cb5e6d53 100644 --- a/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping.go +++ b/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping_test.go b/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping_test.go index 9685af8f..578d7f39 100644 --- a/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping_test.go +++ b/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/oauth_issuer.go b/internal/connector/pingfederate/resources/oauth_issuer.go index 3ba620ce..f4b3bcf4 100644 --- a/internal/connector/pingfederate/resources/oauth_issuer.go +++ b/internal/connector/pingfederate/resources/oauth_issuer.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/oauth_issuer_test.go b/internal/connector/pingfederate/resources/oauth_issuer_test.go index dddf61b3..baa37d44 100644 --- a/internal/connector/pingfederate/resources/oauth_issuer_test.go +++ b/internal/connector/pingfederate/resources/oauth_issuer_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/oauth_server_settings.go b/internal/connector/pingfederate/resources/oauth_server_settings.go index 08c2a73c..7204afcf 100644 --- a/internal/connector/pingfederate/resources/oauth_server_settings.go +++ b/internal/connector/pingfederate/resources/oauth_server_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/oauth_server_settings_test.go b/internal/connector/pingfederate/resources/oauth_server_settings_test.go index ae489e5f..a01e3f67 100644 --- a/internal/connector/pingfederate/resources/oauth_server_settings_test.go +++ b/internal/connector/pingfederate/resources/oauth_server_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings.go b/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings.go index 9efb0afc..7f58ce70 100644 --- a/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings.go +++ b/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings_test.go b/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings_test.go index 4cc54204..17dfadfc 100644 --- a/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings_test.go +++ b/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping.go b/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping.go index 59753b6b..88db5f0c 100644 --- a/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping.go +++ b/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping_test.go b/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping_test.go index e7cc6884..9d61b437 100644 --- a/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping_test.go +++ b/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/openid_connect_policy.go b/internal/connector/pingfederate/resources/openid_connect_policy.go index 169a47cf..280fc643 100644 --- a/internal/connector/pingfederate/resources/openid_connect_policy.go +++ b/internal/connector/pingfederate/resources/openid_connect_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/openid_connect_policy_test.go b/internal/connector/pingfederate/resources/openid_connect_policy_test.go index bb6a17bd..a8dc2c58 100644 --- a/internal/connector/pingfederate/resources/openid_connect_policy_test.go +++ b/internal/connector/pingfederate/resources/openid_connect_policy_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/openid_connect_settings.go b/internal/connector/pingfederate/resources/openid_connect_settings.go index 89d4af98..90f2c23a 100644 --- a/internal/connector/pingfederate/resources/openid_connect_settings.go +++ b/internal/connector/pingfederate/resources/openid_connect_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/openid_connect_settings_test.go b/internal/connector/pingfederate/resources/openid_connect_settings_test.go index 0e7f25be..74271fd0 100644 --- a/internal/connector/pingfederate/resources/openid_connect_settings_test.go +++ b/internal/connector/pingfederate/resources/openid_connect_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/password_credential_validator.go b/internal/connector/pingfederate/resources/password_credential_validator.go index 260898c4..858fcd38 100644 --- a/internal/connector/pingfederate/resources/password_credential_validator.go +++ b/internal/connector/pingfederate/resources/password_credential_validator.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/password_credential_validator_test.go b/internal/connector/pingfederate/resources/password_credential_validator_test.go index b16949d6..a184b3dd 100644 --- a/internal/connector/pingfederate/resources/password_credential_validator_test.go +++ b/internal/connector/pingfederate/resources/password_credential_validator_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/pingone_connection.go b/internal/connector/pingfederate/resources/pingone_connection.go index a275fbc5..e47e6fc7 100644 --- a/internal/connector/pingfederate/resources/pingone_connection.go +++ b/internal/connector/pingfederate/resources/pingone_connection.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/pingone_connection_test.go b/internal/connector/pingfederate/resources/pingone_connection_test.go index 3c8d1411..8d4c3c5b 100644 --- a/internal/connector/pingfederate/resources/pingone_connection_test.go +++ b/internal/connector/pingfederate/resources/pingone_connection_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings.go b/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings.go index 5234e55b..e948ad7a 100644 --- a/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings.go +++ b/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings_test.go b/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings_test.go index b82e5771..5eb96b1a 100644 --- a/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings_test.go +++ b/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/protocol_metadata_signing_settings.go b/internal/connector/pingfederate/resources/protocol_metadata_signing_settings.go index e2d8c94d..addaff61 100644 --- a/internal/connector/pingfederate/resources/protocol_metadata_signing_settings.go +++ b/internal/connector/pingfederate/resources/protocol_metadata_signing_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/protocol_metadata_signing_settings_test.go b/internal/connector/pingfederate/resources/protocol_metadata_signing_settings_test.go index 93922a9b..93eeef88 100644 --- a/internal/connector/pingfederate/resources/protocol_metadata_signing_settings_test.go +++ b/internal/connector/pingfederate/resources/protocol_metadata_signing_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/redirect_validation.go b/internal/connector/pingfederate/resources/redirect_validation.go index 8ad70b13..17acdebd 100644 --- a/internal/connector/pingfederate/resources/redirect_validation.go +++ b/internal/connector/pingfederate/resources/redirect_validation.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/redirect_validation_test.go b/internal/connector/pingfederate/resources/redirect_validation_test.go index 27878bba..9757b17c 100644 --- a/internal/connector/pingfederate/resources/redirect_validation_test.go +++ b/internal/connector/pingfederate/resources/redirect_validation_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/secret_manager.go b/internal/connector/pingfederate/resources/secret_manager.go index ec1c6296..6ecb7def 100644 --- a/internal/connector/pingfederate/resources/secret_manager.go +++ b/internal/connector/pingfederate/resources/secret_manager.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/secret_manager_test.go b/internal/connector/pingfederate/resources/secret_manager_test.go index 2efdef9e..1bd2f954 100644 --- a/internal/connector/pingfederate/resources/secret_manager_test.go +++ b/internal/connector/pingfederate/resources/secret_manager_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/server_settings.go b/internal/connector/pingfederate/resources/server_settings.go index a97d19f3..4bd70f50 100644 --- a/internal/connector/pingfederate/resources/server_settings.go +++ b/internal/connector/pingfederate/resources/server_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/server_settings_general.go b/internal/connector/pingfederate/resources/server_settings_general.go index e87449c1..a2982a0f 100644 --- a/internal/connector/pingfederate/resources/server_settings_general.go +++ b/internal/connector/pingfederate/resources/server_settings_general.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/server_settings_general_test.go b/internal/connector/pingfederate/resources/server_settings_general_test.go index 8d8e3551..b8892c32 100644 --- a/internal/connector/pingfederate/resources/server_settings_general_test.go +++ b/internal/connector/pingfederate/resources/server_settings_general_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/server_settings_logging.go b/internal/connector/pingfederate/resources/server_settings_logging.go index 9f3da006..a77a709c 100644 --- a/internal/connector/pingfederate/resources/server_settings_logging.go +++ b/internal/connector/pingfederate/resources/server_settings_logging.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/server_settings_logging_test.go b/internal/connector/pingfederate/resources/server_settings_logging_test.go index eabea7f1..8aac4a8a 100644 --- a/internal/connector/pingfederate/resources/server_settings_logging_test.go +++ b/internal/connector/pingfederate/resources/server_settings_logging_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/server_settings_system_keys_rotate.go b/internal/connector/pingfederate/resources/server_settings_system_keys_rotate.go index 74df3aee..10d1713a 100644 --- a/internal/connector/pingfederate/resources/server_settings_system_keys_rotate.go +++ b/internal/connector/pingfederate/resources/server_settings_system_keys_rotate.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/server_settings_system_keys_rotate_test.go b/internal/connector/pingfederate/resources/server_settings_system_keys_rotate_test.go index e431d84f..4dee1a94 100644 --- a/internal/connector/pingfederate/resources/server_settings_system_keys_rotate_test.go +++ b/internal/connector/pingfederate/resources/server_settings_system_keys_rotate_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/server_settings_test.go b/internal/connector/pingfederate/resources/server_settings_test.go index a8e34f9c..26e43d37 100644 --- a/internal/connector/pingfederate/resources/server_settings_test.go +++ b/internal/connector/pingfederate/resources/server_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings.go b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings.go index 49cbc0f4..8925069b 100644 --- a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings.go +++ b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate.go b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate.go index 3615f234..aeafb4da 100644 --- a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate.go +++ b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate_test.go b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate_test.go index 3a93238c..3de586c6 100644 --- a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate_test.go +++ b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_test.go b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_test.go index b80c63fa..57d55c69 100644 --- a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_test.go +++ b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/service_authentication.go b/internal/connector/pingfederate/resources/service_authentication.go index 788853c3..9cfc0259 100644 --- a/internal/connector/pingfederate/resources/service_authentication.go +++ b/internal/connector/pingfederate/resources/service_authentication.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/service_authentication_test.go b/internal/connector/pingfederate/resources/service_authentication_test.go index 889b8d65..8db5e7f0 100644 --- a/internal/connector/pingfederate/resources/service_authentication_test.go +++ b/internal/connector/pingfederate/resources/service_authentication_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/session_application_policy.go b/internal/connector/pingfederate/resources/session_application_policy.go index 5dad3c5a..64759e0e 100644 --- a/internal/connector/pingfederate/resources/session_application_policy.go +++ b/internal/connector/pingfederate/resources/session_application_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/session_application_policy_test.go b/internal/connector/pingfederate/resources/session_application_policy_test.go index c83f5526..19736e2e 100644 --- a/internal/connector/pingfederate/resources/session_application_policy_test.go +++ b/internal/connector/pingfederate/resources/session_application_policy_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/session_authentication_policies_global.go b/internal/connector/pingfederate/resources/session_authentication_policies_global.go index ff941361..148e9c40 100644 --- a/internal/connector/pingfederate/resources/session_authentication_policies_global.go +++ b/internal/connector/pingfederate/resources/session_authentication_policies_global.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/session_authentication_policies_global_test.go b/internal/connector/pingfederate/resources/session_authentication_policies_global_test.go index e4b0fc8e..442dbfb4 100644 --- a/internal/connector/pingfederate/resources/session_authentication_policies_global_test.go +++ b/internal/connector/pingfederate/resources/session_authentication_policies_global_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/session_authentication_policy.go b/internal/connector/pingfederate/resources/session_authentication_policy.go index 39b6ad3c..bef32d71 100644 --- a/internal/connector/pingfederate/resources/session_authentication_policy.go +++ b/internal/connector/pingfederate/resources/session_authentication_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/session_authentication_policy_test.go b/internal/connector/pingfederate/resources/session_authentication_policy_test.go index 2b63f03e..700ab6a9 100644 --- a/internal/connector/pingfederate/resources/session_authentication_policy_test.go +++ b/internal/connector/pingfederate/resources/session_authentication_policy_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/session_settings.go b/internal/connector/pingfederate/resources/session_settings.go index dae5853f..385382b9 100644 --- a/internal/connector/pingfederate/resources/session_settings.go +++ b/internal/connector/pingfederate/resources/session_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/session_settings_test.go b/internal/connector/pingfederate/resources/session_settings_test.go index 08bac9eb..d3995f2c 100644 --- a/internal/connector/pingfederate/resources/session_settings_test.go +++ b/internal/connector/pingfederate/resources/session_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/sp_adapter.go b/internal/connector/pingfederate/resources/sp_adapter.go index fe5b53fe..e0a0930f 100644 --- a/internal/connector/pingfederate/resources/sp_adapter.go +++ b/internal/connector/pingfederate/resources/sp_adapter.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/sp_adapter_test.go b/internal/connector/pingfederate/resources/sp_adapter_test.go index fc784358..740b1100 100644 --- a/internal/connector/pingfederate/resources/sp_adapter_test.go +++ b/internal/connector/pingfederate/resources/sp_adapter_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping.go b/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping.go index 21517cb6..97015169 100644 --- a/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping.go +++ b/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping_test.go b/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping_test.go index f6578eb1..4f90776d 100644 --- a/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping_test.go +++ b/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/sp_idp_connection.go b/internal/connector/pingfederate/resources/sp_idp_connection.go index fa7ad5e6..b39b01fa 100644 --- a/internal/connector/pingfederate/resources/sp_idp_connection.go +++ b/internal/connector/pingfederate/resources/sp_idp_connection.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/sp_idp_connection_test.go b/internal/connector/pingfederate/resources/sp_idp_connection_test.go index ba99f047..7eb4d518 100644 --- a/internal/connector/pingfederate/resources/sp_idp_connection_test.go +++ b/internal/connector/pingfederate/resources/sp_idp_connection_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/sp_target_url_mappings.go b/internal/connector/pingfederate/resources/sp_target_url_mappings.go index 63a604a8..554ac181 100644 --- a/internal/connector/pingfederate/resources/sp_target_url_mappings.go +++ b/internal/connector/pingfederate/resources/sp_target_url_mappings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/sp_target_url_mappings_test.go b/internal/connector/pingfederate/resources/sp_target_url_mappings_test.go index dda605b0..345681f1 100644 --- a/internal/connector/pingfederate/resources/sp_target_url_mappings_test.go +++ b/internal/connector/pingfederate/resources/sp_target_url_mappings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping.go b/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping.go index bebae825..3b146668 100644 --- a/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping.go +++ b/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping_test.go b/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping_test.go index 10b27741..f48b361a 100644 --- a/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping_test.go +++ b/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingfederate/resources/virtual_host_names.go b/internal/connector/pingfederate/resources/virtual_host_names.go index 01a844e7..956e534d 100644 --- a/internal/connector/pingfederate/resources/virtual_host_names.go +++ b/internal/connector/pingfederate/resources/virtual_host_names.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingfederate/resources/virtual_host_names_test.go b/internal/connector/pingfederate/resources/virtual_host_names_test.go index 1f1c2f45..a802ce06 100644 --- a/internal/connector/pingfederate/resources/virtual_host_names_test.go +++ b/internal/connector/pingfederate/resources/virtual_host_names_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/authorize/pingone_authorize_connector.go b/internal/connector/pingone/authorize/pingone_authorize_connector.go index a62d69c2..bddf4d5a 100644 --- a/internal/connector/pingone/authorize/pingone_authorize_connector.go +++ b/internal/connector/pingone/authorize/pingone_authorize_connector.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package authorize import ( diff --git a/internal/connector/pingone/authorize/pingone_authorize_connector_test.go b/internal/connector/pingone/authorize/pingone_authorize_connector_test.go index 00ce8c95..cde98b5a 100644 --- a/internal/connector/pingone/authorize/pingone_authorize_connector_test.go +++ b/internal/connector/pingone/authorize/pingone_authorize_connector_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package authorize_test import ( diff --git a/internal/connector/pingone/authorize/resources/pingone_application_resource.go b/internal/connector/pingone/authorize/resources/pingone_application_resource.go index 24d7863d..a7d6f38f 100644 --- a/internal/connector/pingone/authorize/resources/pingone_application_resource.go +++ b/internal/connector/pingone/authorize/resources/pingone_application_resource.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/authorize/resources/pingone_application_resource_permission.go b/internal/connector/pingone/authorize/resources/pingone_application_resource_permission.go index 23457c21..cb00f4f8 100644 --- a/internal/connector/pingone/authorize/resources/pingone_application_resource_permission.go +++ b/internal/connector/pingone/authorize/resources/pingone_application_resource_permission.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/authorize/resources/pingone_application_resource_permission_test.go b/internal/connector/pingone/authorize/resources/pingone_application_resource_permission_test.go index 9bc41b40..50f23c40 100644 --- a/internal/connector/pingone/authorize/resources/pingone_application_resource_permission_test.go +++ b/internal/connector/pingone/authorize/resources/pingone_application_resource_permission_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/authorize/resources/pingone_application_resource_test.go b/internal/connector/pingone/authorize/resources/pingone_application_resource_test.go index cdd420d4..b092f748 100644 --- a/internal/connector/pingone/authorize/resources/pingone_application_resource_test.go +++ b/internal/connector/pingone/authorize/resources/pingone_application_resource_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service.go b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service.go index 2b70f9d7..f1dbf6e6 100644 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service.go +++ b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_deployment.go b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_deployment.go index 18bc70d8..4685246b 100644 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_deployment.go +++ b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_deployment.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_deployment_test.go b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_deployment_test.go index 64b837c8..a4e3cd14 100644 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_deployment_test.go +++ b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_deployment_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_operation.go b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_operation.go index 682d8164..afe40b31 100644 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_operation.go +++ b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_operation.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_operation_test.go b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_operation_test.go index 84281777..1c399a23 100644 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_operation_test.go +++ b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_operation_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_test.go b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_test.go index b55a4520..12a6db5c 100644 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_test.go +++ b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_application_role.go b/internal/connector/pingone/authorize/resources/pingone_authorize_application_role.go index 28eb7f44..34b7664b 100644 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_application_role.go +++ b/internal/connector/pingone/authorize/resources/pingone_authorize_application_role.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_permission.go b/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_permission.go index 673c9158..a2d1a8c9 100644 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_permission.go +++ b/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_permission.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_permission_test.go b/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_permission_test.go index f13f3de7..bfeba178 100644 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_permission_test.go +++ b/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_permission_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_test.go b/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_test.go index 17f97389..9013ba19 100644 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_test.go +++ b/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_decision_endpoint.go b/internal/connector/pingone/authorize/resources/pingone_authorize_decision_endpoint.go index ab1b26aa..40297d2f 100644 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_decision_endpoint.go +++ b/internal/connector/pingone/authorize/resources/pingone_authorize_decision_endpoint.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_decision_endpoint_test.go b/internal/connector/pingone/authorize/resources/pingone_authorize_decision_endpoint_test.go index 47c85a02..f78308e0 100644 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_decision_endpoint_test.go +++ b/internal/connector/pingone/authorize/resources/pingone_authorize_decision_endpoint_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/common.go b/internal/connector/pingone/common.go index c1b2e095..817f2c95 100644 --- a/internal/connector/pingone/common.go +++ b/internal/connector/pingone/common.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingone import ( diff --git a/internal/connector/pingone/mfa/pingone_mfa_connector.go b/internal/connector/pingone/mfa/pingone_mfa_connector.go index c2972ada..66f2ca2c 100644 --- a/internal/connector/pingone/mfa/pingone_mfa_connector.go +++ b/internal/connector/pingone/mfa/pingone_mfa_connector.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package mfa import ( diff --git a/internal/connector/pingone/mfa/pingone_mfa_connector_test.go b/internal/connector/pingone/mfa/pingone_mfa_connector_test.go index 1272bd2d..1696e2b7 100644 --- a/internal/connector/pingone/mfa/pingone_mfa_connector_test.go +++ b/internal/connector/pingone/mfa/pingone_mfa_connector_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package mfa_test import ( diff --git a/internal/connector/pingone/mfa/resources/pingone_mfa_application_push_credential.go b/internal/connector/pingone/mfa/resources/pingone_mfa_application_push_credential.go index 7b89dbe5..92746ce5 100644 --- a/internal/connector/pingone/mfa/resources/pingone_mfa_application_push_credential.go +++ b/internal/connector/pingone/mfa/resources/pingone_mfa_application_push_credential.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/mfa/resources/pingone_mfa_application_push_credential_test.go b/internal/connector/pingone/mfa/resources/pingone_mfa_application_push_credential_test.go index eb2aee63..88b53b69 100644 --- a/internal/connector/pingone/mfa/resources/pingone_mfa_application_push_credential_test.go +++ b/internal/connector/pingone/mfa/resources/pingone_mfa_application_push_credential_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/mfa/resources/pingone_mfa_device_policy.go b/internal/connector/pingone/mfa/resources/pingone_mfa_device_policy.go index 2f7ff82d..ef343d73 100644 --- a/internal/connector/pingone/mfa/resources/pingone_mfa_device_policy.go +++ b/internal/connector/pingone/mfa/resources/pingone_mfa_device_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/mfa/resources/pingone_mfa_device_policy_test.go b/internal/connector/pingone/mfa/resources/pingone_mfa_device_policy_test.go index bd1befb4..51ae685f 100644 --- a/internal/connector/pingone/mfa/resources/pingone_mfa_device_policy_test.go +++ b/internal/connector/pingone/mfa/resources/pingone_mfa_device_policy_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/mfa/resources/pingone_mfa_fido2_policy.go b/internal/connector/pingone/mfa/resources/pingone_mfa_fido2_policy.go index 3651c5c3..8821a6c0 100644 --- a/internal/connector/pingone/mfa/resources/pingone_mfa_fido2_policy.go +++ b/internal/connector/pingone/mfa/resources/pingone_mfa_fido2_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/mfa/resources/pingone_mfa_fido2_policy_test.go b/internal/connector/pingone/mfa/resources/pingone_mfa_fido2_policy_test.go index adedcc7d..457801d6 100644 --- a/internal/connector/pingone/mfa/resources/pingone_mfa_fido2_policy_test.go +++ b/internal/connector/pingone/mfa/resources/pingone_mfa_fido2_policy_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/mfa/resources/pingone_mfa_settings.go b/internal/connector/pingone/mfa/resources/pingone_mfa_settings.go index 9d1e6ceb..27ab5f31 100644 --- a/internal/connector/pingone/mfa/resources/pingone_mfa_settings.go +++ b/internal/connector/pingone/mfa/resources/pingone_mfa_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/mfa/resources/pingone_mfa_settings_test.go b/internal/connector/pingone/mfa/resources/pingone_mfa_settings_test.go index 9102ed4d..7d213536 100644 --- a/internal/connector/pingone/mfa/resources/pingone_mfa_settings_test.go +++ b/internal/connector/pingone/mfa/resources/pingone_mfa_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/pingone_platform_connector.go b/internal/connector/pingone/platform/pingone_platform_connector.go index 803ee72e..8c224001 100644 --- a/internal/connector/pingone/platform/pingone_platform_connector.go +++ b/internal/connector/pingone/platform/pingone_platform_connector.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package platform import ( diff --git a/internal/connector/pingone/platform/pingone_platform_connector_test.go b/internal/connector/pingone/platform/pingone_platform_connector_test.go index 6bb3bd1e..351497b5 100644 --- a/internal/connector/pingone/platform/pingone_platform_connector_test.go +++ b/internal/connector/pingone/platform/pingone_platform_connector_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package platform_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_agreement.go b/internal/connector/pingone/platform/resources/pingone_agreement.go index b64f1f3a..898ac2c2 100644 --- a/internal/connector/pingone/platform/resources/pingone_agreement.go +++ b/internal/connector/pingone/platform/resources/pingone_agreement.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_enable.go b/internal/connector/pingone/platform/resources/pingone_agreement_enable.go index b84fbaa2..e980e711 100644 --- a/internal/connector/pingone/platform/resources/pingone_agreement_enable.go +++ b/internal/connector/pingone/platform/resources/pingone_agreement_enable.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_enable_test.go b/internal/connector/pingone/platform/resources/pingone_agreement_enable_test.go index 844e5126..74b00540 100644 --- a/internal/connector/pingone/platform/resources/pingone_agreement_enable_test.go +++ b/internal/connector/pingone/platform/resources/pingone_agreement_enable_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_localization.go b/internal/connector/pingone/platform/resources/pingone_agreement_localization.go index a7fb8734..e45c99cd 100644 --- a/internal/connector/pingone/platform/resources/pingone_agreement_localization.go +++ b/internal/connector/pingone/platform/resources/pingone_agreement_localization.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_localization_enable.go b/internal/connector/pingone/platform/resources/pingone_agreement_localization_enable.go index 1ac53efc..824db595 100644 --- a/internal/connector/pingone/platform/resources/pingone_agreement_localization_enable.go +++ b/internal/connector/pingone/platform/resources/pingone_agreement_localization_enable.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_localization_enable_test.go b/internal/connector/pingone/platform/resources/pingone_agreement_localization_enable_test.go index 8efb477d..d49843be 100644 --- a/internal/connector/pingone/platform/resources/pingone_agreement_localization_enable_test.go +++ b/internal/connector/pingone/platform/resources/pingone_agreement_localization_enable_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_localization_revision.go b/internal/connector/pingone/platform/resources/pingone_agreement_localization_revision.go index 2cafc478..cd28bec7 100644 --- a/internal/connector/pingone/platform/resources/pingone_agreement_localization_revision.go +++ b/internal/connector/pingone/platform/resources/pingone_agreement_localization_revision.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_localization_revision_test.go b/internal/connector/pingone/platform/resources/pingone_agreement_localization_revision_test.go index 3fe01d7b..e2c0ea42 100644 --- a/internal/connector/pingone/platform/resources/pingone_agreement_localization_revision_test.go +++ b/internal/connector/pingone/platform/resources/pingone_agreement_localization_revision_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_localization_test.go b/internal/connector/pingone/platform/resources/pingone_agreement_localization_test.go index 8115dd58..7d39ff97 100644 --- a/internal/connector/pingone/platform/resources/pingone_agreement_localization_test.go +++ b/internal/connector/pingone/platform/resources/pingone_agreement_localization_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_test.go b/internal/connector/pingone/platform/resources/pingone_agreement_test.go index 03796aa8..dec276b8 100644 --- a/internal/connector/pingone/platform/resources/pingone_agreement_test.go +++ b/internal/connector/pingone/platform/resources/pingone_agreement_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_alert_channel.go b/internal/connector/pingone/platform/resources/pingone_alert_channel.go index af173ca1..a182c7fa 100644 --- a/internal/connector/pingone/platform/resources/pingone_alert_channel.go +++ b/internal/connector/pingone/platform/resources/pingone_alert_channel.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_alert_channel_test.go b/internal/connector/pingone/platform/resources/pingone_alert_channel_test.go index 261d041b..0b6d3570 100644 --- a/internal/connector/pingone/platform/resources/pingone_alert_channel_test.go +++ b/internal/connector/pingone/platform/resources/pingone_alert_channel_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_branding_settings.go b/internal/connector/pingone/platform/resources/pingone_branding_settings.go index 4955d1a8..1ae0088d 100644 --- a/internal/connector/pingone/platform/resources/pingone_branding_settings.go +++ b/internal/connector/pingone/platform/resources/pingone_branding_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_branding_settings_test.go b/internal/connector/pingone/platform/resources/pingone_branding_settings_test.go index ecd01130..4cd2ae58 100644 --- a/internal/connector/pingone/platform/resources/pingone_branding_settings_test.go +++ b/internal/connector/pingone/platform/resources/pingone_branding_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_branding_theme.go b/internal/connector/pingone/platform/resources/pingone_branding_theme.go index f20f2782..f8d979dd 100644 --- a/internal/connector/pingone/platform/resources/pingone_branding_theme.go +++ b/internal/connector/pingone/platform/resources/pingone_branding_theme.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_branding_theme_default.go b/internal/connector/pingone/platform/resources/pingone_branding_theme_default.go index f50e5484..448b9cf4 100644 --- a/internal/connector/pingone/platform/resources/pingone_branding_theme_default.go +++ b/internal/connector/pingone/platform/resources/pingone_branding_theme_default.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_branding_theme_default_test.go b/internal/connector/pingone/platform/resources/pingone_branding_theme_default_test.go index 7748d1c3..91e8e5e5 100644 --- a/internal/connector/pingone/platform/resources/pingone_branding_theme_default_test.go +++ b/internal/connector/pingone/platform/resources/pingone_branding_theme_default_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_branding_theme_test.go b/internal/connector/pingone/platform/resources/pingone_branding_theme_test.go index 9e583d47..6c6ea79b 100644 --- a/internal/connector/pingone/platform/resources/pingone_branding_theme_test.go +++ b/internal/connector/pingone/platform/resources/pingone_branding_theme_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_certificate.go b/internal/connector/pingone/platform/resources/pingone_certificate.go index 9591f2ad..02fd6ec7 100644 --- a/internal/connector/pingone/platform/resources/pingone_certificate.go +++ b/internal/connector/pingone/platform/resources/pingone_certificate.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_certificate_test.go b/internal/connector/pingone/platform/resources/pingone_certificate_test.go index 658f4724..b0d56f3c 100644 --- a/internal/connector/pingone/platform/resources/pingone_certificate_test.go +++ b/internal/connector/pingone/platform/resources/pingone_certificate_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_custom_domain.go b/internal/connector/pingone/platform/resources/pingone_custom_domain.go index 6156c248..a6a1cc3d 100644 --- a/internal/connector/pingone/platform/resources/pingone_custom_domain.go +++ b/internal/connector/pingone/platform/resources/pingone_custom_domain.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_custom_domain_test.go b/internal/connector/pingone/platform/resources/pingone_custom_domain_test.go index 24e97ee5..368cff86 100644 --- a/internal/connector/pingone/platform/resources/pingone_custom_domain_test.go +++ b/internal/connector/pingone/platform/resources/pingone_custom_domain_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_environment.go b/internal/connector/pingone/platform/resources/pingone_environment.go index b217b565..0ad8d988 100644 --- a/internal/connector/pingone/platform/resources/pingone_environment.go +++ b/internal/connector/pingone/platform/resources/pingone_environment.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_environment_test.go b/internal/connector/pingone/platform/resources/pingone_environment_test.go index 5360de0d..a7d80862 100644 --- a/internal/connector/pingone/platform/resources/pingone_environment_test.go +++ b/internal/connector/pingone/platform/resources/pingone_environment_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_form.go b/internal/connector/pingone/platform/resources/pingone_form.go index 7ad3b61c..fafc5f0f 100644 --- a/internal/connector/pingone/platform/resources/pingone_form.go +++ b/internal/connector/pingone/platform/resources/pingone_form.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_form_test.go b/internal/connector/pingone/platform/resources/pingone_form_test.go index 94f591d5..72ccaac7 100644 --- a/internal/connector/pingone/platform/resources/pingone_form_test.go +++ b/internal/connector/pingone/platform/resources/pingone_form_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_forms_recaptcha_v2.go b/internal/connector/pingone/platform/resources/pingone_forms_recaptcha_v2.go index ac8c6996..53c5c8cd 100644 --- a/internal/connector/pingone/platform/resources/pingone_forms_recaptcha_v2.go +++ b/internal/connector/pingone/platform/resources/pingone_forms_recaptcha_v2.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_forms_recaptcha_v2_test.go b/internal/connector/pingone/platform/resources/pingone_forms_recaptcha_v2_test.go index 9eed52a4..365710f2 100644 --- a/internal/connector/pingone/platform/resources/pingone_forms_recaptcha_v2_test.go +++ b/internal/connector/pingone/platform/resources/pingone_forms_recaptcha_v2_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_gateway.go b/internal/connector/pingone/platform/resources/pingone_gateway.go index c37e64b9..9602d7cf 100644 --- a/internal/connector/pingone/platform/resources/pingone_gateway.go +++ b/internal/connector/pingone/platform/resources/pingone_gateway.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_gateway_credential.go b/internal/connector/pingone/platform/resources/pingone_gateway_credential.go index 6eaed9f4..005734f1 100644 --- a/internal/connector/pingone/platform/resources/pingone_gateway_credential.go +++ b/internal/connector/pingone/platform/resources/pingone_gateway_credential.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_gateway_credential_test.go b/internal/connector/pingone/platform/resources/pingone_gateway_credential_test.go index 648ef2ca..8a6bd325 100644 --- a/internal/connector/pingone/platform/resources/pingone_gateway_credential_test.go +++ b/internal/connector/pingone/platform/resources/pingone_gateway_credential_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_gateway_role_assignment.go b/internal/connector/pingone/platform/resources/pingone_gateway_role_assignment.go index ae090517..f94866f4 100644 --- a/internal/connector/pingone/platform/resources/pingone_gateway_role_assignment.go +++ b/internal/connector/pingone/platform/resources/pingone_gateway_role_assignment.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_gateway_role_assignment_test.go b/internal/connector/pingone/platform/resources/pingone_gateway_role_assignment_test.go index a29090cd..3e9ed468 100644 --- a/internal/connector/pingone/platform/resources/pingone_gateway_role_assignment_test.go +++ b/internal/connector/pingone/platform/resources/pingone_gateway_role_assignment_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_gateway_test.go b/internal/connector/pingone/platform/resources/pingone_gateway_test.go index c590c859..da8141b2 100644 --- a/internal/connector/pingone/platform/resources/pingone_gateway_test.go +++ b/internal/connector/pingone/platform/resources/pingone_gateway_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_identity_propagation_plan.go b/internal/connector/pingone/platform/resources/pingone_identity_propagation_plan.go index c56afb66..e3092d03 100644 --- a/internal/connector/pingone/platform/resources/pingone_identity_propagation_plan.go +++ b/internal/connector/pingone/platform/resources/pingone_identity_propagation_plan.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_identity_propagation_plan_test.go b/internal/connector/pingone/platform/resources/pingone_identity_propagation_plan_test.go index 6a890010..ce4bed43 100644 --- a/internal/connector/pingone/platform/resources/pingone_identity_propagation_plan_test.go +++ b/internal/connector/pingone/platform/resources/pingone_identity_propagation_plan_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_key.go b/internal/connector/pingone/platform/resources/pingone_key.go index e17c5666..7548e41d 100644 --- a/internal/connector/pingone/platform/resources/pingone_key.go +++ b/internal/connector/pingone/platform/resources/pingone_key.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_key_rotation_policy.go b/internal/connector/pingone/platform/resources/pingone_key_rotation_policy.go index 8861a31a..a9137692 100644 --- a/internal/connector/pingone/platform/resources/pingone_key_rotation_policy.go +++ b/internal/connector/pingone/platform/resources/pingone_key_rotation_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_key_rotation_policy_test.go b/internal/connector/pingone/platform/resources/pingone_key_rotation_policy_test.go index 86ba6f68..c9f0a6d0 100644 --- a/internal/connector/pingone/platform/resources/pingone_key_rotation_policy_test.go +++ b/internal/connector/pingone/platform/resources/pingone_key_rotation_policy_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_key_test.go b/internal/connector/pingone/platform/resources/pingone_key_test.go index da6b03f3..6b86b83e 100644 --- a/internal/connector/pingone/platform/resources/pingone_key_test.go +++ b/internal/connector/pingone/platform/resources/pingone_key_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_language.go b/internal/connector/pingone/platform/resources/pingone_language.go index 401da581..8949e829 100644 --- a/internal/connector/pingone/platform/resources/pingone_language.go +++ b/internal/connector/pingone/platform/resources/pingone_language.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_language_test.go b/internal/connector/pingone/platform/resources/pingone_language_test.go index 3afec5c9..f5fc4a0b 100644 --- a/internal/connector/pingone/platform/resources/pingone_language_test.go +++ b/internal/connector/pingone/platform/resources/pingone_language_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_language_update.go b/internal/connector/pingone/platform/resources/pingone_language_update.go index 8d9689d2..fedf73c9 100644 --- a/internal/connector/pingone/platform/resources/pingone_language_update.go +++ b/internal/connector/pingone/platform/resources/pingone_language_update.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_language_update_test.go b/internal/connector/pingone/platform/resources/pingone_language_update_test.go index 4ea07440..89aded38 100644 --- a/internal/connector/pingone/platform/resources/pingone_language_update_test.go +++ b/internal/connector/pingone/platform/resources/pingone_language_update_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_notification_policy.go b/internal/connector/pingone/platform/resources/pingone_notification_policy.go index d065ffeb..03d509d8 100644 --- a/internal/connector/pingone/platform/resources/pingone_notification_policy.go +++ b/internal/connector/pingone/platform/resources/pingone_notification_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_notification_policy_test.go b/internal/connector/pingone/platform/resources/pingone_notification_policy_test.go index b1d52372..daf1863e 100644 --- a/internal/connector/pingone/platform/resources/pingone_notification_policy_test.go +++ b/internal/connector/pingone/platform/resources/pingone_notification_policy_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_notification_settings.go b/internal/connector/pingone/platform/resources/pingone_notification_settings.go index 044e5fe4..1169438a 100644 --- a/internal/connector/pingone/platform/resources/pingone_notification_settings.go +++ b/internal/connector/pingone/platform/resources/pingone_notification_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_notification_settings_email.go b/internal/connector/pingone/platform/resources/pingone_notification_settings_email.go index f8e6d312..48e0bb4a 100644 --- a/internal/connector/pingone/platform/resources/pingone_notification_settings_email.go +++ b/internal/connector/pingone/platform/resources/pingone_notification_settings_email.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_notification_settings_email_test.go b/internal/connector/pingone/platform/resources/pingone_notification_settings_email_test.go index 96089c90..de076481 100644 --- a/internal/connector/pingone/platform/resources/pingone_notification_settings_email_test.go +++ b/internal/connector/pingone/platform/resources/pingone_notification_settings_email_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_notification_settings_test.go b/internal/connector/pingone/platform/resources/pingone_notification_settings_test.go index 81aa755f..e1985829 100644 --- a/internal/connector/pingone/platform/resources/pingone_notification_settings_test.go +++ b/internal/connector/pingone/platform/resources/pingone_notification_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_notification_template_content.go b/internal/connector/pingone/platform/resources/pingone_notification_template_content.go index 8cd784c7..75812923 100644 --- a/internal/connector/pingone/platform/resources/pingone_notification_template_content.go +++ b/internal/connector/pingone/platform/resources/pingone_notification_template_content.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_notification_template_content_test.go b/internal/connector/pingone/platform/resources/pingone_notification_template_content_test.go index c2052eea..80f4083c 100644 --- a/internal/connector/pingone/platform/resources/pingone_notification_template_content_test.go +++ b/internal/connector/pingone/platform/resources/pingone_notification_template_content_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_phone_delivery_settings.go b/internal/connector/pingone/platform/resources/pingone_phone_delivery_settings.go index 360caad9..d2b3b9cd 100644 --- a/internal/connector/pingone/platform/resources/pingone_phone_delivery_settings.go +++ b/internal/connector/pingone/platform/resources/pingone_phone_delivery_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_phone_delivery_settings_test.go b/internal/connector/pingone/platform/resources/pingone_phone_delivery_settings_test.go index 7251babc..45aeb8a9 100644 --- a/internal/connector/pingone/platform/resources/pingone_phone_delivery_settings_test.go +++ b/internal/connector/pingone/platform/resources/pingone_phone_delivery_settings_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_system_application.go b/internal/connector/pingone/platform/resources/pingone_system_application.go index 6bbdd443..58b628af 100644 --- a/internal/connector/pingone/platform/resources/pingone_system_application.go +++ b/internal/connector/pingone/platform/resources/pingone_system_application.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_system_application_test.go b/internal/connector/pingone/platform/resources/pingone_system_application_test.go index 41feee3e..0a1bee3b 100644 --- a/internal/connector/pingone/platform/resources/pingone_system_application_test.go +++ b/internal/connector/pingone/platform/resources/pingone_system_application_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_trusted_email_address.go b/internal/connector/pingone/platform/resources/pingone_trusted_email_address.go index f4bb9ca5..a4e35305 100644 --- a/internal/connector/pingone/platform/resources/pingone_trusted_email_address.go +++ b/internal/connector/pingone/platform/resources/pingone_trusted_email_address.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_trusted_email_address_test.go b/internal/connector/pingone/platform/resources/pingone_trusted_email_address_test.go index 4b08e031..79895f6d 100644 --- a/internal/connector/pingone/platform/resources/pingone_trusted_email_address_test.go +++ b/internal/connector/pingone/platform/resources/pingone_trusted_email_address_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_trusted_email_domain.go b/internal/connector/pingone/platform/resources/pingone_trusted_email_domain.go index 3b9df378..82f07cda 100644 --- a/internal/connector/pingone/platform/resources/pingone_trusted_email_domain.go +++ b/internal/connector/pingone/platform/resources/pingone_trusted_email_domain.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_trusted_email_domain_test.go b/internal/connector/pingone/platform/resources/pingone_trusted_email_domain_test.go index 535a26a8..49f1659b 100644 --- a/internal/connector/pingone/platform/resources/pingone_trusted_email_domain_test.go +++ b/internal/connector/pingone/platform/resources/pingone_trusted_email_domain_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/platform/resources/pingone_webhook.go b/internal/connector/pingone/platform/resources/pingone_webhook.go index 89f54b1e..d171d1d1 100644 --- a/internal/connector/pingone/platform/resources/pingone_webhook.go +++ b/internal/connector/pingone/platform/resources/pingone_webhook.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/platform/resources/pingone_webhook_test.go b/internal/connector/pingone/platform/resources/pingone_webhook_test.go index c58c7744..5f6668f1 100644 --- a/internal/connector/pingone/platform/resources/pingone_webhook_test.go +++ b/internal/connector/pingone/platform/resources/pingone_webhook_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/protect/pingone_protect_connector.go b/internal/connector/pingone/protect/pingone_protect_connector.go index a926d4dc..d06f33ef 100644 --- a/internal/connector/pingone/protect/pingone_protect_connector.go +++ b/internal/connector/pingone/protect/pingone_protect_connector.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package protect import ( diff --git a/internal/connector/pingone/protect/pingone_protect_connector_test.go b/internal/connector/pingone/protect/pingone_protect_connector_test.go index 9ffb470a..30e5f907 100644 --- a/internal/connector/pingone/protect/pingone_protect_connector_test.go +++ b/internal/connector/pingone/protect/pingone_protect_connector_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package protect_test import ( diff --git a/internal/connector/pingone/protect/resources/pingone_risk_policy.go b/internal/connector/pingone/protect/resources/pingone_risk_policy.go index f75eb4e8..8c4b724e 100644 --- a/internal/connector/pingone/protect/resources/pingone_risk_policy.go +++ b/internal/connector/pingone/protect/resources/pingone_risk_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/protect/resources/pingone_risk_policy_test.go b/internal/connector/pingone/protect/resources/pingone_risk_policy_test.go index 8b04d7f8..b91779c4 100644 --- a/internal/connector/pingone/protect/resources/pingone_risk_policy_test.go +++ b/internal/connector/pingone/protect/resources/pingone_risk_policy_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/protect/resources/pingone_risk_predictor.go b/internal/connector/pingone/protect/resources/pingone_risk_predictor.go index 7c6fe212..e184c976 100644 --- a/internal/connector/pingone/protect/resources/pingone_risk_predictor.go +++ b/internal/connector/pingone/protect/resources/pingone_risk_predictor.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/protect/resources/pingone_risk_predictor_test.go b/internal/connector/pingone/protect/resources/pingone_risk_predictor_test.go index ed22c543..ddbfea14 100644 --- a/internal/connector/pingone/protect/resources/pingone_risk_predictor_test.go +++ b/internal/connector/pingone/protect/resources/pingone_risk_predictor_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/pingone_sso_connector.go b/internal/connector/pingone/sso/pingone_sso_connector.go index d8e065c8..670377da 100644 --- a/internal/connector/pingone/sso/pingone_sso_connector.go +++ b/internal/connector/pingone/sso/pingone_sso_connector.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package sso import ( diff --git a/internal/connector/pingone/sso/pingone_sso_connector_test.go b/internal/connector/pingone/sso/pingone_sso_connector_test.go index c0c44a3d..7bd31faa 100644 --- a/internal/connector/pingone/sso/pingone_sso_connector_test.go +++ b/internal/connector/pingone/sso/pingone_sso_connector_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package sso_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_application.go b/internal/connector/pingone/sso/resources/pingone_application.go index 3e63a068..b69830c1 100644 --- a/internal/connector/pingone/sso/resources/pingone_application.go +++ b/internal/connector/pingone/sso/resources/pingone_application.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_application_attribute_mapping.go b/internal/connector/pingone/sso/resources/pingone_application_attribute_mapping.go index 6ec343ad..ef6c7b2d 100644 --- a/internal/connector/pingone/sso/resources/pingone_application_attribute_mapping.go +++ b/internal/connector/pingone/sso/resources/pingone_application_attribute_mapping.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_application_attribute_mapping_test.go b/internal/connector/pingone/sso/resources/pingone_application_attribute_mapping_test.go index 47294b52..82738a26 100644 --- a/internal/connector/pingone/sso/resources/pingone_application_attribute_mapping_test.go +++ b/internal/connector/pingone/sso/resources/pingone_application_attribute_mapping_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_application_flow_policy_assignment.go b/internal/connector/pingone/sso/resources/pingone_application_flow_policy_assignment.go index 1257ad9b..75b39d6a 100644 --- a/internal/connector/pingone/sso/resources/pingone_application_flow_policy_assignment.go +++ b/internal/connector/pingone/sso/resources/pingone_application_flow_policy_assignment.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_application_flow_policy_assignment_test.go b/internal/connector/pingone/sso/resources/pingone_application_flow_policy_assignment_test.go index 35a49ede..e6f2558a 100644 --- a/internal/connector/pingone/sso/resources/pingone_application_flow_policy_assignment_test.go +++ b/internal/connector/pingone/sso/resources/pingone_application_flow_policy_assignment_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_application_resource_grant.go b/internal/connector/pingone/sso/resources/pingone_application_resource_grant.go index 10d909a7..572ec74b 100644 --- a/internal/connector/pingone/sso/resources/pingone_application_resource_grant.go +++ b/internal/connector/pingone/sso/resources/pingone_application_resource_grant.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_application_resource_grant_test.go b/internal/connector/pingone/sso/resources/pingone_application_resource_grant_test.go index 442780b1..70c88366 100644 --- a/internal/connector/pingone/sso/resources/pingone_application_resource_grant_test.go +++ b/internal/connector/pingone/sso/resources/pingone_application_resource_grant_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_application_role_assignment.go b/internal/connector/pingone/sso/resources/pingone_application_role_assignment.go index 62137192..ab27b2fc 100644 --- a/internal/connector/pingone/sso/resources/pingone_application_role_assignment.go +++ b/internal/connector/pingone/sso/resources/pingone_application_role_assignment.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_application_role_assignment_test.go b/internal/connector/pingone/sso/resources/pingone_application_role_assignment_test.go index 9c15c069..f33f3cb9 100644 --- a/internal/connector/pingone/sso/resources/pingone_application_role_assignment_test.go +++ b/internal/connector/pingone/sso/resources/pingone_application_role_assignment_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_application_secret.go b/internal/connector/pingone/sso/resources/pingone_application_secret.go index e17c950e..3a8be944 100644 --- a/internal/connector/pingone/sso/resources/pingone_application_secret.go +++ b/internal/connector/pingone/sso/resources/pingone_application_secret.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_application_secret_test.go b/internal/connector/pingone/sso/resources/pingone_application_secret_test.go index f89215a8..b25018a1 100644 --- a/internal/connector/pingone/sso/resources/pingone_application_secret_test.go +++ b/internal/connector/pingone/sso/resources/pingone_application_secret_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_application_sign_on_policy_assignment.go b/internal/connector/pingone/sso/resources/pingone_application_sign_on_policy_assignment.go index b0d3e0c2..c1ef1827 100644 --- a/internal/connector/pingone/sso/resources/pingone_application_sign_on_policy_assignment.go +++ b/internal/connector/pingone/sso/resources/pingone_application_sign_on_policy_assignment.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_application_sign_on_policy_assignment_test.go b/internal/connector/pingone/sso/resources/pingone_application_sign_on_policy_assignment_test.go index f24e067b..65a78476 100644 --- a/internal/connector/pingone/sso/resources/pingone_application_sign_on_policy_assignment_test.go +++ b/internal/connector/pingone/sso/resources/pingone_application_sign_on_policy_assignment_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_application_test.go b/internal/connector/pingone/sso/resources/pingone_application_test.go index 38bf5334..6d9091cc 100644 --- a/internal/connector/pingone/sso/resources/pingone_application_test.go +++ b/internal/connector/pingone/sso/resources/pingone_application_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_group.go b/internal/connector/pingone/sso/resources/pingone_group.go index b264081f..f67363c4 100644 --- a/internal/connector/pingone/sso/resources/pingone_group.go +++ b/internal/connector/pingone/sso/resources/pingone_group.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_group_nesting.go b/internal/connector/pingone/sso/resources/pingone_group_nesting.go index 26b5eed1..23c1a0dc 100644 --- a/internal/connector/pingone/sso/resources/pingone_group_nesting.go +++ b/internal/connector/pingone/sso/resources/pingone_group_nesting.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_group_nesting_test.go b/internal/connector/pingone/sso/resources/pingone_group_nesting_test.go index 0987a926..a110b9ed 100644 --- a/internal/connector/pingone/sso/resources/pingone_group_nesting_test.go +++ b/internal/connector/pingone/sso/resources/pingone_group_nesting_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_group_role_assignment.go b/internal/connector/pingone/sso/resources/pingone_group_role_assignment.go index 8eded400..cc5413b2 100644 --- a/internal/connector/pingone/sso/resources/pingone_group_role_assignment.go +++ b/internal/connector/pingone/sso/resources/pingone_group_role_assignment.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_group_role_assignment_test.go b/internal/connector/pingone/sso/resources/pingone_group_role_assignment_test.go index f176fe28..7c1bf8cf 100644 --- a/internal/connector/pingone/sso/resources/pingone_group_role_assignment_test.go +++ b/internal/connector/pingone/sso/resources/pingone_group_role_assignment_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_group_test.go b/internal/connector/pingone/sso/resources/pingone_group_test.go index d78b95a3..b6bd0e6b 100644 --- a/internal/connector/pingone/sso/resources/pingone_group_test.go +++ b/internal/connector/pingone/sso/resources/pingone_group_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_identity_provider.go b/internal/connector/pingone/sso/resources/pingone_identity_provider.go index a9e69bbd..83d888b2 100644 --- a/internal/connector/pingone/sso/resources/pingone_identity_provider.go +++ b/internal/connector/pingone/sso/resources/pingone_identity_provider.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_identity_provider_attribute.go b/internal/connector/pingone/sso/resources/pingone_identity_provider_attribute.go index 26c0981f..c748eb84 100644 --- a/internal/connector/pingone/sso/resources/pingone_identity_provider_attribute.go +++ b/internal/connector/pingone/sso/resources/pingone_identity_provider_attribute.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_identity_provider_attribute_test.go b/internal/connector/pingone/sso/resources/pingone_identity_provider_attribute_test.go index fd5ce780..9ceaa345 100644 --- a/internal/connector/pingone/sso/resources/pingone_identity_provider_attribute_test.go +++ b/internal/connector/pingone/sso/resources/pingone_identity_provider_attribute_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_identity_provider_test.go b/internal/connector/pingone/sso/resources/pingone_identity_provider_test.go index 60e91bea..3fb1c680 100644 --- a/internal/connector/pingone/sso/resources/pingone_identity_provider_test.go +++ b/internal/connector/pingone/sso/resources/pingone_identity_provider_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_password_policy.go b/internal/connector/pingone/sso/resources/pingone_password_policy.go index efebdb57..78a8885c 100644 --- a/internal/connector/pingone/sso/resources/pingone_password_policy.go +++ b/internal/connector/pingone/sso/resources/pingone_password_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_password_policy_test.go b/internal/connector/pingone/sso/resources/pingone_password_policy_test.go index b58aeec5..a7a7cab3 100644 --- a/internal/connector/pingone/sso/resources/pingone_password_policy_test.go +++ b/internal/connector/pingone/sso/resources/pingone_password_policy_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_population.go b/internal/connector/pingone/sso/resources/pingone_population.go index 58876507..b07c3216 100644 --- a/internal/connector/pingone/sso/resources/pingone_population.go +++ b/internal/connector/pingone/sso/resources/pingone_population.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_population_default.go b/internal/connector/pingone/sso/resources/pingone_population_default.go index 172f1a37..abefe263 100644 --- a/internal/connector/pingone/sso/resources/pingone_population_default.go +++ b/internal/connector/pingone/sso/resources/pingone_population_default.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_population_default_identity_provider.go b/internal/connector/pingone/sso/resources/pingone_population_default_identity_provider.go index efcf65a5..de7de74d 100644 --- a/internal/connector/pingone/sso/resources/pingone_population_default_identity_provider.go +++ b/internal/connector/pingone/sso/resources/pingone_population_default_identity_provider.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_population_default_identity_provider_test.go b/internal/connector/pingone/sso/resources/pingone_population_default_identity_provider_test.go index 8d6046a5..9fb92551 100644 --- a/internal/connector/pingone/sso/resources/pingone_population_default_identity_provider_test.go +++ b/internal/connector/pingone/sso/resources/pingone_population_default_identity_provider_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_population_default_test.go b/internal/connector/pingone/sso/resources/pingone_population_default_test.go index 78bdc590..5ec58269 100644 --- a/internal/connector/pingone/sso/resources/pingone_population_default_test.go +++ b/internal/connector/pingone/sso/resources/pingone_population_default_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_population_test.go b/internal/connector/pingone/sso/resources/pingone_population_test.go index 095b5c8f..430cdf63 100644 --- a/internal/connector/pingone/sso/resources/pingone_population_test.go +++ b/internal/connector/pingone/sso/resources/pingone_population_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_resource.go b/internal/connector/pingone/sso/resources/pingone_resource.go index ba825393..37a088bd 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource.go +++ b/internal/connector/pingone/sso/resources/pingone_resource.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_resource_attribute.go b/internal/connector/pingone/sso/resources/pingone_resource_attribute.go index a5c3ed1e..d4a12e61 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource_attribute.go +++ b/internal/connector/pingone/sso/resources/pingone_resource_attribute.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_resource_attribute_test.go b/internal/connector/pingone/sso/resources/pingone_resource_attribute_test.go index af771e80..79318b32 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource_attribute_test.go +++ b/internal/connector/pingone/sso/resources/pingone_resource_attribute_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_resource_scope.go b/internal/connector/pingone/sso/resources/pingone_resource_scope.go index 1ab19837..d1218cd0 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource_scope.go +++ b/internal/connector/pingone/sso/resources/pingone_resource_scope.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_resource_scope_openid.go b/internal/connector/pingone/sso/resources/pingone_resource_scope_openid.go index 76d9c739..4ec6cf56 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource_scope_openid.go +++ b/internal/connector/pingone/sso/resources/pingone_resource_scope_openid.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_resource_scope_openid_test.go b/internal/connector/pingone/sso/resources/pingone_resource_scope_openid_test.go index 3a6383a4..7e621b19 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource_scope_openid_test.go +++ b/internal/connector/pingone/sso/resources/pingone_resource_scope_openid_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_resource_scope_pingone_api.go b/internal/connector/pingone/sso/resources/pingone_resource_scope_pingone_api.go index a4ab9e30..2882c031 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource_scope_pingone_api.go +++ b/internal/connector/pingone/sso/resources/pingone_resource_scope_pingone_api.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_resource_scope_pingone_api_test.go b/internal/connector/pingone/sso/resources/pingone_resource_scope_pingone_api_test.go index bbb4f7a8..a75ae481 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource_scope_pingone_api_test.go +++ b/internal/connector/pingone/sso/resources/pingone_resource_scope_pingone_api_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_resource_scope_test.go b/internal/connector/pingone/sso/resources/pingone_resource_scope_test.go index 760e4669..49ab8446 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource_scope_test.go +++ b/internal/connector/pingone/sso/resources/pingone_resource_scope_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_resource_secret.go b/internal/connector/pingone/sso/resources/pingone_resource_secret.go index 0db8350f..f71a8421 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource_secret.go +++ b/internal/connector/pingone/sso/resources/pingone_resource_secret.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_resource_secret_test.go b/internal/connector/pingone/sso/resources/pingone_resource_secret_test.go index 4d9000cf..5d4ef3c9 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource_secret_test.go +++ b/internal/connector/pingone/sso/resources/pingone_resource_secret_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_resource_test.go b/internal/connector/pingone/sso/resources/pingone_resource_test.go index 4498ca3b..f5dac940 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource_test.go +++ b/internal/connector/pingone/sso/resources/pingone_resource_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_schema_attribute.go b/internal/connector/pingone/sso/resources/pingone_schema_attribute.go index d6f8e5fd..7a89aa76 100644 --- a/internal/connector/pingone/sso/resources/pingone_schema_attribute.go +++ b/internal/connector/pingone/sso/resources/pingone_schema_attribute.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_schema_attribute_test.go b/internal/connector/pingone/sso/resources/pingone_schema_attribute_test.go index dd298743..142ca413 100644 --- a/internal/connector/pingone/sso/resources/pingone_schema_attribute_test.go +++ b/internal/connector/pingone/sso/resources/pingone_schema_attribute_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_sign_on_policy.go b/internal/connector/pingone/sso/resources/pingone_sign_on_policy.go index 9caa8e34..64878250 100644 --- a/internal/connector/pingone/sso/resources/pingone_sign_on_policy.go +++ b/internal/connector/pingone/sso/resources/pingone_sign_on_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_sign_on_policy_action.go b/internal/connector/pingone/sso/resources/pingone_sign_on_policy_action.go index e3067f21..e09ac19b 100644 --- a/internal/connector/pingone/sso/resources/pingone_sign_on_policy_action.go +++ b/internal/connector/pingone/sso/resources/pingone_sign_on_policy_action.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources import ( diff --git a/internal/connector/pingone/sso/resources/pingone_sign_on_policy_action_test.go b/internal/connector/pingone/sso/resources/pingone_sign_on_policy_action_test.go index cf4f890f..dd6abfbf 100644 --- a/internal/connector/pingone/sso/resources/pingone_sign_on_policy_action_test.go +++ b/internal/connector/pingone/sso/resources/pingone_sign_on_policy_action_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/connector/pingone/sso/resources/pingone_sign_on_policy_test.go b/internal/connector/pingone/sso/resources/pingone_sign_on_policy_test.go index fc1559fc..dd4f0afe 100644 --- a/internal/connector/pingone/sso/resources/pingone_sign_on_policy_test.go +++ b/internal/connector/pingone/sso/resources/pingone_sign_on_policy_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package resources_test import ( diff --git a/internal/customtypes/bool.go b/internal/customtypes/bool.go index 42112a90..ab9a1841 100644 --- a/internal/customtypes/bool.go +++ b/internal/customtypes/bool.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes import ( diff --git a/internal/customtypes/bool_test.go b/internal/customtypes/bool_test.go index c1a98235..a1c4098d 100644 --- a/internal/customtypes/bool_test.go +++ b/internal/customtypes/bool_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes_test import ( diff --git a/internal/customtypes/export_format.go b/internal/customtypes/export_format.go index b5fdef8f..e5919791 100644 --- a/internal/customtypes/export_format.go +++ b/internal/customtypes/export_format.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes import ( diff --git a/internal/customtypes/export_format_test.go b/internal/customtypes/export_format_test.go index bef0c91f..206886d7 100644 --- a/internal/customtypes/export_format_test.go +++ b/internal/customtypes/export_format_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes_test import ( diff --git a/internal/customtypes/export_services.go b/internal/customtypes/export_services.go index 41be1159..098a8044 100644 --- a/internal/customtypes/export_services.go +++ b/internal/customtypes/export_services.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes import ( diff --git a/internal/customtypes/export_services_test.go b/internal/customtypes/export_services_test.go index 6d780f57..1e5c0051 100644 --- a/internal/customtypes/export_services_test.go +++ b/internal/customtypes/export_services_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes_test import ( diff --git a/internal/customtypes/http_method.go b/internal/customtypes/http_method.go index f72bf3de..df2f976e 100644 --- a/internal/customtypes/http_method.go +++ b/internal/customtypes/http_method.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes import ( diff --git a/internal/customtypes/http_method_test.go b/internal/customtypes/http_method_test.go index 049f5fa0..3ebd326f 100644 --- a/internal/customtypes/http_method_test.go +++ b/internal/customtypes/http_method_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes_test import ( diff --git a/internal/customtypes/int.go b/internal/customtypes/int.go index 413cbb43..1aab2502 100644 --- a/internal/customtypes/int.go +++ b/internal/customtypes/int.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes import ( diff --git a/internal/customtypes/int_test.go b/internal/customtypes/int_test.go index b955bb08..69552b41 100644 --- a/internal/customtypes/int_test.go +++ b/internal/customtypes/int_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes_test import ( diff --git a/internal/customtypes/output_format.go b/internal/customtypes/output_format.go index 16a4bf3e..d6c3dc1d 100644 --- a/internal/customtypes/output_format.go +++ b/internal/customtypes/output_format.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes import ( diff --git a/internal/customtypes/output_format_test.go b/internal/customtypes/output_format_test.go index ab40b20a..018ff6cf 100644 --- a/internal/customtypes/output_format_test.go +++ b/internal/customtypes/output_format_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes_test import ( diff --git a/internal/customtypes/pingfederate_auth_type.go b/internal/customtypes/pingfederate_auth_type.go index 5204efbc..82227fef 100644 --- a/internal/customtypes/pingfederate_auth_type.go +++ b/internal/customtypes/pingfederate_auth_type.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes import ( diff --git a/internal/customtypes/pingfederate_auth_type_test.go b/internal/customtypes/pingfederate_auth_type_test.go index 2bdc41e5..6534cddd 100644 --- a/internal/customtypes/pingfederate_auth_type_test.go +++ b/internal/customtypes/pingfederate_auth_type_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes_test import ( diff --git a/internal/customtypes/pingone_auth_type.go b/internal/customtypes/pingone_auth_type.go index b647c48d..1e35ba80 100644 --- a/internal/customtypes/pingone_auth_type.go +++ b/internal/customtypes/pingone_auth_type.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes import ( diff --git a/internal/customtypes/pingone_auth_type_test.go b/internal/customtypes/pingone_auth_type_test.go index 6e6d7910..130bb37f 100644 --- a/internal/customtypes/pingone_auth_type_test.go +++ b/internal/customtypes/pingone_auth_type_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes_test import ( diff --git a/internal/customtypes/pingone_region_code.go b/internal/customtypes/pingone_region_code.go index b7463346..642fad70 100644 --- a/internal/customtypes/pingone_region_code.go +++ b/internal/customtypes/pingone_region_code.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes import ( diff --git a/internal/customtypes/pingone_region_code_test.go b/internal/customtypes/pingone_region_code_test.go index e9957d8a..cf1a711c 100644 --- a/internal/customtypes/pingone_region_code_test.go +++ b/internal/customtypes/pingone_region_code_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes_test import ( diff --git a/internal/customtypes/request_services.go b/internal/customtypes/request_services.go index e51000bf..094c9a1e 100644 --- a/internal/customtypes/request_services.go +++ b/internal/customtypes/request_services.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes import ( diff --git a/internal/customtypes/request_services_test.go b/internal/customtypes/request_services_test.go index 97211617..ddac9e04 100644 --- a/internal/customtypes/request_services_test.go +++ b/internal/customtypes/request_services_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes_test import ( diff --git a/internal/customtypes/string.go b/internal/customtypes/string.go index 6906795d..1718ac98 100644 --- a/internal/customtypes/string.go +++ b/internal/customtypes/string.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes import ( diff --git a/internal/customtypes/string_slice.go b/internal/customtypes/string_slice.go index 069578d0..18c43083 100644 --- a/internal/customtypes/string_slice.go +++ b/internal/customtypes/string_slice.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes import ( diff --git a/internal/customtypes/string_slice_test.go b/internal/customtypes/string_slice_test.go index ed1ec424..aae33ccf 100644 --- a/internal/customtypes/string_slice_test.go +++ b/internal/customtypes/string_slice_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes_test import ( diff --git a/internal/customtypes/uuid.go b/internal/customtypes/uuid.go index 935faba7..f58a7734 100644 --- a/internal/customtypes/uuid.go +++ b/internal/customtypes/uuid.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes import ( diff --git a/internal/customtypes/uuid_test.go b/internal/customtypes/uuid_test.go index b1f7a4b1..e46815cd 100644 --- a/internal/customtypes/uuid_test.go +++ b/internal/customtypes/uuid_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package customtypes_test import ( diff --git a/internal/input/input.go b/internal/input/input.go index e932d46a..2128040a 100644 --- a/internal/input/input.go +++ b/internal/input/input.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package input import ( diff --git a/internal/input/input_test.go b/internal/input/input_test.go index 3c954627..03855c4b 100644 --- a/internal/input/input_test.go +++ b/internal/input/input_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package input import ( diff --git a/internal/logger/logger.go b/internal/logger/logger.go index de0f4196..27d2c77d 100644 --- a/internal/logger/logger.go +++ b/internal/logger/logger.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package logger import ( diff --git a/internal/output/output.go b/internal/output/output.go index 80430690..ee236d5d 100644 --- a/internal/output/output.go +++ b/internal/output/output.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package output import ( diff --git a/internal/profiles/validate.go b/internal/profiles/validate.go index f9a7e40d..865f6b5c 100644 --- a/internal/profiles/validate.go +++ b/internal/profiles/validate.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package profiles import ( diff --git a/internal/profiles/validate_test.go b/internal/profiles/validate_test.go index e0192e20..0e9a564b 100644 --- a/internal/profiles/validate_test.go +++ b/internal/profiles/validate_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package profiles_test import ( diff --git a/internal/profiles/viper.go b/internal/profiles/viper.go index c013f761..f2cecc7d 100644 --- a/internal/profiles/viper.go +++ b/internal/profiles/viper.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package profiles /* The main viper instance should ONLY interact with the configuration file diff --git a/internal/profiles/viper_test.go b/internal/profiles/viper_test.go index 4a1ea1b9..11f54766 100644 --- a/internal/profiles/viper_test.go +++ b/internal/profiles/viper_test.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package profiles_test import ( diff --git a/internal/testing/testutils/utils.go b/internal/testing/testutils/utils.go index 5065a4bf..5e725d32 100644 --- a/internal/testing/testutils/utils.go +++ b/internal/testing/testutils/utils.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package testutils import ( diff --git a/internal/testing/testutils_cobra/cobra_utils.go b/internal/testing/testutils_cobra/cobra_utils.go index c06368cf..76ee5de2 100644 --- a/internal/testing/testutils_cobra/cobra_utils.go +++ b/internal/testing/testutils_cobra/cobra_utils.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package testutils_cobra import ( diff --git a/internal/testing/testutils_resource/pingfederate/authentication_api_application.go b/internal/testing/testutils_resource/pingfederate/authentication_api_application.go index 9c2a7b42..1e644c9a 100644 --- a/internal/testing/testutils_resource/pingfederate/authentication_api_application.go +++ b/internal/testing/testutils_resource/pingfederate/authentication_api_application.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/authentication_api_settings.go b/internal/testing/testutils_resource/pingfederate/authentication_api_settings.go index c485ab52..9346d19d 100644 --- a/internal/testing/testutils_resource/pingfederate/authentication_api_settings.go +++ b/internal/testing/testutils_resource/pingfederate/authentication_api_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/authentication_policies.go b/internal/testing/testutils_resource/pingfederate/authentication_policies.go index 3dc512cd..71fd9b8d 100644 --- a/internal/testing/testutils_resource/pingfederate/authentication_policies.go +++ b/internal/testing/testutils_resource/pingfederate/authentication_policies.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/authentication_policies_fragment.go b/internal/testing/testutils_resource/pingfederate/authentication_policies_fragment.go index 28c1f472..c1a2f168 100644 --- a/internal/testing/testutils_resource/pingfederate/authentication_policies_fragment.go +++ b/internal/testing/testutils_resource/pingfederate/authentication_policies_fragment.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/authentication_policies_settings.go b/internal/testing/testutils_resource/pingfederate/authentication_policies_settings.go index 551ae0bf..413bb1a6 100644 --- a/internal/testing/testutils_resource/pingfederate/authentication_policies_settings.go +++ b/internal/testing/testutils_resource/pingfederate/authentication_policies_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/authentication_policy_contract.go b/internal/testing/testutils_resource/pingfederate/authentication_policy_contract.go index dd295b26..9b0fe4ac 100644 --- a/internal/testing/testutils_resource/pingfederate/authentication_policy_contract.go +++ b/internal/testing/testutils_resource/pingfederate/authentication_policy_contract.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/authentication_selector.go b/internal/testing/testutils_resource/pingfederate/authentication_selector.go index bc8bcb12..06029769 100644 --- a/internal/testing/testutils_resource/pingfederate/authentication_selector.go +++ b/internal/testing/testutils_resource/pingfederate/authentication_selector.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/captcha_provider.go b/internal/testing/testutils_resource/pingfederate/captcha_provider.go index a9fba4fd..3d3b3291 100644 --- a/internal/testing/testutils_resource/pingfederate/captcha_provider.go +++ b/internal/testing/testutils_resource/pingfederate/captcha_provider.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/captcha_provider_settings.go b/internal/testing/testutils_resource/pingfederate/captcha_provider_settings.go index 03f72b5e..6cf3cce2 100644 --- a/internal/testing/testutils_resource/pingfederate/captcha_provider_settings.go +++ b/internal/testing/testutils_resource/pingfederate/captcha_provider_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/certificate_ca.go b/internal/testing/testutils_resource/pingfederate/certificate_ca.go index 64371091..af640d10 100644 --- a/internal/testing/testutils_resource/pingfederate/certificate_ca.go +++ b/internal/testing/testutils_resource/pingfederate/certificate_ca.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/certificates_revocation_ocsp_certificate.go b/internal/testing/testutils_resource/pingfederate/certificates_revocation_ocsp_certificate.go index e7981aa6..02de9033 100644 --- a/internal/testing/testutils_resource/pingfederate/certificates_revocation_ocsp_certificate.go +++ b/internal/testing/testutils_resource/pingfederate/certificates_revocation_ocsp_certificate.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/certificates_revocation_settings.go b/internal/testing/testutils_resource/pingfederate/certificates_revocation_settings.go index 9bef033a..ff1d2edc 100644 --- a/internal/testing/testutils_resource/pingfederate/certificates_revocation_settings.go +++ b/internal/testing/testutils_resource/pingfederate/certificates_revocation_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/cluster_settings.go b/internal/testing/testutils_resource/pingfederate/cluster_settings.go index 2666309a..1a9eec23 100644 --- a/internal/testing/testutils_resource/pingfederate/cluster_settings.go +++ b/internal/testing/testutils_resource/pingfederate/cluster_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/configuration_encryption_keys_rotate.go b/internal/testing/testutils_resource/pingfederate/configuration_encryption_keys_rotate.go index a09ab597..900360fa 100644 --- a/internal/testing/testutils_resource/pingfederate/configuration_encryption_keys_rotate.go +++ b/internal/testing/testutils_resource/pingfederate/configuration_encryption_keys_rotate.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/data_store.go b/internal/testing/testutils_resource/pingfederate/data_store.go index f786a3b5..3ac21d60 100644 --- a/internal/testing/testutils_resource/pingfederate/data_store.go +++ b/internal/testing/testutils_resource/pingfederate/data_store.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/default_urls.go b/internal/testing/testutils_resource/pingfederate/default_urls.go index 74a20a16..7782da1e 100644 --- a/internal/testing/testutils_resource/pingfederate/default_urls.go +++ b/internal/testing/testutils_resource/pingfederate/default_urls.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/extended_properties.go b/internal/testing/testutils_resource/pingfederate/extended_properties.go index d0586346..0257ec01 100644 --- a/internal/testing/testutils_resource/pingfederate/extended_properties.go +++ b/internal/testing/testutils_resource/pingfederate/extended_properties.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/identity_store_provisioner.go b/internal/testing/testutils_resource/pingfederate/identity_store_provisioner.go index eed26b06..1917d7df 100644 --- a/internal/testing/testutils_resource/pingfederate/identity_store_provisioner.go +++ b/internal/testing/testutils_resource/pingfederate/identity_store_provisioner.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/idp_adapter.go b/internal/testing/testutils_resource/pingfederate/idp_adapter.go index fb53253b..ce8aa9cc 100644 --- a/internal/testing/testutils_resource/pingfederate/idp_adapter.go +++ b/internal/testing/testutils_resource/pingfederate/idp_adapter.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/idp_sp_connection.go b/internal/testing/testutils_resource/pingfederate/idp_sp_connection.go index 85defcdb..33d73f54 100644 --- a/internal/testing/testutils_resource/pingfederate/idp_sp_connection.go +++ b/internal/testing/testutils_resource/pingfederate/idp_sp_connection.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/idp_sts_request_parameters_contract.go b/internal/testing/testutils_resource/pingfederate/idp_sts_request_parameters_contract.go index 6e8ef186..daf912cd 100644 --- a/internal/testing/testutils_resource/pingfederate/idp_sts_request_parameters_contract.go +++ b/internal/testing/testutils_resource/pingfederate/idp_sts_request_parameters_contract.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/idp_to_sp_adapter_mapping.go b/internal/testing/testutils_resource/pingfederate/idp_to_sp_adapter_mapping.go index 0168f3a3..d82fe7b5 100644 --- a/internal/testing/testutils_resource/pingfederate/idp_to_sp_adapter_mapping.go +++ b/internal/testing/testutils_resource/pingfederate/idp_to_sp_adapter_mapping.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/idp_token_processor.go b/internal/testing/testutils_resource/pingfederate/idp_token_processor.go index fc83cbb9..b2d285df 100644 --- a/internal/testing/testutils_resource/pingfederate/idp_token_processor.go +++ b/internal/testing/testutils_resource/pingfederate/idp_token_processor.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/incoming_proxy_settings.go b/internal/testing/testutils_resource/pingfederate/incoming_proxy_settings.go index a1e8ccf8..079d6541 100644 --- a/internal/testing/testutils_resource/pingfederate/incoming_proxy_settings.go +++ b/internal/testing/testutils_resource/pingfederate/incoming_proxy_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/kerberos_realm.go b/internal/testing/testutils_resource/pingfederate/kerberos_realm.go index 66d15ad5..620e1785 100644 --- a/internal/testing/testutils_resource/pingfederate/kerberos_realm.go +++ b/internal/testing/testutils_resource/pingfederate/kerberos_realm.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/kerberos_realm_settings.go b/internal/testing/testutils_resource/pingfederate/kerberos_realm_settings.go index 870b1f80..d0c4a9fc 100644 --- a/internal/testing/testutils_resource/pingfederate/kerberos_realm_settings.go +++ b/internal/testing/testutils_resource/pingfederate/kerberos_realm_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/keypairs_oauth_openid_connect.go b/internal/testing/testutils_resource/pingfederate/keypairs_oauth_openid_connect.go index 9948b971..ecc928d5 100644 --- a/internal/testing/testutils_resource/pingfederate/keypairs_oauth_openid_connect.go +++ b/internal/testing/testutils_resource/pingfederate/keypairs_oauth_openid_connect.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/keypairs_oauth_openid_connect_additional_key_set.go b/internal/testing/testutils_resource/pingfederate/keypairs_oauth_openid_connect_additional_key_set.go index 8e4c16c6..bd19ccb1 100644 --- a/internal/testing/testutils_resource/pingfederate/keypairs_oauth_openid_connect_additional_key_set.go +++ b/internal/testing/testutils_resource/pingfederate/keypairs_oauth_openid_connect_additional_key_set.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/keypairs_signing_key.go b/internal/testing/testutils_resource/pingfederate/keypairs_signing_key.go index 7b69e8fe..70f559f6 100644 --- a/internal/testing/testutils_resource/pingfederate/keypairs_signing_key.go +++ b/internal/testing/testutils_resource/pingfederate/keypairs_signing_key.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/keypairs_signing_key_rotation_settings.go b/internal/testing/testutils_resource/pingfederate/keypairs_signing_key_rotation_settings.go index 546ab1d8..e5850006 100644 --- a/internal/testing/testutils_resource/pingfederate/keypairs_signing_key_rotation_settings.go +++ b/internal/testing/testutils_resource/pingfederate/keypairs_signing_key_rotation_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/keypairs_ssl_server_settings.go b/internal/testing/testutils_resource/pingfederate/keypairs_ssl_server_settings.go index e78c51b8..09bb043e 100644 --- a/internal/testing/testutils_resource/pingfederate/keypairs_ssl_server_settings.go +++ b/internal/testing/testutils_resource/pingfederate/keypairs_ssl_server_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/local_identity_profile.go b/internal/testing/testutils_resource/pingfederate/local_identity_profile.go index 000eebc5..0bb6aef1 100644 --- a/internal/testing/testutils_resource/pingfederate/local_identity_profile.go +++ b/internal/testing/testutils_resource/pingfederate/local_identity_profile.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/metadata_url.go b/internal/testing/testutils_resource/pingfederate/metadata_url.go index ca7d5bad..d5639725 100644 --- a/internal/testing/testutils_resource/pingfederate/metadata_url.go +++ b/internal/testing/testutils_resource/pingfederate/metadata_url.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/notification_publisher.go b/internal/testing/testutils_resource/pingfederate/notification_publisher.go index 2f8fc10b..21b7803f 100644 --- a/internal/testing/testutils_resource/pingfederate/notification_publisher.go +++ b/internal/testing/testutils_resource/pingfederate/notification_publisher.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/notification_publisher_settings.go b/internal/testing/testutils_resource/pingfederate/notification_publisher_settings.go index e91ddb3d..90bdb088 100644 --- a/internal/testing/testutils_resource/pingfederate/notification_publisher_settings.go +++ b/internal/testing/testutils_resource/pingfederate/notification_publisher_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/oauth_access_token_manager.go b/internal/testing/testutils_resource/pingfederate/oauth_access_token_manager.go index 11fc00e9..6c05477b 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_access_token_manager.go +++ b/internal/testing/testutils_resource/pingfederate/oauth_access_token_manager.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/oauth_access_token_manager_settings.go b/internal/testing/testutils_resource/pingfederate/oauth_access_token_manager_settings.go index 8c690eb9..cafec40e 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_access_token_manager_settings.go +++ b/internal/testing/testutils_resource/pingfederate/oauth_access_token_manager_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/oauth_access_token_mapping.go b/internal/testing/testutils_resource/pingfederate/oauth_access_token_mapping.go index 3eb2dc3b..b0377f19 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_access_token_mapping.go +++ b/internal/testing/testutils_resource/pingfederate/oauth_access_token_mapping.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/oauth_authentication_policy_contract_mapping.go b/internal/testing/testutils_resource/pingfederate/oauth_authentication_policy_contract_mapping.go index 029fb5b3..2eeeeb11 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_authentication_policy_contract_mapping.go +++ b/internal/testing/testutils_resource/pingfederate/oauth_authentication_policy_contract_mapping.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/oauth_ciba_server_policy_request_policy.go b/internal/testing/testutils_resource/pingfederate/oauth_ciba_server_policy_request_policy.go index 41dc0795..8cff850f 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_ciba_server_policy_request_policy.go +++ b/internal/testing/testutils_resource/pingfederate/oauth_ciba_server_policy_request_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/oauth_ciba_server_policy_settings.go b/internal/testing/testutils_resource/pingfederate/oauth_ciba_server_policy_settings.go index 73128929..b0039802 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_ciba_server_policy_settings.go +++ b/internal/testing/testutils_resource/pingfederate/oauth_ciba_server_policy_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/oauth_client.go b/internal/testing/testutils_resource/pingfederate/oauth_client.go index 407e6666..a06cf214 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_client.go +++ b/internal/testing/testutils_resource/pingfederate/oauth_client.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/oauth_client_registration_policy.go b/internal/testing/testutils_resource/pingfederate/oauth_client_registration_policy.go index 4804fddc..0ccbc6f4 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_client_registration_policy.go +++ b/internal/testing/testutils_resource/pingfederate/oauth_client_registration_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/oauth_client_settings.go b/internal/testing/testutils_resource/pingfederate/oauth_client_settings.go index 3d250c8b..57ba8d9b 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_client_settings.go +++ b/internal/testing/testutils_resource/pingfederate/oauth_client_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/oauth_idp_adapter_mapping.go b/internal/testing/testutils_resource/pingfederate/oauth_idp_adapter_mapping.go index 81749e56..c63c3a2b 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_idp_adapter_mapping.go +++ b/internal/testing/testutils_resource/pingfederate/oauth_idp_adapter_mapping.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/oauth_issuer.go b/internal/testing/testutils_resource/pingfederate/oauth_issuer.go index 919a7b78..c23468cb 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_issuer.go +++ b/internal/testing/testutils_resource/pingfederate/oauth_issuer.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/oauth_server_settings.go b/internal/testing/testutils_resource/pingfederate/oauth_server_settings.go index 88d7c1b1..839f7fc1 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_server_settings.go +++ b/internal/testing/testutils_resource/pingfederate/oauth_server_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_generator_settings.go b/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_generator_settings.go index 5ca36db9..57959887 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_generator_settings.go +++ b/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_generator_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_processor_policy.go b/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_processor_policy.go index 3509f9a8..da2c1173 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_processor_policy.go +++ b/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_processor_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_token_generator_mapping.go b/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_token_generator_mapping.go index f82dd41f..0d4c3733 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_token_generator_mapping.go +++ b/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_token_generator_mapping.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/openid_connect_policy.go b/internal/testing/testutils_resource/pingfederate/openid_connect_policy.go index a520c9fd..5c66acb7 100644 --- a/internal/testing/testutils_resource/pingfederate/openid_connect_policy.go +++ b/internal/testing/testutils_resource/pingfederate/openid_connect_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/openid_connect_settings.go b/internal/testing/testutils_resource/pingfederate/openid_connect_settings.go index 2765177a..69e2dc43 100644 --- a/internal/testing/testutils_resource/pingfederate/openid_connect_settings.go +++ b/internal/testing/testutils_resource/pingfederate/openid_connect_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/out_of_band_auth_plugins.go b/internal/testing/testutils_resource/pingfederate/out_of_band_auth_plugins.go index 7bb970c1..0f77574f 100644 --- a/internal/testing/testutils_resource/pingfederate/out_of_band_auth_plugins.go +++ b/internal/testing/testutils_resource/pingfederate/out_of_band_auth_plugins.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/password_credential_validator.go b/internal/testing/testutils_resource/pingfederate/password_credential_validator.go index 785dd748..a1a5bca0 100644 --- a/internal/testing/testutils_resource/pingfederate/password_credential_validator.go +++ b/internal/testing/testutils_resource/pingfederate/password_credential_validator.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/pingone_connection.go b/internal/testing/testutils_resource/pingfederate/pingone_connection.go index 6021e5cf..4397b1ec 100644 --- a/internal/testing/testutils_resource/pingfederate/pingone_connection.go +++ b/internal/testing/testutils_resource/pingfederate/pingone_connection.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/protocol_metadata_lifetime_settings.go b/internal/testing/testutils_resource/pingfederate/protocol_metadata_lifetime_settings.go index d83d5fa2..eafe9b54 100644 --- a/internal/testing/testutils_resource/pingfederate/protocol_metadata_lifetime_settings.go +++ b/internal/testing/testutils_resource/pingfederate/protocol_metadata_lifetime_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/protocol_metadata_signing_settings.go b/internal/testing/testutils_resource/pingfederate/protocol_metadata_signing_settings.go index 17992aed..86496265 100644 --- a/internal/testing/testutils_resource/pingfederate/protocol_metadata_signing_settings.go +++ b/internal/testing/testutils_resource/pingfederate/protocol_metadata_signing_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/redirect_validation.go b/internal/testing/testutils_resource/pingfederate/redirect_validation.go index 071c0fa9..8f8b85c8 100644 --- a/internal/testing/testutils_resource/pingfederate/redirect_validation.go +++ b/internal/testing/testutils_resource/pingfederate/redirect_validation.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/secret_manager.go b/internal/testing/testutils_resource/pingfederate/secret_manager.go index 9ddb2e57..8a089663 100644 --- a/internal/testing/testutils_resource/pingfederate/secret_manager.go +++ b/internal/testing/testutils_resource/pingfederate/secret_manager.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/server_settings.go b/internal/testing/testutils_resource/pingfederate/server_settings.go index 462fa195..52c4ccdf 100644 --- a/internal/testing/testutils_resource/pingfederate/server_settings.go +++ b/internal/testing/testutils_resource/pingfederate/server_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/server_settings_general.go b/internal/testing/testutils_resource/pingfederate/server_settings_general.go index c77cff57..a9678561 100644 --- a/internal/testing/testutils_resource/pingfederate/server_settings_general.go +++ b/internal/testing/testutils_resource/pingfederate/server_settings_general.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/server_settings_logging.go b/internal/testing/testutils_resource/pingfederate/server_settings_logging.go index 0d8adee3..d5f9b341 100644 --- a/internal/testing/testutils_resource/pingfederate/server_settings_logging.go +++ b/internal/testing/testutils_resource/pingfederate/server_settings_logging.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/server_settings_system_keys_rotate.go b/internal/testing/testutils_resource/pingfederate/server_settings_system_keys_rotate.go index 681b9bfa..8909c78f 100644 --- a/internal/testing/testutils_resource/pingfederate/server_settings_system_keys_rotate.go +++ b/internal/testing/testutils_resource/pingfederate/server_settings_system_keys_rotate.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/server_settings_ws_trust_sts_settings.go b/internal/testing/testutils_resource/pingfederate/server_settings_ws_trust_sts_settings.go index ce0a591e..b20e11bb 100644 --- a/internal/testing/testutils_resource/pingfederate/server_settings_ws_trust_sts_settings.go +++ b/internal/testing/testutils_resource/pingfederate/server_settings_ws_trust_sts_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/server_settings_ws_trust_sts_settings_issuer_certificate.go b/internal/testing/testutils_resource/pingfederate/server_settings_ws_trust_sts_settings_issuer_certificate.go index cd81ae0a..27b4b59a 100644 --- a/internal/testing/testutils_resource/pingfederate/server_settings_ws_trust_sts_settings_issuer_certificate.go +++ b/internal/testing/testutils_resource/pingfederate/server_settings_ws_trust_sts_settings_issuer_certificate.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/service_authentication.go b/internal/testing/testutils_resource/pingfederate/service_authentication.go index 63417fa3..a7022bca 100644 --- a/internal/testing/testutils_resource/pingfederate/service_authentication.go +++ b/internal/testing/testutils_resource/pingfederate/service_authentication.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/session_application_policy.go b/internal/testing/testutils_resource/pingfederate/session_application_policy.go index cb7488bd..d4885bdb 100644 --- a/internal/testing/testutils_resource/pingfederate/session_application_policy.go +++ b/internal/testing/testutils_resource/pingfederate/session_application_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/session_authentication_policies_global.go b/internal/testing/testutils_resource/pingfederate/session_authentication_policies_global.go index cbb71a20..d62fcc13 100644 --- a/internal/testing/testutils_resource/pingfederate/session_authentication_policies_global.go +++ b/internal/testing/testutils_resource/pingfederate/session_authentication_policies_global.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/session_authentication_policy.go b/internal/testing/testutils_resource/pingfederate/session_authentication_policy.go index 9b576f0f..40155588 100644 --- a/internal/testing/testutils_resource/pingfederate/session_authentication_policy.go +++ b/internal/testing/testutils_resource/pingfederate/session_authentication_policy.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/session_settings.go b/internal/testing/testutils_resource/pingfederate/session_settings.go index 460e579e..038eebbf 100644 --- a/internal/testing/testutils_resource/pingfederate/session_settings.go +++ b/internal/testing/testutils_resource/pingfederate/session_settings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/sp_adapter.go b/internal/testing/testutils_resource/pingfederate/sp_adapter.go index ad696736..9726ad0e 100644 --- a/internal/testing/testutils_resource/pingfederate/sp_adapter.go +++ b/internal/testing/testutils_resource/pingfederate/sp_adapter.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/sp_authentication_policy_contract_mapping.go b/internal/testing/testutils_resource/pingfederate/sp_authentication_policy_contract_mapping.go index 695468c4..11f57286 100644 --- a/internal/testing/testutils_resource/pingfederate/sp_authentication_policy_contract_mapping.go +++ b/internal/testing/testutils_resource/pingfederate/sp_authentication_policy_contract_mapping.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/sp_idp_connection.go b/internal/testing/testutils_resource/pingfederate/sp_idp_connection.go index a0c4347f..2ef04e95 100644 --- a/internal/testing/testutils_resource/pingfederate/sp_idp_connection.go +++ b/internal/testing/testutils_resource/pingfederate/sp_idp_connection.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/sp_target_url_mappings.go b/internal/testing/testutils_resource/pingfederate/sp_target_url_mappings.go index 8069e571..5a390fd6 100644 --- a/internal/testing/testutils_resource/pingfederate/sp_target_url_mappings.go +++ b/internal/testing/testutils_resource/pingfederate/sp_target_url_mappings.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/sp_token_generator.go b/internal/testing/testutils_resource/pingfederate/sp_token_generator.go index 5cfb4677..304c8b35 100644 --- a/internal/testing/testutils_resource/pingfederate/sp_token_generator.go +++ b/internal/testing/testutils_resource/pingfederate/sp_token_generator.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/token_processor_to_token_generator_mapping.go b/internal/testing/testutils_resource/pingfederate/token_processor_to_token_generator_mapping.go index d3a3a5be..5c232512 100644 --- a/internal/testing/testutils_resource/pingfederate/token_processor_to_token_generator_mapping.go +++ b/internal/testing/testutils_resource/pingfederate/token_processor_to_token_generator_mapping.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingfederate/virtual_host_names.go b/internal/testing/testutils_resource/pingfederate/virtual_host_names.go index 16da996e..f7d08a05 100644 --- a/internal/testing/testutils_resource/pingfederate/virtual_host_names.go +++ b/internal/testing/testutils_resource/pingfederate/virtual_host_names.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingfederate import ( diff --git a/internal/testing/testutils_resource/pingone/device_auth_application.go b/internal/testing/testutils_resource/pingone/device_auth_application.go index 564cbd9c..42901199 100644 --- a/internal/testing/testutils_resource/pingone/device_auth_application.go +++ b/internal/testing/testutils_resource/pingone/device_auth_application.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingone import ( diff --git a/internal/testing/testutils_resource/pingone/pingfederate_gateway.go b/internal/testing/testutils_resource/pingone/pingfederate_gateway.go index b9117c46..b3c4f039 100644 --- a/internal/testing/testutils_resource/pingone/pingfederate_gateway.go +++ b/internal/testing/testutils_resource/pingone/pingfederate_gateway.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingone import ( diff --git a/internal/testing/testutils_resource/pingone/pingfederate_gateway_credential.go b/internal/testing/testutils_resource/pingone/pingfederate_gateway_credential.go index 9c1a79a1..59baf340 100644 --- a/internal/testing/testutils_resource/pingone/pingfederate_gateway_credential.go +++ b/internal/testing/testutils_resource/pingone/pingfederate_gateway_credential.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package pingone import ( diff --git a/internal/testing/testutils_resource/testutils_resource.go b/internal/testing/testutils_resource/testutils_resource.go index 88b9077a..0895fe0a 100644 --- a/internal/testing/testutils_resource/testutils_resource.go +++ b/internal/testing/testutils_resource/testutils_resource.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package testutils_resource import ( diff --git a/internal/testing/testutils_terraform/terraform_utils.go b/internal/testing/testutils_terraform/terraform_utils.go index 6eaf7433..6c3ca05c 100644 --- a/internal/testing/testutils_terraform/terraform_utils.go +++ b/internal/testing/testutils_terraform/terraform_utils.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package testutils_terraform import ( diff --git a/internal/testing/testutils_viper/viper_utils.go b/internal/testing/testutils_viper/viper_utils.go index 72bca025..e61db85e 100644 --- a/internal/testing/testutils_viper/viper_utils.go +++ b/internal/testing/testutils_viper/viper_utils.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package testutils_viper import ( diff --git a/internal/utils/utils.go b/internal/utils/utils.go index a7184e14..e35b9a97 100644 --- a/internal/utils/utils.go +++ b/internal/utils/utils.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package utils func Pointer[T any](t T) *T { diff --git a/main.go b/main.go index 27a4119d..0cb7a89b 100644 --- a/main.go +++ b/main.go @@ -1,3 +1,5 @@ +// Copyright © 2025 Ping Identity Corporation + package main import ( From f19194157049c01002d8174dfd62482c01c79e7d Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Thu, 20 Mar 2025 17:40:30 -0600 Subject: [PATCH 02/18] WIP --- .../pingfederate_connector_test.go | 148 +++++++++--------- .../authentication_api_application.go | 1 + .../authentication_api_application_test.go | 9 +- .../resources/authentication_api_settings.go | 1 + .../authentication_api_settings_test.go | 9 +- .../resources/authentication_policies.go | 1 + .../authentication_policies_fragment.go | 1 + .../authentication_policies_fragment_test.go | 9 +- .../authentication_policies_settings.go | 1 + .../authentication_policies_settings_test.go | 9 +- .../resources/authentication_policies_test.go | 9 +- .../authentication_policy_contract.go | 1 + .../authentication_policy_contract_test.go | 9 +- .../resources/authentication_selector.go | 1 + .../resources/authentication_selector_test.go | 9 +- .../resources/captcha_provider.go | 1 + .../resources/captcha_provider_settings.go | 1 + .../captcha_provider_settings_test.go | 9 +- .../resources/captcha_provider_test.go | 9 +- .../pingfederate/resources/certificate_ca.go | 1 + .../resources/certificate_ca_test.go | 9 +- ...ertificates_revocation_ocsp_certificate.go | 1 + ...icates_revocation_ocsp_certificate_test.go | 9 +- .../certificates_revocation_settings.go | 1 + .../certificates_revocation_settings_test.go | 9 +- .../resources/cluster_settings.go | 1 + .../resources/cluster_settings_test.go | 12 +- .../configuration_encryption_keys_rotate.go | 1 + ...nfiguration_encryption_keys_rotate_test.go | 9 +- .../pingfederate/resources/data_store.go | 1 + .../pingfederate/resources/data_store_test.go | 11 +- .../pingfederate/resources/default_urls.go | 1 + .../resources/default_urls_test.go | 9 +- .../resources/extended_properties.go | 1 + .../resources/extended_properties_test.go | 9 +- .../resources/identity_store_provisioner.go | 1 + .../identity_store_provisioner_test.go | 9 +- .../pingfederate/resources/idp_adapter.go | 1 + .../resources/idp_adapter_test.go | 9 +- .../resources/idp_sp_connection.go | 1 + .../resources/idp_sp_connection_test.go | 9 +- .../idp_sts_request_parameters_contract.go | 1 + ...dp_sts_request_parameters_contract_test.go | 9 +- .../resources/idp_to_sp_adapter_mapping.go | 1 + .../idp_to_sp_adapter_mapping_test.go | 9 +- .../resources/idp_token_processor.go | 1 + .../resources/idp_token_processor_test.go | 9 +- .../resources/incoming_proxy_settings.go | 1 + .../resources/incoming_proxy_settings_test.go | 9 +- .../pingfederate/resources/kerberos_realm.go | 1 + .../resources/kerberos_realm_settings.go | 1 + .../resources/kerberos_realm_settings_test.go | 9 +- .../resources/kerberos_realm_test.go | 9 +- .../keypairs_oauth_openid_connect.go | 1 + ...oauth_openid_connect_additional_key_set.go | 1 + ..._openid_connect_additional_key_set_test.go | 9 +- .../keypairs_oauth_openid_connect_test.go | 9 +- .../keypairs_signing_key_rotation_settings.go | 1 + ...airs_signing_key_rotation_settings_test.go | 9 +- .../resources/keypairs_ssl_server_settings.go | 1 + .../keypairs_ssl_server_settings_test.go | 9 +- .../resources/local_identity_profile.go | 1 + .../resources/local_identity_profile_test.go | 9 +- .../pingfederate/resources/metadata_url.go | 1 + .../resources/metadata_url_test.go | 9 +- .../resources/notification_publisher.go | 1 + .../notification_publisher_settings.go | 1 + .../notification_publisher_settings_test.go | 9 +- .../resources/notification_publisher_test.go | 9 +- .../resources/oauth_access_token_manager.go | 1 + .../oauth_access_token_manager_settings.go | 1 + ...auth_access_token_manager_settings_test.go | 9 +- .../oauth_access_token_manager_test.go | 9 +- .../resources/oauth_access_token_mapping.go | 1 + .../oauth_access_token_mapping_test.go | 9 +- ..._authentication_policy_contract_mapping.go | 1 + ...entication_policy_contract_mapping_test.go | 9 +- ...oauth_ciba_server_policy_request_policy.go | 1 + ..._ciba_server_policy_request_policy_test.go | 9 +- .../oauth_ciba_server_policy_settings.go | 1 + .../oauth_ciba_server_policy_settings_test.go | 9 +- .../pingfederate/resources/oauth_client.go | 1 + .../oauth_client_registration_policy.go | 1 + .../oauth_client_registration_policy_test.go | 9 +- .../resources/oauth_client_settings.go | 1 + .../resources/oauth_client_settings_test.go | 9 +- .../resources/oauth_client_test.go | 9 +- .../resources/oauth_idp_adapter_mapping.go | 1 + .../oauth_idp_adapter_mapping_test.go | 9 +- .../pingfederate/resources/oauth_issuer.go | 1 + .../resources/oauth_issuer_test.go | 9 +- .../resources/oauth_server_settings.go | 1 + .../resources/oauth_server_settings_test.go | 9 +- ...oauth_token_exchange_generator_settings.go | 1 + ..._token_exchange_generator_settings_test.go | 9 +- ..._token_exchange_token_generator_mapping.go | 1 + ...n_exchange_token_generator_mapping_test.go | 9 +- .../resources/openid_connect_policy.go | 1 + .../resources/openid_connect_policy_test.go | 9 +- .../resources/openid_connect_settings.go | 1 + .../resources/openid_connect_settings_test.go | 9 +- .../password_credential_validator.go | 1 + .../password_credential_validator_test.go | 9 +- .../resources/pingone_connection.go | 1 + .../resources/pingone_connection_test.go | 9 +- .../protocol_metadata_lifetime_settings.go | 1 + ...rotocol_metadata_lifetime_settings_test.go | 9 +- .../protocol_metadata_signing_settings.go | 1 + ...protocol_metadata_signing_settings_test.go | 9 +- .../resources/redirect_validation.go | 1 + .../resources/redirect_validation_test.go | 9 +- .../pingfederate/resources/secret_manager.go | 1 + .../resources/secret_manager_test.go | 9 +- .../pingfederate/resources/server_settings.go | 1 + .../resources/server_settings_general.go | 1 + .../resources/server_settings_general_test.go | 9 +- .../resources/server_settings_logging.go | 1 + .../resources/server_settings_logging_test.go | 9 +- .../server_settings_system_keys_rotate.go | 1 + ...server_settings_system_keys_rotate_test.go | 9 +- .../resources/server_settings_test.go | 9 +- .../server_settings_ws_trust_sts_settings.go | 1 + ...s_trust_sts_settings_issuer_certificate.go | 1 + ...st_sts_settings_issuer_certificate_test.go | 9 +- ...ver_settings_ws_trust_sts_settings_test.go | 9 +- .../resources/service_authentication.go | 1 + .../resources/service_authentication_test.go | 9 +- .../resources/session_application_policy.go | 1 + .../session_application_policy_test.go | 9 +- .../session_authentication_policies_global.go | 1 + ...ion_authentication_policies_global_test.go | 9 +- .../session_authentication_policy.go | 1 + .../session_authentication_policy_test.go | 9 +- .../resources/session_settings.go | 1 + .../resources/session_settings_test.go | 9 +- .../pingfederate/resources/sp_adapter.go | 1 + .../pingfederate/resources/sp_adapter_test.go | 9 +- ..._authentication_policy_contract_mapping.go | 1 + ...entication_policy_contract_mapping_test.go | 9 +- .../resources/sp_idp_connection.go | 1 + .../resources/sp_idp_connection_test.go | 9 +- .../resources/sp_target_url_mappings.go | 1 + .../resources/sp_target_url_mappings_test.go | 9 +- ...en_processor_to_token_generator_mapping.go | 1 + ...ocessor_to_token_generator_mapping_test.go | 9 +- .../resources/virtual_host_names.go | 1 + .../resources/virtual_host_names_test.go | 9 +- .../pingone/platform/resources/agreement.go | 87 ++++++++++ .../resources/agreement_localization.go | 93 +++++++++++ .../agreement_localization_revision.go | 147 +++++++++++++++++ .../agreement_localization_revision_test.go | 33 ++++ .../resources/agreement_localization_test.go | 33 ++++ .../platform/resources/agreement_test.go | 33 ++++ .../platform/resources/branding_settings.go | 66 ++++++++ .../resources/branding_settings_test.go | 28 ++++ .../platform/resources/branding_theme.go | 87 ++++++++++ .../resources/branding_theme_default.go | 66 ++++++++ .../resources/branding_theme_default_test.go | 28 ++++ .../platform/resources/branding_theme_test.go | 33 ++++ .../pingone/platform/resources/certificate.go | 87 ++++++++++ .../platform/resources/certificate_test.go | 33 ++++ .../platform/resources/custom_domain.go | 87 ++++++++++ .../platform/resources/custom_domain_test.go | 33 ++++ .../pingone/platform/resources/environment.go | 87 ++++++++++ .../platform/resources/environment_test.go | 33 ++++ .../pingone/platform/resources/form.go | 87 ++++++++++ .../pingone/platform/resources/form_test.go | 33 ++++ .../platform/resources/forms_recaptcha_v2.go | 66 ++++++++ .../resources/forms_recaptcha_v2_test.go | 28 ++++ .../pingone/platform/resources/gateway.go | 87 ++++++++++ .../platform/resources/gateway_credential.go | 91 +++++++++++ .../resources/gateway_credential_test.go | 33 ++++ .../resources/gateway_role_assignment.go | 91 +++++++++++ .../resources/gateway_role_assignment_test.go | 33 ++++ .../platform/resources/gateway_test.go | 33 ++++ .../resources/identity_propagation_plan.go | 87 ++++++++++ .../identity_propagation_plan_test.go | 33 ++++ .../pingone/platform/resources/key.go | 87 ++++++++++ .../platform/resources/key_rotation_policy.go | 87 ++++++++++ .../resources/key_rotation_policy_test.go | 33 ++++ .../pingone/platform/resources/key_test.go | 33 ++++ .../pingone/platform/resources/langauge.go | 89 +++++++++++ .../platform/resources/langauge_test.go | 33 ++++ .../platform/resources/notification_policy.go | 87 ++++++++++ .../resources/notification_policy_test.go | 33 ++++ .../resources/notification_settings.go | 66 ++++++++ .../resources/notification_settings_email.go | 66 ++++++++ .../notification_settings_email_test.go | 28 ++++ .../resources/notification_settings_test.go | 28 ++++ .../notification_template_content.go | 91 +++++++++++ .../notification_template_content_test.go | 33 ++++ .../resources/phone_delivery_settings.go | 87 ++++++++++ .../resources/phone_delivery_settings_test.go | 33 ++++ .../resources/pingone_agreement_test.go | 34 ---- .../pingone_branding_settings_test.go | 28 ---- .../resources/trusted_email_address.go | 91 +++++++++++ .../resources/trusted_email_address_test.go | 33 ++++ .../resources/trusted_email_domain.go | 87 ++++++++++ .../resources/trusted_email_domain_test.go | 33 ++++ .../pingone/platform/resources/webhook.go | 87 ++++++++++ .../platform/resources/webhook_test.go | 33 ++++ .../pingone_agreement.go | 0 .../pingone_agreement_enable.go | 0 .../pingone_agreement_enable_test.go | 0 .../pingone_agreement_localization.go | 0 .../pingone_agreement_localization_enable.go | 0 ...gone_agreement_localization_enable_test.go | 0 ...pingone_agreement_localization_revision.go | 0 ...ne_agreement_localization_revision_test.go | 0 .../pingone_agreement_localization_test.go | 0 .../resources_old/pingone_agreement_test.go | 33 ++++ .../pingone_alert_channel.go | 0 .../pingone_alert_channel_test.go | 0 .../pingone_branding_settings.go | 0 .../pingone_branding_settings_test.go | 28 ++++ .../pingone_branding_theme.go | 0 .../pingone_branding_theme_default.go | 0 .../pingone_branding_theme_default_test.go | 0 .../pingone_branding_theme_test.go | 0 .../pingone_certificate.go | 0 .../pingone_certificate_test.go | 0 .../pingone_custom_domain.go | 0 .../pingone_custom_domain_test.go | 0 .../pingone_environment.go | 0 .../pingone_environment_test.go | 0 .../pingone_form.go | 0 .../pingone_form_test.go | 0 .../pingone_forms_recaptcha_v2.go | 0 .../pingone_forms_recaptcha_v2_test.go | 0 .../pingone_gateway.go | 0 .../pingone_gateway_credential.go | 0 .../pingone_gateway_credential_test.go | 0 .../pingone_gateway_role_assignment.go | 0 .../pingone_gateway_role_assignment_test.go | 0 .../pingone_gateway_test.go | 0 .../pingone_identity_propagation_plan.go | 0 .../pingone_identity_propagation_plan_test.go | 0 .../pingone_key.go | 0 .../pingone_key_rotation_policy.go | 0 .../pingone_key_rotation_policy_test.go | 0 .../pingone_key_test.go | 0 .../pingone_language.go | 0 .../pingone_language_test.go | 0 .../pingone_language_update.go | 0 .../pingone_language_update_test.go | 0 .../pingone_notification_policy.go | 0 .../pingone_notification_policy_test.go | 0 .../pingone_notification_settings.go | 0 .../pingone_notification_settings_email.go | 0 ...ingone_notification_settings_email_test.go | 0 .../pingone_notification_settings_test.go | 0 .../pingone_notification_template_content.go | 0 ...gone_notification_template_content_test.go | 0 .../pingone_phone_delivery_settings.go | 0 .../pingone_phone_delivery_settings_test.go | 0 .../pingone_system_application.go | 0 .../pingone_system_application_test.go | 0 .../pingone_trusted_email_address.go | 0 .../pingone_trusted_email_address_test.go | 0 .../pingone_trusted_email_domain.go | 0 .../pingone_trusted_email_domain_test.go | 0 .../pingone_webhook.go | 0 .../pingone_webhook_test.go | 0 .../authentication_api_application.go | 24 ++- .../authentication_api_settings.go | 5 +- .../authentication_policies.go | 5 +- .../authentication_policies_fragment.go | 28 ++-- .../authentication_policies_settings.go | 5 +- .../authentication_policy_contract.go | 24 ++- .../authentication_selector.go | 24 ++- .../captcha_provider.go | 24 ++- .../captcha_provider_settings.go | 5 +- .../certificate_ca.go | 26 +-- ...ertificates_revocation_ocsp_certificate.go | 26 +-- .../certificates_revocation_settings.go | 5 +- .../cluster_settings.go | 5 +- .../configuration_encryption_keys_rotate.go | 5 +- .../data_store.go | 5 +- .../default_urls.go | 5 +- .../extended_properties.go | 5 +- .../identity_store_provisioner.go | 24 ++- .../idp_adapter.go | 28 ++-- .../idp_sp_connection.go | 32 ++-- .../idp_sts_request_parameters_contract.go | 24 ++- .../idp_to_sp_adapter_mapping.go | 34 ++-- .../idp_token_processor.go | 28 ++-- .../incoming_proxy_settings.go | 5 +- .../kerberos_realm.go | 24 ++- .../kerberos_realm_settings.go | 5 +- .../keypairs_oauth_openid_connect.go | 5 +- ...oauth_openid_connect_additional_key_set.go | 32 ++-- .../keypairs_signing_key.go | 26 +-- .../keypairs_signing_key_rotation_settings.go | 26 +-- .../keypairs_ssl_server_settings.go | 5 +- .../local_identity_profile.go | 28 ++-- .../metadata_url.go | 24 ++- .../notification_publisher.go | 24 ++- .../notification_publisher_settings.go | 5 +- .../oauth_access_token_manager.go | 28 ++-- .../oauth_access_token_manager_settings.go | 5 +- .../oauth_access_token_mapping.go | 28 ++-- ..._authentication_policy_contract_mapping.go | 26 +-- ...oauth_ciba_server_policy_request_policy.go | 28 ++-- .../oauth_ciba_server_policy_settings.go | 5 +- .../oauth_client.go | 24 ++- .../oauth_client_registration_policy.go | 24 ++- .../oauth_client_settings.go | 5 +- .../oauth_idp_adapter_mapping.go | 26 +-- .../oauth_issuer.go | 24 ++- .../oauth_server_settings.go | 5 +- ...oauth_token_exchange_generator_settings.go | 5 +- .../oauth_token_exchange_processor_policy.go | 26 +-- ..._token_exchange_token_generator_mapping.go | 34 ++-- .../openid_connect_policy.go | 28 ++-- .../openid_connect_settings.go | 5 +- .../out_of_band_auth_plugins.go | 31 ++-- .../password_credential_validator.go | 24 ++- .../pingone_connection.go | 30 ++-- .../protocol_metadata_lifetime_settings.go | 5 +- .../protocol_metadata_signing_settings.go | 5 +- .../redirect_validation.go | 5 +- .../secret_manager.go | 24 ++- .../server_settings.go | 5 +- .../server_settings_general.go | 5 +- .../server_settings_logging.go | 5 +- .../server_settings_system_keys_rotate.go | 5 +- .../server_settings_ws_trust_sts_settings.go | 5 +- ...s_trust_sts_settings_issuer_certificate.go | 26 +-- .../service_authentication.go | 5 +- .../session_application_policy.go | 5 +- .../session_authentication_policies_global.go | 5 +- .../session_authentication_policy.go | 30 ++-- .../session_settings.go | 5 +- .../sp_adapter.go | 24 ++- ..._authentication_policy_contract_mapping.go | 34 ++-- .../sp_idp_connection.go | 24 ++- .../sp_target_url_mappings.go | 5 +- .../sp_token_generator.go | 26 +-- ...en_processor_to_token_generator_mapping.go | 34 ++-- .../virtual_host_names.go | 5 +- .../pingone/pingfederate_gateway.go | 79 ---------- .../pingfederate_gateway_credential.go | 58 ------- .../pingone_testable_resources/agreement.go | 82 ++++++++++ .../agreement_localization.go | 86 ++++++++++ .../agreement_localization_revision.go | 95 +++++++++++ .../branding_settings.go | 24 +++ .../branding_theme.go | 112 +++++++++++++ .../branding_theme_default.go | 24 +++ .../pingone_testable_resources/certificate.go | 81 ++++++++++ .../custom_domain.go | 78 +++++++++ .../device_auth_application.go | 21 ++- .../pingone_testable_resources/environment.go | 24 +++ .../pingone_testable_resources/form.go | 117 ++++++++++++++ .../forms_recaptcha_v2.go | 24 +++ .../pingone_testable_resources/gateway.go | 84 ++++++++++ .../gateway_credential.go | 77 +++++++++ .../gateway_role_assignment.go | 104 ++++++++++++ .../identity_propagation_plan.go | 78 +++++++++ .../pingone_testable_resources/key.go | 89 +++++++++++ .../key_rotation_policy.go | 86 ++++++++++ .../pingone_testable_resources/langauge.go | 78 +++++++++ .../notification_policy.go | 101 ++++++++++++ .../notification_settings.go | 24 +++ .../notification_settings_email.go | 24 +++ .../notification_template_content.go | 89 +++++++++++ .../phone_delivery_settings.go | 126 +++++++++++++++ .../trusted_email_address.go | 84 ++++++++++ .../trusted_email_domain.go | 78 +++++++++ .../pingone_testable_resources/webhook.go | 93 +++++++++++ .../testutils_resource/testutils_resource.go | 37 +++-- 370 files changed, 6491 insertions(+), 1054 deletions(-) create mode 100644 internal/connector/pingone/platform/resources/agreement.go create mode 100644 internal/connector/pingone/platform/resources/agreement_localization.go create mode 100644 internal/connector/pingone/platform/resources/agreement_localization_revision.go create mode 100644 internal/connector/pingone/platform/resources/agreement_localization_revision_test.go create mode 100644 internal/connector/pingone/platform/resources/agreement_localization_test.go create mode 100644 internal/connector/pingone/platform/resources/agreement_test.go create mode 100644 internal/connector/pingone/platform/resources/branding_settings.go create mode 100644 internal/connector/pingone/platform/resources/branding_settings_test.go create mode 100644 internal/connector/pingone/platform/resources/branding_theme.go create mode 100644 internal/connector/pingone/platform/resources/branding_theme_default.go create mode 100644 internal/connector/pingone/platform/resources/branding_theme_default_test.go create mode 100644 internal/connector/pingone/platform/resources/branding_theme_test.go create mode 100644 internal/connector/pingone/platform/resources/certificate.go create mode 100644 internal/connector/pingone/platform/resources/certificate_test.go create mode 100644 internal/connector/pingone/platform/resources/custom_domain.go create mode 100644 internal/connector/pingone/platform/resources/custom_domain_test.go create mode 100644 internal/connector/pingone/platform/resources/environment.go create mode 100644 internal/connector/pingone/platform/resources/environment_test.go create mode 100644 internal/connector/pingone/platform/resources/form.go create mode 100644 internal/connector/pingone/platform/resources/form_test.go create mode 100644 internal/connector/pingone/platform/resources/forms_recaptcha_v2.go create mode 100644 internal/connector/pingone/platform/resources/forms_recaptcha_v2_test.go create mode 100644 internal/connector/pingone/platform/resources/gateway.go create mode 100644 internal/connector/pingone/platform/resources/gateway_credential.go create mode 100644 internal/connector/pingone/platform/resources/gateway_credential_test.go create mode 100644 internal/connector/pingone/platform/resources/gateway_role_assignment.go create mode 100644 internal/connector/pingone/platform/resources/gateway_role_assignment_test.go create mode 100644 internal/connector/pingone/platform/resources/gateway_test.go create mode 100644 internal/connector/pingone/platform/resources/identity_propagation_plan.go create mode 100644 internal/connector/pingone/platform/resources/identity_propagation_plan_test.go create mode 100644 internal/connector/pingone/platform/resources/key.go create mode 100644 internal/connector/pingone/platform/resources/key_rotation_policy.go create mode 100644 internal/connector/pingone/platform/resources/key_rotation_policy_test.go create mode 100644 internal/connector/pingone/platform/resources/key_test.go create mode 100644 internal/connector/pingone/platform/resources/langauge.go create mode 100644 internal/connector/pingone/platform/resources/langauge_test.go create mode 100644 internal/connector/pingone/platform/resources/notification_policy.go create mode 100644 internal/connector/pingone/platform/resources/notification_policy_test.go create mode 100644 internal/connector/pingone/platform/resources/notification_settings.go create mode 100644 internal/connector/pingone/platform/resources/notification_settings_email.go create mode 100644 internal/connector/pingone/platform/resources/notification_settings_email_test.go create mode 100644 internal/connector/pingone/platform/resources/notification_settings_test.go create mode 100644 internal/connector/pingone/platform/resources/notification_template_content.go create mode 100644 internal/connector/pingone/platform/resources/notification_template_content_test.go create mode 100644 internal/connector/pingone/platform/resources/phone_delivery_settings.go create mode 100644 internal/connector/pingone/platform/resources/phone_delivery_settings_test.go delete mode 100644 internal/connector/pingone/platform/resources/pingone_agreement_test.go delete mode 100644 internal/connector/pingone/platform/resources/pingone_branding_settings_test.go create mode 100644 internal/connector/pingone/platform/resources/trusted_email_address.go create mode 100644 internal/connector/pingone/platform/resources/trusted_email_address_test.go create mode 100644 internal/connector/pingone/platform/resources/trusted_email_domain.go create mode 100644 internal/connector/pingone/platform/resources/trusted_email_domain_test.go create mode 100644 internal/connector/pingone/platform/resources/webhook.go create mode 100644 internal/connector/pingone/platform/resources/webhook_test.go rename internal/connector/pingone/platform/{resources => resources_old}/pingone_agreement.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_agreement_enable.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_agreement_enable_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_agreement_localization.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_agreement_localization_enable.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_agreement_localization_enable_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_agreement_localization_revision.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_agreement_localization_revision_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_agreement_localization_test.go (100%) create mode 100644 internal/connector/pingone/platform/resources_old/pingone_agreement_test.go rename internal/connector/pingone/platform/{resources => resources_old}/pingone_alert_channel.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_alert_channel_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_branding_settings.go (100%) create mode 100644 internal/connector/pingone/platform/resources_old/pingone_branding_settings_test.go rename internal/connector/pingone/platform/{resources => resources_old}/pingone_branding_theme.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_branding_theme_default.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_branding_theme_default_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_branding_theme_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_certificate.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_certificate_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_custom_domain.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_custom_domain_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_environment.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_environment_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_form.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_form_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_forms_recaptcha_v2.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_forms_recaptcha_v2_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_gateway.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_gateway_credential.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_gateway_credential_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_gateway_role_assignment.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_gateway_role_assignment_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_gateway_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_identity_propagation_plan.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_identity_propagation_plan_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_key.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_key_rotation_policy.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_key_rotation_policy_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_key_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_language.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_language_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_language_update.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_language_update_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_notification_policy.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_notification_policy_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_notification_settings.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_notification_settings_email.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_notification_settings_email_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_notification_settings_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_notification_template_content.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_notification_template_content_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_phone_delivery_settings.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_phone_delivery_settings_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_system_application.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_system_application_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_trusted_email_address.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_trusted_email_address_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_trusted_email_domain.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_trusted_email_domain_test.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_webhook.go (100%) rename internal/connector/pingone/platform/{resources => resources_old}/pingone_webhook_test.go (100%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/authentication_api_application.go (76%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/authentication_api_settings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/authentication_policies.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/authentication_policies_fragment.go (80%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/authentication_policies_settings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/authentication_policy_contract.go (77%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/authentication_selector.go (81%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/captcha_provider.go (80%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/captcha_provider_settings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/certificate_ca.go (76%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/certificates_revocation_ocsp_certificate.go (75%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/certificates_revocation_settings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/cluster_settings.go (73%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/configuration_encryption_keys_rotate.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/data_store.go (73%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/default_urls.go (73%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/extended_properties.go (73%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/identity_store_provisioner.go (79%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/idp_adapter.go (82%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/idp_sp_connection.go (82%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/idp_sts_request_parameters_contract.go (76%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/idp_to_sp_adapter_mapping.go (74%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/idp_token_processor.go (80%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/incoming_proxy_settings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/kerberos_realm.go (79%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/kerberos_realm_settings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/keypairs_oauth_openid_connect.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/keypairs_oauth_openid_connect_additional_key_set.go (74%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/keypairs_signing_key.go (77%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/keypairs_signing_key_rotation_settings.go (76%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/keypairs_ssl_server_settings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/local_identity_profile.go (76%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/metadata_url.go (77%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/notification_publisher.go (79%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/notification_publisher_settings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/oauth_access_token_manager.go (81%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/oauth_access_token_manager_settings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/oauth_access_token_mapping.go (76%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/oauth_authentication_policy_contract_mapping.go (77%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/oauth_ciba_server_policy_request_policy.go (80%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/oauth_ciba_server_policy_settings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/oauth_client.go (77%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/oauth_client_registration_policy.go (77%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/oauth_client_settings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/oauth_idp_adapter_mapping.go (78%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/oauth_issuer.go (77%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/oauth_server_settings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/oauth_token_exchange_generator_settings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/oauth_token_exchange_processor_policy.go (79%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/oauth_token_exchange_token_generator_mapping.go (73%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/openid_connect_policy.go (78%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/openid_connect_settings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/out_of_band_auth_plugins.go (77%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/password_credential_validator.go (81%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/pingone_connection.go (75%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/protocol_metadata_lifetime_settings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/protocol_metadata_signing_settings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/redirect_validation.go (73%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/secret_manager.go (79%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/server_settings.go (73%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/server_settings_general.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/server_settings_logging.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/server_settings_system_keys_rotate.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/server_settings_ws_trust_sts_settings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/server_settings_ws_trust_sts_settings_issuer_certificate.go (73%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/service_authentication.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/session_application_policy.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/session_authentication_policies_global.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/session_authentication_policy.go (73%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/session_settings.go (73%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/sp_adapter.go (79%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/sp_authentication_policy_contract_mapping.go (73%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/sp_idp_connection.go (82%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/sp_target_url_mappings.go (72%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/sp_token_generator.go (81%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/token_processor_to_token_generator_mapping.go (73%) rename internal/testing/testutils_resource/{pingfederate => pingfederate_testable_resources}/virtual_host_names.go (73%) delete mode 100644 internal/testing/testutils_resource/pingone/pingfederate_gateway.go delete mode 100644 internal/testing/testutils_resource/pingone/pingfederate_gateway_credential.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/agreement.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/agreement_localization.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/branding_settings.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/branding_theme.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/branding_theme_default.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/certificate.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/custom_domain.go rename internal/testing/testutils_resource/{pingone => pingone_testable_resources}/device_auth_application.go (83%) create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/environment.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/form.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/gateway.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/gateway_credential.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/identity_propagation_plan.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/key.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/key_rotation_policy.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/langauge.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/notification_policy.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/notification_settings.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/notification_settings_email.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/trusted_email_address.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/trusted_email_domain.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/webhook.go diff --git a/internal/connector/pingfederate/pingfederate_connector_test.go b/internal/connector/pingfederate/pingfederate_connector_test.go index b936197d..c153a7e3 100644 --- a/internal/connector/pingfederate/pingfederate_connector_test.go +++ b/internal/connector/pingfederate/pingfederate_connector_test.go @@ -7,7 +7,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" "github.com/pingidentity/pingcli/internal/testing/testutils_terraform" ) @@ -23,378 +23,378 @@ func TestPingFederateTerraformPlan(t *testing.T) { }{ { name: "PingFederateAuthenticationApiApplication", - testableResource: pingfederate.TestableResource_PingFederateAuthenticationApiApplication(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.AuthenticationApiApplication(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateAuthenticationApiSettings", - testableResource: pingfederate.TestableResource_PingFederateAuthenticationApiSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.AuthenticationApiSettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateAuthenticationPolicies", - testableResource: pingfederate.TestableResource_PingFederateAuthenticationPolicies(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.AuthenticationPolicies(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateAuthenticationPoliciesFragment", - testableResource: pingfederate.TestableResource_PingFederateAuthenticationPoliciesFragment(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.AuthenticationPoliciesFragment(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateAuthenticationPoliciesSettings", - testableResource: pingfederate.TestableResource_PingFederateAuthenticationPoliciesSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.AuthenticationPoliciesSettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateAuthenticationPolicyContract", - testableResource: pingfederate.TestableResource_PingFederateAuthenticationPolicyContract(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.AuthenticationPolicyContract(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateAuthenticationSelector", - testableResource: pingfederate.TestableResource_PingFederateAuthenticationSelector(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.AuthenticationSelector(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateCaptchaProvider", - testableResource: pingfederate.TestableResource_PingFederateCaptchaProvider(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.CaptchaProvider(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateCaptchaProviderSettings", - testableResource: pingfederate.TestableResource_PingFederateCaptchaProviderSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.CaptchaProviderSettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateCertificateCa", - testableResource: pingfederate.TestableResource_PingFederateCertificateCa(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.CertificateCa(t, pingFederateClientInfo), ignoredErrors: []string{ "Error: Invalid Attribute Value Length", }, }, { name: "PingFederateCertificatesRevocationOcspCertificate", - testableResource: pingfederate.TestableResource_PingFederateCertificatesRevocationOcspCertificate(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.CertificatesRevocationOcspCertificate(t, pingFederateClientInfo), ignoredErrors: []string{ "Error: Missing Configuration for Required Attribute", }, }, { name: "PingFederateCertificatesRevocationSettings", - testableResource: pingfederate.TestableResource_PingFederateCertificatesRevocationSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.CertificatesRevocationSettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateClusterSettings", - testableResource: pingfederate.TestableResource_PingFederateClusterSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.ClusterSettings(t, pingFederateClientInfo), ignoredErrors: []string{ "Error: PingFederate API error", }, }, { name: "PingFederateConfigurationEncryptionKeysRotate", - testableResource: pingfederate.TestableResource_PingFederateConfigurationEncryptionKeysRotate(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.ConfigurationEncryptionKeysRotate(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateDataStore", - testableResource: pingfederate.TestableResource_PingFederateDataStore(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.DataStore(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateDefaultUrls", - testableResource: pingfederate.TestableResource_PingFederateDefaultUrls(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.DefaultUrls(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateExtendedProperties", - testableResource: pingfederate.TestableResource_PingFederateExtendedProperties(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.ExtendedProperties(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateIdentityStoreProvisioner", - testableResource: pingfederate.TestableResource_PingFederateIdentityStoreProvisioner(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.IdentityStoreProvisioner(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateIdpAdapter", - testableResource: pingfederate.TestableResource_PingFederateIdpAdapter(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.IdpAdapter(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateIdpSpConnection", - testableResource: pingfederate.TestableResource_PingFederateIdpSpConnection(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.IdpSpConnection(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateIdpStsRequestParametersContract", - testableResource: pingfederate.TestableResource_PingFederateIdpStsRequestParametersContract(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.IdpStsRequestParametersContract(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateIdpTokenProcessor", - testableResource: pingfederate.TestableResource_PingFederateIdpTokenProcessor(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.IdpTokenProcessor(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateIdpToSpAdapterMapping", - testableResource: pingfederate.TestableResource_PingFederateIdpToSpAdapterMapping(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.IdpToSpAdapterMapping(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateIncomingProxySettings", - testableResource: pingfederate.TestableResource_PingFederateIncomingProxySettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.IncomingProxySettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateKerberosRealm", - testableResource: pingfederate.TestableResource_PingFederateKerberosRealm(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.KerberosRealm(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateKerberosRealmSettings", - testableResource: pingfederate.TestableResource_PingFederateKerberosRealmSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.KerberosRealmSettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateKeypairsOauthOpenidConnect", - testableResource: pingfederate.TestableResource_PingFederateKeypairsOauthOpenidConnect(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.KeypairsOauthOpenidConnect(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateKeypairsOauthOpenidConnectAdditionalKeySet", - testableResource: pingfederate.TestableResource_PingFederateKeypairsOauthOpenidConnectAdditionalKeySet(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.KeypairsOauthOpenidConnectAdditionalKeySet(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateKeypairsSigningKeyRotationSettings", - testableResource: pingfederate.TestableResource_PingFederateKeypairsSigningKeyRotationSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.KeypairsSigningKeyRotationSettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateKeypairsSslServerSettings", - testableResource: pingfederate.TestableResource_PingFederateKeypairsSslServerSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.KeypairsSslServerSettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateLocalIdentityProfile", - testableResource: pingfederate.TestableResource_PingFederateLocalIdentityProfile(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.LocalIdentityProfile(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateMetadataUrl", - testableResource: pingfederate.TestableResource_PingFederateMetadataUrl(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.MetadataUrl(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateNotificationPublisher", - testableResource: pingfederate.TestableResource_PingFederateNotificationPublisher(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.NotificationPublisher(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateNotificationPublisherSettings", - testableResource: pingfederate.TestableResource_PingFederateNotificationPublisherSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.NotificationPublisherSettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateOauthAccessTokenManager", - testableResource: pingfederate.TestableResource_PingFederateOauthAccessTokenManager(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.OauthAccessTokenManager(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateOauthAccessTokenManagerSettings", - testableResource: pingfederate.TestableResource_PingFederateOauthAccessTokenManagerSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.OauthAccessTokenManagerSettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateOauthAccessTokenMapping", - testableResource: pingfederate.TestableResource_PingFederateOauthAccessTokenMapping(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.OauthAccessTokenMapping(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateOauthAuthenticationPolicyContractMapping", - testableResource: pingfederate.TestableResource_PingFederateOauthAuthenticationPolicyContractMapping(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.OauthAuthenticationPolicyContractMapping(t, pingFederateClientInfo), ignoredErrors: nil, }, // TODO: Re-enable this test after PingFederate OOB Plugin API is triaged // { // name: "PingFederateOauthCibaServerPolicyRequestPolicy", - // testableResource: pingfederate.TestableResource_PingFederateOauthCibaServerPolicyRequestPolicy(t, pingFederateClientInfo), + // testableResource: pingfederate_testable_resources.OauthCibaServerPolicyRequestPolicy(t, pingFederateClientInfo), // ignoredErrors: nil, // }, { name: "PingFederateOauthCibaServerPolicySettings", - testableResource: pingfederate.TestableResource_PingFederateOauthCibaServerPolicySettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.OauthCibaServerPolicySettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateOauthClient", - testableResource: pingfederate.TestableResource_PingFederateOauthClient(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.OauthClient(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateOauthClientRegistrationPolicy", - testableResource: pingfederate.TestableResource_PingFederateOauthClientRegistrationPolicy(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.OauthClientRegistrationPolicy(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateOauthClientSettings", - testableResource: pingfederate.TestableResource_PingFederateOauthClientSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.OauthClientSettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateOauthIdpAdapterMapping", - testableResource: pingfederate.TestableResource_PingFederateOauthIdpAdapterMapping(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.OauthIdpAdapterMapping(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateOauthIssuer", - testableResource: pingfederate.TestableResource_PingFederateOauthIssuer(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.OauthIssuer(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateOauthServerSettings", - testableResource: pingfederate.TestableResource_PingFederateOauthServerSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.OauthServerSettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateOauthTokenExchangeGeneratorSettings", - testableResource: pingfederate.TestableResource_PingFederateOauthTokenExchangeGeneratorSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.OauthTokenExchangeGeneratorSettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateOauthTokenExchangeTokenGeneratorMapping", - testableResource: pingfederate.TestableResource_PingFederateOauthTokenExchangeTokenGeneratorMapping(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.OauthTokenExchangeTokenGeneratorMapping(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateOpenidConnectPolicy", - testableResource: pingfederate.TestableResource_PingFederateOpenidConnectPolicy(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.OpenidConnectPolicy(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateOpenidConnectSettings", - testableResource: pingfederate.TestableResource_PingFederateOpenidConnectSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.OpenidConnectSettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederatePasswordCredentialValidator", - testableResource: pingfederate.TestableResource_PingFederatePasswordCredentialValidator(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.PasswordCredentialValidator(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederatePingoneConnection", - testableResource: pingfederate.TestableResource_PingFederatePingoneConnection(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.PingoneConnection(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateProtocolMetadataLifetimeSettings", - testableResource: pingfederate.TestableResource_PingFederateProtocolMetadataLifetimeSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.ProtocolMetadataLifetimeSettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateProtocolMetadataSigningSettings", - testableResource: pingfederate.TestableResource_PingFederateProtocolMetadataSigningSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.ProtocolMetadataSigningSettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateRedirectValidation", - testableResource: pingfederate.TestableResource_PingFederateRedirectValidation(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.RedirectValidation(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateSecretManager", - testableResource: pingfederate.TestableResource_PingFederateSecretManager(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.SecretManager(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateServerSettings", - testableResource: pingfederate.TestableResource_PingFederateServerSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.ServerSettings(t, pingFederateClientInfo), ignoredErrors: []string{ "Error: Invalid Attribute Value Length", }, }, { name: "PingFederateServerSettingsGeneral", - testableResource: pingfederate.TestableResource_PingFederateServerSettingsGeneral(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.ServerSettingsGeneral(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateServerSettingsLogging", - testableResource: pingfederate.TestableResource_PingFederateServerSettingsLogging(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.ServerSettingsLogging(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateServerSettingsSystemKeysRotate", - testableResource: pingfederate.TestableResource_PingFederateServerSettingsSystemKeysRotate(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.ServerSettingsSystemKeysRotate(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateServerSettingsWsTrustStsSettings", - testableResource: pingfederate.TestableResource_PingFederateServerSettingsWsTrustStsSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.ServerSettingsWsTrustStsSettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateServerSettingsWsTrustStsSettingsIssuerCertificate", - testableResource: pingfederate.TestableResource_PingFederateServerSettingsWsTrustStsSettingsIssuerCertificate(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.ServerSettingsWsTrustStsSettingsIssuerCertificate(t, pingFederateClientInfo), ignoredErrors: []string{ "Error: Missing Configuration for Required Attribute", }, }, { name: "PingFederateServiceAuthentication", - testableResource: pingfederate.TestableResource_PingFederateServiceAuthentication(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.ServiceAuthentication(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateSessionApplicationPolicy", - testableResource: pingfederate.TestableResource_PingFederateSessionApplicationPolicy(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.SessionApplicationPolicy(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateSessionAuthenticationPoliciesGlobal", - testableResource: pingfederate.TestableResource_PingFederateSessionAuthenticationPoliciesGlobal(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.SessionAuthenticationPoliciesGlobal(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateSessionAuthenticationPolicy", - testableResource: pingfederate.TestableResource_PingFederateSessionAuthenticationPolicy(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.SessionAuthenticationPolicy(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateSessionSettings", - testableResource: pingfederate.TestableResource_PingFederateSessionSettings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.SessionSettings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateSpAdapter", - testableResource: pingfederate.TestableResource_PingFederateSpAdapter(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.SpAdapter(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateSpAuthenticationPolicyContractMapping", - testableResource: pingfederate.TestableResource_PingFederateSpAuthenticationPolicyContractMapping(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.SpAuthenticationPolicyContractMapping(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateSpIdpConnection", - testableResource: pingfederate.TestableResource_PingFederateSpIdpConnection(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.SpIdpConnection(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateSpTargetUrlMappings", - testableResource: pingfederate.TestableResource_PingFederateSpTargetUrlMappings(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.SpTargetUrlMappings(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateTokenProcessorToTokenGeneratorMapping", - testableResource: pingfederate.TestableResource_PingFederateTokenProcessorToTokenGeneratorMapping(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.TokenProcessorToTokenGeneratorMapping(t, pingFederateClientInfo), ignoredErrors: nil, }, { name: "PingFederateVirtualHostNames", - testableResource: pingfederate.TestableResource_PingFederateVirtualHostNames(t, pingFederateClientInfo), + testableResource: pingfederate_testable_resources.VirtualHostNames(t, pingFederateClientInfo), ignoredErrors: nil, }, } diff --git a/internal/connector/pingfederate/resources/authentication_api_application.go b/internal/connector/pingfederate/resources/authentication_api_application.go index 4c166866..cac453b9 100644 --- a/internal/connector/pingfederate/resources/authentication_api_application.go +++ b/internal/connector/pingfederate/resources/authentication_api_application.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/authentication_api_application_test.go b/internal/connector/pingfederate/resources/authentication_api_application_test.go index ba9d8b77..122ad233 100644 --- a/internal/connector/pingfederate/resources/authentication_api_application_test.go +++ b/internal/connector/pingfederate/resources/authentication_api_application_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateAuthenticationApiApplication(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateAuthenticationApiApplication(t, clientInfo) + tr := pingfederate_testable_resources.AuthenticationApiApplication(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateAuthenticationApiApplication(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/authentication_api_settings.go b/internal/connector/pingfederate/resources/authentication_api_settings.go index 78ae490a..9042e91f 100644 --- a/internal/connector/pingfederate/resources/authentication_api_settings.go +++ b/internal/connector/pingfederate/resources/authentication_api_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/authentication_api_settings_test.go b/internal/connector/pingfederate/resources/authentication_api_settings_test.go index eee0e207..76efbecb 100644 --- a/internal/connector/pingfederate/resources/authentication_api_settings_test.go +++ b/internal/connector/pingfederate/resources/authentication_api_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateAuthenticationApiSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.AuthenticationApiSettings(clientInfo) + tr := pingfederate_testable_resources.AuthenticationApiSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Authentication Api Settings", ResourceID: "authentication_api_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/authentication_policies.go b/internal/connector/pingfederate/resources/authentication_policies.go index 50bb089e..edd77c1a 100644 --- a/internal/connector/pingfederate/resources/authentication_policies.go +++ b/internal/connector/pingfederate/resources/authentication_policies.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/authentication_policies_fragment.go b/internal/connector/pingfederate/resources/authentication_policies_fragment.go index bb3081be..61a06e6f 100644 --- a/internal/connector/pingfederate/resources/authentication_policies_fragment.go +++ b/internal/connector/pingfederate/resources/authentication_policies_fragment.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/authentication_policies_fragment_test.go b/internal/connector/pingfederate/resources/authentication_policies_fragment_test.go index 882c5178..a2b420e6 100644 --- a/internal/connector/pingfederate/resources/authentication_policies_fragment_test.go +++ b/internal/connector/pingfederate/resources/authentication_policies_fragment_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateAuthenticationPoliciesFragment(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateAuthenticationPoliciesFragment(t, clientInfo) + tr := pingfederate_testable_resources.AuthenticationPoliciesFragment(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateAuthenticationPoliciesFragment(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/authentication_policies_settings.go b/internal/connector/pingfederate/resources/authentication_policies_settings.go index f3723f4a..e21f7bb2 100644 --- a/internal/connector/pingfederate/resources/authentication_policies_settings.go +++ b/internal/connector/pingfederate/resources/authentication_policies_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/authentication_policies_settings_test.go b/internal/connector/pingfederate/resources/authentication_policies_settings_test.go index 461aa73c..dab4095f 100644 --- a/internal/connector/pingfederate/resources/authentication_policies_settings_test.go +++ b/internal/connector/pingfederate/resources/authentication_policies_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateAuthenticationPoliciesSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.AuthenticationPoliciesSettings(clientInfo) + tr := pingfederate_testable_resources.AuthenticationPoliciesSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Authentication Policies Settings", ResourceID: "authentication_policies_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/authentication_policies_test.go b/internal/connector/pingfederate/resources/authentication_policies_test.go index d91dd916..6a2ba1ed 100644 --- a/internal/connector/pingfederate/resources/authentication_policies_test.go +++ b/internal/connector/pingfederate/resources/authentication_policies_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateAuthenticationPolicies(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.AuthenticationPolicies(clientInfo) + tr := pingfederate_testable_resources.AuthenticationPolicies(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Authentication Policies", ResourceID: "authentication_policies_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/authentication_policy_contract.go b/internal/connector/pingfederate/resources/authentication_policy_contract.go index f09d414c..8aa0e5ed 100644 --- a/internal/connector/pingfederate/resources/authentication_policy_contract.go +++ b/internal/connector/pingfederate/resources/authentication_policy_contract.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/authentication_policy_contract_test.go b/internal/connector/pingfederate/resources/authentication_policy_contract_test.go index 7da4826d..d4e88508 100644 --- a/internal/connector/pingfederate/resources/authentication_policy_contract_test.go +++ b/internal/connector/pingfederate/resources/authentication_policy_contract_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateAuthenticationPolicyContract(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateAuthenticationPolicyContract(t, clientInfo) + tr := pingfederate_testable_resources.AuthenticationPolicyContract(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateAuthenticationPolicyContract(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/authentication_selector.go b/internal/connector/pingfederate/resources/authentication_selector.go index e129aa55..f93bd7a6 100644 --- a/internal/connector/pingfederate/resources/authentication_selector.go +++ b/internal/connector/pingfederate/resources/authentication_selector.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/authentication_selector_test.go b/internal/connector/pingfederate/resources/authentication_selector_test.go index 5481dba7..a08c38ec 100644 --- a/internal/connector/pingfederate/resources/authentication_selector_test.go +++ b/internal/connector/pingfederate/resources/authentication_selector_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateAuthenticationSelector(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateAuthenticationSelector(t, clientInfo) + tr := pingfederate_testable_resources.AuthenticationSelector(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateAuthenticationSelector(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/captcha_provider.go b/internal/connector/pingfederate/resources/captcha_provider.go index 74a7719b..5e19f106 100644 --- a/internal/connector/pingfederate/resources/captcha_provider.go +++ b/internal/connector/pingfederate/resources/captcha_provider.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/captcha_provider_settings.go b/internal/connector/pingfederate/resources/captcha_provider_settings.go index 092e73d4..8f1a344d 100644 --- a/internal/connector/pingfederate/resources/captcha_provider_settings.go +++ b/internal/connector/pingfederate/resources/captcha_provider_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/captcha_provider_settings_test.go b/internal/connector/pingfederate/resources/captcha_provider_settings_test.go index 87d3e646..8f5532d9 100644 --- a/internal/connector/pingfederate/resources/captcha_provider_settings_test.go +++ b/internal/connector/pingfederate/resources/captcha_provider_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateCaptchaProviderSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.CaptchaProviderSettings(clientInfo) + tr := pingfederate_testable_resources.CaptchaProviderSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Captcha Provider Settings", ResourceID: "captcha_provider_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/captcha_provider_test.go b/internal/connector/pingfederate/resources/captcha_provider_test.go index d96b2d95..8eabba04 100644 --- a/internal/connector/pingfederate/resources/captcha_provider_test.go +++ b/internal/connector/pingfederate/resources/captcha_provider_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateCaptchaProvider(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateCaptchaProvider(t, clientInfo) + tr := pingfederate_testable_resources.CaptchaProvider(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateCaptchaProvider(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/certificate_ca.go b/internal/connector/pingfederate/resources/certificate_ca.go index d7bf0b8c..6ad2b2e5 100644 --- a/internal/connector/pingfederate/resources/certificate_ca.go +++ b/internal/connector/pingfederate/resources/certificate_ca.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/certificate_ca_test.go b/internal/connector/pingfederate/resources/certificate_ca_test.go index 4ed82ce8..e3e03952 100644 --- a/internal/connector/pingfederate/resources/certificate_ca_test.go +++ b/internal/connector/pingfederate/resources/certificate_ca_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -9,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateCertificateCa(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateCertificateCa(t, clientInfo) + tr := pingfederate_testable_resources.CertificateCa(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -23,8 +24,8 @@ func Test_PingFederateCertificateCa(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", creationInfo[testutils_resource.ENUM_ISSUER_DN], creationInfo[testutils_resource.ENUM_SERIAL_NUMBER]), - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_%s", creationInfo.SelfInfo[testutils_resource.ENUM_ISSUER_DN], creationInfo.SelfInfo[testutils_resource.ENUM_SERIAL_NUMBER]), + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate.go b/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate.go index 22d9f961..e442ae94 100644 --- a/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate.go +++ b/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate_test.go b/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate_test.go index 377ca853..7bcc9704 100644 --- a/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate_test.go +++ b/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -9,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateCertificatesRevocationOcspCertificate(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateCertificatesRevocationOcspCertificate(t, clientInfo) + tr := pingfederate_testable_resources.CertificatesRevocationOcspCertificate(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -23,8 +24,8 @@ func Test_PingFederateCertificatesRevocationOcspCertificate(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", creationInfo[testutils_resource.ENUM_ISSUER_DN], creationInfo[testutils_resource.ENUM_SERIAL_NUMBER]), - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_%s", creationInfo.SelfInfo[testutils_resource.ENUM_ISSUER_DN], creationInfo.SelfInfo[testutils_resource.ENUM_SERIAL_NUMBER]), + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/certificates_revocation_settings.go b/internal/connector/pingfederate/resources/certificates_revocation_settings.go index f2d93fcd..710c6d6f 100644 --- a/internal/connector/pingfederate/resources/certificates_revocation_settings.go +++ b/internal/connector/pingfederate/resources/certificates_revocation_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/certificates_revocation_settings_test.go b/internal/connector/pingfederate/resources/certificates_revocation_settings_test.go index fb29e67e..a470e754 100644 --- a/internal/connector/pingfederate/resources/certificates_revocation_settings_test.go +++ b/internal/connector/pingfederate/resources/certificates_revocation_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateCertificatesRevocationSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.CertificatesRevocationSettings(clientInfo) + tr := pingfederate_testable_resources.CertificatesRevocationSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Certificates Revocation Settings", ResourceID: "certificates_revocation_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/cluster_settings.go b/internal/connector/pingfederate/resources/cluster_settings.go index 11ddd0fe..948f9922 100644 --- a/internal/connector/pingfederate/resources/cluster_settings.go +++ b/internal/connector/pingfederate/resources/cluster_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/cluster_settings_test.go b/internal/connector/pingfederate/resources/cluster_settings_test.go index de380914..8d438c6b 100644 --- a/internal/connector/pingfederate/resources/cluster_settings_test.go +++ b/internal/connector/pingfederate/resources/cluster_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,12 +9,17 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateClusterSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.ClusterSettings(clientInfo) + tr := pingfederate_testable_resources.ClusterSettings(t, clientInfo) + resource, ok := tr.ExportableResource.(*resources.PingFederateClusterSettingsResource) + if !ok { + t.Fatalf("Error casting resource to PingFederateClusterSettingsResource") + } valid, err := resource.ValidPingFederateVersion() if err != nil { @@ -25,12 +31,12 @@ func Test_PingFederateClusterSettings(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Cluster Settings", ResourceID: "cluster_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate.go b/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate.go index f444dc68..af4a3626 100644 --- a/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate.go +++ b/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate_test.go b/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate_test.go index 64112d88..a632f96c 100644 --- a/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate_test.go +++ b/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateConfigurationEncryptionKeysRotate(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.ConfigurationEncryptionKeysRotate(clientInfo) + tr := pingfederate_testable_resources.ConfigurationEncryptionKeysRotate(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Configuration Encryption Keys Rotate", ResourceID: "configuration_encryption_keys_rotate_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/data_store.go b/internal/connector/pingfederate/resources/data_store.go index f648aff8..5976aa06 100644 --- a/internal/connector/pingfederate/resources/data_store.go +++ b/internal/connector/pingfederate/resources/data_store.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/data_store_test.go b/internal/connector/pingfederate/resources/data_store_test.go index 10361bf0..af263fd3 100644 --- a/internal/connector/pingfederate/resources/data_store_test.go +++ b/internal/connector/pingfederate/resources/data_store_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,24 +7,24 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateDataStore(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - // Data store resource is already created, so no need to use a testable resource - resource := resources.DataStore(clientInfo) + tr := pingfederate_testable_resources.DataStore(t, clientInfo) + // Data store resource is already created, so no need to create/delete it expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "ProvisionerDS_JDBC", ResourceID: "ProvisionerDS", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/default_urls.go b/internal/connector/pingfederate/resources/default_urls.go index 62542396..cf10dde6 100644 --- a/internal/connector/pingfederate/resources/default_urls.go +++ b/internal/connector/pingfederate/resources/default_urls.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/default_urls_test.go b/internal/connector/pingfederate/resources/default_urls_test.go index faed92e9..f40091bb 100644 --- a/internal/connector/pingfederate/resources/default_urls_test.go +++ b/internal/connector/pingfederate/resources/default_urls_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateDefaultUrls(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.DefaultUrls(clientInfo) + tr := pingfederate_testable_resources.DefaultUrls(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Default Urls", ResourceID: "default_urls_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/extended_properties.go b/internal/connector/pingfederate/resources/extended_properties.go index 8dde27f7..5b479d72 100644 --- a/internal/connector/pingfederate/resources/extended_properties.go +++ b/internal/connector/pingfederate/resources/extended_properties.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/extended_properties_test.go b/internal/connector/pingfederate/resources/extended_properties_test.go index 38f389cf..9b308446 100644 --- a/internal/connector/pingfederate/resources/extended_properties_test.go +++ b/internal/connector/pingfederate/resources/extended_properties_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateExtendedProperties(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.ExtendedProperties(clientInfo) + tr := pingfederate_testable_resources.ExtendedProperties(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Extended Properties", ResourceID: "extended_properties_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/identity_store_provisioner.go b/internal/connector/pingfederate/resources/identity_store_provisioner.go index 85169fc2..70ad9e3c 100644 --- a/internal/connector/pingfederate/resources/identity_store_provisioner.go +++ b/internal/connector/pingfederate/resources/identity_store_provisioner.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/identity_store_provisioner_test.go b/internal/connector/pingfederate/resources/identity_store_provisioner_test.go index 90288f72..fa7e9741 100644 --- a/internal/connector/pingfederate/resources/identity_store_provisioner_test.go +++ b/internal/connector/pingfederate/resources/identity_store_provisioner_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateIdentityStoreProvisioner(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateIdentityStoreProvisioner(t, clientInfo) + tr := pingfederate_testable_resources.IdentityStoreProvisioner(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateIdentityStoreProvisioner(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/idp_adapter.go b/internal/connector/pingfederate/resources/idp_adapter.go index ede665df..d4468cf3 100644 --- a/internal/connector/pingfederate/resources/idp_adapter.go +++ b/internal/connector/pingfederate/resources/idp_adapter.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/idp_adapter_test.go b/internal/connector/pingfederate/resources/idp_adapter_test.go index b6889608..747abf90 100644 --- a/internal/connector/pingfederate/resources/idp_adapter_test.go +++ b/internal/connector/pingfederate/resources/idp_adapter_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateIdpAdapter(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateIdpAdapter(t, clientInfo) + tr := pingfederate_testable_resources.IdpAdapter(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateIdpAdapter(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/idp_sp_connection.go b/internal/connector/pingfederate/resources/idp_sp_connection.go index 842fd739..631f3b4e 100644 --- a/internal/connector/pingfederate/resources/idp_sp_connection.go +++ b/internal/connector/pingfederate/resources/idp_sp_connection.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/idp_sp_connection_test.go b/internal/connector/pingfederate/resources/idp_sp_connection_test.go index 50ee1498..870cbc0d 100644 --- a/internal/connector/pingfederate/resources/idp_sp_connection_test.go +++ b/internal/connector/pingfederate/resources/idp_sp_connection_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateIdpSpConnection(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateIdpSpConnection(t, clientInfo) + tr := pingfederate_testable_resources.IdpSpConnection(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateIdpSpConnection(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract.go b/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract.go index c3f04dbf..69b2ee4d 100644 --- a/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract.go +++ b/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract_test.go b/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract_test.go index 15a76082..08207fcc 100644 --- a/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract_test.go +++ b/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateIdpStsRequestParametersContract(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateIdpStsRequestParametersContract(t, clientInfo) + tr := pingfederate_testable_resources.IdpStsRequestParametersContract(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateIdpStsRequestParametersContract(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping.go b/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping.go index d95236e9..a126baab 100644 --- a/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping.go +++ b/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping_test.go b/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping_test.go index e6969594..4f4173af 100644 --- a/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping_test.go +++ b/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -9,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateIdpToSpAdapterMapping(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateIdpToSpAdapterMapping(t, clientInfo) + tr := pingfederate_testable_resources.IdpToSpAdapterMapping(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -23,8 +24,8 @@ func Test_PingFederateIdpToSpAdapterMapping(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_to_%s", creationInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo[testutils_resource.ENUM_TARGET_ID]), - ResourceID: fmt.Sprintf("%s|%s", creationInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo[testutils_resource.ENUM_TARGET_ID]), + ResourceName: fmt.Sprintf("%s_to_%s", creationInfo.SelfInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo.SelfInfo[testutils_resource.ENUM_TARGET_ID]), + ResourceID: fmt.Sprintf("%s|%s", creationInfo.SelfInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo.SelfInfo[testutils_resource.ENUM_TARGET_ID]), }, } diff --git a/internal/connector/pingfederate/resources/idp_token_processor.go b/internal/connector/pingfederate/resources/idp_token_processor.go index 488e4fc4..6f878b81 100644 --- a/internal/connector/pingfederate/resources/idp_token_processor.go +++ b/internal/connector/pingfederate/resources/idp_token_processor.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/idp_token_processor_test.go b/internal/connector/pingfederate/resources/idp_token_processor_test.go index 949312f6..37005941 100644 --- a/internal/connector/pingfederate/resources/idp_token_processor_test.go +++ b/internal/connector/pingfederate/resources/idp_token_processor_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateIdpTokenProcessor(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateIdpTokenProcessor(t, clientInfo) + tr := pingfederate_testable_resources.IdpTokenProcessor(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateIdpTokenProcessor(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/incoming_proxy_settings.go b/internal/connector/pingfederate/resources/incoming_proxy_settings.go index b52941e6..6eee0180 100644 --- a/internal/connector/pingfederate/resources/incoming_proxy_settings.go +++ b/internal/connector/pingfederate/resources/incoming_proxy_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/incoming_proxy_settings_test.go b/internal/connector/pingfederate/resources/incoming_proxy_settings_test.go index ce199d68..fbfdab0f 100644 --- a/internal/connector/pingfederate/resources/incoming_proxy_settings_test.go +++ b/internal/connector/pingfederate/resources/incoming_proxy_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateIncomingProxySettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.IncomingProxySettings(clientInfo) + tr := pingfederate_testable_resources.IncomingProxySettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Incoming Proxy Settings", ResourceID: "incoming_proxy_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/kerberos_realm.go b/internal/connector/pingfederate/resources/kerberos_realm.go index 67736906..3acde8d4 100644 --- a/internal/connector/pingfederate/resources/kerberos_realm.go +++ b/internal/connector/pingfederate/resources/kerberos_realm.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/kerberos_realm_settings.go b/internal/connector/pingfederate/resources/kerberos_realm_settings.go index 50835608..661f8af9 100644 --- a/internal/connector/pingfederate/resources/kerberos_realm_settings.go +++ b/internal/connector/pingfederate/resources/kerberos_realm_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/kerberos_realm_settings_test.go b/internal/connector/pingfederate/resources/kerberos_realm_settings_test.go index 5a80c963..4abb6b91 100644 --- a/internal/connector/pingfederate/resources/kerberos_realm_settings_test.go +++ b/internal/connector/pingfederate/resources/kerberos_realm_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateKerberosRealmSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.KerberosRealmSettings(clientInfo) + tr := pingfederate_testable_resources.KerberosRealmSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Kerberos Realm Settings", ResourceID: "kerberos_realm_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/kerberos_realm_test.go b/internal/connector/pingfederate/resources/kerberos_realm_test.go index ddde0858..4a7b8b04 100644 --- a/internal/connector/pingfederate/resources/kerberos_realm_test.go +++ b/internal/connector/pingfederate/resources/kerberos_realm_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateKerberosRealm(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateKerberosRealm(t, clientInfo) + tr := pingfederate_testable_resources.KerberosRealm(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateKerberosRealm(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect.go b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect.go index 041b38b4..a4e5dc52 100644 --- a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect.go +++ b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set.go b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set.go index 1c8cd82b..a13b4842 100644 --- a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set.go +++ b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set_test.go b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set_test.go index 845d093b..471ec6bb 100644 --- a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set_test.go +++ b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateKeypairsOauthOpenidConnectAdditionalKeySet(t, clientInfo) + tr := pingfederate_testable_resources.KeypairsOauthOpenidConnectAdditionalKeySet(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_test.go b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_test.go index 1a1f73fc..4206a5fd 100644 --- a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_test.go +++ b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateKeypairsOauthOpenidConnect(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.KeypairsOauthOpenidConnect(clientInfo) + tr := pingfederate_testable_resources.KeypairsOauthOpenidConnect(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Keypairs Oauth Openid Connect", ResourceID: "keypairs_oauth_openid_connect_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings.go b/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings.go index e1b7f9d8..5cbf5d79 100644 --- a/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings.go +++ b/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings_test.go b/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings_test.go index f0f91b3b..03421ce8 100644 --- a/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings_test.go +++ b/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -9,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateKeypairsSigningKeyRotationSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateKeypairsSigningKeyRotationSettings(t, clientInfo) + tr := pingfederate_testable_resources.KeypairsSigningKeyRotationSettings(t, clientInfo) _ = tr.CreateResource(t) defer tr.DeleteResource(t) @@ -26,8 +27,8 @@ func Test_PingFederateKeypairsSigningKeyRotationSettings(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s_rotation_settings", keypairTr.CreationInfo[testutils_resource.ENUM_ISSUER_DN], keypairTr.CreationInfo[testutils_resource.ENUM_SERIAL_NUMBER]), - ResourceID: keypairTr.CreationInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_%s_rotation_settings", keypairTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ISSUER_DN], keypairTr.CreationInfo.SelfInfo[testutils_resource.ENUM_SERIAL_NUMBER]), + ResourceID: keypairTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/keypairs_ssl_server_settings.go b/internal/connector/pingfederate/resources/keypairs_ssl_server_settings.go index b5376629..f02fb7e7 100644 --- a/internal/connector/pingfederate/resources/keypairs_ssl_server_settings.go +++ b/internal/connector/pingfederate/resources/keypairs_ssl_server_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/keypairs_ssl_server_settings_test.go b/internal/connector/pingfederate/resources/keypairs_ssl_server_settings_test.go index 729ac6f9..9b63ded5 100644 --- a/internal/connector/pingfederate/resources/keypairs_ssl_server_settings_test.go +++ b/internal/connector/pingfederate/resources/keypairs_ssl_server_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateKeypairsSslServerSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.KeypairsSslServerSettings(clientInfo) + tr := pingfederate_testable_resources.KeypairsSslServerSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Keypairs Ssl Server Settings", ResourceID: "keypairs_ssl_server_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/local_identity_profile.go b/internal/connector/pingfederate/resources/local_identity_profile.go index bba27bdd..d127d768 100644 --- a/internal/connector/pingfederate/resources/local_identity_profile.go +++ b/internal/connector/pingfederate/resources/local_identity_profile.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/local_identity_profile_test.go b/internal/connector/pingfederate/resources/local_identity_profile_test.go index 3dd257d0..4ebf01cd 100644 --- a/internal/connector/pingfederate/resources/local_identity_profile_test.go +++ b/internal/connector/pingfederate/resources/local_identity_profile_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateLocalIdentityProfile(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateLocalIdentityProfile(t, clientInfo) + tr := pingfederate_testable_resources.LocalIdentityProfile(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateLocalIdentityProfile(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/metadata_url.go b/internal/connector/pingfederate/resources/metadata_url.go index 5ecd0611..c0cd76aa 100644 --- a/internal/connector/pingfederate/resources/metadata_url.go +++ b/internal/connector/pingfederate/resources/metadata_url.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/metadata_url_test.go b/internal/connector/pingfederate/resources/metadata_url_test.go index 0b3c632c..88b11a7c 100644 --- a/internal/connector/pingfederate/resources/metadata_url_test.go +++ b/internal/connector/pingfederate/resources/metadata_url_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateMetadataUrl(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateMetadataUrl(t, clientInfo) + tr := pingfederate_testable_resources.MetadataUrl(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateMetadataUrl(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/notification_publisher.go b/internal/connector/pingfederate/resources/notification_publisher.go index e1cf8b1a..603ec194 100644 --- a/internal/connector/pingfederate/resources/notification_publisher.go +++ b/internal/connector/pingfederate/resources/notification_publisher.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/notification_publisher_settings.go b/internal/connector/pingfederate/resources/notification_publisher_settings.go index d30edb40..2b28cdc8 100644 --- a/internal/connector/pingfederate/resources/notification_publisher_settings.go +++ b/internal/connector/pingfederate/resources/notification_publisher_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/notification_publisher_settings_test.go b/internal/connector/pingfederate/resources/notification_publisher_settings_test.go index 20090da3..db681340 100644 --- a/internal/connector/pingfederate/resources/notification_publisher_settings_test.go +++ b/internal/connector/pingfederate/resources/notification_publisher_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateNotificationPublisherSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.NotificationPublisherSettings(clientInfo) + tr := pingfederate_testable_resources.NotificationPublisherSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Notification Publisher Settings", ResourceID: "notification_publisher_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/notification_publisher_test.go b/internal/connector/pingfederate/resources/notification_publisher_test.go index 3dd66268..bf572643 100644 --- a/internal/connector/pingfederate/resources/notification_publisher_test.go +++ b/internal/connector/pingfederate/resources/notification_publisher_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateNotificationPublisher(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateNotificationPublisher(t, clientInfo) + tr := pingfederate_testable_resources.NotificationPublisher(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateNotificationPublisher(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_access_token_manager.go b/internal/connector/pingfederate/resources/oauth_access_token_manager.go index e8ac0a0b..eedace24 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_manager.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_manager.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/oauth_access_token_manager_settings.go b/internal/connector/pingfederate/resources/oauth_access_token_manager_settings.go index 6f475ff2..10eae03c 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_manager_settings.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_manager_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/oauth_access_token_manager_settings_test.go b/internal/connector/pingfederate/resources/oauth_access_token_manager_settings_test.go index c541d5cd..dcb0280d 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_manager_settings_test.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_manager_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateOauthAccessTokenManagerSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.OauthAccessTokenManagerSettings(clientInfo) + tr := pingfederate_testable_resources.OauthAccessTokenManagerSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Oauth Access Token Manager Settings", ResourceID: "oauth_access_token_manager_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/oauth_access_token_manager_test.go b/internal/connector/pingfederate/resources/oauth_access_token_manager_test.go index 98fa3b78..e051bb1e 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_manager_test.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_manager_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateOauthAccessTokenManager(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateOauthAccessTokenManager(t, clientInfo) + tr := pingfederate_testable_resources.OauthAccessTokenManager(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateOauthAccessTokenManager(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_access_token_mapping.go b/internal/connector/pingfederate/resources/oauth_access_token_mapping.go index f9e012d7..f5d8e3e1 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_mapping.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_mapping.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/oauth_access_token_mapping_test.go b/internal/connector/pingfederate/resources/oauth_access_token_mapping_test.go index 061c7ada..82f7ee3b 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_mapping_test.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_mapping_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -9,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateOauthAccessTokenMapping(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateOauthAccessTokenMapping(t, clientInfo) + tr := pingfederate_testable_resources.OauthAccessTokenMapping(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -23,8 +24,8 @@ func Test_PingFederateOauthAccessTokenMapping(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", creationInfo[testutils_resource.ENUM_ID], creationInfo[testutils_resource.ENUM_CONTEXT_TYPE]), - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_%s", creationInfo.SelfInfo[testutils_resource.ENUM_ID], creationInfo.SelfInfo[testutils_resource.ENUM_CONTEXT_TYPE]), + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping.go b/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping.go index cb1967f5..b4e98f86 100644 --- a/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping.go +++ b/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping_test.go b/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping_test.go index 6f42c6d6..15cced3a 100644 --- a/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping_test.go +++ b/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -9,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateOauthAuthenticationPolicyContractMapping(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateOauthAuthenticationPolicyContractMapping(t, clientInfo) + tr := pingfederate_testable_resources.OauthAuthenticationPolicyContractMapping(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -23,8 +24,8 @@ func Test_PingFederateOauthAuthenticationPolicyContractMapping(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_mapping", creationInfo[testutils_resource.ENUM_ID]), - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_mapping", creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy.go b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy.go index 7fa547b5..d5ee09c1 100644 --- a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy.go +++ b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy_test.go b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy_test.go index f8d59f66..61f95041 100644 --- a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy_test.go +++ b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,7 +9,7 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateOauthCibaServerPolicyRequestPolicy(t *testing.T) { @@ -17,7 +18,7 @@ func Test_PingFederateOauthCibaServerPolicyRequestPolicy(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateOauthCibaServerPolicyRequestPolicy(t, clientInfo) + tr := pingfederate_testable_resources.OauthCibaServerPolicyRequestPolicy(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -25,8 +26,8 @@ func Test_PingFederateOauthCibaServerPolicyRequestPolicy(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings.go b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings.go index 9a62fbe8..664affc6 100644 --- a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings.go +++ b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings_test.go b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings_test.go index b7b2b8b4..9bfc6261 100644 --- a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings_test.go +++ b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateOauthCibaServerPolicySettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.OauthCibaServerPolicySettings(clientInfo) + tr := pingfederate_testable_resources.OauthCibaServerPolicySettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Oauth Ciba Server Policy Settings", ResourceID: "oauth_ciba_server_policy_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/oauth_client.go b/internal/connector/pingfederate/resources/oauth_client.go index 9debc034..07fbf6fb 100644 --- a/internal/connector/pingfederate/resources/oauth_client.go +++ b/internal/connector/pingfederate/resources/oauth_client.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/oauth_client_registration_policy.go b/internal/connector/pingfederate/resources/oauth_client_registration_policy.go index 9d99bea0..352cd85b 100644 --- a/internal/connector/pingfederate/resources/oauth_client_registration_policy.go +++ b/internal/connector/pingfederate/resources/oauth_client_registration_policy.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/oauth_client_registration_policy_test.go b/internal/connector/pingfederate/resources/oauth_client_registration_policy_test.go index 50ab258f..5827889a 100644 --- a/internal/connector/pingfederate/resources/oauth_client_registration_policy_test.go +++ b/internal/connector/pingfederate/resources/oauth_client_registration_policy_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateOauthClientRegistrationPolicy(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateOauthClientRegistrationPolicy(t, clientInfo) + tr := pingfederate_testable_resources.OauthClientRegistrationPolicy(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateOauthClientRegistrationPolicy(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_client_settings.go b/internal/connector/pingfederate/resources/oauth_client_settings.go index 4cd1e233..11f32d22 100644 --- a/internal/connector/pingfederate/resources/oauth_client_settings.go +++ b/internal/connector/pingfederate/resources/oauth_client_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/oauth_client_settings_test.go b/internal/connector/pingfederate/resources/oauth_client_settings_test.go index 83177001..903d54ef 100644 --- a/internal/connector/pingfederate/resources/oauth_client_settings_test.go +++ b/internal/connector/pingfederate/resources/oauth_client_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateOauthClientSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.OauthClientSettings(clientInfo) + tr := pingfederate_testable_resources.OauthClientSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Oauth Client Settings", ResourceID: "oauth_client_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/oauth_client_test.go b/internal/connector/pingfederate/resources/oauth_client_test.go index ee19f948..b332495d 100644 --- a/internal/connector/pingfederate/resources/oauth_client_test.go +++ b/internal/connector/pingfederate/resources/oauth_client_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateOauthClient(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateOauthClient(t, clientInfo) + tr := pingfederate_testable_resources.OauthClient(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateOauthClient(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping.go b/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping.go index cb5e6d53..f18b4318 100644 --- a/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping.go +++ b/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping_test.go b/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping_test.go index 578d7f39..7ccdcd9c 100644 --- a/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping_test.go +++ b/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -9,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateOauthIdpAdapterMapping(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateOauthIdpAdapterMapping(t, clientInfo) + tr := pingfederate_testable_resources.OauthIdpAdapterMapping(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -23,8 +24,8 @@ func Test_PingFederateOauthIdpAdapterMapping(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_mapping", creationInfo[testutils_resource.ENUM_ID]), - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_mapping", creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_issuer.go b/internal/connector/pingfederate/resources/oauth_issuer.go index f4b3bcf4..261728d3 100644 --- a/internal/connector/pingfederate/resources/oauth_issuer.go +++ b/internal/connector/pingfederate/resources/oauth_issuer.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/oauth_issuer_test.go b/internal/connector/pingfederate/resources/oauth_issuer_test.go index baa37d44..9b8f9e24 100644 --- a/internal/connector/pingfederate/resources/oauth_issuer_test.go +++ b/internal/connector/pingfederate/resources/oauth_issuer_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateOauthIssuer(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateOauthIssuer(t, clientInfo) + tr := pingfederate_testable_resources.OauthIssuer(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateOauthIssuer(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_server_settings.go b/internal/connector/pingfederate/resources/oauth_server_settings.go index 7204afcf..7b69407d 100644 --- a/internal/connector/pingfederate/resources/oauth_server_settings.go +++ b/internal/connector/pingfederate/resources/oauth_server_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/oauth_server_settings_test.go b/internal/connector/pingfederate/resources/oauth_server_settings_test.go index a01e3f67..95230f04 100644 --- a/internal/connector/pingfederate/resources/oauth_server_settings_test.go +++ b/internal/connector/pingfederate/resources/oauth_server_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateOauthServerSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.OauthServerSettings(clientInfo) + tr := pingfederate_testable_resources.OauthServerSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Oauth Server Settings", ResourceID: "oauth_server_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings.go b/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings.go index 7f58ce70..2b0ce491 100644 --- a/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings.go +++ b/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings_test.go b/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings_test.go index 17dfadfc..b28aa49c 100644 --- a/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings_test.go +++ b/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateOauthTokenExchangeGeneratorSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.OauthTokenExchangeGeneratorSettings(clientInfo) + tr := pingfederate_testable_resources.OauthTokenExchangeGeneratorSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Oauth Token Exchange Generator Settings", ResourceID: "oauth_token_exchange_generator_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping.go b/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping.go index 88db5f0c..6b8e95cb 100644 --- a/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping.go +++ b/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping_test.go b/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping_test.go index 9d61b437..5caa5e49 100644 --- a/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping_test.go +++ b/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -9,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateOauthTokenExchangeTokenGeneratorMapping(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateOauthTokenExchangeTokenGeneratorMapping(t, clientInfo) + tr := pingfederate_testable_resources.OauthTokenExchangeTokenGeneratorMapping(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -23,8 +24,8 @@ func Test_PingFederateOauthTokenExchangeTokenGeneratorMapping(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_to_%s", creationInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo[testutils_resource.ENUM_TARGET_ID]), - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_to_%s", creationInfo.SelfInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo.SelfInfo[testutils_resource.ENUM_TARGET_ID]), + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/openid_connect_policy.go b/internal/connector/pingfederate/resources/openid_connect_policy.go index 280fc643..6be96e57 100644 --- a/internal/connector/pingfederate/resources/openid_connect_policy.go +++ b/internal/connector/pingfederate/resources/openid_connect_policy.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/openid_connect_policy_test.go b/internal/connector/pingfederate/resources/openid_connect_policy_test.go index a8dc2c58..16aa8ac5 100644 --- a/internal/connector/pingfederate/resources/openid_connect_policy_test.go +++ b/internal/connector/pingfederate/resources/openid_connect_policy_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateOpenidConnectPolicy(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateOpenidConnectPolicy(t, clientInfo) + tr := pingfederate_testable_resources.OpenidConnectPolicy(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateOpenidConnectPolicy(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/openid_connect_settings.go b/internal/connector/pingfederate/resources/openid_connect_settings.go index 90f2c23a..c014141c 100644 --- a/internal/connector/pingfederate/resources/openid_connect_settings.go +++ b/internal/connector/pingfederate/resources/openid_connect_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/openid_connect_settings_test.go b/internal/connector/pingfederate/resources/openid_connect_settings_test.go index 74271fd0..691129de 100644 --- a/internal/connector/pingfederate/resources/openid_connect_settings_test.go +++ b/internal/connector/pingfederate/resources/openid_connect_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateOpenidConnectSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.OpenidConnectSettings(clientInfo) + tr := pingfederate_testable_resources.OpenidConnectSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Openid Connect Settings", ResourceID: "openid_connect_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/password_credential_validator.go b/internal/connector/pingfederate/resources/password_credential_validator.go index 858fcd38..ae356b1f 100644 --- a/internal/connector/pingfederate/resources/password_credential_validator.go +++ b/internal/connector/pingfederate/resources/password_credential_validator.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/password_credential_validator_test.go b/internal/connector/pingfederate/resources/password_credential_validator_test.go index a184b3dd..5f887da3 100644 --- a/internal/connector/pingfederate/resources/password_credential_validator_test.go +++ b/internal/connector/pingfederate/resources/password_credential_validator_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederatePasswordCredentialValidator(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederatePasswordCredentialValidator(t, clientInfo) + tr := pingfederate_testable_resources.PasswordCredentialValidator(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederatePasswordCredentialValidator(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/pingone_connection.go b/internal/connector/pingfederate/resources/pingone_connection.go index e47e6fc7..c4e1ea0d 100644 --- a/internal/connector/pingfederate/resources/pingone_connection.go +++ b/internal/connector/pingfederate/resources/pingone_connection.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/pingone_connection_test.go b/internal/connector/pingfederate/resources/pingone_connection_test.go index 8d4c3c5b..5767ea8b 100644 --- a/internal/connector/pingfederate/resources/pingone_connection_test.go +++ b/internal/connector/pingfederate/resources/pingone_connection_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederatePingoneConnection(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederatePingoneConnection(t, clientInfo) + tr := pingfederate_testable_resources.PingoneConnection(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederatePingoneConnection(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings.go b/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings.go index e948ad7a..70f37db2 100644 --- a/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings.go +++ b/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings_test.go b/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings_test.go index 5eb96b1a..9308c32e 100644 --- a/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings_test.go +++ b/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateProtocolMetadataLifetimeSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.ProtocolMetadataLifetimeSettings(clientInfo) + tr := pingfederate_testable_resources.ProtocolMetadataLifetimeSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Protocol Metadata Lifetime Settings", ResourceID: "protocol_metadata_lifetime_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/protocol_metadata_signing_settings.go b/internal/connector/pingfederate/resources/protocol_metadata_signing_settings.go index addaff61..d70732cf 100644 --- a/internal/connector/pingfederate/resources/protocol_metadata_signing_settings.go +++ b/internal/connector/pingfederate/resources/protocol_metadata_signing_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/protocol_metadata_signing_settings_test.go b/internal/connector/pingfederate/resources/protocol_metadata_signing_settings_test.go index 93eeef88..23719a6e 100644 --- a/internal/connector/pingfederate/resources/protocol_metadata_signing_settings_test.go +++ b/internal/connector/pingfederate/resources/protocol_metadata_signing_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateProtocolMetadataSigningSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.ProtocolMetadataSigningSettings(clientInfo) + tr := pingfederate_testable_resources.ProtocolMetadataSigningSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Protocol Metadata Signing Settings", ResourceID: "protocol_metadata_signing_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/redirect_validation.go b/internal/connector/pingfederate/resources/redirect_validation.go index 17acdebd..d36af645 100644 --- a/internal/connector/pingfederate/resources/redirect_validation.go +++ b/internal/connector/pingfederate/resources/redirect_validation.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/redirect_validation_test.go b/internal/connector/pingfederate/resources/redirect_validation_test.go index 9757b17c..97bae724 100644 --- a/internal/connector/pingfederate/resources/redirect_validation_test.go +++ b/internal/connector/pingfederate/resources/redirect_validation_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateRedirectValidation(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.RedirectValidation(clientInfo) + tr := pingfederate_testable_resources.RedirectValidation(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Redirect Validation", ResourceID: "redirect_validation_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/secret_manager.go b/internal/connector/pingfederate/resources/secret_manager.go index 6ecb7def..574c31f6 100644 --- a/internal/connector/pingfederate/resources/secret_manager.go +++ b/internal/connector/pingfederate/resources/secret_manager.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/secret_manager_test.go b/internal/connector/pingfederate/resources/secret_manager_test.go index 1bd2f954..02bbaa1b 100644 --- a/internal/connector/pingfederate/resources/secret_manager_test.go +++ b/internal/connector/pingfederate/resources/secret_manager_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateSecretManager(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateSecretManager(t, clientInfo) + tr := pingfederate_testable_resources.SecretManager(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateSecretManager(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/server_settings.go b/internal/connector/pingfederate/resources/server_settings.go index 4bd70f50..3b808d8e 100644 --- a/internal/connector/pingfederate/resources/server_settings.go +++ b/internal/connector/pingfederate/resources/server_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/server_settings_general.go b/internal/connector/pingfederate/resources/server_settings_general.go index a2982a0f..150e6d9a 100644 --- a/internal/connector/pingfederate/resources/server_settings_general.go +++ b/internal/connector/pingfederate/resources/server_settings_general.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/server_settings_general_test.go b/internal/connector/pingfederate/resources/server_settings_general_test.go index b8892c32..d40480e5 100644 --- a/internal/connector/pingfederate/resources/server_settings_general_test.go +++ b/internal/connector/pingfederate/resources/server_settings_general_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateServerSettingsGeneral(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.ServerSettingsGeneral(clientInfo) + tr := pingfederate_testable_resources.ServerSettingsGeneral(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Server Settings General", ResourceID: "server_settings_general_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/server_settings_logging.go b/internal/connector/pingfederate/resources/server_settings_logging.go index a77a709c..0a2448f0 100644 --- a/internal/connector/pingfederate/resources/server_settings_logging.go +++ b/internal/connector/pingfederate/resources/server_settings_logging.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/server_settings_logging_test.go b/internal/connector/pingfederate/resources/server_settings_logging_test.go index 8aac4a8a..6d313cc8 100644 --- a/internal/connector/pingfederate/resources/server_settings_logging_test.go +++ b/internal/connector/pingfederate/resources/server_settings_logging_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateServerSettingsLogging(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.ServerSettingsLogging(clientInfo) + tr := pingfederate_testable_resources.ServerSettingsLogging(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Server Settings Logging", ResourceID: "server_settings_logging_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/server_settings_system_keys_rotate.go b/internal/connector/pingfederate/resources/server_settings_system_keys_rotate.go index 10d1713a..72dfc3c7 100644 --- a/internal/connector/pingfederate/resources/server_settings_system_keys_rotate.go +++ b/internal/connector/pingfederate/resources/server_settings_system_keys_rotate.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/server_settings_system_keys_rotate_test.go b/internal/connector/pingfederate/resources/server_settings_system_keys_rotate_test.go index 4dee1a94..9aaef0e5 100644 --- a/internal/connector/pingfederate/resources/server_settings_system_keys_rotate_test.go +++ b/internal/connector/pingfederate/resources/server_settings_system_keys_rotate_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateServerSettingsSystemKeysRotate(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.ServerSettingsSystemKeysRotate(clientInfo) + tr := pingfederate_testable_resources.ServerSettingsSystemKeysRotate(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Server Settings System Keys Rotate", ResourceID: "server_settings_system_keys_rotate_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/server_settings_test.go b/internal/connector/pingfederate/resources/server_settings_test.go index 26e43d37..e544a542 100644 --- a/internal/connector/pingfederate/resources/server_settings_test.go +++ b/internal/connector/pingfederate/resources/server_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateServerSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.ServerSettings(clientInfo) + tr := pingfederate_testable_resources.ServerSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Server Settings", ResourceID: "server_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings.go b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings.go index 8925069b..b519c1d6 100644 --- a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings.go +++ b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate.go b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate.go index aeafb4da..3d1e1825 100644 --- a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate.go +++ b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate_test.go b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate_test.go index 3de586c6..87418f64 100644 --- a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate_test.go +++ b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -9,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateServerSettingsWsTrustStsSettingsIssuerCertificate(t, clientInfo) + tr := pingfederate_testable_resources.ServerSettingsWsTrustStsSettingsIssuerCertificate(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -23,8 +24,8 @@ func Test_PingFederateServerSettingsWsTrustStsSettingsIssuerCertificate(t *testi expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", creationInfo[testutils_resource.ENUM_ISSUER_DN], creationInfo[testutils_resource.ENUM_SERIAL_NUMBER]), - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_%s", creationInfo.SelfInfo[testutils_resource.ENUM_ISSUER_DN], creationInfo.SelfInfo[testutils_resource.ENUM_SERIAL_NUMBER]), + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_test.go b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_test.go index 57d55c69..f1f2c715 100644 --- a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_test.go +++ b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateServerSettingsWsTrustStsSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.ServerSettingsWsTrustStsSettings(clientInfo) + tr := pingfederate_testable_resources.ServerSettingsWsTrustStsSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Server Settings Ws Trust Sts Settings", ResourceID: "server_settings_ws_trust_sts_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/service_authentication.go b/internal/connector/pingfederate/resources/service_authentication.go index 9cfc0259..4fda53b9 100644 --- a/internal/connector/pingfederate/resources/service_authentication.go +++ b/internal/connector/pingfederate/resources/service_authentication.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/service_authentication_test.go b/internal/connector/pingfederate/resources/service_authentication_test.go index 8db5e7f0..9df3e283 100644 --- a/internal/connector/pingfederate/resources/service_authentication_test.go +++ b/internal/connector/pingfederate/resources/service_authentication_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateServiceAuthentication(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.ServiceAuthentication(clientInfo) + tr := pingfederate_testable_resources.ServiceAuthentication(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Service Authentication", ResourceID: "service_authentication_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/session_application_policy.go b/internal/connector/pingfederate/resources/session_application_policy.go index 64759e0e..cae98c2f 100644 --- a/internal/connector/pingfederate/resources/session_application_policy.go +++ b/internal/connector/pingfederate/resources/session_application_policy.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/session_application_policy_test.go b/internal/connector/pingfederate/resources/session_application_policy_test.go index 19736e2e..2d9cebd7 100644 --- a/internal/connector/pingfederate/resources/session_application_policy_test.go +++ b/internal/connector/pingfederate/resources/session_application_policy_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateSessionApplicationPolicy(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.SessionApplicationPolicy(clientInfo) + tr := pingfederate_testable_resources.SessionApplicationPolicy(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Session Application Policy", ResourceID: "session_application_policy_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/session_authentication_policies_global.go b/internal/connector/pingfederate/resources/session_authentication_policies_global.go index 148e9c40..b9cb2407 100644 --- a/internal/connector/pingfederate/resources/session_authentication_policies_global.go +++ b/internal/connector/pingfederate/resources/session_authentication_policies_global.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/session_authentication_policies_global_test.go b/internal/connector/pingfederate/resources/session_authentication_policies_global_test.go index 442dbfb4..bf94f734 100644 --- a/internal/connector/pingfederate/resources/session_authentication_policies_global_test.go +++ b/internal/connector/pingfederate/resources/session_authentication_policies_global_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateSessionAuthenticationPoliciesGlobal(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.SessionAuthenticationPoliciesGlobal(clientInfo) + tr := pingfederate_testable_resources.SessionAuthenticationPoliciesGlobal(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Session Authentication Policies Global", ResourceID: "session_authentication_policies_global_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/session_authentication_policy.go b/internal/connector/pingfederate/resources/session_authentication_policy.go index bef32d71..5a8d8379 100644 --- a/internal/connector/pingfederate/resources/session_authentication_policy.go +++ b/internal/connector/pingfederate/resources/session_authentication_policy.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/session_authentication_policy_test.go b/internal/connector/pingfederate/resources/session_authentication_policy_test.go index 700ab6a9..938b73de 100644 --- a/internal/connector/pingfederate/resources/session_authentication_policy_test.go +++ b/internal/connector/pingfederate/resources/session_authentication_policy_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -9,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateSessionAuthenticationPolicy(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateSessionAuthenticationPolicy(t, clientInfo) + tr := pingfederate_testable_resources.SessionAuthenticationPolicy(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -23,8 +24,8 @@ func Test_PingFederateSessionAuthenticationPolicy(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s_%s", creationInfo[testutils_resource.ENUM_ID], creationInfo[testutils_resource.ENUM_TYPE], creationInfo[testutils_resource.ENUM_SOURCE_REF_ID]), - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_%s_%s", creationInfo.SelfInfo[testutils_resource.ENUM_ID], creationInfo.SelfInfo[testutils_resource.ENUM_TYPE], creationInfo.SelfInfo[testutils_resource.ENUM_SOURCE_REF_ID]), + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/session_settings.go b/internal/connector/pingfederate/resources/session_settings.go index 385382b9..abae7cbc 100644 --- a/internal/connector/pingfederate/resources/session_settings.go +++ b/internal/connector/pingfederate/resources/session_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/session_settings_test.go b/internal/connector/pingfederate/resources/session_settings_test.go index d3995f2c..6227454f 100644 --- a/internal/connector/pingfederate/resources/session_settings_test.go +++ b/internal/connector/pingfederate/resources/session_settings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateSessionSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.SessionSettings(clientInfo) + tr := pingfederate_testable_resources.SessionSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Session Settings", ResourceID: "session_settings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/sp_adapter.go b/internal/connector/pingfederate/resources/sp_adapter.go index e0a0930f..8d257bfb 100644 --- a/internal/connector/pingfederate/resources/sp_adapter.go +++ b/internal/connector/pingfederate/resources/sp_adapter.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/sp_adapter_test.go b/internal/connector/pingfederate/resources/sp_adapter_test.go index 740b1100..ff488963 100644 --- a/internal/connector/pingfederate/resources/sp_adapter_test.go +++ b/internal/connector/pingfederate/resources/sp_adapter_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateSpAdapter(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateSpAdapter(t, clientInfo) + tr := pingfederate_testable_resources.SpAdapter(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateSpAdapter(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping.go b/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping.go index 97015169..a9a55980 100644 --- a/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping.go +++ b/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping_test.go b/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping_test.go index 4f90776d..6240ecf7 100644 --- a/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping_test.go +++ b/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -9,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateSpAuthenticationPolicyContractMapping(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateSpAuthenticationPolicyContractMapping(t, clientInfo) + tr := pingfederate_testable_resources.SpAuthenticationPolicyContractMapping(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -23,8 +24,8 @@ func Test_PingFederateSpAuthenticationPolicyContractMapping(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_to_%s", creationInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo[testutils_resource.ENUM_TARGET_ID]), - ResourceID: fmt.Sprintf("%s|%s", creationInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo[testutils_resource.ENUM_TARGET_ID]), + ResourceName: fmt.Sprintf("%s_to_%s", creationInfo.SelfInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo.SelfInfo[testutils_resource.ENUM_TARGET_ID]), + ResourceID: fmt.Sprintf("%s|%s", creationInfo.SelfInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo.SelfInfo[testutils_resource.ENUM_TARGET_ID]), }, } diff --git a/internal/connector/pingfederate/resources/sp_idp_connection.go b/internal/connector/pingfederate/resources/sp_idp_connection.go index b39b01fa..e1f23388 100644 --- a/internal/connector/pingfederate/resources/sp_idp_connection.go +++ b/internal/connector/pingfederate/resources/sp_idp_connection.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/sp_idp_connection_test.go b/internal/connector/pingfederate/resources/sp_idp_connection_test.go index 7eb4d518..8c0844ef 100644 --- a/internal/connector/pingfederate/resources/sp_idp_connection_test.go +++ b/internal/connector/pingfederate/resources/sp_idp_connection_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -8,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateSpIdpConnection(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateSpIdpConnection(t, clientInfo) + tr := pingfederate_testable_resources.SpIdpConnection(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -22,8 +23,8 @@ func Test_PingFederateSpIdpConnection(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/sp_target_url_mappings.go b/internal/connector/pingfederate/resources/sp_target_url_mappings.go index 554ac181..38ae01bb 100644 --- a/internal/connector/pingfederate/resources/sp_target_url_mappings.go +++ b/internal/connector/pingfederate/resources/sp_target_url_mappings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/sp_target_url_mappings_test.go b/internal/connector/pingfederate/resources/sp_target_url_mappings_test.go index 345681f1..6915dfea 100644 --- a/internal/connector/pingfederate/resources/sp_target_url_mappings_test.go +++ b/internal/connector/pingfederate/resources/sp_target_url_mappings_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateSpTargetUrlMappings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.SpTargetUrlMappings(clientInfo) + tr := pingfederate_testable_resources.SpTargetUrlMappings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Sp Target Url Mappings", ResourceID: "sp_target_url_mappings_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping.go b/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping.go index 3b146668..9bdc4ad7 100644 --- a/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping.go +++ b/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping_test.go b/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping_test.go index f48b361a..3fba41c9 100644 --- a/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping_test.go +++ b/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -9,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateTokenProcessorToTokenGeneratorMapping(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingfederate.TestableResource_PingFederateTokenProcessorToTokenGeneratorMapping(t, clientInfo) + tr := pingfederate_testable_resources.TokenProcessorToTokenGeneratorMapping(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -23,8 +24,8 @@ func Test_PingFederateTokenProcessorToTokenGeneratorMapping(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_to_%s", creationInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo[testutils_resource.ENUM_TARGET_ID]), - ResourceID: creationInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_to_%s", creationInfo.SelfInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo.SelfInfo[testutils_resource.ENUM_TARGET_ID]), + ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/virtual_host_names.go b/internal/connector/pingfederate/resources/virtual_host_names.go index 956e534d..b30635ab 100644 --- a/internal/connector/pingfederate/resources/virtual_host_names.go +++ b/internal/connector/pingfederate/resources/virtual_host_names.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources diff --git a/internal/connector/pingfederate/resources/virtual_host_names_test.go b/internal/connector/pingfederate/resources/virtual_host_names_test.go index a802ce06..9cd434d4 100644 --- a/internal/connector/pingfederate/resources/virtual_host_names_test.go +++ b/internal/connector/pingfederate/resources/virtual_host_names_test.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources_test @@ -6,23 +7,23 @@ import ( "testing" "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingfederate_testable_resources" ) func Test_PingFederateVirtualHostNames(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - resource := resources.VirtualHostNames(clientInfo) + tr := pingfederate_testable_resources.VirtualHostNames(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { - ResourceType: resource.ResourceType(), + ResourceType: tr.ExportableResource.ResourceType(), ResourceName: "Virtual Host Names", ResourceID: "virtual_host_names_singleton_id", }, } - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingone/platform/resources/agreement.go b/internal/connector/pingone/platform/resources/agreement.go new file mode 100644 index 00000000..a3e2e55c --- /dev/null +++ b/internal/connector/pingone/platform/resources/agreement.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneAgreementResource{} +) + +type PingOneAgreementResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneAgreementResource +func Agreement(clientInfo *connector.ClientInfo) *PingOneAgreementResource { + return &PingOneAgreementResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneAgreementResource) ResourceType() string { + return "pingone_agreement" +} + +func (r *PingOneAgreementResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + agreementData, err := r.getAgreementData() + if err != nil { + return nil, err + } + + for agreementId, agreementName := range agreementData { + commentData := map[string]string{ + "Agreement ID": agreementId, + "Agreement Name": agreementName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: agreementName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, agreementId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneAgreementResource) getAgreementData() (map[string]string, error) { + agreementData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.AgreementsResourcesApi.ReadAllAgreements(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Agreement](iter, "ReadAllAgreements", "GetAgreements", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, agreement := range apiObjs { + agreementId, agreementIdOk := agreement.GetIdOk() + agreementName, agreementNameOk := agreement.GetNameOk() + + if agreementIdOk && agreementNameOk { + agreementData[*agreementId] = *agreementName + } + } + + return agreementData, nil +} diff --git a/internal/connector/pingone/platform/resources/agreement_localization.go b/internal/connector/pingone/platform/resources/agreement_localization.go new file mode 100644 index 00000000..3f89201b --- /dev/null +++ b/internal/connector/pingone/platform/resources/agreement_localization.go @@ -0,0 +1,93 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneAgreementLocalizationResource{} +) + +type PingOneAgreementLocalizationResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneAgreementLocalizationResource +func AgreementLocalization(clientInfo *connector.ClientInfo) *PingOneAgreementLocalizationResource { + return &PingOneAgreementLocalizationResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneAgreementLocalizationResource) ResourceType() string { + return "pingone_agreement_localization" +} + +func (r *PingOneAgreementLocalizationResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + agreementLocalizationData, err := r.getAgreementLocalizationData() + if err != nil { + return nil, err + } + + for agreementLocalizationId, agreementLocalizationName := range agreementLocalizationData { + commentData := map[string]string{ + "Agreement Localization ID": agreementLocalizationId, + "Agreement Localization Name": agreementLocalizationName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: agreementLocalizationName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, agreementLocalizationId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneAgreementLocalizationResource) getAgreementData() (map[string]string, error) { + //TODO +} + +func (r *PingOneAgreementLocalizationResource) getAgreementLocalizationData() (map[string]string, error) { + agreementLocalizationData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.AgreementLanguagesResourcesApi.ReadAllAgreementLanguages(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedLanguagesInner](iter, "ReadAllAgreementLanguages", "GetLanguages", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, innerObj := range apiObjs { + if innerObj.AgreementLanguage != nil { + agreementLocalizationId, agreementLocalizationIdOk := inner.AgreementLanguage.GetIdOk() + agreementLocalizationName, agreementLocalizationNameOk := inner.AgreementLanguage.GetNameOk() + + if agreementLocalizationIdOk && agreementLocalizationNameOk { + agreementLocalizationData[*agreementLocalizationId] = *agreementLocalizationName + } + } + } + + return agreementLocalizationData, nil +} diff --git a/internal/connector/pingone/platform/resources/agreement_localization_revision.go b/internal/connector/pingone/platform/resources/agreement_localization_revision.go new file mode 100644 index 00000000..31c0b3f8 --- /dev/null +++ b/internal/connector/pingone/platform/resources/agreement_localization_revision.go @@ -0,0 +1,147 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneAgreementLocalizationRevisionResource{} +) + +type PingOneAgreementLocalizationRevisionResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneAgreementLocalizationRevisionResource +func AgreementLocalizationRevision(clientInfo *connector.ClientInfo) *PingOneAgreementLocalizationRevisionResource { + return &PingOneAgreementLocalizationRevisionResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneAgreementLocalizationRevisionResource) ResourceType() string { + return "pingone_agreement_localization_revision" +} + +func (r *PingOneAgreementLocalizationRevisionResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + agreementData, err := r.getAgreementData() + if err != nil { + return nil, err + } + + for agreementId, agreementName := range agreementData { + agreementLocalizationData, err := r.getAgreementLanguageData(agreementId) + if err != nil { + return nil, err + } + + for agreementLocalizationId, agreementLocalizationLocale := range agreementLocalizationData { + agreementLocalizationRevisionData, err := r.getAgreementLocalizationRevisionData(agreementId, agreementLocalizationId) + if err != nil { + return nil, err + } + + for _, agreementLocalizationRevisionId := range agreementLocalizationRevisionData { + commentData := map[string]string{ + "Agreement ID": agreementId, + "Agreement Name": agreementName, + "Agreement Localization ID": agreementLocalizationId, + "Agreement Localization Locale": agreementLocalizationLocale, + "Agreement Localization Revision ID": agreementLocalizationRevisionId, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s_%s", agreementName, agreementLocalizationLocale, agreementLocalizationRevisionId), + ResourceID: fmt.Sprintf("%s/%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, agreementId, agreementLocalizationId, agreementLocalizationRevisionId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + } + } + + return &importBlocks, nil +} + +func (r *PingOneAgreementLocalizationRevisionResource) getAgreementData() (map[string]string, error) { + agreementData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.AgreementsResourcesApi.ReadAllAgreements(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Agreement](iter, "ReadAllAgreements", "GetAgreements", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, agreement := range apiObjs { + agreementId, agreementIdOk := agreement.GetIdOk() + agreementName, agreementNameOk := agreement.GetNameOk() + + if agreementIdOk && agreementNameOk { + agreementData[*agreementId] = *agreementName + } + } + + return agreementData, nil +} + +func (r *PingOneAgreementLocalizationRevisionResource) getAgreementLanguageData(agreementId string) (map[string]string, error) { + agreementLocalizationData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.AgreementLanguagesResourcesApi.ReadAllAgreementLanguages(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, agreementId).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedLanguagesInner](iter, "ReadAllAgreementLanguages", "GetLanguages", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, inner := range apiObjs { + if inner.AgreementLanguage != nil { + agreementLocalizationId, agreementLocalizationIdOk := inner.AgreementLanguage.GetIdOk() + agreementLocalizationLocale, agreementLocalizationLocaleOk := inner.AgreementLanguage.GetLocaleOk() + + if agreementLocalizationIdOk && agreementLocalizationLocaleOk { + agreementLocalizationData[*agreementLocalizationId] = *agreementLocalizationLocale + } + } + } + + return agreementLocalizationData, nil +} + +func (r *PingOneAgreementLocalizationRevisionResource) getAgreementLocalizationRevisionData(agreementId, agreementLocalizationId string) ([]string, error) { + agreementLocalizationRevisionData := []string{} + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.AgreementRevisionsResourcesApi.ReadAllAgreementLanguageRevisions(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, agreementId, agreementLocalizationId).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.AgreementLanguageRevision](iter, "ReadAllAgreementLanguageRevisions", "GetRevisions", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, agreementLocalizationRevision := range apiObjs { + agreementLocalizationRevisionId, agreementLocalizationRevisionIdOk := agreementLocalizationRevision.GetIdOk() + + if agreementLocalizationRevisionIdOk { + agreementLocalizationRevisionData = append(agreementLocalizationRevisionData, *agreementLocalizationRevisionId) + } + } + + return agreementLocalizationRevisionData, nil +} diff --git a/internal/connector/pingone/platform/resources/agreement_localization_revision_test.go b/internal/connector/pingone/platform/resources/agreement_localization_revision_test.go new file mode 100644 index 00000000..b6a60470 --- /dev/null +++ b/internal/connector/pingone/platform/resources/agreement_localization_revision_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_AgreementLocalizationRevision(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.AgreementLocalizationRevision(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/agreement_localization_test.go b/internal/connector/pingone/platform/resources/agreement_localization_test.go new file mode 100644 index 00000000..38c50618 --- /dev/null +++ b/internal/connector/pingone/platform/resources/agreement_localization_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_AgreementLocalization(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.AgreementLocalization(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/agreement_test.go b/internal/connector/pingone/platform/resources/agreement_test.go new file mode 100644 index 00000000..9218d49a --- /dev/null +++ b/internal/connector/pingone/platform/resources/agreement_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_Agreement(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.Agreement(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/branding_settings.go b/internal/connector/pingone/platform/resources/branding_settings.go new file mode 100644 index 00000000..456d5e22 --- /dev/null +++ b/internal/connector/pingone/platform/resources/branding_settings.go @@ -0,0 +1,66 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneBrandingSettingsResource{} +) + +type PingOneBrandingSettingsResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneBrandingSettingsResource +func BrandingSettings(clientInfo *connector.ClientInfo) *PingOneBrandingSettingsResource { + return &PingOneBrandingSettingsResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneBrandingSettingsResource) ResourceType() string { + return "pingone_branding_settings" +} + +func (r *PingOneBrandingSettingsResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + ok, err := r.checkBrandingSettingsData() + if err != nil { + return nil, err + } + if !ok { + return &importBlocks, nil + } + + commentData := map[string]string{ + "Resource Type": r.ResourceType(), + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: r.ResourceType(), + ResourceID: r.clientInfo.PingOneExportEnvironmentID, + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + + return &importBlocks, nil +} + +func (r *PingOneBrandingSettingsResource) checkBrandingSettingsData() (bool, error) { + _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.BrandingSettingsApi.ReadBrandingSettings(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + return common.CheckSingletonResource(response, err, "ReadBrandingSettings", r.ResourceType()) +} diff --git a/internal/connector/pingone/platform/resources/branding_settings_test.go b/internal/connector/pingone/platform/resources/branding_settings_test.go new file mode 100644 index 00000000..6e9cbf95 --- /dev/null +++ b/internal/connector/pingone/platform/resources/branding_settings_test.go @@ -0,0 +1,28 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_BrandingSettings(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.BrandingSettings(t, clientInfo) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ExportableResource.ResourceType(), + ResourceID: clientInfo.PingOneExportEnvironmentID, + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/branding_theme.go b/internal/connector/pingone/platform/resources/branding_theme.go new file mode 100644 index 00000000..13bec099 --- /dev/null +++ b/internal/connector/pingone/platform/resources/branding_theme.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneBrandingThemeResource{} +) + +type PingOneBrandingThemeResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneBrandingThemeResource +func BrandingTheme(clientInfo *connector.ClientInfo) *PingOneBrandingThemeResource { + return &PingOneBrandingThemeResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneBrandingThemeResource) ResourceType() string { + return "pingone_branding_theme" +} + +func (r *PingOneBrandingThemeResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + brandingThemeData, err := r.getBrandingThemeData() + if err != nil { + return nil, err + } + + for brandingThemeId, brandingThemeName := range brandingThemeData { + commentData := map[string]string{ + "Branding Theme ID": brandingThemeId, + "Branding Theme Name": brandingThemeName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: brandingThemeName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, brandingThemeId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneBrandingThemeResource) getBrandingThemeData() (map[string]string, error) { + brandingThemeData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.BrandingThemesApi.ReadBrandingThemes(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.BrandingTheme](iter, "ReadBrandingThemes", "GetThemes", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, brandingTheme := range apiObjs { + brandingThemeId, brandingThemeIdOk := brandingTheme.GetIdOk() + brandingThemeName, brandingThemeNameOk := brandingTheme.GetNameOk() + + if brandingThemeIdOk && brandingThemeNameOk { + brandingThemeData[*brandingThemeId] = *brandingThemeName + } + } + + return brandingThemeData, nil +} diff --git a/internal/connector/pingone/platform/resources/branding_theme_default.go b/internal/connector/pingone/platform/resources/branding_theme_default.go new file mode 100644 index 00000000..b9e7825f --- /dev/null +++ b/internal/connector/pingone/platform/resources/branding_theme_default.go @@ -0,0 +1,66 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneBrandingThemeDefaultResource{} +) + +type PingOneBrandingThemeDefaultResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneBrandingThemeDefaultResource +func BrandingThemeDefault(clientInfo *connector.ClientInfo) *PingOneBrandingThemeDefaultResource { + return &PingOneBrandingThemeDefaultResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneBrandingThemeDefaultResource) ResourceType() string { + return "pingone_branding_theme_default" +} + +func (r *PingOneBrandingThemeDefaultResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + ok, err := r.checkBrandingThemeDefaultData() + if err != nil { + return nil, err + } + if !ok { + return &importBlocks, nil + } + + commentData := map[string]string{ + "Resource Type": r.ResourceType(), + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: r.ResourceType(), + ResourceID: r.clientInfo.PingOneExportEnvironmentID, + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + + return &importBlocks, nil +} + +func (r *PingOneBrandingThemeDefaultResource) checkBrandingThemeDefaultData() (bool, error) { + _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.BrandingThemesApi.ReadBrandingThemeDefault(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + return common.CheckSingletonResource(response, err, "ReadBrandingThemeDefault", r.ResourceType()) +} diff --git a/internal/connector/pingone/platform/resources/branding_theme_default_test.go b/internal/connector/pingone/platform/resources/branding_theme_default_test.go new file mode 100644 index 00000000..c7c3b5d0 --- /dev/null +++ b/internal/connector/pingone/platform/resources/branding_theme_default_test.go @@ -0,0 +1,28 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_BrandingThemeDefault(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.BrandingThemeDefault(t, clientInfo) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ExportableResource.ResourceType(), + ResourceID: clientInfo.PingOneExportEnvironmentID, + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/branding_theme_test.go b/internal/connector/pingone/platform/resources/branding_theme_test.go new file mode 100644 index 00000000..335f503a --- /dev/null +++ b/internal/connector/pingone/platform/resources/branding_theme_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_BrandingTheme(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.BrandingTheme(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/certificate.go b/internal/connector/pingone/platform/resources/certificate.go new file mode 100644 index 00000000..b651b625 --- /dev/null +++ b/internal/connector/pingone/platform/resources/certificate.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneCertificateResource{} +) + +type PingOneCertificateResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneCertificateResource +func Certificate(clientInfo *connector.ClientInfo) *PingOneCertificateResource { + return &PingOneCertificateResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneCertificateResource) ResourceType() string { + return "pingone_certificate" +} + +func (r *PingOneCertificateResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + certificateData, err := r.getCertificateData() + if err != nil { + return nil, err + } + + for certificateId, certificateName := range certificateData { + commentData := map[string]string{ + "Certificate ID": certificateId, + "Certificate Name": certificateName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: certificateName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, certificateId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneCertificateResource) getCertificateData() (map[string]string, error) { + certificateData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.GetCertificates(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.PKIFileUpload](iter, "GetCertificates", "GetKeys", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, certificate := range apiObjs { + certificateId, certificateIdOk := certificate.GetIdOk() + certificateName, certificateNameOk := certificate.GetNameOk() + + if certificateIdOk && certificateNameOk { + certificateData[*certificateId] = *certificateName + } + } + + return certificateData, nil +} diff --git a/internal/connector/pingone/platform/resources/certificate_test.go b/internal/connector/pingone/platform/resources/certificate_test.go new file mode 100644 index 00000000..f6f2773c --- /dev/null +++ b/internal/connector/pingone/platform/resources/certificate_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_Certificate(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.Certificate(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/custom_domain.go b/internal/connector/pingone/platform/resources/custom_domain.go new file mode 100644 index 00000000..de8d23da --- /dev/null +++ b/internal/connector/pingone/platform/resources/custom_domain.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneCustomDomainResource{} +) + +type PingOneCustomDomainResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneCustomDomainResource +func CustomDomain(clientInfo *connector.ClientInfo) *PingOneCustomDomainResource { + return &PingOneCustomDomainResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneCustomDomainResource) ResourceType() string { + return "pingone_custom_domain" +} + +func (r *PingOneCustomDomainResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + customDomainData, err := r.getCustomDomainData() + if err != nil { + return nil, err + } + + for customDomainId, customDomainName := range customDomainData { + commentData := map[string]string{ + "Custom Domain ID": customDomainId, + "Custom Domain Name": customDomainName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: customDomainName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, customDomainId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneCustomDomainResource) getCustomDomainData() (map[string]string, error) { + customDomainData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.CustomDomainsApi.ReadAllDomains(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.CustomDomain](iter, "ReadAllDomains", "GetCustomDomains", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, customDomain := range apiObjs { + customDomainId, customDomainIdOk := customDomain.GetIdOk() + customDomainName, customDomainNameOk := customDomain.GetNameOk() + + if customDomainIdOk && customDomainNameOk { + customDomainData[*customDomainId] = *customDomainName + } + } + + return customDomainData, nil +} diff --git a/internal/connector/pingone/platform/resources/custom_domain_test.go b/internal/connector/pingone/platform/resources/custom_domain_test.go new file mode 100644 index 00000000..fa776c2b --- /dev/null +++ b/internal/connector/pingone/platform/resources/custom_domain_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_CustomDomain(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.CustomDomain(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/environment.go b/internal/connector/pingone/platform/resources/environment.go new file mode 100644 index 00000000..72fb72f3 --- /dev/null +++ b/internal/connector/pingone/platform/resources/environment.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneEnvironmentResource{} +) + +type PingOneEnvironmentResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneEnvironmentResource +func Environment(clientInfo *connector.ClientInfo) *PingOneEnvironmentResource { + return &PingOneEnvironmentResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneEnvironmentResource) ResourceType() string { + return "pingone_environment" +} + +func (r *PingOneEnvironmentResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + environmentData, err := r.getEnvironmentData() + if err != nil { + return nil, err + } + + for environmentId, environmentName := range environmentData { + commentData := map[string]string{ + "Environment ID": environmentId, + "Environment Name": environmentName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: environmentName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, environmentId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneEnvironmentResource) getEnvironmentData() (map[string]string, error) { + environmentData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.EnvironmentsApi.ReadAllEnvironments(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Environment](iter, "ReadAllEnvironments", "GetEnvironments", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, environment := range apiObjs { + environmentId, environmentIdOk := environment.GetIdOk() + environmentName, environmentNameOk := environment.GetNameOk() + + if environmentIdOk && environmentNameOk { + environmentData[*environmentId] = *environmentName + } + } + + return environmentData, nil +} diff --git a/internal/connector/pingone/platform/resources/environment_test.go b/internal/connector/pingone/platform/resources/environment_test.go new file mode 100644 index 00000000..c5bef403 --- /dev/null +++ b/internal/connector/pingone/platform/resources/environment_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_Environment(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.Environment(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/form.go b/internal/connector/pingone/platform/resources/form.go new file mode 100644 index 00000000..e9d104d8 --- /dev/null +++ b/internal/connector/pingone/platform/resources/form.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneFormResource{} +) + +type PingOneFormResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneFormResource +func Form(clientInfo *connector.ClientInfo) *PingOneFormResource { + return &PingOneFormResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneFormResource) ResourceType() string { + return "pingone_form" +} + +func (r *PingOneFormResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + formData, err := r.getFormData() + if err != nil { + return nil, err + } + + for formId, formName := range formData { + commentData := map[string]string{ + "Form ID": formId, + "Form Name": formName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: formName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, formId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneFormResource) getFormData() (map[string]string, error) { + formData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.FormManagementApi.ReadAllForms(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Form](iter, "ReadAllForms", "GetForms", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, form := range apiObjs { + formId, formIdOk := form.GetIdOk() + formName, formNameOk := form.GetNameOk() + + if formIdOk && formNameOk { + formData[*formId] = *formName + } + } + + return formData, nil +} diff --git a/internal/connector/pingone/platform/resources/form_test.go b/internal/connector/pingone/platform/resources/form_test.go new file mode 100644 index 00000000..9c4998da --- /dev/null +++ b/internal/connector/pingone/platform/resources/form_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_Form(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.Form(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/forms_recaptcha_v2.go b/internal/connector/pingone/platform/resources/forms_recaptcha_v2.go new file mode 100644 index 00000000..75c52128 --- /dev/null +++ b/internal/connector/pingone/platform/resources/forms_recaptcha_v2.go @@ -0,0 +1,66 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneFormsRecaptchaV2Resource{} +) + +type PingOneFormsRecaptchaV2Resource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneFormsRecaptchaV2Resource +func FormsRecaptchaV2(clientInfo *connector.ClientInfo) *PingOneFormsRecaptchaV2Resource { + return &PingOneFormsRecaptchaV2Resource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneFormsRecaptchaV2Resource) ResourceType() string { + return "pingone_forms_recaptcha_v2" +} + +func (r *PingOneFormsRecaptchaV2Resource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + ok, err := r.checkFormsRecaptchaV2Data() + if err != nil { + return nil, err + } + if !ok { + return &importBlocks, nil + } + + commentData := map[string]string{ + "Resource Type": r.ResourceType(), + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: r.ResourceType(), + ResourceID: r.clientInfo.PingOneExportEnvironmentID, + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + + return &importBlocks, nil +} + +func (r *PingOneFormsRecaptchaV2Resource) checkFormsRecaptchaV2Data() (bool, error) { + _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.RecaptchaConfigurationApi.ReadRecaptchaConfiguration(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + return common.CheckSingletonResource(response, err, "ReadRecaptchaConfiguration", r.ResourceType()) +} diff --git a/internal/connector/pingone/platform/resources/forms_recaptcha_v2_test.go b/internal/connector/pingone/platform/resources/forms_recaptcha_v2_test.go new file mode 100644 index 00000000..f53069b7 --- /dev/null +++ b/internal/connector/pingone/platform/resources/forms_recaptcha_v2_test.go @@ -0,0 +1,28 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_FormsRecaptchaV2(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.FormsRecaptchaV2(t, clientInfo) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ExportableResource.ResourceType(), + ResourceID: clientInfo.PingOneExportEnvironmentID, + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/gateway.go b/internal/connector/pingone/platform/resources/gateway.go new file mode 100644 index 00000000..a88158cf --- /dev/null +++ b/internal/connector/pingone/platform/resources/gateway.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneGatewayResource{} +) + +type PingOneGatewayResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneGatewayResource +func Gateway(clientInfo *connector.ClientInfo) *PingOneGatewayResource { + return &PingOneGatewayResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneGatewayResource) ResourceType() string { + return "pingone_gateway" +} + +func (r *PingOneGatewayResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + gatewayData, err := r.getGatewayData() + if err != nil { + return nil, err + } + + for gatewayId, gatewayName := range gatewayData { + commentData := map[string]string{ + "Gateway ID": gatewayId, + "Gateway Name": gatewayName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: gatewayName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, gatewayId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneGatewayResource) getGatewayData() (map[string]string, error) { + gatewayData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GatewaysApi.ReadAllGateways(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.CreateGatewayRequest](iter, "ReadAllGateways", "GetGateways", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, gateway := range apiObjs { + gatewayId, gatewayIdOk := gateway.GetIdOk() + gatewayName, gatewayNameOk := gateway.GetNameOk() + + if gatewayIdOk && gatewayNameOk { + gatewayData[*gatewayId] = *gatewayName + } + } + + return gatewayData, nil +} diff --git a/internal/connector/pingone/platform/resources/gateway_credential.go b/internal/connector/pingone/platform/resources/gateway_credential.go new file mode 100644 index 00000000..b6c30b50 --- /dev/null +++ b/internal/connector/pingone/platform/resources/gateway_credential.go @@ -0,0 +1,91 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneGatewayCredentialResource{} +) + +type PingOneGatewayCredentialResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneGatewayCredentialResource +func GatewayCredential(clientInfo *connector.ClientInfo) *PingOneGatewayCredentialResource { + return &PingOneGatewayCredentialResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneGatewayCredentialResource) ResourceType() string { + return "pingone_gateway_credential" +} + +func (r *PingOneGatewayCredentialResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + gatewayCredentialData, err := r.getGatewayCredentialData() + if err != nil { + return nil, err + } + + for gatewayCredentialId, gatewayCredentialName := range gatewayCredentialData { + commentData := map[string]string{ + "Gateway Credential ID": gatewayCredentialId, + "Gateway Credential Name": gatewayCredentialName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: gatewayCredentialName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, gatewayCredentialId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneGatewayCredentialResource) getGatewayData() (map[string]string, error) { + //TODO +} + +func (r *PingOneGatewayCredentialResource) getGatewayCredentialData() (map[string]string, error) { + gatewayCredentialData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GatewayCredentialsApi.ReadAllGatewayCredentials(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.GatewayCredential](iter, "ReadAllGatewayCredentials", "GetCredentials", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, gatewayCredential := range apiObjs { + gatewayCredentialId, gatewayCredentialIdOk := gatewayCredential.GetIdOk() + gatewayCredentialName, gatewayCredentialNameOk := gatewayCredential.GetNameOk() + + if gatewayCredentialIdOk && gatewayCredentialNameOk { + gatewayCredentialData[*gatewayCredentialId] = *gatewayCredentialName + } + } + + return gatewayCredentialData, nil +} diff --git a/internal/connector/pingone/platform/resources/gateway_credential_test.go b/internal/connector/pingone/platform/resources/gateway_credential_test.go new file mode 100644 index 00000000..9d101706 --- /dev/null +++ b/internal/connector/pingone/platform/resources/gateway_credential_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_GatewayCredential(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.GatewayCredential(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/gateway_role_assignment.go b/internal/connector/pingone/platform/resources/gateway_role_assignment.go new file mode 100644 index 00000000..303bdb73 --- /dev/null +++ b/internal/connector/pingone/platform/resources/gateway_role_assignment.go @@ -0,0 +1,91 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneGatewayRoleAssignmentResource{} +) + +type PingOneGatewayRoleAssignmentResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneGatewayRoleAssignmentResource +func GatewayRoleAssignment(clientInfo *connector.ClientInfo) *PingOneGatewayRoleAssignmentResource { + return &PingOneGatewayRoleAssignmentResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneGatewayRoleAssignmentResource) ResourceType() string { + return "pingone_gateway_role_assignment" +} + +func (r *PingOneGatewayRoleAssignmentResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + gatewayRoleAssignmentData, err := r.getGatewayRoleAssignmentData() + if err != nil { + return nil, err + } + + for gatewayRoleAssignmentId, gatewayRoleAssignmentName := range gatewayRoleAssignmentData { + commentData := map[string]string{ + "Gateway Role Assignment ID": gatewayRoleAssignmentId, + "Gateway Role Assignment Name": gatewayRoleAssignmentName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: gatewayRoleAssignmentName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, gatewayRoleAssignmentId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneGatewayRoleAssignmentResource) getGatewayData() (map[string]string, error) { + //TODO +} + +func (r *PingOneGatewayRoleAssignmentResource) getGatewayRoleAssignmentData() (map[string]string, error) { + gatewayRoleAssignmentData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GatewayRoleAssignmentsApi.ReadGatewayRoleAssignments(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.RoleAssignment](iter, "ReadGatewayRoleAssignments", "GetRoleAssignments", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, gatewayRoleAssignment := range apiObjs { + gatewayRoleAssignmentId, gatewayRoleAssignmentIdOk := gatewayRoleAssignment.GetIdOk() + gatewayRoleAssignmentName, gatewayRoleAssignmentNameOk := gatewayRoleAssignment.GetNameOk() + + if gatewayRoleAssignmentIdOk && gatewayRoleAssignmentNameOk { + gatewayRoleAssignmentData[*gatewayRoleAssignmentId] = *gatewayRoleAssignmentName + } + } + + return gatewayRoleAssignmentData, nil +} diff --git a/internal/connector/pingone/platform/resources/gateway_role_assignment_test.go b/internal/connector/pingone/platform/resources/gateway_role_assignment_test.go new file mode 100644 index 00000000..8b2de9b1 --- /dev/null +++ b/internal/connector/pingone/platform/resources/gateway_role_assignment_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_GatewayRoleAssignment(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.GatewayRoleAssignment(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/gateway_test.go b/internal/connector/pingone/platform/resources/gateway_test.go new file mode 100644 index 00000000..f3ffa215 --- /dev/null +++ b/internal/connector/pingone/platform/resources/gateway_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_Gateway(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.Gateway(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/identity_propagation_plan.go b/internal/connector/pingone/platform/resources/identity_propagation_plan.go new file mode 100644 index 00000000..523a2ee3 --- /dev/null +++ b/internal/connector/pingone/platform/resources/identity_propagation_plan.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneIdentityPropagationPlanResource{} +) + +type PingOneIdentityPropagationPlanResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneIdentityPropagationPlanResource +func IdentityPropagationPlan(clientInfo *connector.ClientInfo) *PingOneIdentityPropagationPlanResource { + return &PingOneIdentityPropagationPlanResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneIdentityPropagationPlanResource) ResourceType() string { + return "pingone_identity_propagation_plan" +} + +func (r *PingOneIdentityPropagationPlanResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + identityPropagationPlanData, err := r.getIdentityPropagationPlanData() + if err != nil { + return nil, err + } + + for identityPropagationPlanId, identityPropagationPlanName := range identityPropagationPlanData { + commentData := map[string]string{ + "Identity Propagation Plan ID": identityPropagationPlanId, + "Identity Propagation Plan Name": identityPropagationPlanName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: identityPropagationPlanName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, identityPropagationPlanId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneIdentityPropagationPlanResource) getIdentityPropagationPlanData() (map[string]string, error) { + identityPropagationPlanData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.IdentityPropagationPlansApi.ReadAllPlans(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.IdentityPropagationPlan](iter, "ReadAllPlans", "GetPlans", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, identityPropagationPlan := range apiObjs { + identityPropagationPlanId, identityPropagationPlanIdOk := identityPropagationPlan.GetIdOk() + identityPropagationPlanName, identityPropagationPlanNameOk := identityPropagationPlan.GetNameOk() + + if identityPropagationPlanIdOk && identityPropagationPlanNameOk { + identityPropagationPlanData[*identityPropagationPlanId] = *identityPropagationPlanName + } + } + + return identityPropagationPlanData, nil +} diff --git a/internal/connector/pingone/platform/resources/identity_propagation_plan_test.go b/internal/connector/pingone/platform/resources/identity_propagation_plan_test.go new file mode 100644 index 00000000..ab506a19 --- /dev/null +++ b/internal/connector/pingone/platform/resources/identity_propagation_plan_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_IdentityPropagationPlan(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.IdentityPropagationPlan(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/key.go b/internal/connector/pingone/platform/resources/key.go new file mode 100644 index 00000000..95ad9a0f --- /dev/null +++ b/internal/connector/pingone/platform/resources/key.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneKeyResource{} +) + +type PingOneKeyResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneKeyResource +func Key(clientInfo *connector.ClientInfo) *PingOneKeyResource { + return &PingOneKeyResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneKeyResource) ResourceType() string { + return "pingone_key" +} + +func (r *PingOneKeyResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + keyData, err := r.getKeyData() + if err != nil { + return nil, err + } + + for keyId, keyName := range keyData { + commentData := map[string]string{ + "Key ID": keyId, + "Key Name": keyName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: keyName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, keyId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneKeyResource) getKeyData() (map[string]string, error) { + keyData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.GetKeys(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Certificate](iter, "GetKeys", "GetKeys", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, key := range apiObjs { + keyId, keyIdOk := key.GetIdOk() + keyName, keyNameOk := key.GetNameOk() + + if keyIdOk && keyNameOk { + keyData[*keyId] = *keyName + } + } + + return keyData, nil +} diff --git a/internal/connector/pingone/platform/resources/key_rotation_policy.go b/internal/connector/pingone/platform/resources/key_rotation_policy.go new file mode 100644 index 00000000..309befcb --- /dev/null +++ b/internal/connector/pingone/platform/resources/key_rotation_policy.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneKeyRotationPolicyResource{} +) + +type PingOneKeyRotationPolicyResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneKeyRotationPolicyResource +func KeyRotationPolicy(clientInfo *connector.ClientInfo) *PingOneKeyRotationPolicyResource { + return &PingOneKeyRotationPolicyResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneKeyRotationPolicyResource) ResourceType() string { + return "pingone_key_rotation_policy" +} + +func (r *PingOneKeyRotationPolicyResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + keyRotationPolicyData, err := r.getKeyRotationPolicyData() + if err != nil { + return nil, err + } + + for keyRotationPolicyId, keyRotationPolicyName := range keyRotationPolicyData { + commentData := map[string]string{ + "Key Rotation Policy ID": keyRotationPolicyId, + "Key Rotation Policy Name": keyRotationPolicyName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: keyRotationPolicyName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, keyRotationPolicyId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneKeyRotationPolicyResource) getKeyRotationPolicyData() (map[string]string, error) { + keyRotationPolicyData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.KeyRotationPoliciesApi.GetKeyRotationPolicies(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.KeyRotationPolicy](iter, "GetKeyRotationPolicies", "GetKeyRotationPolicies", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, keyRotationPolicy := range apiObjs { + keyRotationPolicyId, keyRotationPolicyIdOk := keyRotationPolicy.GetIdOk() + keyRotationPolicyName, keyRotationPolicyNameOk := keyRotationPolicy.GetNameOk() + + if keyRotationPolicyIdOk && keyRotationPolicyNameOk { + keyRotationPolicyData[*keyRotationPolicyId] = *keyRotationPolicyName + } + } + + return keyRotationPolicyData, nil +} diff --git a/internal/connector/pingone/platform/resources/key_rotation_policy_test.go b/internal/connector/pingone/platform/resources/key_rotation_policy_test.go new file mode 100644 index 00000000..95ac9eca --- /dev/null +++ b/internal/connector/pingone/platform/resources/key_rotation_policy_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_KeyRotationPolicy(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.KeyRotationPolicy(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/key_test.go b/internal/connector/pingone/platform/resources/key_test.go new file mode 100644 index 00000000..01d57352 --- /dev/null +++ b/internal/connector/pingone/platform/resources/key_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_Key(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.Key(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/langauge.go b/internal/connector/pingone/platform/resources/langauge.go new file mode 100644 index 00000000..ed8bb80c --- /dev/null +++ b/internal/connector/pingone/platform/resources/langauge.go @@ -0,0 +1,89 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneLangaugeResource{} +) + +type PingOneLangaugeResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneLangaugeResource +func Langauge(clientInfo *connector.ClientInfo) *PingOneLangaugeResource { + return &PingOneLangaugeResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneLangaugeResource) ResourceType() string { + return "pingone_langauge" +} + +func (r *PingOneLangaugeResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + langaugeData, err := r.getLangaugeData() + if err != nil { + return nil, err + } + + for langaugeId, langaugeName := range langaugeData { + commentData := map[string]string{ + "Langauge ID": langaugeId, + "Langauge Name": langaugeName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: langaugeName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, langaugeId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneLangaugeResource) getLangaugeData() (map[string]string, error) { + langaugeData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.LanguagesApi.ReadLanguages(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedLanguagesInner](iter, "ReadLanguages", "GetLanguages", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, innerObj := range apiObjs { + if innerObj.Language != nil { + langaugeId, langaugeIdOk := inner.Language.GetIdOk() + langaugeName, langaugeNameOk := inner.Language.GetNameOk() + + if langaugeIdOk && langaugeNameOk { + langaugeData[*langaugeId] = *langaugeName + } + } + } + + return langaugeData, nil +} diff --git a/internal/connector/pingone/platform/resources/langauge_test.go b/internal/connector/pingone/platform/resources/langauge_test.go new file mode 100644 index 00000000..73d4800f --- /dev/null +++ b/internal/connector/pingone/platform/resources/langauge_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_Langauge(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.Langauge(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/notification_policy.go b/internal/connector/pingone/platform/resources/notification_policy.go new file mode 100644 index 00000000..52127a63 --- /dev/null +++ b/internal/connector/pingone/platform/resources/notification_policy.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneNotificationPolicyResource{} +) + +type PingOneNotificationPolicyResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneNotificationPolicyResource +func NotificationPolicy(clientInfo *connector.ClientInfo) *PingOneNotificationPolicyResource { + return &PingOneNotificationPolicyResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneNotificationPolicyResource) ResourceType() string { + return "pingone_notification_policy" +} + +func (r *PingOneNotificationPolicyResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + notificationPolicyData, err := r.getNotificationPolicyData() + if err != nil { + return nil, err + } + + for notificationPolicyId, notificationPolicyName := range notificationPolicyData { + commentData := map[string]string{ + "Notification Policy ID": notificationPolicyId, + "Notification Policy Name": notificationPolicyName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: notificationPolicyName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, notificationPolicyId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneNotificationPolicyResource) getNotificationPolicyData() (map[string]string, error) { + notificationPolicyData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsPoliciesApi.ReadAllNotificationsPolicies(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.NotificationsPolicy](iter, "ReadAllNotificationsPolicies", "GetNotificationsPolicies", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, notificationPolicy := range apiObjs { + notificationPolicyId, notificationPolicyIdOk := notificationPolicy.GetIdOk() + notificationPolicyName, notificationPolicyNameOk := notificationPolicy.GetNameOk() + + if notificationPolicyIdOk && notificationPolicyNameOk { + notificationPolicyData[*notificationPolicyId] = *notificationPolicyName + } + } + + return notificationPolicyData, nil +} diff --git a/internal/connector/pingone/platform/resources/notification_policy_test.go b/internal/connector/pingone/platform/resources/notification_policy_test.go new file mode 100644 index 00000000..6e66a325 --- /dev/null +++ b/internal/connector/pingone/platform/resources/notification_policy_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_NotificationPolicy(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.NotificationPolicy(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/notification_settings.go b/internal/connector/pingone/platform/resources/notification_settings.go new file mode 100644 index 00000000..a979aea7 --- /dev/null +++ b/internal/connector/pingone/platform/resources/notification_settings.go @@ -0,0 +1,66 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneNotificationSettingsResource{} +) + +type PingOneNotificationSettingsResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneNotificationSettingsResource +func NotificationSettings(clientInfo *connector.ClientInfo) *PingOneNotificationSettingsResource { + return &PingOneNotificationSettingsResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneNotificationSettingsResource) ResourceType() string { + return "pingone_notification_settings" +} + +func (r *PingOneNotificationSettingsResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + ok, err := r.checkNotificationSettingsData() + if err != nil { + return nil, err + } + if !ok { + return &importBlocks, nil + } + + commentData := map[string]string{ + "Resource Type": r.ResourceType(), + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: r.ResourceType(), + ResourceID: r.clientInfo.PingOneExportEnvironmentID, + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + + return &importBlocks, nil +} + +func (r *PingOneNotificationSettingsResource) checkNotificationSettingsData() (bool, error) { + _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsSettingsApi.ReadNotificationsSettings(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + return common.CheckSingletonResource(response, err, "ReadNotificationsSettings", r.ResourceType()) +} diff --git a/internal/connector/pingone/platform/resources/notification_settings_email.go b/internal/connector/pingone/platform/resources/notification_settings_email.go new file mode 100644 index 00000000..76719afd --- /dev/null +++ b/internal/connector/pingone/platform/resources/notification_settings_email.go @@ -0,0 +1,66 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneNotificationSettingsEmailResource{} +) + +type PingOneNotificationSettingsEmailResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneNotificationSettingsEmailResource +func NotificationSettingsEmail(clientInfo *connector.ClientInfo) *PingOneNotificationSettingsEmailResource { + return &PingOneNotificationSettingsEmailResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneNotificationSettingsEmailResource) ResourceType() string { + return "pingone_notification_settings_email" +} + +func (r *PingOneNotificationSettingsEmailResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + ok, err := r.checkNotificationSettingsEmailData() + if err != nil { + return nil, err + } + if !ok { + return &importBlocks, nil + } + + commentData := map[string]string{ + "Resource Type": r.ResourceType(), + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: r.ResourceType(), + ResourceID: r.clientInfo.PingOneExportEnvironmentID, + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + + return &importBlocks, nil +} + +func (r *PingOneNotificationSettingsEmailResource) checkNotificationSettingsEmailData() (bool, error) { + _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsSettingsSMTPApi.ReadEmailNotificationsSettings(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + return common.CheckSingletonResource(response, err, "ReadEmailNotificationsSettings", r.ResourceType()) +} diff --git a/internal/connector/pingone/platform/resources/notification_settings_email_test.go b/internal/connector/pingone/platform/resources/notification_settings_email_test.go new file mode 100644 index 00000000..b60b395a --- /dev/null +++ b/internal/connector/pingone/platform/resources/notification_settings_email_test.go @@ -0,0 +1,28 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_NotificationSettingsEmail(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.NotificationSettingsEmail(t, clientInfo) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ExportableResource.ResourceType(), + ResourceID: clientInfo.PingOneExportEnvironmentID, + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/notification_settings_test.go b/internal/connector/pingone/platform/resources/notification_settings_test.go new file mode 100644 index 00000000..189068cd --- /dev/null +++ b/internal/connector/pingone/platform/resources/notification_settings_test.go @@ -0,0 +1,28 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_NotificationSettings(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.NotificationSettings(t, clientInfo) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ExportableResource.ResourceType(), + ResourceID: clientInfo.PingOneExportEnvironmentID, + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/notification_template_content.go b/internal/connector/pingone/platform/resources/notification_template_content.go new file mode 100644 index 00000000..4fab003a --- /dev/null +++ b/internal/connector/pingone/platform/resources/notification_template_content.go @@ -0,0 +1,91 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneNotificationTemplateContentResource{} +) + +type PingOneNotificationTemplateContentResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneNotificationTemplateContentResource +func NotificationTemplateContent(clientInfo *connector.ClientInfo) *PingOneNotificationTemplateContentResource { + return &PingOneNotificationTemplateContentResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneNotificationTemplateContentResource) ResourceType() string { + return "pingone_notification_template_content" +} + +func (r *PingOneNotificationTemplateContentResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + notificationTemplateContentData, err := r.getNotificationTemplateContentData() + if err != nil { + return nil, err + } + + for notificationTemplateContentId, notificationTemplateContentName := range notificationTemplateContentData { + commentData := map[string]string{ + "Notification Template Content ID": notificationTemplateContentId, + "Notification Template Content Name": notificationTemplateContentName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: notificationTemplateContentName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, notificationTemplateContentId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneNotificationTemplateContentResource) getTemplateData() (map[string]string, error) { + //TODO +} + +func (r *PingOneNotificationTemplateContentResource) getNotificationTemplateContentData() (map[string]string, error) { + notificationTemplateContentData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsTemplatesApi.ReadAllTemplateContents(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.TemplateContent](iter, "ReadAllTemplateContents", "GetContents", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, notificationTemplateContent := range apiObjs { + notificationTemplateContentId, notificationTemplateContentIdOk := notificationTemplateContent.GetIdOk() + notificationTemplateContentName, notificationTemplateContentNameOk := notificationTemplateContent.GetNameOk() + + if notificationTemplateContentIdOk && notificationTemplateContentNameOk { + notificationTemplateContentData[*notificationTemplateContentId] = *notificationTemplateContentName + } + } + + return notificationTemplateContentData, nil +} diff --git a/internal/connector/pingone/platform/resources/notification_template_content_test.go b/internal/connector/pingone/platform/resources/notification_template_content_test.go new file mode 100644 index 00000000..7cf6a8c5 --- /dev/null +++ b/internal/connector/pingone/platform/resources/notification_template_content_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_NotificationTemplateContent(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.NotificationTemplateContent(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/phone_delivery_settings.go b/internal/connector/pingone/platform/resources/phone_delivery_settings.go new file mode 100644 index 00000000..924ca5d7 --- /dev/null +++ b/internal/connector/pingone/platform/resources/phone_delivery_settings.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOnePhoneDeliverySettingsResource{} +) + +type PingOnePhoneDeliverySettingsResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOnePhoneDeliverySettingsResource +func PhoneDeliverySettings(clientInfo *connector.ClientInfo) *PingOnePhoneDeliverySettingsResource { + return &PingOnePhoneDeliverySettingsResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOnePhoneDeliverySettingsResource) ResourceType() string { + return "pingone_phone_delivery_settings" +} + +func (r *PingOnePhoneDeliverySettingsResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + phoneDeliverySettingsData, err := r.getPhoneDeliverySettingsData() + if err != nil { + return nil, err + } + + for phoneDeliverySettingsId, phoneDeliverySettingsName := range phoneDeliverySettingsData { + commentData := map[string]string{ + "Phone Delivery Settings ID": phoneDeliverySettingsId, + "Phone Delivery Settings Name": phoneDeliverySettingsName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: phoneDeliverySettingsName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, phoneDeliverySettingsId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOnePhoneDeliverySettingsResource) getPhoneDeliverySettingsData() (map[string]string, error) { + phoneDeliverySettingsData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.PhoneDeliverySettingsApi.ReadAllPhoneDeliverySettings(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.NotificationsSettingsPhoneDeliverySettings](iter, "ReadAllPhoneDeliverySettings", "GetPhoneDeliverySettings", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, phoneDeliverySettings := range apiObjs { + phoneDeliverySettingsId, phoneDeliverySettingsIdOk := phoneDeliverySettings.GetIdOk() + phoneDeliverySettingsName, phoneDeliverySettingsNameOk := phoneDeliverySettings.GetNameOk() + + if phoneDeliverySettingsIdOk && phoneDeliverySettingsNameOk { + phoneDeliverySettingsData[*phoneDeliverySettingsId] = *phoneDeliverySettingsName + } + } + + return phoneDeliverySettingsData, nil +} diff --git a/internal/connector/pingone/platform/resources/phone_delivery_settings_test.go b/internal/connector/pingone/platform/resources/phone_delivery_settings_test.go new file mode 100644 index 00000000..d1858c17 --- /dev/null +++ b/internal/connector/pingone/platform/resources/phone_delivery_settings_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_PhoneDeliverySettings(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.PhoneDeliverySettings(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_test.go b/internal/connector/pingone/platform/resources/pingone_agreement_test.go deleted file mode 100644 index dec276b8..00000000 --- a/internal/connector/pingone/platform/resources/pingone_agreement_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestAgreementExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.Agreement(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_agreement", - ResourceName: "Test", - ResourceID: fmt.Sprintf("%s/37ab76b8-8eff-43ae-b499-a7dce9fe0e75", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_agreement", - ResourceName: "Test2", - ResourceID: fmt.Sprintf("%s/38c0c463-b13d-4d22-8da5-f9fd8093d594", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources/pingone_branding_settings_test.go b/internal/connector/pingone/platform/resources/pingone_branding_settings_test.go deleted file mode 100644 index 4cd2ae58..00000000 --- a/internal/connector/pingone/platform/resources/pingone_branding_settings_test.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestBrandingSettingsExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.BrandingSettings(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_branding_settings", - ResourceName: "pingone_branding_settings", - ResourceID: clientInfo.PingOneExportEnvironmentID, - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources/trusted_email_address.go b/internal/connector/pingone/platform/resources/trusted_email_address.go new file mode 100644 index 00000000..8bdf7447 --- /dev/null +++ b/internal/connector/pingone/platform/resources/trusted_email_address.go @@ -0,0 +1,91 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneTrustedEmailAddressResource{} +) + +type PingOneTrustedEmailAddressResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneTrustedEmailAddressResource +func TrustedEmailAddress(clientInfo *connector.ClientInfo) *PingOneTrustedEmailAddressResource { + return &PingOneTrustedEmailAddressResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneTrustedEmailAddressResource) ResourceType() string { + return "pingone_trusted_email_address" +} + +func (r *PingOneTrustedEmailAddressResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + trustedEmailAddressData, err := r.getTrustedEmailAddressData() + if err != nil { + return nil, err + } + + for trustedEmailAddressId, trustedEmailAddressName := range trustedEmailAddressData { + commentData := map[string]string{ + "Trusted Email Address ID": trustedEmailAddressId, + "Trusted Email Address Name": trustedEmailAddressName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: trustedEmailAddressName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, trustedEmailAddressId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneTrustedEmailAddressResource) getEmailDomainData() (map[string]string, error) { + //TODO +} + +func (r *PingOneTrustedEmailAddressResource) getTrustedEmailAddressData() (map[string]string, error) { + trustedEmailAddressData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailAddressesApi.ReadAllTrustedEmailAddresses(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EmailDomainTrustedEmail](iter, "ReadAllTrustedEmailAddresses", "GetTrustedEmails", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, trustedEmailAddress := range apiObjs { + trustedEmailAddressId, trustedEmailAddressIdOk := trustedEmailAddress.GetIdOk() + trustedEmailAddressName, trustedEmailAddressNameOk := trustedEmailAddress.GetNameOk() + + if trustedEmailAddressIdOk && trustedEmailAddressNameOk { + trustedEmailAddressData[*trustedEmailAddressId] = *trustedEmailAddressName + } + } + + return trustedEmailAddressData, nil +} diff --git a/internal/connector/pingone/platform/resources/trusted_email_address_test.go b/internal/connector/pingone/platform/resources/trusted_email_address_test.go new file mode 100644 index 00000000..898bb1a5 --- /dev/null +++ b/internal/connector/pingone/platform/resources/trusted_email_address_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_TrustedEmailAddress(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.TrustedEmailAddress(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/trusted_email_domain.go b/internal/connector/pingone/platform/resources/trusted_email_domain.go new file mode 100644 index 00000000..69c585a5 --- /dev/null +++ b/internal/connector/pingone/platform/resources/trusted_email_domain.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneTrustedEmailDomainResource{} +) + +type PingOneTrustedEmailDomainResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneTrustedEmailDomainResource +func TrustedEmailDomain(clientInfo *connector.ClientInfo) *PingOneTrustedEmailDomainResource { + return &PingOneTrustedEmailDomainResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneTrustedEmailDomainResource) ResourceType() string { + return "pingone_trusted_email_domain" +} + +func (r *PingOneTrustedEmailDomainResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + trustedEmailDomainData, err := r.getTrustedEmailDomainData() + if err != nil { + return nil, err + } + + for trustedEmailDomainId, trustedEmailDomainName := range trustedEmailDomainData { + commentData := map[string]string{ + "Trusted Email Domain ID": trustedEmailDomainId, + "Trusted Email Domain Name": trustedEmailDomainName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: trustedEmailDomainName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, trustedEmailDomainId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneTrustedEmailDomainResource) getTrustedEmailDomainData() (map[string]string, error) { + trustedEmailDomainData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailDomainsApi.ReadAllTrustedEmailDomains(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EmailDomain](iter, "ReadAllTrustedEmailDomains", "GetEmailDomains", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, trustedEmailDomain := range apiObjs { + trustedEmailDomainId, trustedEmailDomainIdOk := trustedEmailDomain.GetIdOk() + trustedEmailDomainName, trustedEmailDomainNameOk := trustedEmailDomain.GetNameOk() + + if trustedEmailDomainIdOk && trustedEmailDomainNameOk { + trustedEmailDomainData[*trustedEmailDomainId] = *trustedEmailDomainName + } + } + + return trustedEmailDomainData, nil +} diff --git a/internal/connector/pingone/platform/resources/trusted_email_domain_test.go b/internal/connector/pingone/platform/resources/trusted_email_domain_test.go new file mode 100644 index 00000000..ea69341b --- /dev/null +++ b/internal/connector/pingone/platform/resources/trusted_email_domain_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_TrustedEmailDomain(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.TrustedEmailDomain(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/webhook.go b/internal/connector/pingone/platform/resources/webhook.go new file mode 100644 index 00000000..89bbd086 --- /dev/null +++ b/internal/connector/pingone/platform/resources/webhook.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneWebhookResource{} +) + +type PingOneWebhookResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneWebhookResource +func Webhook(clientInfo *connector.ClientInfo) *PingOneWebhookResource { + return &PingOneWebhookResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneWebhookResource) ResourceType() string { + return "pingone_webhook" +} + +func (r *PingOneWebhookResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + webhookData, err := r.getWebhookData() + if err != nil { + return nil, err + } + + for webhookId, webhookName := range webhookData { + commentData := map[string]string{ + "Webhook ID": webhookId, + "Webhook Name": webhookName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: webhookName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, webhookId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneWebhookResource) getWebhookData() (map[string]string, error) { + webhookData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.SubscriptionsWebhooksApi.ReadAllSubscriptions(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Subscription](iter, "ReadAllSubscriptions", "GetSubscriptions", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, webhook := range apiObjs { + webhookId, webhookIdOk := webhook.GetIdOk() + webhookName, webhookNameOk := webhook.GetNameOk() + + if webhookIdOk && webhookNameOk { + webhookData[*webhookId] = *webhookName + } + } + + return webhookData, nil +} diff --git a/internal/connector/pingone/platform/resources/webhook_test.go b/internal/connector/pingone/platform/resources/webhook_test.go new file mode 100644 index 00000000..1f50cc8e --- /dev/null +++ b/internal/connector/pingone/platform/resources/webhook_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_Webhook(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.Webhook(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/pingone_agreement.go b/internal/connector/pingone/platform/resources_old/pingone_agreement.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_agreement.go rename to internal/connector/pingone/platform/resources_old/pingone_agreement.go diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_enable.go b/internal/connector/pingone/platform/resources_old/pingone_agreement_enable.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_agreement_enable.go rename to internal/connector/pingone/platform/resources_old/pingone_agreement_enable.go diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_enable_test.go b/internal/connector/pingone/platform/resources_old/pingone_agreement_enable_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_agreement_enable_test.go rename to internal/connector/pingone/platform/resources_old/pingone_agreement_enable_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_localization.go b/internal/connector/pingone/platform/resources_old/pingone_agreement_localization.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_agreement_localization.go rename to internal/connector/pingone/platform/resources_old/pingone_agreement_localization.go diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_localization_enable.go b/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_enable.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_agreement_localization_enable.go rename to internal/connector/pingone/platform/resources_old/pingone_agreement_localization_enable.go diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_localization_enable_test.go b/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_enable_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_agreement_localization_enable_test.go rename to internal/connector/pingone/platform/resources_old/pingone_agreement_localization_enable_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_localization_revision.go b/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_revision.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_agreement_localization_revision.go rename to internal/connector/pingone/platform/resources_old/pingone_agreement_localization_revision.go diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_localization_revision_test.go b/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_revision_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_agreement_localization_revision_test.go rename to internal/connector/pingone/platform/resources_old/pingone_agreement_localization_revision_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_agreement_localization_test.go b/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_agreement_localization_test.go rename to internal/connector/pingone/platform/resources_old/pingone_agreement_localization_test.go diff --git a/internal/connector/pingone/platform/resources_old/pingone_agreement_test.go b/internal/connector/pingone/platform/resources_old/pingone_agreement_test.go new file mode 100644 index 00000000..9218d49a --- /dev/null +++ b/internal/connector/pingone/platform/resources_old/pingone_agreement_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_Agreement(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.Agreement(t, clientInfo) + + creationInfo := tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/pingone_alert_channel.go b/internal/connector/pingone/platform/resources_old/pingone_alert_channel.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_alert_channel.go rename to internal/connector/pingone/platform/resources_old/pingone_alert_channel.go diff --git a/internal/connector/pingone/platform/resources/pingone_alert_channel_test.go b/internal/connector/pingone/platform/resources_old/pingone_alert_channel_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_alert_channel_test.go rename to internal/connector/pingone/platform/resources_old/pingone_alert_channel_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_branding_settings.go b/internal/connector/pingone/platform/resources_old/pingone_branding_settings.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_branding_settings.go rename to internal/connector/pingone/platform/resources_old/pingone_branding_settings.go diff --git a/internal/connector/pingone/platform/resources_old/pingone_branding_settings_test.go b/internal/connector/pingone/platform/resources_old/pingone_branding_settings_test.go new file mode 100644 index 00000000..6e9cbf95 --- /dev/null +++ b/internal/connector/pingone/platform/resources_old/pingone_branding_settings_test.go @@ -0,0 +1,28 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_BrandingSettings(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.BrandingSettings(t, clientInfo) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ExportableResource.ResourceType(), + ResourceID: clientInfo.PingOneExportEnvironmentID, + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/pingone_branding_theme.go b/internal/connector/pingone/platform/resources_old/pingone_branding_theme.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_branding_theme.go rename to internal/connector/pingone/platform/resources_old/pingone_branding_theme.go diff --git a/internal/connector/pingone/platform/resources/pingone_branding_theme_default.go b/internal/connector/pingone/platform/resources_old/pingone_branding_theme_default.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_branding_theme_default.go rename to internal/connector/pingone/platform/resources_old/pingone_branding_theme_default.go diff --git a/internal/connector/pingone/platform/resources/pingone_branding_theme_default_test.go b/internal/connector/pingone/platform/resources_old/pingone_branding_theme_default_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_branding_theme_default_test.go rename to internal/connector/pingone/platform/resources_old/pingone_branding_theme_default_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_branding_theme_test.go b/internal/connector/pingone/platform/resources_old/pingone_branding_theme_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_branding_theme_test.go rename to internal/connector/pingone/platform/resources_old/pingone_branding_theme_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_certificate.go b/internal/connector/pingone/platform/resources_old/pingone_certificate.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_certificate.go rename to internal/connector/pingone/platform/resources_old/pingone_certificate.go diff --git a/internal/connector/pingone/platform/resources/pingone_certificate_test.go b/internal/connector/pingone/platform/resources_old/pingone_certificate_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_certificate_test.go rename to internal/connector/pingone/platform/resources_old/pingone_certificate_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_custom_domain.go b/internal/connector/pingone/platform/resources_old/pingone_custom_domain.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_custom_domain.go rename to internal/connector/pingone/platform/resources_old/pingone_custom_domain.go diff --git a/internal/connector/pingone/platform/resources/pingone_custom_domain_test.go b/internal/connector/pingone/platform/resources_old/pingone_custom_domain_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_custom_domain_test.go rename to internal/connector/pingone/platform/resources_old/pingone_custom_domain_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_environment.go b/internal/connector/pingone/platform/resources_old/pingone_environment.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_environment.go rename to internal/connector/pingone/platform/resources_old/pingone_environment.go diff --git a/internal/connector/pingone/platform/resources/pingone_environment_test.go b/internal/connector/pingone/platform/resources_old/pingone_environment_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_environment_test.go rename to internal/connector/pingone/platform/resources_old/pingone_environment_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_form.go b/internal/connector/pingone/platform/resources_old/pingone_form.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_form.go rename to internal/connector/pingone/platform/resources_old/pingone_form.go diff --git a/internal/connector/pingone/platform/resources/pingone_form_test.go b/internal/connector/pingone/platform/resources_old/pingone_form_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_form_test.go rename to internal/connector/pingone/platform/resources_old/pingone_form_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_forms_recaptcha_v2.go b/internal/connector/pingone/platform/resources_old/pingone_forms_recaptcha_v2.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_forms_recaptcha_v2.go rename to internal/connector/pingone/platform/resources_old/pingone_forms_recaptcha_v2.go diff --git a/internal/connector/pingone/platform/resources/pingone_forms_recaptcha_v2_test.go b/internal/connector/pingone/platform/resources_old/pingone_forms_recaptcha_v2_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_forms_recaptcha_v2_test.go rename to internal/connector/pingone/platform/resources_old/pingone_forms_recaptcha_v2_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_gateway.go b/internal/connector/pingone/platform/resources_old/pingone_gateway.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_gateway.go rename to internal/connector/pingone/platform/resources_old/pingone_gateway.go diff --git a/internal/connector/pingone/platform/resources/pingone_gateway_credential.go b/internal/connector/pingone/platform/resources_old/pingone_gateway_credential.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_gateway_credential.go rename to internal/connector/pingone/platform/resources_old/pingone_gateway_credential.go diff --git a/internal/connector/pingone/platform/resources/pingone_gateway_credential_test.go b/internal/connector/pingone/platform/resources_old/pingone_gateway_credential_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_gateway_credential_test.go rename to internal/connector/pingone/platform/resources_old/pingone_gateway_credential_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_gateway_role_assignment.go b/internal/connector/pingone/platform/resources_old/pingone_gateway_role_assignment.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_gateway_role_assignment.go rename to internal/connector/pingone/platform/resources_old/pingone_gateway_role_assignment.go diff --git a/internal/connector/pingone/platform/resources/pingone_gateway_role_assignment_test.go b/internal/connector/pingone/platform/resources_old/pingone_gateway_role_assignment_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_gateway_role_assignment_test.go rename to internal/connector/pingone/platform/resources_old/pingone_gateway_role_assignment_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_gateway_test.go b/internal/connector/pingone/platform/resources_old/pingone_gateway_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_gateway_test.go rename to internal/connector/pingone/platform/resources_old/pingone_gateway_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_identity_propagation_plan.go b/internal/connector/pingone/platform/resources_old/pingone_identity_propagation_plan.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_identity_propagation_plan.go rename to internal/connector/pingone/platform/resources_old/pingone_identity_propagation_plan.go diff --git a/internal/connector/pingone/platform/resources/pingone_identity_propagation_plan_test.go b/internal/connector/pingone/platform/resources_old/pingone_identity_propagation_plan_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_identity_propagation_plan_test.go rename to internal/connector/pingone/platform/resources_old/pingone_identity_propagation_plan_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_key.go b/internal/connector/pingone/platform/resources_old/pingone_key.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_key.go rename to internal/connector/pingone/platform/resources_old/pingone_key.go diff --git a/internal/connector/pingone/platform/resources/pingone_key_rotation_policy.go b/internal/connector/pingone/platform/resources_old/pingone_key_rotation_policy.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_key_rotation_policy.go rename to internal/connector/pingone/platform/resources_old/pingone_key_rotation_policy.go diff --git a/internal/connector/pingone/platform/resources/pingone_key_rotation_policy_test.go b/internal/connector/pingone/platform/resources_old/pingone_key_rotation_policy_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_key_rotation_policy_test.go rename to internal/connector/pingone/platform/resources_old/pingone_key_rotation_policy_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_key_test.go b/internal/connector/pingone/platform/resources_old/pingone_key_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_key_test.go rename to internal/connector/pingone/platform/resources_old/pingone_key_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_language.go b/internal/connector/pingone/platform/resources_old/pingone_language.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_language.go rename to internal/connector/pingone/platform/resources_old/pingone_language.go diff --git a/internal/connector/pingone/platform/resources/pingone_language_test.go b/internal/connector/pingone/platform/resources_old/pingone_language_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_language_test.go rename to internal/connector/pingone/platform/resources_old/pingone_language_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_language_update.go b/internal/connector/pingone/platform/resources_old/pingone_language_update.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_language_update.go rename to internal/connector/pingone/platform/resources_old/pingone_language_update.go diff --git a/internal/connector/pingone/platform/resources/pingone_language_update_test.go b/internal/connector/pingone/platform/resources_old/pingone_language_update_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_language_update_test.go rename to internal/connector/pingone/platform/resources_old/pingone_language_update_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_notification_policy.go b/internal/connector/pingone/platform/resources_old/pingone_notification_policy.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_notification_policy.go rename to internal/connector/pingone/platform/resources_old/pingone_notification_policy.go diff --git a/internal/connector/pingone/platform/resources/pingone_notification_policy_test.go b/internal/connector/pingone/platform/resources_old/pingone_notification_policy_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_notification_policy_test.go rename to internal/connector/pingone/platform/resources_old/pingone_notification_policy_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_notification_settings.go b/internal/connector/pingone/platform/resources_old/pingone_notification_settings.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_notification_settings.go rename to internal/connector/pingone/platform/resources_old/pingone_notification_settings.go diff --git a/internal/connector/pingone/platform/resources/pingone_notification_settings_email.go b/internal/connector/pingone/platform/resources_old/pingone_notification_settings_email.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_notification_settings_email.go rename to internal/connector/pingone/platform/resources_old/pingone_notification_settings_email.go diff --git a/internal/connector/pingone/platform/resources/pingone_notification_settings_email_test.go b/internal/connector/pingone/platform/resources_old/pingone_notification_settings_email_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_notification_settings_email_test.go rename to internal/connector/pingone/platform/resources_old/pingone_notification_settings_email_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_notification_settings_test.go b/internal/connector/pingone/platform/resources_old/pingone_notification_settings_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_notification_settings_test.go rename to internal/connector/pingone/platform/resources_old/pingone_notification_settings_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_notification_template_content.go b/internal/connector/pingone/platform/resources_old/pingone_notification_template_content.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_notification_template_content.go rename to internal/connector/pingone/platform/resources_old/pingone_notification_template_content.go diff --git a/internal/connector/pingone/platform/resources/pingone_notification_template_content_test.go b/internal/connector/pingone/platform/resources_old/pingone_notification_template_content_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_notification_template_content_test.go rename to internal/connector/pingone/platform/resources_old/pingone_notification_template_content_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_phone_delivery_settings.go b/internal/connector/pingone/platform/resources_old/pingone_phone_delivery_settings.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_phone_delivery_settings.go rename to internal/connector/pingone/platform/resources_old/pingone_phone_delivery_settings.go diff --git a/internal/connector/pingone/platform/resources/pingone_phone_delivery_settings_test.go b/internal/connector/pingone/platform/resources_old/pingone_phone_delivery_settings_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_phone_delivery_settings_test.go rename to internal/connector/pingone/platform/resources_old/pingone_phone_delivery_settings_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_system_application.go b/internal/connector/pingone/platform/resources_old/pingone_system_application.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_system_application.go rename to internal/connector/pingone/platform/resources_old/pingone_system_application.go diff --git a/internal/connector/pingone/platform/resources/pingone_system_application_test.go b/internal/connector/pingone/platform/resources_old/pingone_system_application_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_system_application_test.go rename to internal/connector/pingone/platform/resources_old/pingone_system_application_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_trusted_email_address.go b/internal/connector/pingone/platform/resources_old/pingone_trusted_email_address.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_trusted_email_address.go rename to internal/connector/pingone/platform/resources_old/pingone_trusted_email_address.go diff --git a/internal/connector/pingone/platform/resources/pingone_trusted_email_address_test.go b/internal/connector/pingone/platform/resources_old/pingone_trusted_email_address_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_trusted_email_address_test.go rename to internal/connector/pingone/platform/resources_old/pingone_trusted_email_address_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_trusted_email_domain.go b/internal/connector/pingone/platform/resources_old/pingone_trusted_email_domain.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_trusted_email_domain.go rename to internal/connector/pingone/platform/resources_old/pingone_trusted_email_domain.go diff --git a/internal/connector/pingone/platform/resources/pingone_trusted_email_domain_test.go b/internal/connector/pingone/platform/resources_old/pingone_trusted_email_domain_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_trusted_email_domain_test.go rename to internal/connector/pingone/platform/resources_old/pingone_trusted_email_domain_test.go diff --git a/internal/connector/pingone/platform/resources/pingone_webhook.go b/internal/connector/pingone/platform/resources_old/pingone_webhook.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_webhook.go rename to internal/connector/pingone/platform/resources_old/pingone_webhook.go diff --git a/internal/connector/pingone/platform/resources/pingone_webhook_test.go b/internal/connector/pingone/platform/resources_old/pingone_webhook_test.go similarity index 100% rename from internal/connector/pingone/platform/resources/pingone_webhook_test.go rename to internal/connector/pingone/platform/resources_old/pingone_webhook_test.go diff --git a/internal/testing/testutils_resource/pingfederate/authentication_api_application.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_application.go similarity index 76% rename from internal/testing/testutils_resource/pingfederate/authentication_api_application.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_application.go index 1e644c9a..840d11bd 100644 --- a/internal/testing/testutils_resource/pingfederate/authentication_api_application.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_application.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -12,7 +13,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateAuthenticationApiApplication(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func AuthenticationApiApplication(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -24,13 +25,12 @@ func TestableResource_PingFederateAuthenticationApiApplication(t *testing.T, cli } } -func createAuthenticationApiApplication(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createAuthenticationApiApplication(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createAuthenticationApiApplication(): %v", strArgs) } - resourceType := strArgs[0] request := clientInfo.PingFederateApiClient.AuthenticationApiAPI.CreateApplication(clientInfo.PingFederateContext) clientStruct := client.AuthnApiApplication{ @@ -51,14 +51,22 @@ func createAuthenticationApiApplication(t *testing.T, clientInfo *connector.Clie } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteAuthenticationApiApplication(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteAuthenticationApiApplication(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteAuthenticationApiApplication(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.AuthenticationApiAPI.DeleteApplication(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/authentication_api_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_settings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/authentication_api_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_settings.go index 9346d19d..205c2278 100644 --- a/internal/testing/testutils_resource/pingfederate/authentication_api_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateAuthenticationApiSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func AuthenticationApiSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/authentication_policies.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/authentication_policies.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies.go index 71fd9b8d..a7ba4471 100644 --- a/internal/testing/testutils_resource/pingfederate/authentication_policies.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateAuthenticationPolicies(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func AuthenticationPolicies(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/authentication_policies_fragment.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go similarity index 80% rename from internal/testing/testutils_resource/pingfederate/authentication_policies_fragment.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go index c1a2f168..7147442f 100644 --- a/internal/testing/testutils_resource/pingfederate/authentication_policies_fragment.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateAuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func AuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -21,20 +22,19 @@ func TestableResource_PingFederateAuthenticationPoliciesFragment(t *testing.T, c CreateFunc: createAuthenticationPoliciesFragment, DeleteFunc: deleteAuthenticationPoliciesFragment, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateIdpAdapter(t, clientInfo), + IdpAdapter(t, clientInfo), }, ExportableResource: resources.AuthenticationPoliciesFragment(clientInfo), } } -func createAuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createAuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 1 { t.Fatalf("Unexpected number of arguments provided to createAuthenticationPoliciesFragment(): %v", strArgs) } - resourceType := strArgs[0] - idpAdapterId := strArgs[1] + idpAdapterId := strArgs[0] request := clientInfo.PingFederateApiClient.AuthenticationPoliciesAPI.CreateFragment(clientInfo.PingFederateContext) clientStruct := client.AuthenticationPolicyFragment{ @@ -91,14 +91,22 @@ func createAuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.Cl } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_NAME: *resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: *resource.Name, + }, } } -func deleteAuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteAuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteAuthenticationPoliciesFragment(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.AuthenticationPoliciesAPI.DeleteFragment(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/authentication_policies_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_settings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/authentication_policies_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_settings.go index 413bb1a6..1fe70ef7 100644 --- a/internal/testing/testutils_resource/pingfederate/authentication_policies_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateAuthenticationPoliciesSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func AuthenticationPoliciesSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/authentication_policy_contract.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policy_contract.go similarity index 77% rename from internal/testing/testutils_resource/pingfederate/authentication_policy_contract.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policy_contract.go index 9b0fe4ac..3cf99c48 100644 --- a/internal/testing/testutils_resource/pingfederate/authentication_policy_contract.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policy_contract.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateAuthenticationPolicyContract(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func AuthenticationPolicyContract(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -25,13 +26,12 @@ func TestableResource_PingFederateAuthenticationPolicyContract(t *testing.T, cli } } -func createAuthenticationPolicyContract(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createAuthenticationPolicyContract(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createAuthenticationPolicyContract(): %v", strArgs) } - resourceType := strArgs[0] request := clientInfo.PingFederateApiClient.AuthenticationPolicyContractsAPI.CreateAuthenticationPolicyContract(clientInfo.PingFederateContext) clientStruct := client.AuthenticationPolicyContract{ @@ -56,14 +56,22 @@ func createAuthenticationPolicyContract(t *testing.T, clientInfo *connector.Clie } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_NAME: *resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: *resource.Name, + }, } } -func deleteAuthenticationPolicyContract(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteAuthenticationPolicyContract(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteAuthenticationPolicyContract(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.AuthenticationPolicyContractsAPI.DeleteAuthenticationPolicyContract(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/authentication_selector.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_selector.go similarity index 81% rename from internal/testing/testutils_resource/pingfederate/authentication_selector.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/authentication_selector.go index 06029769..0f2cef46 100644 --- a/internal/testing/testutils_resource/pingfederate/authentication_selector.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_selector.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateAuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func AuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -25,13 +26,12 @@ func TestableResource_PingFederateAuthenticationSelector(t *testing.T, clientInf } } -func createAuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createAuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createAuthenticationSelector(): %v", strArgs) } - resourceType := strArgs[0] request := clientInfo.PingFederateApiClient.AuthenticationSelectorsAPI.CreateAuthenticationSelector(clientInfo.PingFederateContext) clientStruct := client.AuthenticationSelector{ @@ -78,14 +78,22 @@ func createAuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteAuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteAuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteAuthenticationSelector(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.AuthenticationSelectorsAPI.DeleteAuthenticationSelector(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/captcha_provider.go b/internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider.go similarity index 80% rename from internal/testing/testutils_resource/pingfederate/captcha_provider.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider.go index 3d3b3291..2daae086 100644 --- a/internal/testing/testutils_resource/pingfederate/captcha_provider.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateCaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func CaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -25,13 +26,12 @@ func TestableResource_PingFederateCaptchaProvider(t *testing.T, clientInfo *conn } } -func createCaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createCaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createCaptchaProvider(): %v", strArgs) } - resourceType := strArgs[0] request := clientInfo.PingFederateApiClient.CaptchaProvidersAPI.CreateCaptchaProvider(clientInfo.PingFederateContext) clientStruct := client.CaptchaProvider{ @@ -70,14 +70,22 @@ func createCaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo, strAr } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteCaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteCaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteCaptchaProvider(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.CaptchaProvidersAPI.DeleteCaptchaProvider(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/captcha_provider_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider_settings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/captcha_provider_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider_settings.go index 6cf3cce2..6dec7cac 100644 --- a/internal/testing/testutils_resource/pingfederate/captcha_provider_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateCaptchaProviderSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func CaptchaProviderSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/certificate_ca.go b/internal/testing/testutils_resource/pingfederate_testable_resources/certificate_ca.go similarity index 76% rename from internal/testing/testutils_resource/pingfederate/certificate_ca.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/certificate_ca.go index af640d10..ead9c913 100644 --- a/internal/testing/testutils_resource/pingfederate/certificate_ca.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/certificate_ca.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -14,7 +15,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateCertificateCa(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func CertificateCa(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -26,13 +27,12 @@ func TestableResource_PingFederateCertificateCa(t *testing.T, clientInfo *connec } } -func createCertificateCa(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createCertificateCa(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createCertificateCa(): %v", strArgs) } - resourceType := strArgs[0] filedata, err := testutils.CreateX509Certificate() if err != nil { @@ -57,15 +57,23 @@ func createCertificateCa(t *testing.T, clientInfo *connector.ClientInfo, strArgs } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_ISSUER_DN: *resource.IssuerDN, - testutils_resource.ENUM_SERIAL_NUMBER: *resource.SerialNumber, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_ISSUER_DN: *resource.IssuerDN, + testutils_resource.ENUM_SERIAL_NUMBER: *resource.SerialNumber, + }, } } -func deleteCertificateCa(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteCertificateCa(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteCertificateCa(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.CertificatesCaAPI.DeleteTrustedCA(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/certificates_revocation_ocsp_certificate.go b/internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_ocsp_certificate.go similarity index 75% rename from internal/testing/testutils_resource/pingfederate/certificates_revocation_ocsp_certificate.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_ocsp_certificate.go index 02de9033..df5bfb04 100644 --- a/internal/testing/testutils_resource/pingfederate/certificates_revocation_ocsp_certificate.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_ocsp_certificate.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -14,7 +15,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateCertificatesRevocationOcspCertificate(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func CertificatesRevocationOcspCertificate(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -26,13 +27,12 @@ func TestableResource_PingFederateCertificatesRevocationOcspCertificate(t *testi } } -func createCertificatesRevocationOcspCertificate(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createCertificatesRevocationOcspCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createCertificatesRevocationOcspCertificate(): %v", strArgs) } - resourceType := strArgs[0] filedata, err := testutils.CreateX509Certificate() if err != nil { @@ -57,15 +57,23 @@ func createCertificatesRevocationOcspCertificate(t *testing.T, clientInfo *conne } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_ISSUER_DN: *resource.IssuerDN, - testutils_resource.ENUM_SERIAL_NUMBER: *resource.SerialNumber, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_ISSUER_DN: *resource.IssuerDN, + testutils_resource.ENUM_SERIAL_NUMBER: *resource.SerialNumber, + }, } } -func deleteCertificatesRevocationOcspCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteCertificatesRevocationOcspCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteCertificatesRevocationOcspCertificate(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.CertificatesRevocationAPI.DeleteOcspCertificateById(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/certificates_revocation_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_settings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/certificates_revocation_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_settings.go index ff1d2edc..bb5130aa 100644 --- a/internal/testing/testutils_resource/pingfederate/certificates_revocation_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateCertificatesRevocationSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func CertificatesRevocationSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/cluster_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/cluster_settings.go similarity index 73% rename from internal/testing/testutils_resource/pingfederate/cluster_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/cluster_settings.go index 1a9eec23..3ed1b54f 100644 --- a/internal/testing/testutils_resource/pingfederate/cluster_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/cluster_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateClusterSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func ClusterSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/configuration_encryption_keys_rotate.go b/internal/testing/testutils_resource/pingfederate_testable_resources/configuration_encryption_keys_rotate.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/configuration_encryption_keys_rotate.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/configuration_encryption_keys_rotate.go index 900360fa..c1b1df94 100644 --- a/internal/testing/testutils_resource/pingfederate/configuration_encryption_keys_rotate.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/configuration_encryption_keys_rotate.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateConfigurationEncryptionKeysRotate(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func ConfigurationEncryptionKeysRotate(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/data_store.go b/internal/testing/testutils_resource/pingfederate_testable_resources/data_store.go similarity index 73% rename from internal/testing/testutils_resource/pingfederate/data_store.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/data_store.go index 3ac21d60..4472d3dd 100644 --- a/internal/testing/testutils_resource/pingfederate/data_store.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/data_store.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateDataStore(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func DataStore(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/default_urls.go b/internal/testing/testutils_resource/pingfederate_testable_resources/default_urls.go similarity index 73% rename from internal/testing/testutils_resource/pingfederate/default_urls.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/default_urls.go index 7782da1e..3e935cea 100644 --- a/internal/testing/testutils_resource/pingfederate/default_urls.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/default_urls.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateDefaultUrls(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func DefaultUrls(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/extended_properties.go b/internal/testing/testutils_resource/pingfederate_testable_resources/extended_properties.go similarity index 73% rename from internal/testing/testutils_resource/pingfederate/extended_properties.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/extended_properties.go index 0257ec01..e1d58e0b 100644 --- a/internal/testing/testutils_resource/pingfederate/extended_properties.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/extended_properties.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateExtendedProperties(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func ExtendedProperties(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/identity_store_provisioner.go b/internal/testing/testutils_resource/pingfederate_testable_resources/identity_store_provisioner.go similarity index 79% rename from internal/testing/testutils_resource/pingfederate/identity_store_provisioner.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/identity_store_provisioner.go index 1917d7df..ec2c396a 100644 --- a/internal/testing/testutils_resource/pingfederate/identity_store_provisioner.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/identity_store_provisioner.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -12,7 +13,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateIdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func IdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -24,13 +25,12 @@ func TestableResource_PingFederateIdentityStoreProvisioner(t *testing.T, clientI } } -func createIdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createIdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createIdentityStoreProvisioner(): %v", strArgs) } - resourceType := strArgs[0] request := clientInfo.PingFederateApiClient.IdentityStoreProvisionersAPI.CreateIdentityStoreProvisioner(clientInfo.PingFederateContext) clientStruct := client.IdentityStoreProvisioner{ @@ -67,14 +67,22 @@ func createIdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientIn } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteIdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteIdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteIdentityStoreProvisioner(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.IdentityStoreProvisionersAPI.DeleteIdentityStoreProvisioner(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/idp_adapter.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_adapter.go similarity index 82% rename from internal/testing/testutils_resource/pingfederate/idp_adapter.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/idp_adapter.go index ce8aa9cc..b5801b25 100644 --- a/internal/testing/testutils_resource/pingfederate/idp_adapter.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_adapter.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateIdpAdapter(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func IdpAdapter(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -21,20 +22,19 @@ func TestableResource_PingFederateIdpAdapter(t *testing.T, clientInfo *connector CreateFunc: createIdpAdapter, DeleteFunc: deleteIdpAdapter, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederatePasswordCredentialValidator(t, clientInfo), + PasswordCredentialValidator(t, clientInfo), }, ExportableResource: resources.IdpAdapter(clientInfo), } } -func createIdpAdapter(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createIdpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 1 { t.Fatalf("Unexpected number of arguments provided to createIdpAdapter(): %v", strArgs) } - resourceType := strArgs[0] - pcvId := strArgs[1] + pcvId := strArgs[0] request := clientInfo.PingFederateApiClient.IdpAdaptersAPI.CreateIdpAdapter(clientInfo.PingFederateContext) clientStruct := client.IdpAdapter{ @@ -100,14 +100,22 @@ func createIdpAdapter(t *testing.T, clientInfo *connector.ClientInfo, strArgs .. } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteIdpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteIdpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteIdpAdapter(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.IdpAdaptersAPI.DeleteIdpAdapter(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/idp_sp_connection.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go similarity index 82% rename from internal/testing/testutils_resource/pingfederate/idp_sp_connection.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go index 33d73f54..ca1e16ed 100644 --- a/internal/testing/testutils_resource/pingfederate/idp_sp_connection.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateIdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func IdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -21,22 +22,21 @@ func TestableResource_PingFederateIdpSpConnection(t *testing.T, clientInfo *conn CreateFunc: createIdpSpConnection, DeleteFunc: deleteIdpSpConnection, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateKeypairsSigningKey(t, clientInfo), - TestableResource_PingFederateIdpTokenProcessor(t, clientInfo), + KeypairsSigningKey(t, clientInfo), + IdpTokenProcessor(t, clientInfo), }, ExportableResource: resources.IdpSpConnection(clientInfo), } } -func createIdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createIdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 3 { + if len(strArgs) != 2 { t.Fatalf("Unexpected number of arguments provided to createIdpSpConnection(): %v", strArgs) } - resourceType := strArgs[0] - signingKeyPairId := strArgs[1] - idpTokenProcessorId := strArgs[2] + signingKeyPairId := strArgs[0] + idpTokenProcessorId := strArgs[1] request := clientInfo.PingFederateApiClient.IdpSpConnectionsAPI.CreateSpConnection(clientInfo.PingFederateContext) clientStruct := client.SpConnection{ @@ -105,14 +105,22 @@ func createIdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo, strAr } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteIdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteIdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteIdpSpConnection(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.IdpSpConnectionsAPI.DeleteSpConnection(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/idp_sts_request_parameters_contract.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sts_request_parameters_contract.go similarity index 76% rename from internal/testing/testutils_resource/pingfederate/idp_sts_request_parameters_contract.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/idp_sts_request_parameters_contract.go index daf912cd..153d8d8a 100644 --- a/internal/testing/testutils_resource/pingfederate/idp_sts_request_parameters_contract.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sts_request_parameters_contract.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -12,7 +13,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateIdpStsRequestParametersContract(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func IdpStsRequestParametersContract(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -24,13 +25,12 @@ func TestableResource_PingFederateIdpStsRequestParametersContract(t *testing.T, } } -func createIdpStsRequestParametersContract(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createIdpStsRequestParametersContract(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createIdpStsRequestParametersContract(): %v", strArgs) } - resourceType := strArgs[0] request := clientInfo.PingFederateApiClient.IdpStsRequestParametersContractsAPI.CreateStsRequestParamContract(clientInfo.PingFederateContext) clientStruct := client.StsRequestParametersContract{ @@ -53,14 +53,22 @@ func createIdpStsRequestParametersContract(t *testing.T, clientInfo *connector.C } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteIdpStsRequestParametersContract(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteIdpStsRequestParametersContract(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteIdpStsRequestParametersContract(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.IdpStsRequestParametersContractsAPI.DeleteStsRequestParamContractById(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/idp_to_sp_adapter_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go similarity index 74% rename from internal/testing/testutils_resource/pingfederate/idp_to_sp_adapter_mapping.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go index d82fe7b5..5ef9963c 100644 --- a/internal/testing/testutils_resource/pingfederate/idp_to_sp_adapter_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateIdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func IdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -21,22 +22,21 @@ func TestableResource_PingFederateIdpToSpAdapterMapping(t *testing.T, clientInfo CreateFunc: createIdpToSpAdapterMapping, DeleteFunc: deleteIdpToSpAdapterMapping, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateIdpAdapter(t, clientInfo), - TestableResource_PingFederateSpAdapter(t, clientInfo), + IdpAdapter(t, clientInfo), + SpAdapter(t, clientInfo), }, ExportableResource: resources.IdpToSpAdapterMapping(clientInfo), } } -func createIdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createIdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 3 { + if len(strArgs) != 2 { t.Fatalf("Unexpected number of arguments provided to createIdpToSpAdapterMapping(): %v", strArgs) } - resourceType := strArgs[0] - testIdpAdapterId := strArgs[1] - testSpAdapterId := strArgs[2] + testIdpAdapterId := strArgs[0] + testSpAdapterId := strArgs[1] request := clientInfo.PingFederateApiClient.IdpToSpAdapterMappingAPI.CreateIdpToSpAdapterMapping(clientInfo.PingFederateContext) clientStruct := client.IdpToSpAdapterMapping{ @@ -64,15 +64,23 @@ func createIdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_SOURCE_ID: resource.SourceId, - testutils_resource.ENUM_TARGET_ID: resource.TargetId, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_SOURCE_ID: resource.SourceId, + testutils_resource.ENUM_TARGET_ID: resource.TargetId, + }, } } -func deleteIdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteIdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteIdpToSpAdapterMapping(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.IdpToSpAdapterMappingAPI.DeleteIdpToSpAdapterMappingsById(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/idp_token_processor.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_token_processor.go similarity index 80% rename from internal/testing/testutils_resource/pingfederate/idp_token_processor.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/idp_token_processor.go index b2d285df..460fd1ea 100644 --- a/internal/testing/testutils_resource/pingfederate/idp_token_processor.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_token_processor.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateIdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func IdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -21,20 +22,19 @@ func TestableResource_PingFederateIdpTokenProcessor(t *testing.T, clientInfo *co CreateFunc: createIdpTokenProcessor, DeleteFunc: deleteIdpTokenProcessor, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederatePasswordCredentialValidator(t, clientInfo), + PasswordCredentialValidator(t, clientInfo), }, ExportableResource: resources.IdpTokenProcessor(clientInfo), } } -func createIdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createIdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 1 { t.Fatalf("Unexpected number of arguments provided to createIdpTokenProcessor(): %v", strArgs) } - resourceType := strArgs[0] - testPCVId := strArgs[1] + testPCVId := strArgs[0] request := clientInfo.PingFederateApiClient.IdpTokenProcessorsAPI.CreateTokenProcessor(clientInfo.PingFederateContext) clientStruct := client.TokenProcessor{ @@ -84,14 +84,22 @@ func createIdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo, str } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteIdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteIdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteIdpTokenProcessor(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.IdpTokenProcessorsAPI.DeleteTokenProcessor(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/incoming_proxy_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/incoming_proxy_settings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/incoming_proxy_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/incoming_proxy_settings.go index 079d6541..214889b9 100644 --- a/internal/testing/testutils_resource/pingfederate/incoming_proxy_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/incoming_proxy_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateIncomingProxySettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func IncomingProxySettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/kerberos_realm.go b/internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm.go similarity index 79% rename from internal/testing/testutils_resource/pingfederate/kerberos_realm.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm.go index 620e1785..304f847f 100644 --- a/internal/testing/testutils_resource/pingfederate/kerberos_realm.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateKerberosRealm(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func KerberosRealm(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -25,13 +26,12 @@ func TestableResource_PingFederateKerberosRealm(t *testing.T, clientInfo *connec } } -func createKerberosRealm(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createKerberosRealm(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createKerberosRealm(): %v", strArgs) } - resourceType := strArgs[0] request := clientInfo.PingFederateApiClient.KerberosRealmsAPI.CreateKerberosRealm(clientInfo.PingFederateContext) clientStruct := client.KerberosRealm{ @@ -55,14 +55,22 @@ func createKerberosRealm(t *testing.T, clientInfo *connector.ClientInfo, strArgs } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_NAME: resource.KerberosRealmName, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.KerberosRealmName, + }, } } -func deleteKerberosRealm(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteKerberosRealm(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteKerberosRealm(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.KerberosRealmsAPI.DeleteKerberosRealm(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/kerberos_realm_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm_settings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/kerberos_realm_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm_settings.go index d0c4a9fc..df3e6a60 100644 --- a/internal/testing/testutils_resource/pingfederate/kerberos_realm_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateKerberosRealmSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func KerberosRealmSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/keypairs_oauth_openid_connect.go b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/keypairs_oauth_openid_connect.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect.go index ecc928d5..460c0ead 100644 --- a/internal/testing/testutils_resource/pingfederate/keypairs_oauth_openid_connect.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateKeypairsOauthOpenidConnect(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func KeypairsOauthOpenidConnect(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/keypairs_oauth_openid_connect_additional_key_set.go b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect_additional_key_set.go similarity index 74% rename from internal/testing/testutils_resource/pingfederate/keypairs_oauth_openid_connect_additional_key_set.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect_additional_key_set.go index bd19ccb1..43e9ce1e 100644 --- a/internal/testing/testutils_resource/pingfederate/keypairs_oauth_openid_connect_additional_key_set.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect_additional_key_set.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func KeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -21,22 +22,21 @@ func TestableResource_PingFederateKeypairsOauthOpenidConnectAdditionalKeySet(t * CreateFunc: createKeypairsOauthOpenidConnectAdditionalKeySet, DeleteFunc: deleteKeypairsOauthOpenidConnectAdditionalKeySet, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateOauthIssuer(t, clientInfo), - TestableResource_PingFederateKeypairsSigningKey(t, clientInfo), + OauthIssuer(t, clientInfo), + KeypairsSigningKey(t, clientInfo), }, ExportableResource: resources.KeypairsOauthOpenidConnectAdditionalKeySet(clientInfo), } } -func createKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 3 { + if len(strArgs) != 2 { t.Fatalf("Unexpected number of arguments provided to createKeypairsOauthOpenidConnectAdditionalKeySet(): %v", strArgs) } - resourceType := strArgs[0] - testOauthIssuerId := strArgs[1] - testKeyPairId := strArgs[2] + testOauthIssuerId := strArgs[0] + testKeyPairId := strArgs[1] request := clientInfo.PingFederateApiClient.KeyPairsOauthOpenIdConnectAPI.CreateKeySet(clientInfo.PingFederateContext) clientStruct := client.AdditionalKeySet{ @@ -66,14 +66,22 @@ func createKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo * } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteKeypairsOauthOpenidConnectAdditionalKeySet(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.KeyPairsOauthOpenIdConnectAPI.DeleteKeySet(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/keypairs_signing_key.go b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key.go similarity index 77% rename from internal/testing/testutils_resource/pingfederate/keypairs_signing_key.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key.go index 70f559f6..4cb7fe4b 100644 --- a/internal/testing/testutils_resource/pingfederate/keypairs_signing_key.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateKeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func KeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -25,13 +26,12 @@ func TestableResource_PingFederateKeypairsSigningKey(t *testing.T, clientInfo *c } } -func createKeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createKeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createIdpAdapter(): %v", strArgs) } - resourceType := strArgs[0] request := clientInfo.PingFederateApiClient.KeyPairsSigningAPI.CreateSigningKeyPair(clientInfo.PingFederateContext) result := client.NewKeyPairSettings{ @@ -59,15 +59,23 @@ func createKeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo, st } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_ISSUER_DN: *resource.IssuerDN, - testutils_resource.ENUM_SERIAL_NUMBER: *resource.SerialNumber, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_ISSUER_DN: *resource.IssuerDN, + testutils_resource.ENUM_SERIAL_NUMBER: *resource.SerialNumber, + }, } } -func deleteKeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteKeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteKeypairsSigningKey(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.KeyPairsSigningAPI.DeleteSigningKeyPair(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/keypairs_signing_key_rotation_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key_rotation_settings.go similarity index 76% rename from internal/testing/testutils_resource/pingfederate/keypairs_signing_key_rotation_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key_rotation_settings.go index e5850006..669e9378 100644 --- a/internal/testing/testutils_resource/pingfederate/keypairs_signing_key_rotation_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key_rotation_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateKeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func KeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -21,20 +22,19 @@ func TestableResource_PingFederateKeypairsSigningKeyRotationSettings(t *testing. CreateFunc: createKeypairsSigningKeyRotationSettings, DeleteFunc: deleteKeypairsSigningKeyRotationSettings, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateKeypairsSigningKey(t, clientInfo), + KeypairsSigningKey(t, clientInfo), }, ExportableResource: resources.KeypairsSigningKeyRotationSettings(clientInfo), } } -func createKeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createKeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 1 { t.Fatalf("Unexpected number of arguments provided to createKeypairsSigningKeyRotationSettings(): %v", strArgs) } - resourceType := strArgs[0] - keyPairId := strArgs[1] + keyPairId := strArgs[0] request := clientInfo.PingFederateApiClient.KeyPairsSigningAPI.UpdateRotationSettings(clientInfo.PingFederateContext, keyPairId) clientStruct := client.KeyPairRotationSettings{ @@ -56,13 +56,21 @@ func createKeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connecto // Deletion of this resource is referenced by the keyPairId return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: keyPairId, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: keyPairId, + }, } } -func deleteKeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteKeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteKeypairsSigningKeyRotationSettings(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.KeyPairsSigningAPI.DeleteKeyPairRotationSettings(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/keypairs_ssl_server_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_ssl_server_settings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/keypairs_ssl_server_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_ssl_server_settings.go index 09bb043e..a3bdd048 100644 --- a/internal/testing/testutils_resource/pingfederate/keypairs_ssl_server_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_ssl_server_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateKeypairsSslServerSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func KeypairsSslServerSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/local_identity_profile.go b/internal/testing/testutils_resource/pingfederate_testable_resources/local_identity_profile.go similarity index 76% rename from internal/testing/testutils_resource/pingfederate/local_identity_profile.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/local_identity_profile.go index 0bb6aef1..9bb03d1a 100644 --- a/internal/testing/testutils_resource/pingfederate/local_identity_profile.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/local_identity_profile.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateLocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func LocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -21,20 +22,19 @@ func TestableResource_PingFederateLocalIdentityProfile(t *testing.T, clientInfo CreateFunc: createLocalIdentityProfile, DeleteFunc: deleteLocalIdentityProfile, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateAuthenticationPolicyContract(t, clientInfo), + AuthenticationPolicyContract(t, clientInfo), }, ExportableResource: resources.LocalIdentityProfile(clientInfo), } } -func createLocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createLocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 1 { t.Fatalf("Unexpected number of arguments provided to createLocalIdentityProfile(): %v", strArgs) } - resourceType := strArgs[0] - testApcId := strArgs[1] + testApcId := strArgs[0] request := clientInfo.PingFederateApiClient.LocalIdentityIdentityProfilesAPI.CreateIdentityProfile(clientInfo.PingFederateContext) clientStruct := client.LocalIdentityProfile{ @@ -57,14 +57,22 @@ func createLocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo, } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteLocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteLocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteLocalIdentityProfile(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.LocalIdentityIdentityProfilesAPI.DeleteIdentityProfile(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/metadata_url.go b/internal/testing/testutils_resource/pingfederate_testable_resources/metadata_url.go similarity index 77% rename from internal/testing/testutils_resource/pingfederate/metadata_url.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/metadata_url.go index d5639725..ee708079 100644 --- a/internal/testing/testutils_resource/pingfederate/metadata_url.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/metadata_url.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateMetadataUrl(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func MetadataUrl(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -25,13 +26,12 @@ func TestableResource_PingFederateMetadataUrl(t *testing.T, clientInfo *connecto } } -func createMetadataUrl(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createMetadataUrl(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createMetadataUrl(): %v", strArgs) } - resourceType := strArgs[0] request := clientInfo.PingFederateApiClient.MetadataUrlsAPI.AddMetadataUrl(clientInfo.PingFederateContext) clientStruct := client.MetadataUrl{ @@ -52,14 +52,22 @@ func createMetadataUrl(t *testing.T, clientInfo *connector.ClientInfo, strArgs . } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteMetadataUrl(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteMetadataUrl(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteMetadataUrl(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.MetadataUrlsAPI.DeleteMetadataUrl(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/notification_publisher.go b/internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher.go similarity index 79% rename from internal/testing/testutils_resource/pingfederate/notification_publisher.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher.go index 21b7803f..97253c61 100644 --- a/internal/testing/testutils_resource/pingfederate/notification_publisher.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateNotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func NotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -25,13 +26,12 @@ func TestableResource_PingFederateNotificationPublisher(t *testing.T, clientInfo } } -func createNotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createNotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createNotificationPublisher(): %v", strArgs) } - resourceType := strArgs[0] request := clientInfo.PingFederateApiClient.NotificationPublishersAPI.CreateNotificationPublisher(clientInfo.PingFederateContext) clientStruct := client.NotificationPublisher{ @@ -66,14 +66,22 @@ func createNotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo, } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteNotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteNotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteNotificationPublisher(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.NotificationPublishersAPI.DeleteNotificationPublisher(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/notification_publisher_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher_settings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/notification_publisher_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher_settings.go index 90bdb088..8b9540b6 100644 --- a/internal/testing/testutils_resource/pingfederate/notification_publisher_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateNotificationPublisherSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func NotificationPublisherSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/oauth_access_token_manager.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager.go similarity index 81% rename from internal/testing/testutils_resource/pingfederate/oauth_access_token_manager.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager.go index 6c05477b..102a173a 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_access_token_manager.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateOauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -21,20 +22,19 @@ func TestableResource_PingFederateOauthAccessTokenManager(t *testing.T, clientIn CreateFunc: createOauthAccessTokenManager, DeleteFunc: deleteOauthAccessTokenManager, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateKeypairsSigningKey(t, clientInfo), + KeypairsSigningKey(t, clientInfo), }, ExportableResource: resources.OauthAccessTokenManager(clientInfo), } } -func createOauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 1 { t.Fatalf("Unexpected number of arguments provided to createOauthAccessTokenManager(): %v", strArgs) } - resourceType := strArgs[0] - testKeyPairId := strArgs[1] + testKeyPairId := strArgs[0] request := clientInfo.PingFederateApiClient.OauthAccessTokenManagersAPI.CreateTokenManager(clientInfo.PingFederateContext) clientStruct := client.AccessTokenManager{ @@ -97,14 +97,22 @@ func createOauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInf } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteOauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteOauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteOauthAccessTokenManager(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.OauthAccessTokenManagersAPI.DeleteTokenManager(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/oauth_access_token_manager_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager_settings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/oauth_access_token_manager_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager_settings.go index cafec40e..ba406b82 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_access_token_manager_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateOauthAccessTokenManagerSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OauthAccessTokenManagerSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/oauth_access_token_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go similarity index 76% rename from internal/testing/testutils_resource/pingfederate/oauth_access_token_mapping.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go index b0377f19..4b3d5095 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_access_token_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateOauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -21,20 +22,19 @@ func TestableResource_PingFederateOauthAccessTokenMapping(t *testing.T, clientIn CreateFunc: createOauthAccessTokenMapping, DeleteFunc: deleteOauthAccessTokenMapping, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateOauthAccessTokenManager(t, clientInfo), + OauthAccessTokenManager(t, clientInfo), }, ExportableResource: resources.OauthAccessTokenMapping(clientInfo), } } -func createOauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 1 { t.Fatalf("Unexpected number of arguments provided to createOauthAccessTokenMapping(): %v", strArgs) } - resourceType := strArgs[0] - testTokenManagerId := strArgs[1] + testTokenManagerId := strArgs[0] request := clientInfo.PingFederateApiClient.OauthAccessTokenMappingsAPI.CreateMapping(clientInfo.PingFederateContext) clientStruct := client.AccessTokenMapping{ @@ -66,14 +66,22 @@ func createOauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInf } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_CONTEXT_TYPE: resource.Context.Type, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_CONTEXT_TYPE: resource.Context.Type, + }, } } -func deleteOauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteOauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteOauthAccessTokenMapping(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.OauthAccessTokenMappingsAPI.DeleteMapping(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/oauth_authentication_policy_contract_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_authentication_policy_contract_mapping.go similarity index 77% rename from internal/testing/testutils_resource/pingfederate/oauth_authentication_policy_contract_mapping.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/oauth_authentication_policy_contract_mapping.go index 2eeeeb11..fd49b11d 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_authentication_policy_contract_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_authentication_policy_contract_mapping.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -12,7 +13,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateOauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -20,20 +21,19 @@ func TestableResource_PingFederateOauthAuthenticationPolicyContractMapping(t *te CreateFunc: createOauthAuthenticationPolicyContractMapping, DeleteFunc: deleteOauthAuthenticationPolicyContractMapping, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateAuthenticationPolicyContract(t, clientInfo), + AuthenticationPolicyContract(t, clientInfo), }, ExportableResource: resources.OauthAuthenticationPolicyContractMapping(clientInfo), } } -func createOauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 1 { t.Fatalf("Unexpected number of arguments provided to createOauthAuthenticationPolicyContractMapping(): %v", strArgs) } - resourceType := strArgs[0] - testApcId := strArgs[1] + testApcId := strArgs[0] request := clientInfo.PingFederateApiClient.OauthAuthenticationPolicyContractMappingsAPI.CreateApcMapping(clientInfo.PingFederateContext) clientStruct := client.ApcToPersistentGrantMapping{ @@ -67,13 +67,21 @@ func createOauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *co } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + }, } } -func deleteOauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteOauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteOauthAuthenticationPolicyContractMapping(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.OauthAuthenticationPolicyContractMappingsAPI.DeleteApcMapping(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/oauth_ciba_server_policy_request_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_request_policy.go similarity index 80% rename from internal/testing/testutils_resource/pingfederate/oauth_ciba_server_policy_request_policy.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_request_policy.go index 8cff850f..8df716e2 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_ciba_server_policy_request_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_request_policy.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateOauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -21,20 +22,19 @@ func TestableResource_PingFederateOauthCibaServerPolicyRequestPolicy(t *testing. CreateFunc: createOauthCibaServerPolicyRequestPolicy, DeleteFunc: deleteOauthCibaServerPolicyRequestPolicy, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateOutOfBandAuthPlugins(t, clientInfo), + OutOfBandAuthPlugins(t, clientInfo), }, ExportableResource: resources.OauthCibaServerPolicyRequestPolicy(clientInfo), } } -func createOauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 1 { t.Fatalf("Unexpected number of arguments provided to createOauthCibaServerPolicyRequestPolicy(): %v", strArgs) } - resourceType := strArgs[0] - testAuthenticatorId := strArgs[1] + testAuthenticatorId := strArgs[0] request := clientInfo.PingFederateApiClient.OauthCibaServerPolicyAPI.CreateCibaServerPolicy(clientInfo.PingFederateContext) clientStruct := client.RequestPolicy{ @@ -91,14 +91,22 @@ func createOauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connecto } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteOauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteOauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteOauthCibaServerPolicyRequestPolicy(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.OauthCibaServerPolicyAPI.DeleteCibaServerPolicy(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/oauth_ciba_server_policy_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_settings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/oauth_ciba_server_policy_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_settings.go index b0039802..4fef800f 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_ciba_server_policy_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateOauthCibaServerPolicySettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OauthCibaServerPolicySettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/oauth_client.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client.go similarity index 77% rename from internal/testing/testutils_resource/pingfederate/oauth_client.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client.go index a06cf214..d89a7d64 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_client.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -12,7 +13,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateOauthClient(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OauthClient(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -24,13 +25,12 @@ func TestableResource_PingFederateOauthClient(t *testing.T, clientInfo *connecto } } -func createOauthClient(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthClient(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createOauthClient(): %v", strArgs) } - resourceType := strArgs[0] request := clientInfo.PingFederateApiClient.OauthClientsAPI.CreateOauthClient(clientInfo.PingFederateContext) clientStruct := client.Client{ @@ -56,14 +56,22 @@ func createOauthClient(t *testing.T, clientInfo *connector.ClientInfo, strArgs . } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.ClientId, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.ClientId, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteOauthClient(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteOauthClient(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteOauthClient(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.OauthClientsAPI.DeleteOauthClient(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/oauth_client_registration_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_registration_policy.go similarity index 77% rename from internal/testing/testutils_resource/pingfederate/oauth_client_registration_policy.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_registration_policy.go index 0ccbc6f4..2cb91710 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_client_registration_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_registration_policy.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -12,7 +13,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateOauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -24,13 +25,12 @@ func TestableResource_PingFederateOauthClientRegistrationPolicy(t *testing.T, cl } } -func createOauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createOauthClientRegistrationPolicy(): %v", strArgs) } - resourceType := strArgs[0] request := clientInfo.PingFederateApiClient.OauthClientRegistrationPoliciesAPI.CreateDynamicClientRegistrationPolicy(clientInfo.PingFederateContext) clientStruct := client.ClientRegistrationPolicy{ @@ -53,14 +53,22 @@ func createOauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.Cli } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteOauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteOauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteOauthClientRegistrationPolicy(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.OauthClientRegistrationPoliciesAPI.DeleteDynamicClientRegistrationPolicy(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/oauth_client_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_settings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/oauth_client_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_settings.go index 57ba8d9b..4969a13c 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_client_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateOauthClientSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OauthClientSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/oauth_idp_adapter_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go similarity index 78% rename from internal/testing/testutils_resource/pingfederate/oauth_idp_adapter_mapping.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go index c63c3a2b..4bb5d5dc 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_idp_adapter_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -12,7 +13,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateOauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -20,20 +21,19 @@ func TestableResource_PingFederateOauthIdpAdapterMapping(t *testing.T, clientInf CreateFunc: createOauthIdpAdapterMapping, DeleteFunc: deleteOauthIdpAdapterMapping, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateIdpAdapter(t, clientInfo), + IdpAdapter(t, clientInfo), }, ExportableResource: resources.OauthIdpAdapterMapping(clientInfo), } } -func createOauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 1 { t.Fatalf("Unexpected number of arguments provided to createOauthIdpAdapterMapping(): %v", strArgs) } - resourceType := strArgs[0] - testIdpAdapterId := strArgs[1] + testIdpAdapterId := strArgs[0] request := clientInfo.PingFederateApiClient.OauthIdpAdapterMappingsAPI.CreateIdpAdapterMapping(clientInfo.PingFederateContext) clientStruct := client.IdpAdapterMapping{ @@ -67,13 +67,21 @@ func createOauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + }, } } -func deleteOauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteOauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteOauthIdpAdapterMapping(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.OauthIdpAdapterMappingsAPI.DeleteIdpAdapterMapping(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/oauth_issuer.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_issuer.go similarity index 77% rename from internal/testing/testutils_resource/pingfederate/oauth_issuer.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/oauth_issuer.go index c23468cb..41b302fd 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_issuer.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_issuer.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateOauthIssuer(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OauthIssuer(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -25,13 +26,12 @@ func TestableResource_PingFederateOauthIssuer(t *testing.T, clientInfo *connecto } } -func createOauthIssuer(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthIssuer(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createOauthIssuer(): %v", strArgs) } - resourceType := strArgs[0] request := clientInfo.PingFederateApiClient.OauthIssuersAPI.AddOauthIssuer(clientInfo.PingFederateContext) clientStruct := client.Issuer{ @@ -52,14 +52,22 @@ func createOauthIssuer(t *testing.T, clientInfo *connector.ClientInfo, strArgs . } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteOauthIssuer(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteOauthIssuer(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteOauthIssuer(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.OauthIssuersAPI.DeleteOauthIssuer(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/oauth_server_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_server_settings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/oauth_server_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/oauth_server_settings.go index 839f7fc1..cf34aa22 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_server_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_server_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateOauthServerSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OauthServerSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_generator_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_generator_settings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/oauth_token_exchange_generator_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_generator_settings.go index 57959887..a1ef5d3e 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_generator_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_generator_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateOauthTokenExchangeGeneratorSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OauthTokenExchangeGeneratorSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_processor_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go similarity index 79% rename from internal/testing/testutils_resource/pingfederate/oauth_token_exchange_processor_policy.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go index da2c1173..638fabd7 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_processor_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -12,7 +13,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateOauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -20,20 +21,19 @@ func TestableResource_PingFederateOauthTokenExchangeProcessorPolicy(t *testing.T CreateFunc: createOauthTokenExchangeProcessorPolicy, DeleteFunc: deleteOauthTokenExchangeProcessorPolicy, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateIdpTokenProcessor(t, clientInfo), + IdpTokenProcessor(t, clientInfo), }, ExportableResource: nil, } } -func createOauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 1 { t.Fatalf("Unexpected number of arguments provided to createOauthTokenExchangeProcessorPolicy(): %v", strArgs) } - resourceType := strArgs[0] - testTokenProcessorId := strArgs[1] + testTokenProcessorId := strArgs[0] request := clientInfo.PingFederateApiClient.OauthTokenExchangeProcessorAPI.CreateOauthTokenExchangeProcessorPolicy(clientInfo.PingFederateContext) result := client.TokenExchangeProcessorPolicy{ @@ -76,13 +76,21 @@ func createOauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + }, } } -func deleteOauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteOauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteOauthTokenExchangeProcessorPolicy(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.OauthTokenExchangeProcessorAPI.DeleteOauthTokenExchangeProcessorPolicyy(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_token_generator_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go similarity index 73% rename from internal/testing/testutils_resource/pingfederate/oauth_token_exchange_token_generator_mapping.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go index 0d4c3733..fbc039b4 100644 --- a/internal/testing/testutils_resource/pingfederate/oauth_token_exchange_token_generator_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateOauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -21,22 +22,21 @@ func TestableResource_PingFederateOauthTokenExchangeTokenGeneratorMapping(t *tes CreateFunc: createOauthTokenExchangeTokenGeneratorMapping, DeleteFunc: deleteOauthTokenExchangeTokenGeneratorMapping, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateOauthTokenExchangeProcessorPolicy(t, clientInfo), - TestableResource_PingFederateSpTokenGenerator(t, clientInfo), + OauthTokenExchangeProcessorPolicy(t, clientInfo), + SpTokenGenerator(t, clientInfo), }, ExportableResource: resources.OauthTokenExchangeTokenGeneratorMapping(clientInfo), } } -func createOauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 3 { + if len(strArgs) != 2 { t.Fatalf("Unexpected number of arguments provided to createOauthTokenExchangeTokenGeneratorMapping(): %v", strArgs) } - resourceType := strArgs[0] - testProcessorPolicyId := strArgs[1] - testTokenGeneratorId := strArgs[2] + testProcessorPolicyId := strArgs[0] + testTokenGeneratorId := strArgs[1] request := clientInfo.PingFederateApiClient.OauthTokenExchangeTokenGeneratorMappingsAPI.CreateTokenGeneratorMapping(clientInfo.PingFederateContext) clientStruct := client.ProcessorPolicyToGeneratorMapping{ @@ -64,15 +64,23 @@ func createOauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *con } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_SOURCE_ID: testProcessorPolicyId, - testutils_resource.ENUM_TARGET_ID: testTokenGeneratorId, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_SOURCE_ID: testProcessorPolicyId, + testutils_resource.ENUM_TARGET_ID: testTokenGeneratorId, + }, } } -func deleteOauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteOauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteOauthTokenExchangeTokenGeneratorMapping(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.OauthTokenExchangeTokenGeneratorMappingsAPI.DeleteTokenGeneratorMappingById(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/openid_connect_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go similarity index 78% rename from internal/testing/testutils_resource/pingfederate/openid_connect_policy.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go index 5c66acb7..dffed2c3 100644 --- a/internal/testing/testutils_resource/pingfederate/openid_connect_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateOpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -21,20 +22,19 @@ func TestableResource_PingFederateOpenidConnectPolicy(t *testing.T, clientInfo * CreateFunc: createOpenidConnectPolicy, DeleteFunc: deleteOpenidConnectPolicy, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateOauthAccessTokenManager(t, clientInfo), + OauthAccessTokenManager(t, clientInfo), }, ExportableResource: resources.OpenidConnectPolicy(clientInfo), } } -func createOpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 1 { t.Fatalf("Unexpected number of arguments provided to createOpenidConnectPolicy(): %v", strArgs) } - resourceType := strArgs[0] - testAccessTokenManagerId := strArgs[1] + testAccessTokenManagerId := strArgs[0] request := clientInfo.PingFederateApiClient.OauthOpenIdConnectAPI.CreateOIDCPolicy(clientInfo.PingFederateContext) clientStruct := client.OpenIdConnectPolicy{ @@ -74,14 +74,22 @@ func createOpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo, s } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteOpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteOpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteOpenidConnectPolicy(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.OauthOpenIdConnectAPI.DeleteOIDCPolicy(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/openid_connect_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_settings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/openid_connect_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_settings.go index 69e2dc43..b2b2a221 100644 --- a/internal/testing/testutils_resource/pingfederate/openid_connect_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateOpenidConnectSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OpenidConnectSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/out_of_band_auth_plugins.go b/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go similarity index 77% rename from internal/testing/testutils_resource/pingfederate/out_of_band_auth_plugins.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go index 0f77574f..6f2e5e62 100644 --- a/internal/testing/testutils_resource/pingfederate/out_of_band_auth_plugins.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go @@ -1,6 +1,6 @@ // Copyright © 2025 Ping Identity Corporation -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -8,12 +8,12 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/connector/common" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" "github.com/pingidentity/pingcli/internal/utils" client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateOutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func OutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -21,22 +21,21 @@ func TestableResource_PingFederateOutOfBandAuthPlugins(t *testing.T, clientInfo CreateFunc: createOutOfBandAuthPlugins, DeleteFunc: deleteOutOfBandAuthPlugins, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederatePingoneConnection(t, clientInfo), - pingone.TestableResource_PingOneDeviceAuthApplication(t, clientInfo), + PingoneConnection(t, clientInfo), + pingone_testable_resources.DeviceAuthApplication(t, clientInfo), }, ExportableResource: nil, } } -func createOutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 3 { + if len(strArgs) != 2 { t.Fatalf("Unexpected number of arguments provided to createOutOfBandAuthPlugins(): %v", strArgs) } - resourceType := strArgs[0] - testPingOneConnectionId := strArgs[1] - testDeviceAuthApplicationId := strArgs[2] + testPingOneConnectionId := strArgs[0] + testDeviceAuthApplicationId := strArgs[1] request := clientInfo.PingFederateApiClient.OauthOutOfBandAuthPluginsAPI.CreateOOBAuthenticator(clientInfo.PingFederateContext) result := client.OutOfBandAuthenticator{ @@ -78,13 +77,21 @@ func createOutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo, } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + }, } } -func deleteOutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteOutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteOutOfBandAuthPlugins(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.OauthOutOfBandAuthPluginsAPI.DeleteOOBAuthenticator(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/password_credential_validator.go b/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go similarity index 81% rename from internal/testing/testutils_resource/pingfederate/password_credential_validator.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go index a1a5bca0..9d7eb638 100644 --- a/internal/testing/testutils_resource/pingfederate/password_credential_validator.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederatePasswordCredentialValidator(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func PasswordCredentialValidator(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -25,13 +26,12 @@ func TestableResource_PingFederatePasswordCredentialValidator(t *testing.T, clie } } -func createPasswordCredentialValidator(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createPasswordCredentialValidator(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createPasswordCredentialValidator(): %v", strArgs) } - resourceType := strArgs[0] request := clientInfo.PingFederateApiClient.PasswordCredentialValidatorsAPI.CreatePasswordCredentialValidator(clientInfo.PingFederateContext) clientStruct := client.PasswordCredentialValidator{ @@ -84,14 +84,22 @@ func createPasswordCredentialValidator(t *testing.T, clientInfo *connector.Clien } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deletePasswordCredentialValidator(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deletePasswordCredentialValidator(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deletePasswordCredentialValidator(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.PasswordCredentialValidatorsAPI.DeletePasswordCredentialValidator(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/pingone_connection.go b/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go similarity index 75% rename from internal/testing/testutils_resource/pingfederate/pingone_connection.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go index 4397b1ec..2a61d037 100644 --- a/internal/testing/testutils_resource/pingfederate/pingone_connection.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -9,12 +10,12 @@ import ( "github.com/pingidentity/pingcli/internal/connector/common" "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" "github.com/pingidentity/pingcli/internal/utils" client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederatePingoneConnection(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func PingoneConnection(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -22,20 +23,19 @@ func TestableResource_PingFederatePingoneConnection(t *testing.T, clientInfo *co CreateFunc: createPingoneConnection, DeleteFunc: deletePingoneConnection, Dependencies: []*testutils_resource.TestableResource{ - pingone.TestableResource_PingOnePingFederateGatewayCredential(t, clientInfo), + pingone_testable_resources.GatewayCredential(t, clientInfo), }, ExportableResource: resources.PingoneConnection(clientInfo), } } -func createPingoneConnection(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createPingoneConnection(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 1 { t.Fatalf("Unexpected number of arguments provided to createPingoneConnection(): %v", strArgs) } - resourceType := strArgs[0] - credential := strArgs[1] + credential := strArgs[0] request := clientInfo.PingFederateApiClient.PingOneConnectionsAPI.CreatePingOneConnection(clientInfo.PingFederateContext) clientStruct := client.PingOneConnection{ @@ -56,14 +56,22 @@ func createPingoneConnection(t *testing.T, clientInfo *connector.ClientInfo, str } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deletePingoneConnection(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deletePingoneConnection(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deletePingoneConnection(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.PingOneConnectionsAPI.DeletePingOneConnection(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/protocol_metadata_lifetime_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/protocol_metadata_lifetime_settings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/protocol_metadata_lifetime_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/protocol_metadata_lifetime_settings.go index eafe9b54..368237b9 100644 --- a/internal/testing/testutils_resource/pingfederate/protocol_metadata_lifetime_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/protocol_metadata_lifetime_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateProtocolMetadataLifetimeSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func ProtocolMetadataLifetimeSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/protocol_metadata_signing_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/protocol_metadata_signing_settings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/protocol_metadata_signing_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/protocol_metadata_signing_settings.go index 86496265..6d877998 100644 --- a/internal/testing/testutils_resource/pingfederate/protocol_metadata_signing_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/protocol_metadata_signing_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateProtocolMetadataSigningSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func ProtocolMetadataSigningSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/redirect_validation.go b/internal/testing/testutils_resource/pingfederate_testable_resources/redirect_validation.go similarity index 73% rename from internal/testing/testutils_resource/pingfederate/redirect_validation.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/redirect_validation.go index 8f8b85c8..e475f09d 100644 --- a/internal/testing/testutils_resource/pingfederate/redirect_validation.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/redirect_validation.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateRedirectValidation(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func RedirectValidation(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/secret_manager.go b/internal/testing/testutils_resource/pingfederate_testable_resources/secret_manager.go similarity index 79% rename from internal/testing/testutils_resource/pingfederate/secret_manager.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/secret_manager.go index 8a089663..0097e194 100644 --- a/internal/testing/testutils_resource/pingfederate/secret_manager.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/secret_manager.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateSecretManager(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func SecretManager(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -25,13 +26,12 @@ func TestableResource_PingFederateSecretManager(t *testing.T, clientInfo *connec } } -func createSecretManager(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createSecretManager(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createSecretManager(): %v", strArgs) } - resourceType := strArgs[0] request := clientInfo.PingFederateApiClient.SecretManagersAPI.CreateSecretManager(clientInfo.PingFederateContext) clientStruct := client.SecretManager{ @@ -62,14 +62,22 @@ func createSecretManager(t *testing.T, clientInfo *connector.ClientInfo, strArgs } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteSecretManager(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteSecretManager(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteSecretManager(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.SecretManagersAPI.DeleteSecretManager(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/server_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings.go similarity index 73% rename from internal/testing/testutils_resource/pingfederate/server_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/server_settings.go index 52c4ccdf..f10408ea 100644 --- a/internal/testing/testutils_resource/pingfederate/server_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateServerSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func ServerSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/server_settings_general.go b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_general.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/server_settings_general.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_general.go index a9678561..d3f40866 100644 --- a/internal/testing/testutils_resource/pingfederate/server_settings_general.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_general.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateServerSettingsGeneral(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func ServerSettingsGeneral(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/server_settings_logging.go b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_logging.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/server_settings_logging.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_logging.go index d5f9b341..675d682c 100644 --- a/internal/testing/testutils_resource/pingfederate/server_settings_logging.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_logging.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateServerSettingsLogging(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func ServerSettingsLogging(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/server_settings_system_keys_rotate.go b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_system_keys_rotate.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/server_settings_system_keys_rotate.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_system_keys_rotate.go index 8909c78f..598d7dcf 100644 --- a/internal/testing/testutils_resource/pingfederate/server_settings_system_keys_rotate.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_system_keys_rotate.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateServerSettingsSystemKeysRotate(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func ServerSettingsSystemKeysRotate(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/server_settings_ws_trust_sts_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/server_settings_ws_trust_sts_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings.go index b20e11bb..cca1b68e 100644 --- a/internal/testing/testutils_resource/pingfederate/server_settings_ws_trust_sts_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateServerSettingsWsTrustStsSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func ServerSettingsWsTrustStsSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/server_settings_ws_trust_sts_settings_issuer_certificate.go b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings_issuer_certificate.go similarity index 73% rename from internal/testing/testutils_resource/pingfederate/server_settings_ws_trust_sts_settings_issuer_certificate.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings_issuer_certificate.go index 27b4b59a..b3da1672 100644 --- a/internal/testing/testutils_resource/pingfederate/server_settings_ws_trust_sts_settings_issuer_certificate.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings_issuer_certificate.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -14,7 +15,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func ServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -26,13 +27,12 @@ func TestableResource_PingFederateServerSettingsWsTrustStsSettingsIssuerCertific } } -func createServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createServerSettingsWsTrustStsSettingsIssuerCertificate(): %v", strArgs) } - resourceType := strArgs[0] fileData, err := testutils.CreateX509Certificate() if err != nil { @@ -57,15 +57,23 @@ func createServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clien } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.CertView.Id, - testutils_resource.ENUM_ISSUER_DN: *resource.CertView.IssuerDN, - testutils_resource.ENUM_SERIAL_NUMBER: *resource.CertView.SerialNumber, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.CertView.Id, + testutils_resource.ENUM_ISSUER_DN: *resource.CertView.IssuerDN, + testutils_resource.ENUM_SERIAL_NUMBER: *resource.CertView.SerialNumber, + }, } } -func deleteServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteServerSettingsWsTrustStsSettingsIssuerCertificate(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.ServerSettingsAPI.DeleteCertificate(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/service_authentication.go b/internal/testing/testutils_resource/pingfederate_testable_resources/service_authentication.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/service_authentication.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/service_authentication.go index a7022bca..9bb71f50 100644 --- a/internal/testing/testutils_resource/pingfederate/service_authentication.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/service_authentication.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateServiceAuthentication(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func ServiceAuthentication(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/session_application_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/session_application_policy.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/session_application_policy.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/session_application_policy.go index d4885bdb..f66a22b0 100644 --- a/internal/testing/testutils_resource/pingfederate/session_application_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/session_application_policy.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateSessionApplicationPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func SessionApplicationPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/session_authentication_policies_global.go b/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policies_global.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/session_authentication_policies_global.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policies_global.go index d62fcc13..47651d22 100644 --- a/internal/testing/testutils_resource/pingfederate/session_authentication_policies_global.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policies_global.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateSessionAuthenticationPoliciesGlobal(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func SessionAuthenticationPoliciesGlobal(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/session_authentication_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go similarity index 73% rename from internal/testing/testutils_resource/pingfederate/session_authentication_policy.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go index 40155588..0f1ae472 100644 --- a/internal/testing/testutils_resource/pingfederate/session_authentication_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateSessionAuthenticationPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func SessionAuthenticationPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -21,20 +22,19 @@ func TestableResource_PingFederateSessionAuthenticationPolicy(t *testing.T, clie CreateFunc: createSessionAuthenticationPolicy, DeleteFunc: deleteSessionAuthenticationPolicy, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateIdpAdapter(t, clientInfo), + IdpAdapter(t, clientInfo), }, ExportableResource: resources.SessionAuthenticationPolicy(clientInfo), } } -func createSessionAuthenticationPolicy(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createSessionAuthenticationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 1 { t.Fatalf("Unexpected number of arguments provided to createSessionAuthenticationPolicy(): %v", strArgs) } - resourceType := strArgs[0] - testIdpAdapterId := strArgs[1] + testIdpAdapterId := strArgs[0] request := clientInfo.PingFederateApiClient.SessionAPI.CreateSourcePolicy(clientInfo.PingFederateContext) clientStruct := client.AuthenticationSessionPolicy{ @@ -59,15 +59,23 @@ func createSessionAuthenticationPolicy(t *testing.T, clientInfo *connector.Clien } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_TYPE: resource.AuthenticationSource.Type, - testutils_resource.ENUM_SOURCE_REF_ID: resource.AuthenticationSource.SourceRef.Id, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_TYPE: resource.AuthenticationSource.Type, + testutils_resource.ENUM_SOURCE_REF_ID: resource.AuthenticationSource.SourceRef.Id, + }, } } -func deleteSessionAuthenticationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteSessionAuthenticationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteSessionAuthenticationPolicy(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.SessionAPI.DeleteSourcePolicy(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/session_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/session_settings.go similarity index 73% rename from internal/testing/testutils_resource/pingfederate/session_settings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/session_settings.go index 038eebbf..a8f19fb2 100644 --- a/internal/testing/testutils_resource/pingfederate/session_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/session_settings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateSessionSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func SessionSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/sp_adapter.go b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_adapter.go similarity index 79% rename from internal/testing/testutils_resource/pingfederate/sp_adapter.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/sp_adapter.go index 9726ad0e..fd5066db 100644 --- a/internal/testing/testutils_resource/pingfederate/sp_adapter.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_adapter.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateSpAdapter(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func SpAdapter(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -25,13 +26,12 @@ func TestableResource_PingFederateSpAdapter(t *testing.T, clientInfo *connector. } } -func createSpAdapter(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createSpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createSpAdapter(): %v", strArgs) } - resourceType := strArgs[0] request := clientInfo.PingFederateApiClient.SpAdaptersAPI.CreateSpAdapter(clientInfo.PingFederateContext) clientStruct := client.SpAdapter{ @@ -66,14 +66,22 @@ func createSpAdapter(t *testing.T, clientInfo *connector.ClientInfo, strArgs ... } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteSpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteSpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteSpAdapter(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.SpAdaptersAPI.DeleteSpAdapter(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/sp_authentication_policy_contract_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_authentication_policy_contract_mapping.go similarity index 73% rename from internal/testing/testutils_resource/pingfederate/sp_authentication_policy_contract_mapping.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/sp_authentication_policy_contract_mapping.go index 11f57286..b53f7ec3 100644 --- a/internal/testing/testutils_resource/pingfederate/sp_authentication_policy_contract_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_authentication_policy_contract_mapping.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateSpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func SpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -21,22 +22,21 @@ func TestableResource_PingFederateSpAuthenticationPolicyContractMapping(t *testi CreateFunc: createSpAuthenticationPolicyContractMapping, DeleteFunc: deleteSpAuthenticationPolicyContractMapping, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateAuthenticationPolicyContract(t, clientInfo), - TestableResource_PingFederateSpAdapter(t, clientInfo), + AuthenticationPolicyContract(t, clientInfo), + SpAdapter(t, clientInfo), }, ExportableResource: resources.SpAuthenticationPolicyContractMapping(clientInfo), } } -func createSpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createSpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 3 { + if len(strArgs) != 2 { t.Fatalf("Unexpected number of arguments provided to createSpAuthenticationPolicyContractMapping(): %v", strArgs) } - resourceType := strArgs[0] - testAPCId := strArgs[1] - testSPAdapterId := strArgs[2] + testAPCId := strArgs[0] + testSPAdapterId := strArgs[1] request := clientInfo.PingFederateApiClient.SpAuthenticationPolicyContractMappingsAPI.CreateApcToSpAdapterMapping(clientInfo.PingFederateContext) clientStruct := client.ApcToSpAdapterMapping{ @@ -64,15 +64,23 @@ func createSpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *conne } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_SOURCE_ID: resource.SourceId, - testutils_resource.ENUM_TARGET_ID: resource.TargetId, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_SOURCE_ID: resource.SourceId, + testutils_resource.ENUM_TARGET_ID: resource.TargetId, + }, } } -func deleteSpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteSpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteSpAuthenticationPolicyContractMapping(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.SpAuthenticationPolicyContractMappingsAPI.DeleteApcToSpAdapterMappingById(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/sp_idp_connection.go b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_idp_connection.go similarity index 82% rename from internal/testing/testutils_resource/pingfederate/sp_idp_connection.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/sp_idp_connection.go index 2ef04e95..2b1da5e7 100644 --- a/internal/testing/testutils_resource/pingfederate/sp_idp_connection.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_idp_connection.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -14,7 +15,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateSpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func SpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -26,13 +27,12 @@ func TestableResource_PingFederateSpIdpConnection(t *testing.T, clientInfo *conn } } -func createSpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createSpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createSpIdpConnection(): %v", strArgs) } - resourceType := strArgs[0] filedata, err := testutils.CreateX509Certificate() if err != nil { @@ -85,14 +85,22 @@ func createSpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo, strAr } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_NAME: resource.Name, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, } } -func deleteSpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteSpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteSpIdpConnection(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.SpIdpConnectionsAPI.DeleteConnection(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/sp_target_url_mappings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_target_url_mappings.go similarity index 72% rename from internal/testing/testutils_resource/pingfederate/sp_target_url_mappings.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/sp_target_url_mappings.go index 5a390fd6..f76f92fa 100644 --- a/internal/testing/testutils_resource/pingfederate/sp_target_url_mappings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_target_url_mappings.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateSpTargetUrlMappings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func SpTargetUrlMappings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingfederate/sp_token_generator.go b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_token_generator.go similarity index 81% rename from internal/testing/testutils_resource/pingfederate/sp_token_generator.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/sp_token_generator.go index 304c8b35..571993ef 100644 --- a/internal/testing/testutils_resource/pingfederate/sp_token_generator.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_token_generator.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -12,7 +13,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateSpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func SpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -20,20 +21,19 @@ func TestableResource_PingFederateSpTokenGenerator(t *testing.T, clientInfo *con CreateFunc: createSpTokenGenerator, DeleteFunc: deleteSpTokenGenerator, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateKeypairsSigningKey(t, clientInfo), + KeypairsSigningKey(t, clientInfo), }, ExportableResource: nil, } } -func createSpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createSpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 1 { t.Fatalf("Unexpected number of arguments provided to createSpTokenGenerator(): %v", strArgs) } - resourceType := strArgs[0] - testSigningKeyPairId := strArgs[1] + testSigningKeyPairId := strArgs[0] request := clientInfo.PingFederateApiClient.SpTokenGeneratorsAPI.CreateTokenGenerator(clientInfo.PingFederateContext) result := client.TokenGenerator{ @@ -91,13 +91,21 @@ func createSpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo, strA } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: resource.Id, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + }, } } -func deleteSpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteSpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteSpTokenGenerator(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.SpTokenGeneratorsAPI.DeleteTokenGenerator(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/token_processor_to_token_generator_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go similarity index 73% rename from internal/testing/testutils_resource/pingfederate/token_processor_to_token_generator_mapping.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go index 5c232512..650672cf 100644 --- a/internal/testing/testutils_resource/pingfederate/token_processor_to_token_generator_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -13,7 +14,7 @@ import ( client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) -func TestableResource_PingFederateTokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func TokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -21,22 +22,21 @@ func TestableResource_PingFederateTokenProcessorToTokenGeneratorMapping(t *testi CreateFunc: createTokenProcessorToTokenGeneratorMapping, DeleteFunc: deleteTokenProcessorToTokenGeneratorMapping, Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingFederateIdpTokenProcessor(t, clientInfo), - TestableResource_PingFederateSpTokenGenerator(t, clientInfo), + IdpTokenProcessor(t, clientInfo), + SpTokenGenerator(t, clientInfo), }, ExportableResource: resources.TokenProcessorToTokenGeneratorMapping(clientInfo), } } -func createTokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createTokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 3 { + if len(strArgs) != 2 { t.Fatalf("Unexpected number of arguments provided to createTokenProcessorToTokenGeneratorMapping(): %v", strArgs) } - resourceType := strArgs[0] - testTokenProcessorId := strArgs[1] - testTokenGeneratorId := strArgs[2] + testTokenProcessorId := strArgs[0] + testTokenGeneratorId := strArgs[1] request := clientInfo.PingFederateApiClient.TokenProcessorToTokenGeneratorMappingsAPI.CreateTokenToTokenMapping(clientInfo.PingFederateContext) clientStruct := client.TokenToTokenMapping{ @@ -64,15 +64,23 @@ func createTokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *conne } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_SOURCE_ID: resource.SourceId, - testutils_resource.ENUM_TARGET_ID: resource.TargetId, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_SOURCE_ID: resource.SourceId, + testutils_resource.ENUM_TARGET_ID: resource.TargetId, + }, } } -func deleteTokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteTokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteTokenProcessorToTokenGeneratorMapping(): %v", ids) + } + id := ids[0] + request := clientInfo.PingFederateApiClient.TokenProcessorToTokenGeneratorMappingsAPI.DeleteTokenToTokenMappingById(clientInfo.PingFederateContext, id) response, err := request.Execute() diff --git a/internal/testing/testutils_resource/pingfederate/virtual_host_names.go b/internal/testing/testutils_resource/pingfederate_testable_resources/virtual_host_names.go similarity index 73% rename from internal/testing/testutils_resource/pingfederate/virtual_host_names.go rename to internal/testing/testutils_resource/pingfederate_testable_resources/virtual_host_names.go index f7d08a05..65582248 100644 --- a/internal/testing/testutils_resource/pingfederate/virtual_host_names.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/virtual_host_names.go @@ -1,6 +1,7 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator -package pingfederate +package pingfederate_testable_resources import ( "testing" @@ -10,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingFederateVirtualHostNames(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func VirtualHostNames(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ diff --git a/internal/testing/testutils_resource/pingone/pingfederate_gateway.go b/internal/testing/testutils_resource/pingone/pingfederate_gateway.go deleted file mode 100644 index b3c4f039..00000000 --- a/internal/testing/testutils_resource/pingone/pingfederate_gateway.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package pingone - -import ( - "testing" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource" -) - -func TestableResource_PingOnePingFederateGateway(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { - t.Helper() - - return &testutils_resource.TestableResource{ - ClientInfo: clientInfo, - CreateFunc: createPingFederateGateway, - DeleteFunc: deletePingFederateGateway, - Dependencies: nil, - ExportableResource: nil, - } -} - -func createPingFederateGateway(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { - t.Helper() - - if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createPingFederateGateway(): %v", strArgs) - } - resourceType := strArgs[0] - - result := management.CreateGatewayRequest{ - Gateway: &management.Gateway{ - Enabled: true, - Name: "TestPingFederateGateway", - Type: management.ENUMGATEWAYTYPE_PING_FEDERATE, - }, - } - - api_request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewaysApi.CreateGateway(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) - api_request = api_request.CreateGatewayRequest(result) - - createGateway201Response, response, err := api_request.Execute() - ok, err := common.HandleClientResponse(response, err, "CreateGateway", resourceType) - if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) - } - if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) - } - - if createGateway201Response == nil || createGateway201Response.Gateway == nil { - t.Fatalf("Failed to create test %s: %v", resourceType, err) - } - - gatewayId, gatewayIdOk := createGateway201Response.Gateway.GetIdOk() - if !gatewayIdOk { - t.Fatalf("Failed to create test %s: %v", resourceType, err) - } - - return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *gatewayId, - } -} - -func deletePingFederateGateway(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { - t.Helper() - - response, err := clientInfo.PingOneApiClient.ManagementAPIClient.GatewaysApi.DeleteGateway(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id).Execute() - ok, err := common.HandleClientResponse(response, err, "DeleteGateway", resourceType) - if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) - } - if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) - } -} diff --git a/internal/testing/testutils_resource/pingone/pingfederate_gateway_credential.go b/internal/testing/testutils_resource/pingone/pingfederate_gateway_credential.go deleted file mode 100644 index 59baf340..00000000 --- a/internal/testing/testutils_resource/pingone/pingfederate_gateway_credential.go +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package pingone - -import ( - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource" -) - -func TestableResource_PingOnePingFederateGatewayCredential(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { - t.Helper() - - return &testutils_resource.TestableResource{ - ClientInfo: clientInfo, - CreateFunc: createPingFederateGatewayCredential, - DeleteFunc: nil, - Dependencies: []*testutils_resource.TestableResource{ - TestableResource_PingOnePingFederateGateway(t, clientInfo), - }, - ExportableResource: nil, - } -} - -func createPingFederateGatewayCredential(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { - t.Helper() - - if len(strArgs) != 2 { - t.Fatalf("Unexpected number of arguments provided to createPingoneConnection(): %v", strArgs) - } - resourceType := strArgs[0] - gatewayId := strArgs[1] - - gatewayCredential, response, err := clientInfo.PingOneApiClient.ManagementAPIClient.GatewayCredentialsApi.CreateGatewayCredential(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, gatewayId).Execute() - ok, err := common.HandleClientResponse(response, err, "CreateGatewayCredential", resourceType) - if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) - } - if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) - } - - if gatewayCredential == nil { - t.Fatalf("Failed to create test %s: %v", resourceType, err) - } - - credential, credentialOk := gatewayCredential.GetCredentialOk() - if !credentialOk { - t.Fatalf("Failed to create test %s: %v", resourceType, err) - } - - return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *credential, // the pingone_connection resource needs the credential instead of the id of the credential - testutils_resource.ENUM_CREDENTIAL: *credential, - } -} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/agreement.go b/internal/testing/testutils_resource/pingone_testable_resources/agreement.go new file mode 100644 index 00000000..03e05977 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/agreement.go @@ -0,0 +1,82 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func Agreement(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createAgreement, + DeleteFunc: deleteAgreement, + Dependencies: nil, + ExportableResource: resources.Agreement(clientInfo), + } +} + +func createAgreement(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createAgreement(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.AgreementsResourcesApi.CreateAgreement(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.Agreement{ + Name: "Agreement_2", + Description: utils.Pointer("Terms of service agreement"), + ReconsentPeriodDays: utils.Pointer(float32(180)), + Enabled: false, + } + + request = request.Agreement(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateAgreement", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteAgreement(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteAgreement(): %v", ids) + } + id := ids[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.AgreementsResourcesApi.DeleteAgreement(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteAgreement", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization.go b/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization.go new file mode 100644 index 00000000..cb63dec4 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization.go @@ -0,0 +1,86 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func AgreementLocalization(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createAgreementLocalization, + DeleteFunc: deleteAgreementLocalization, + Dependencies: []*testutils_resource.TestableResource{ + Agreement(t, clientInfo), + }, + ExportableResource: resources.AgreementLocalization(clientInfo), + } +} + +func createAgreementLocalization(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Fatalf("Unexpected number of arguments provided to createAgreementLocalization(): %v", strArgs) + } + agreementId := strArgs[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.AgreementLanguagesResourcesApi.CreateAgreementLanguage(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, agreementId) + clientStruct := management.AgreementLanguage{ + Locale: "en-US", + DisplayName: "Language_1", + Enabled: true, + } + + request = request.AgreementLanguage(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateAgreementLanguage", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{ + agreementId, + }, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_LOCALE: resource.Locale, + }, + } +} + +func deleteAgreementLocalization(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Fatalf("Unexpected number of arguments provided to deleteAgreementLocalization(): %v", ids) + } + agreementId := ids[0] + agreementLocalizationId := ids[1] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.AgreementLanguagesResourcesApi.DeleteAgreementLanguage(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, agreementId, agreementLocalizationId) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteAgreementLanguage", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go b/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go new file mode 100644 index 00000000..290d034a --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go @@ -0,0 +1,95 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + "time" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func AgreementLocalizationRevision(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createAgreementLocalizationRevision, + DeleteFunc: deleteAgreementLocalizationRevision, + Dependencies: []*testutils_resource.TestableResource{ + AgreementLocalization(t, clientInfo), + }, + ExportableResource: resources.AgreementLocalizationRevision(clientInfo), + } +} + +func createAgreementLocalizationRevision(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 2 { + t.Fatalf("Unexpected number of arguments provided to createAgreementLocalizationRevision(): %v", strArgs) + } + agreementId := strArgs[0] + agreementLocalizationId := strArgs[1] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.AgreementRevisionsResourcesApi.CreateAgreementLanguageRevision(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, agreementId, agreementLocalizationId) + clientStruct := management.AgreementLanguageRevision{ + EffectiveAt: func() time.Time { + parsedTime, err := time.Parse(time.RFC3339, "2098-08-01T22:45:44.497Z") + if err != nil { + t.Fatalf("Failed to parse time: %v", err) + } + return parsedTime + }(), + RequireReconsent: false, + Text: "Test, test, test", + } + + request = request.AgreementLanguageRevision(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateAgreementLanguageRevision", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{ + agreementId, + agreementLocalizationId, + }, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + }, + } +} + +func deleteAgreementLocalizationRevision(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 3 { + t.Fatalf("Unexpected number of arguments provided to deleteAgreementLocalizationRevision(): %v", ids) + } + agreementId := ids[0] + agreementLocalizationId := ids[1] + agreementLocalizationRevisionId := ids[2] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.AgreementRevisionsResourcesApi.DeleteAgreementLanguageRevision(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, agreementId, agreementLocalizationId, agreementLocalizationRevisionId) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteAgreementLanguageRevision", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/branding_settings.go b/internal/testing/testutils_resource/pingone_testable_resources/branding_settings.go new file mode 100644 index 00000000..58b01302 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/branding_settings.go @@ -0,0 +1,24 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func BrandingSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: nil, + DeleteFunc: nil, + Dependencies: nil, + ExportableResource: resources.BrandingSettings(clientInfo), + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/branding_theme.go b/internal/testing/testutils_resource/pingone_testable_resources/branding_theme.go new file mode 100644 index 00000000..d4422d48 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/branding_theme.go @@ -0,0 +1,112 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/hashicorp/go-uuid" + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func BrandingTheme(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createBrandingTheme, + DeleteFunc: deleteBrandingTheme, + Dependencies: nil, + ExportableResource: resources.BrandingTheme(clientInfo), + } +} + +func createBrandingTheme(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createBrandingTheme(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.BrandingThemesApi.CreateBrandingTheme(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + + newLogoId, err := uuid.GenerateUUID() + if err != nil { + t.Fatalf("Failed to generate UUID: %v", err) + } + + newImageId, err := uuid.GenerateUUID() + if err != nil { + t.Fatalf("Failed to generate UUID: %v", err) + } + + clientStruct := management.BrandingTheme{ + Template: "default", + Configuration: management.BrandingThemeConfiguration{ + LogoType: "IMAGE", + Logo: &management.BrandingThemeConfigurationLogo{ + Href: "https://www.pingidentity.com/content/dam/picr/nav/Ping-Logo-2.svg", + Id: newLogoId, + }, + BackgroundColor: utils.Pointer("#333333"), + BackgroundType: "COLOR", + BackgroundImage: &management.BrandingThemeConfigurationBackgroundImage{ + Href: "https://www.pingidentity.com/content/dam/picr/nav/Ping-Logo-2.svg", + Id: newImageId, + }, + CardColor: "#333333", + HeadingTextColor: "#333333", + LinkTextColor: "#333333", + BodyTextColor: "#444444", + ButtonTextColor: "#333333", + ButtonColor: "#333333", + Name: utils.Pointer("ACME test theme"), + Footer: utils.Pointer("some footer"), + }, + } + + request = request.BrandingTheme(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateBrandingTheme", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: *resource.Configuration.Name, + }, + } +} + +func deleteBrandingTheme(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteBrandingTheme(): %v", ids) + } + id := ids[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.BrandingThemesApi.DeleteBrandingTheme(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteBrandingTheme", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/branding_theme_default.go b/internal/testing/testutils_resource/pingone_testable_resources/branding_theme_default.go new file mode 100644 index 00000000..e5faa2b7 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/branding_theme_default.go @@ -0,0 +1,24 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func BrandingThemeDefault(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: nil, + DeleteFunc: nil, + Dependencies: nil, + ExportableResource: resources.BrandingThemeDefault(clientInfo), + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/certificate.go b/internal/testing/testutils_resource/pingone_testable_resources/certificate.go new file mode 100644 index 00000000..13c9a4ce --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/certificate.go @@ -0,0 +1,81 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func Certificate(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createCertificate, + DeleteFunc: deleteCertificate, + Dependencies: nil, + ExportableResource: resources.Certificate(clientInfo), + } +} + +func createCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createCertificate(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.CreateCertificateFromFile(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + + fileData, err := testutils.CreateX509Certificate() + if err != nil { + t.Fatalf("Failed to create X509 certificate: %v", err) + } + + request.File(utils.Pointer([]byte(fileData))) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateCertificateFromFile", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteCertificate(): %v", ids) + } + id := ids[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.DeleteCertificate(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteCertificate", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/custom_domain.go b/internal/testing/testutils_resource/pingone_testable_resources/custom_domain.go new file mode 100644 index 00000000..0df1ee51 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/custom_domain.go @@ -0,0 +1,78 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func CustomDomain(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createCustomDomain, + DeleteFunc: deleteCustomDomain, + Dependencies: nil, + ExportableResource: resources.CustomDomain(clientInfo), + } +} + +func createCustomDomain(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createCustomDomain(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.CustomDomainsApi.CreateDomain(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.CustomDomain{ + DomainName: "custom-domain.example.com", + } + + request = request.CustomDomain(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateDomain", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.DomainName, + }, + } +} + +func deleteCustomDomain(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteCustomDomain(): %v", ids) + } + id := ids[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.CustomDomainsApi.DeleteDomain(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteDomain", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone/device_auth_application.go b/internal/testing/testutils_resource/pingone_testable_resources/device_auth_application.go similarity index 83% rename from internal/testing/testutils_resource/pingone/device_auth_application.go rename to internal/testing/testutils_resource/pingone_testable_resources/device_auth_application.go index 42901199..b79f62d2 100644 --- a/internal/testing/testutils_resource/pingone/device_auth_application.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/device_auth_application.go @@ -1,6 +1,6 @@ // Copyright © 2025 Ping Identity Corporation -package pingone +package pingone_testable_resources import ( "testing" @@ -11,7 +11,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func TestableResource_PingOneDeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func DeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ @@ -23,13 +23,12 @@ func TestableResource_PingOneDeviceAuthApplication(t *testing.T, clientInfo *con } } -func createDeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createDeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 0 { t.Fatalf("Unexpected number of arguments provided to createPingOneDeviceAuthApplication(): %v", strArgs) } - resourceType := strArgs[0] result := management.CreateApplicationRequest{ ApplicationOIDC: &management.ApplicationOIDC{ @@ -64,13 +63,21 @@ func createDeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo, } return testutils_resource.ResourceCreationInfo{ - testutils_resource.ENUM_ID: *appId, + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *appId, + }, } } -func deleteDeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo, resourceType, id string) { +func deleteDeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteDeviceAuthApplication(): %v", ids) + } + id := ids[0] + response, err := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.DeleteApplication(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id).Execute() ok, err := common.HandleClientResponse(response, err, "DeleteApplication", resourceType) if err != nil { diff --git a/internal/testing/testutils_resource/pingone_testable_resources/environment.go b/internal/testing/testutils_resource/pingone_testable_resources/environment.go new file mode 100644 index 00000000..30dbf5b4 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/environment.go @@ -0,0 +1,24 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func Environment(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: nil, + DeleteFunc: nil, + Dependencies: nil, + ExportableResource: resources.Environment(clientInfo), + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/form.go b/internal/testing/testutils_resource/pingone_testable_resources/form.go new file mode 100644 index 00000000..330297ab --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/form.go @@ -0,0 +1,117 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func Form(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createForm, + DeleteFunc: deleteForm, + Dependencies: nil, + ExportableResource: resources.Form(clientInfo), + } +} + +func createForm(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createForm(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.FormManagementApi.CreateForm(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.Form{ + Name: "CustomFormName", + Description: utils.Pointer("Test Description - created via CREATE Custom Form request"), + Category: "CUSTOM", + Components: management.FormComponents{ + Fields: []management.FormField{ + { + FormFieldText: &management.FormFieldText{ + Position: management.FormFieldCommonPosition{Row: 0, Col: 0}, + Key: "field", + Label: "[{\"type\":\"paragraph\",\"children\":[{\"text\":\"\"},{\"type\":\"i18n\",\"key\":\"fields.user.email.label\",\"defaultTranslation\":\"Email Address\",\"inline\":true,\"children\":[{\"text\":\"\"}]},{\"text\":\"\"}]}]", + Required: utils.Pointer(true), + Validation: management.FormElementValidation{ + Type: utils.Pointer(management.ENUMFORMELEMENTVALIDATIONTYPE_NONE), + Regex: utils.Pointer(""), + ErrorMessage: utils.Pointer(""), + }, + AttributeDisabled: utils.Pointer(false), + }, + }, + { + FormFieldSubmitButton: &management.FormFieldSubmitButton{ + Position: management.FormFieldCommonPosition{Row: 1, Col: 0}, + Label: "[{\"type\":\"paragraph\",\"children\":[{\"text\":\"\"},{\"type\":\"i18n\",\"key\":\"button.text\",\"defaultTranslation\":\"Submit\",\"inline\":true,\"children\":[{\"text\":\"\"}]},{\"text\":\"\"}]}]", + }, + }, + }, + }, + Cols: utils.Pointer(int32(4)), + MarkOptional: true, + MarkRequired: false, + TranslationMethod: utils.Pointer(management.ENUMFORMTRANSLATIONMETHOD_TRANSLATE), + FieldTypes: []management.EnumFormFieldType{ + management.ENUMFORMFIELDTYPE_SUBMIT_BUTTON, + management.ENUMFORMFIELDTYPE_TEXT, + }, + LanguageBundle: &map[string]string{ + "fields.user.email.label": "Email Address", + "button.text": "Submit", + }, + } + + request = request.Form(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateForm", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteForm(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteForm(): %v", ids) + } + id := ids[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.FormManagementApi.DeleteForm(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteForm", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go b/internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go new file mode 100644 index 00000000..27d02195 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go @@ -0,0 +1,24 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func FormsRecaptchaV2(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: nil, + DeleteFunc: nil, + Dependencies: nil, + ExportableResource: resources.FormsRecaptchaV2(clientInfo), + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/gateway.go b/internal/testing/testutils_resource/pingone_testable_resources/gateway.go new file mode 100644 index 00000000..35f94a0c --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/gateway.go @@ -0,0 +1,84 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func Gateway(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createGateway, + DeleteFunc: deleteGateway, + Dependencies: nil, + ExportableResource: resources.Gateway(clientInfo), + } +} + +func createGateway(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createGateway(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewaysApi.CreateGateway(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.CreateGatewayRequest{ + Gateway: &management.Gateway{ + Name: "TestPingFederateConnection", + Description: utils.Pointer("Test Description - created via CREATE PingFed Connection request"), + Type: management.ENUMGATEWAYTYPE_PING_FEDERATE, + Enabled: true, + }, + } + + request = request.CreateGatewayRequest(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateGateway", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Gateway.Id, + testutils_resource.ENUM_NAME: resource.Gateway.Name, + }, + } +} + +func deleteGateway(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteGateway(): %v", ids) + } + id := ids[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewaysApi.DeleteGateway(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteGateway", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/gateway_credential.go b/internal/testing/testutils_resource/pingone_testable_resources/gateway_credential.go new file mode 100644 index 00000000..4b4cdfb0 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/gateway_credential.go @@ -0,0 +1,77 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func GatewayCredential(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createGatewayCredential, + DeleteFunc: deleteGatewayCredential, + Dependencies: []*testutils_resource.TestableResource{ + Gateway(t, clientInfo), + }, + ExportableResource: resources.GatewayCredential(clientInfo), + } +} + +func createGatewayCredential(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Fatalf("Unexpected number of arguments provided to createGatewayCredential(): %v", strArgs) + } + gatewayId := strArgs[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewayCredentialsApi.CreateGatewayCredential(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, gatewayId) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateGatewayCredential", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{ + gatewayId, + }, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + }, + } +} + +func deleteGatewayCredential(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Fatalf("Unexpected number of arguments provided to deleteGatewayCredential(): %v", ids) + } + gatewayId := ids[0] + gatewayCredentialId := ids[1] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewayCredentialsApi.DeleteGatewayCredential(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, gatewayId, gatewayCredentialId) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteGatewayCredential", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go b/internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go new file mode 100644 index 00000000..680bc09c --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go @@ -0,0 +1,104 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func GatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createGatewayRoleAssignment, + DeleteFunc: deleteGatewayRoleAssignment, + Dependencies: []*testutils_resource.TestableResource{ + Gateway(t, clientInfo), + }, + ExportableResource: resources.GatewayRoleAssignment(clientInfo), + } +} + +func createGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Fatalf("Unexpected number of arguments provided to createGatewayRoleAssignment(): %v", strArgs) + } + gatewayId := strArgs[0] + + iter := clientInfo.PingOneApiClient.ManagementAPIClient.RolesApi.ReadAllRoles(clientInfo.PingOneContext).Execute() + roles, err := pingone.GetManagementAPIObjectsFromIterator[management.Role](iter, "ReadAllRoles", "GetRoles", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nError: %v", err) + } + if len(roles) == 0 { + t.Fatalf("Failed to execute PingOne client function\n No built-in roles returned from ReadAllRoles()", err) + } + + // Use a random role + roleId := roles[0].Id + roleName := roles[0].Name + + request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewayRoleAssignmentsApi.CreateGatewayRoleAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, gatewayId) + clientStruct := management.RoleAssignment{ + Role: management.RoleAssignmentRole{ + Id: *roleId, + }, + Scope: management.RoleAssignmentScope{ + Id: clientInfo.PingOneExportEnvironmentID, + Type: "ENVIRONMENT", + }, + } + + request = request.RoleAssignment(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateGatewayRoleAssignment", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{ + gatewayId, + }, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: string(*roleName), + }, + } +} + +func deleteGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Fatalf("Unexpected number of arguments provided to deleteGatewayRoleAssignment(): %v", ids) + } + gatewayId := ids[0] + gatewayRoleAssignmentId := ids[1] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewayRoleAssignmentsApi.DeleteGatewayRoleAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, gatewayId, gatewayRoleAssignmentId) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteGatewayRoleAssignment", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/identity_propagation_plan.go b/internal/testing/testutils_resource/pingone_testable_resources/identity_propagation_plan.go new file mode 100644 index 00000000..c50b6374 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/identity_propagation_plan.go @@ -0,0 +1,78 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func IdentityPropagationPlan(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createIdentityPropagationPlan, + DeleteFunc: deleteIdentityPropagationPlan, + Dependencies: nil, + ExportableResource: resources.IdentityPropagationPlan(clientInfo), + } +} + +func createIdentityPropagationPlan(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createIdentityPropagationPlan(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.IdentityPropagationPlansApi.CreatePlan(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.IdentityPropagationPlan{ + Name: "Test Propagation Plan", + } + + request = request.IdentityPropagationPlan(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreatePlan", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteIdentityPropagationPlan(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteIdentityPropagationPlan(): %v", ids) + } + id := ids[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.IdentityPropagationPlansApi.DeletePlan(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeletePlan", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/key.go b/internal/testing/testutils_resource/pingone_testable_resources/key.go new file mode 100644 index 00000000..0ffe7623 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/key.go @@ -0,0 +1,89 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "math/big" + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func Key(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createKey, + DeleteFunc: deleteKey, + Dependencies: nil, + ExportableResource: resources.Key(clientInfo), + } +} + +func createKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createKey(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.CreateKey(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.Certificate{ + Name: "Doc test cert", + SerialNumber: big.NewInt(1575483893597), + SubjectDN: "CN=Doc test cert, OU=Ping Identity, O=Ping Identity, L=, ST=, C=US", + Algorithm: "RSA", + KeyLength: 2048, + ValidityPeriod: 365, + SignatureAlgorithm: "SHA256withRSA", + UsageType: "SIGNING", + Status: utils.Pointer(management.ENUMCERTIFICATEKEYSTATUS_VALID), + Default: utils.Pointer(false), + } + + request = request.Certificate(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateKey", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteKey(): %v", ids) + } + id := ids[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.DeleteKey(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteKey", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/key_rotation_policy.go b/internal/testing/testutils_resource/pingone_testable_resources/key_rotation_policy.go new file mode 100644 index 00000000..ec8f2b80 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/key_rotation_policy.go @@ -0,0 +1,86 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func KeyRotationPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createKeyRotationPolicy, + DeleteFunc: deleteKeyRotationPolicy, + Dependencies: nil, + ExportableResource: resources.KeyRotationPolicy(clientInfo), + } +} + +func createKeyRotationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createKeyRotationPolicy(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.KeyRotationPoliciesApi.CreateKeyRotationPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.KeyRotationPolicy{ + Name: "Test Key Rotation Policy", + Dn: "CN=Test Key Rotation Policy, OU=Ping Identity, O=Ping Identity, L=, ST=, C=US", + Algorithm: "RSA", + KeyLength: 2048, + ValidityPeriod: utils.Pointer(int32(365)), + SignatureAlgorithm: "SHA256withRSA", + UsageType: "SIGNING", + RotationPeriod: utils.Pointer(int32(180)), + } + + request = request.KeyRotationPolicy(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateKeyRotationPolicy", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteKeyRotationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteKeyRotationPolicy(): %v", ids) + } + id := ids[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.KeyRotationPoliciesApi.DeleteKeyRotationPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteKeyRotationPolicy", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/langauge.go b/internal/testing/testutils_resource/pingone_testable_resources/langauge.go new file mode 100644 index 00000000..0ed6b72c --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/langauge.go @@ -0,0 +1,78 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func Langauge(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createLangauge, + DeleteFunc: deleteLangauge, + Dependencies: nil, + ExportableResource: resources.Langauge(clientInfo), + } +} + +func createLangauge(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createLangauge(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.LanguagesApi.CreateLanguage(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.Language{ + Locale: "fi", + } + + request = request.Language(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateLanguage", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: *resource.Name, + }, + } +} + +func deleteLangauge(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteLangauge(): %v", ids) + } + id := ids[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.LanguagesApi.DeleteLanguage(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteLanguage", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/notification_policy.go b/internal/testing/testutils_resource/pingone_testable_resources/notification_policy.go new file mode 100644 index 00000000..e40c01a0 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/notification_policy.go @@ -0,0 +1,101 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func NotificationPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createNotificationPolicy, + DeleteFunc: deleteNotificationPolicy, + Dependencies: nil, + ExportableResource: resources.NotificationPolicy(clientInfo), + } +} + +func createNotificationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createNotificationPolicy(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsPoliciesApi.CreateNotificationsPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.NotificationsPolicy{ + Name: "Notification policy with environment limit and country limitation", + Quotas: []management.NotificationsPolicyQuotasInner{ + { + Type: management.ENUMNOTIFICATIONSPOLICYQUOTAITEMTYPE_ENVIRONMENT, + DeliveryMethods: []management.EnumNotificationsPolicyQuotaDeliveryMethods{ + management.ENUMNOTIFICATIONSPOLICYQUOTADELIVERYMETHODS_SMS, + management.ENUMNOTIFICATIONSPOLICYQUOTADELIVERYMETHODS_VOICE, + }, + Total: utils.Pointer(int32(1000)), + }, + }, + CountryLimit: &management.NotificationsPolicyCountryLimit{ + Type: management.ENUMNOTIFICATIONSPOLICYCOUNTRYLIMITTYPE_ALLOWED, + DeliveryMethods: []management.EnumNotificationsPolicyCountryLimitDeliveryMethod{ + management.ENUMNOTIFICATIONSPOLICYCOUNTRYLIMITDELIVERYMETHOD_SMS, + management.ENUMNOTIFICATIONSPOLICYCOUNTRYLIMITDELIVERYMETHOD_VOICE, + }, + Countries: []string{ + "US", + "CA", + }, + }, + Default: utils.Pointer(false), + } + + request = request.NotificationsPolicy(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateNotificationsPolicy", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteNotificationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteNotificationPolicy(): %v", ids) + } + id := ids[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsPoliciesApi.DeleteNotificationsPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteNotificationsPolicy", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/notification_settings.go b/internal/testing/testutils_resource/pingone_testable_resources/notification_settings.go new file mode 100644 index 00000000..580ba95f --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/notification_settings.go @@ -0,0 +1,24 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func NotificationSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: nil, + DeleteFunc: nil, + Dependencies: nil, + ExportableResource: resources.NotificationSettings(clientInfo), + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/notification_settings_email.go b/internal/testing/testutils_resource/pingone_testable_resources/notification_settings_email.go new file mode 100644 index 00000000..d545e97a --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/notification_settings_email.go @@ -0,0 +1,24 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func NotificationSettingsEmail(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: nil, + DeleteFunc: nil, + Dependencies: nil, + ExportableResource: resources.NotificationSettingsEmail(clientInfo), + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go b/internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go new file mode 100644 index 00000000..44d22de9 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go @@ -0,0 +1,89 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "strconv" + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func NotificationTemplateContent(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createNotificationTemplateContent, + DeleteFunc: deleteNotificationTemplateContent, + Dependencies: nil, + ExportableResource: resources.NotificationTemplateContent(clientInfo), + } +} + +func createNotificationTemplateContent(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createNotificationTemplateContent(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsTemplatesApi.CreateContent(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, management.ENUMTEMPLATENAME_STRONG_AUTHENTICATION) + clientStruct := management.TemplateContent{ + TemplateContentSMS: &management.TemplateContentSMS{ + Locale: "en", + Variant: utils.Pointer("variant_C"), + Content: "${user.username} your one time password is ${otp}.", + DeliveryMethod: "SMS", + Default: utils.Pointer(false), + }, + } + + request = request.TemplateContent(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateContent", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.TemplateContentSMS.Id, + testutils_resource.ENUM_NAME: string(management.ENUMTEMPLATENAME_STRONG_AUTHENTICATION), + testutils_resource.ENUM_TEMPLATE_VARIANT: *resource.TemplateContentSMS.Variant, + testutils_resource.ENUM_TEMPLATE_DELIVERY_METHOD: string(resource.TemplateContentSMS.DeliveryMethod), + testutils_resource.ENUM_TEMPLATE_DEFAULT: strconv.FormatBool(*resource.TemplateContentSMS.Default), + }, + } +} + +func deleteNotificationTemplateContent(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteNotificationTemplateContent(): %v", ids) + } + id := ids[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsTemplatesApi.DeleteContent(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, management.ENUMTEMPLATENAME_STRONG_AUTHENTICATION, id) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteContent", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go b/internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go new file mode 100644 index 00000000..d4c72151 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go @@ -0,0 +1,126 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func PhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createPhoneDeliverySettings, + DeleteFunc: deletePhoneDeliverySettings, + Dependencies: nil, + ExportableResource: resources.PhoneDeliverySettings(clientInfo), + } +} + +func createPhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createPhoneDeliverySettings(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.PhoneDeliverySettingsApi.CreatePhoneDeliverySettings(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.NotificationsSettingsPhoneDeliverySettings{ + NotificationsSettingsPhoneDeliverySettingsCustom: &management.NotificationsSettingsPhoneDeliverySettingsCustom{ + Name: "CustomProviderName1", + Authentication: management.NotificationsSettingsPhoneDeliverySettingsCustomAllOfAuthentication{ + Method: management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMAUTHMETHOD_BASIC, + Username: utils.Pointer("testUsername"), + Password: utils.Pointer("testPassword1"), + }, + Requests: []management.NotificationsSettingsPhoneDeliverySettingsCustomRequest{ + { + DeliveryMethod: management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMDELIVERYMETHOD_SMS, + Url: "https://example.com/message", + Method: management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMREQUESTMETHOD_POST, + Body: utils.Pointer("ARN&message=${message}&phoneNumber=${to}&sender=${from}"), + }, + { + DeliveryMethod: management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMDELIVERYMETHOD_VOICE, + Url: "https://example.com/voice", + Method: management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMREQUESTMETHOD_POST, + Body: utils.Pointer("ARN&message=${message}&phoneNumber=${to}&sender=${from}"), + }, + }, + Numbers: []management.NotificationsSettingsPhoneDeliverySettingsCustomNumbers{ + { + Type: management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMNUMBERSTYPE_PHONE_NUMBER, + Number: "+1 222 333", + Selected: utils.Pointer(true), + Available: utils.Pointer(true), + Capabilities: []management.EnumNotificationsSettingsPhoneDeliverySettingsCustomNumbersCapability{ + management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMNUMBERSCAPABILITY_SMS, + management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMNUMBERSCAPABILITY_VOICE, + }, + }, + { + Type: management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMNUMBERSTYPE_TOLL_FREE, + Number: "+18544440099", + Selected: utils.Pointer(false), + Available: utils.Pointer(true), + Capabilities: []management.EnumNotificationsSettingsPhoneDeliverySettingsCustomNumbersCapability{ + management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMNUMBERSCAPABILITY_SMS, + management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMNUMBERSCAPABILITY_VOICE, + }, + SupportedCountries: []string{ + "US", + "CA", + }, + }, + }, + }, + } + + request = request.NotificationsSettingsPhoneDeliverySettings(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreatePhoneDeliverySettings", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.NotificationsSettingsPhoneDeliverySettingsCustom.Id, + testutils_resource.ENUM_NAME: resource.NotificationsSettingsPhoneDeliverySettingsCustom.Name, + }, + } +} + +func deletePhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deletePhoneDeliverySettings(): %v", ids) + } + id := ids[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.PhoneDeliverySettingsApi.DeletePhoneDeliverySettings(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeletePhoneDeliverySettings", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_address.go b/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_address.go new file mode 100644 index 00000000..6785e606 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_address.go @@ -0,0 +1,84 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func TrustedEmailAddress(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createTrustedEmailAddress, + DeleteFunc: deleteTrustedEmailAddress, + Dependencies: []*testutils_resource.TestableResource{ + TrustedEmailDomain(t, clientInfo), + }, + ExportableResource: resources.TrustedEmailAddress(clientInfo), + } +} + +func createTrustedEmailAddress(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Fatalf("Unexpected number of arguments provided to createTrustedEmailAddress(): %v", strArgs) + } + trustedEmailDomainId := strArgs[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailAddressesApi.CreateTrustedEmailAddress(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, trustedEmailDomainId) + clientStruct := management.EmailDomainTrustedEmail{ + EmailAddress: "example@example.com", + } + + request = request.EmailDomainTrustedEmail(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateTrustedEmailAddress", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{ + trustedEmailDomainId, + }, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.EmailAddress, + }, + } +} + +func deleteTrustedEmailAddress(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Fatalf("Unexpected number of arguments provided to deleteTrustedEmailAddress(): %v", ids) + } + trustedEmailDomainId := ids[0] + TrustedEmailAddressId := ids[1] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailAddressesApi.DeleteTrustedEmailAddress(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, trustedEmailDomainId, TrustedEmailAddressId) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteTrustedEmailAddress", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_domain.go b/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_domain.go new file mode 100644 index 00000000..d8e86bc2 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_domain.go @@ -0,0 +1,78 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func TrustedEmailDomain(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createTrustedEmailDomain, + DeleteFunc: deleteTrustedEmailDomain, + Dependencies: nil, + ExportableResource: resources.TrustedEmailDomain(clientInfo), + } +} + +func createTrustedEmailDomain(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createTrustedEmailDomain(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailDomainsApi.CreateTrustedEmailDomain(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.EmailDomain{ + DomainName: "example.com", + } + + request = request.EmailDomain(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateTrustedEmailDomain", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.DomainName, + }, + } +} + +func deleteTrustedEmailDomain(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteTrustedEmailDomain(): %v", ids) + } + id := ids[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailDomainsApi.DeleteTrustedEmailDomain(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteTrustedEmailDomain", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/webhook.go b/internal/testing/testutils_resource/pingone_testable_resources/webhook.go new file mode 100644 index 00000000..5bf7c06a --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/webhook.go @@ -0,0 +1,93 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func Webhook(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createWebhook, + DeleteFunc: deleteWebhook, + Dependencies: nil, + ExportableResource: resources.Webhook(clientInfo), + } +} + +func createWebhook(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createWebhook(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.SubscriptionsWebhooksApi.CreateSubscription(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.Subscription{ + Name: "SubscriptionName1", + FilterOptions: management.SubscriptionFilterOptions{ + IncludedActionTypes: []string{ + "USER.CREATED", + "USER.UPDATED", + }, + }, + HttpEndpoint: management.SubscriptionHttpEndpoint{ + Url: "https://subscriptionendpoint.com", + Headers: &map[string]string{ + "some-header": "some-value", + }, + }, + Format: management.ENUMSUBSCRIPTIONFORMAT_ACTIVITY, + VerifyTlsCertificates: false, + Enabled: true, + } + + request = request.Subscription(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateSubscription", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteWebhook(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteWebhook(): %v", ids) + } + id := ids[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.SubscriptionsWebhooksApi.DeleteSubscription(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteSubscription", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/testutils_resource.go b/internal/testing/testutils_resource/testutils_resource.go index 0895fe0a..1b1f4185 100644 --- a/internal/testing/testutils_resource/testutils_resource.go +++ b/internal/testing/testutils_resource/testutils_resource.go @@ -23,6 +23,14 @@ const ( ENUM_ISSUER_DN ResourceCreationInfoType = "ENUM_ISSUER_DN" ENUM_SERIAL_NUMBER ResourceCreationInfoType = "ENUM_SERIAL_NUMBER" + // Language Info for Language resources + ENUM_LOCALE ResourceCreationInfoType = "ENUM_LOCALE" + + // Template Info for Template resources + ENUM_TEMPLATE_VARIANT ResourceCreationInfoType = "ENUM_TEMPLATE_VARIANT" + ENUM_TEMPLATE_DELIVERY_METHOD ResourceCreationInfoType = "ENUM_TEMPLATE_DELIVERY_METHOD" + ENUM_TEMPLATE_DEFAULT ResourceCreationInfoType = "ENUM_TEMPLATE_DEFAULT" + // Miscellaneous Info for resources that don't fit the above ENUM_TYPE ResourceCreationInfoType = "ENUM_TYPE" ENUM_CONTEXT_TYPE ResourceCreationInfoType = "ENUM_CONTEXT_TYPE" @@ -30,7 +38,10 @@ const ( ENUM_SOURCE_REF_ID ResourceCreationInfoType = "ENUM_SOURCE_REF_ID" ) -type ResourceCreationInfo map[ResourceCreationInfoType]string +type ResourceCreationInfo struct { + SelfInfo map[ResourceCreationInfoType]string + DepIds []string +} // The TestableResource struct is used to create and delete resources in a test, without prior configuration needed // on a service. This allows different developers and contributors to provide their own test service credentials, @@ -49,13 +60,13 @@ type TestableResource struct { ClientInfo *connector.ClientInfo // Creation function for this TestableResources - CreateFunc func(*testing.T, *connector.ClientInfo, ...string) ResourceCreationInfo + CreateFunc func(*testing.T, *connector.ClientInfo, string, ...string) ResourceCreationInfo // TestableResource information like ID, Name, etc. CreationInfo ResourceCreationInfo // Deletion function for this TestableResources - DeleteFunc func(*testing.T, *connector.ClientInfo, string, string) + DeleteFunc func(*testing.T, *connector.ClientInfo, string, ...string) // TestableResources required to be created before this TestableResource can be created Dependencies []*TestableResource @@ -67,19 +78,17 @@ type TestableResource struct { func (tr *TestableResource) CreateResource(t *testing.T) ResourceCreationInfo { t.Helper() - // Each TestableResource CreateFunc takes in the resource type and a variadic list of dependency IDs needed for creation - createdDepIds := []string{} - if tr.ExportableResource == nil { - // Some resources like out_of_band_auth_plugins do not implement ExportableResource - createdDepIds = append(createdDepIds, "") - } else { - createdDepIds = append(createdDepIds, tr.ExportableResource.ResourceType()) + // Some resources like out_of_band_auth_plugins do not implement ExportableResource + resourceType := "" + if tr.ExportableResource != nil { + resourceType = tr.ExportableResource.ResourceType() } + createdDepIds := []string{} for _, dependency := range tr.Dependencies { // Recursively create dependencies dependency.CreationInfo = dependency.CreateResource(t) - depId, ok := dependency.CreationInfo[ENUM_ID] + depId, ok := dependency.CreationInfo.SelfInfo[ENUM_ID] if !ok { t.Fatalf("Failed to get ID from dependency: %v", dependency) } @@ -88,7 +97,7 @@ func (tr *TestableResource) CreateResource(t *testing.T) ResourceCreationInfo { } if tr.CreateFunc != nil { - tr.CreationInfo = tr.CreateFunc(t, tr.ClientInfo, createdDepIds...) + tr.CreationInfo = tr.CreateFunc(t, tr.ClientInfo, resourceType, createdDepIds...) } return tr.CreationInfo @@ -102,8 +111,10 @@ func (tr *TestableResource) DeleteResource(t *testing.T) { resourceType = tr.ExportableResource.ResourceType() } + ids := append(tr.CreationInfo.DepIds, tr.CreationInfo.SelfInfo[ENUM_ID]) + if tr.DeleteFunc != nil { - tr.DeleteFunc(t, tr.ClientInfo, resourceType, tr.CreationInfo[ENUM_ID]) + tr.DeleteFunc(t, tr.ClientInfo, resourceType, ids...) } for _, dependency := range tr.Dependencies { From 589e83cff4b1a7c4a0ebd0320712b73390e485ab Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Fri, 21 Mar 2025 17:07:12 -0600 Subject: [PATCH 03/18] Code gen and testable resources for pingone-management complete --- .../platform/pingone_platform_connector.go | 2 +- .../pingone_platform_connector_test.go | 219 ++++++++------- .../agreement_enable.go} | 0 .../resources/agreement_enable_test.go | 35 +++ .../resources/agreement_localization.go | 68 +++-- .../agreement_localization_enable.go} | 0 .../agreement_localization_enable_test.go | 36 +++ .../agreement_localization_revision.go | 8 +- .../agreement_localization_revision_test.go | 7 +- .../resources/agreement_localization_test.go | 5 +- .../alert_channel.go} | 0 .../alert_channel_test.go} | 6 +- .../platform/resources/branding_theme.go | 10 +- .../resources/branding_theme_default.go | 18 +- .../platform/resources/branding_theme_test.go | 3 +- .../pingone/platform/resources/certificate.go | 21 +- .../platform/resources/custom_domain.go | 2 +- .../pingone/platform/resources/environment.go | 57 ++-- .../platform/resources/environment_test.go | 9 +- .../resources/forms_recaptcha_v2_test.go | 3 + .../pingone/platform/resources/gateway.go | 26 +- .../platform/resources/gateway_credential.go | 84 ++++-- .../resources/gateway_credential_test.go | 5 +- .../resources/gateway_role_assignment.go | 105 +++++-- .../resources/gateway_role_assignment_test.go | 8 +- .../pingone/platform/resources/key.go | 39 ++- .../resources/key_rotation_policy_test.go | 3 +- .../pingone/platform/resources/key_test.go | 5 +- .../resources/{langauge.go => language.go} | 34 +-- .../{langauge_test.go => language_test.go} | 7 +- .../language_update.go} | 16 +- .../resources/language_update_test.go | 36 +++ .../resources/notification_policy_test.go | 3 +- .../notification_template_content.go | 175 ++++++++++-- .../notification_template_content_test.go | 7 +- .../resources/phone_delivery_settings.go | 34 ++- .../resources/phone_delivery_settings_test.go | 2 +- .../system_application.go} | 4 +- .../resources/system_application_test.go | 58 ++++ .../resources/trusted_email_address.go | 66 +++-- .../resources/trusted_email_address_test.go | 25 +- .../resources/trusted_email_domain.go | 2 +- .../resources_old/pingone_agreement.go | 86 ------ .../pingone_agreement_enable_test.go | 34 --- .../pingone_agreement_localization.go | 118 -------- ...gone_agreement_localization_enable_test.go | 34 --- ...pingone_agreement_localization_revision.go | 146 ---------- ...ne_agreement_localization_revision_test.go | 39 --- .../pingone_agreement_localization_test.go | 34 --- .../pingone_alert_channel_test.go | 29 -- .../pingone_branding_settings.go | 65 ----- .../pingone_branding_settings_test.go | 28 -- .../resources_old/pingone_branding_theme.go | 90 ------ .../pingone_branding_theme_default.go | 92 ------ .../pingone_branding_theme_default_test.go | 28 -- .../pingone_branding_theme_test.go | 39 --- .../resources_old/pingone_certificate.go | 97 ------- .../resources_old/pingone_certificate_test.go | 34 --- .../resources_old/pingone_custom_domain.go | 86 ------ .../pingone_custom_domain_test.go | 29 -- .../resources_old/pingone_environment.go | 65 ----- .../resources_old/pingone_environment_test.go | 28 -- .../platform/resources_old/pingone_form.go | 86 ------ .../resources_old/pingone_form_test.go | 29 -- .../pingone_forms_recaptcha_v2.go | 65 ----- .../pingone_forms_recaptcha_v2_test.go | 28 -- .../platform/resources_old/pingone_gateway.go | 104 ------- .../pingone_gateway_credential.go | 132 --------- .../pingone_gateway_credential_test.go | 64 ----- .../pingone_gateway_role_assignment.go | 154 ---------- .../pingone_gateway_role_assignment_test.go | 54 ---- .../resources_old/pingone_gateway_test.go | 54 ---- .../pingone_identity_propagation_plan.go | 86 ------ .../pingone_identity_propagation_plan_test.go | 29 -- .../platform/resources_old/pingone_key.go | 103 ------- .../pingone_key_rotation_policy.go | 86 ------ .../pingone_key_rotation_policy_test.go | 29 -- .../resources_old/pingone_key_test.go | 44 --- .../resources_old/pingone_language.go | 94 ------- .../resources_old/pingone_language_test.go | 29 -- .../pingone_language_update_test.go | 34 --- .../pingone_notification_policy.go | 86 ------ .../pingone_notification_policy_test.go | 34 --- .../pingone_notification_settings.go | 65 ----- .../pingone_notification_settings_email.go | 65 ----- ...ingone_notification_settings_email_test.go | 28 -- .../pingone_notification_settings_test.go | 28 -- .../pingone_notification_template_content.go | 219 --------------- ...gone_notification_template_content_test.go | 262 ------------------ .../pingone_phone_delivery_settings.go | 113 -------- .../pingone_phone_delivery_settings_test.go | 29 -- .../pingone_system_application_test.go | 34 --- .../pingone_trusted_email_address.go | 116 -------- .../pingone_trusted_email_address_test.go | 22 -- .../pingone_trusted_email_domain.go | 86 ------ .../pingone_trusted_email_domain_test.go | 44 --- .../platform/resources_old/pingone_webhook.go | 86 ------ .../resources_old/pingone_webhook_test.go | 29 -- internal/testing/testutils/utils.go | 84 +++++- .../agreement_enable.go | 26 ++ .../agreement_localization_enable.go | 26 ++ .../agreement_localization_revision.go | 1 + .../alert_channel.go | 89 ++++++ .../pingone_testable_resources/certificate.go | 3 +- .../pingone_testable_resources/form.go | 36 +-- .../forms_recaptcha_v2.go | 51 +++- .../gateway_role_assignment.go | 27 +- .../pingone_testable_resources/key.go | 1 + .../{langauge.go => language.go} | 34 ++- .../language_update.go | 26 ++ .../notification_template_content.go | 3 +- .../phone_delivery_settings.go | 25 +- .../system_application.go | 24 ++ .../testutils_resource/testutils_resource.go | 4 +- 114 files changed, 1297 insertions(+), 4267 deletions(-) rename internal/connector/pingone/platform/{resources_old/pingone_agreement_enable.go => resources/agreement_enable.go} (100%) create mode 100644 internal/connector/pingone/platform/resources/agreement_enable_test.go rename internal/connector/pingone/platform/{resources_old/pingone_agreement_localization_enable.go => resources/agreement_localization_enable.go} (100%) create mode 100644 internal/connector/pingone/platform/resources/agreement_localization_enable_test.go rename internal/connector/pingone/platform/{resources_old/pingone_alert_channel.go => resources/alert_channel.go} (100%) rename internal/connector/pingone/platform/{resources_old/pingone_agreement_test.go => resources/alert_channel_test.go} (84%) rename internal/connector/pingone/platform/resources/{langauge.go => language.go} (68%) rename internal/connector/pingone/platform/resources/{langauge_test.go => language_test.go} (75%) rename internal/connector/pingone/platform/{resources_old/pingone_language_update.go => resources/language_update.go} (81%) create mode 100644 internal/connector/pingone/platform/resources/language_update_test.go rename internal/connector/pingone/platform/{resources_old/pingone_system_application.go => resources/system_application.go} (93%) create mode 100644 internal/connector/pingone/platform/resources/system_application_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_agreement.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_agreement_enable_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_agreement_localization.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_agreement_localization_enable_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_agreement_localization_revision.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_agreement_localization_revision_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_agreement_localization_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_alert_channel_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_branding_settings.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_branding_settings_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_branding_theme.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_branding_theme_default.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_branding_theme_default_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_branding_theme_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_certificate.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_certificate_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_custom_domain.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_custom_domain_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_environment.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_environment_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_form.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_form_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_forms_recaptcha_v2.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_forms_recaptcha_v2_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_gateway.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_gateway_credential.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_gateway_credential_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_gateway_role_assignment.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_gateway_role_assignment_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_gateway_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_identity_propagation_plan.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_identity_propagation_plan_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_key.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_key_rotation_policy.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_key_rotation_policy_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_key_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_language.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_language_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_language_update_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_notification_policy.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_notification_policy_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_notification_settings.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_notification_settings_email.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_notification_settings_email_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_notification_settings_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_notification_template_content.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_notification_template_content_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_phone_delivery_settings.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_phone_delivery_settings_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_system_application_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_trusted_email_address.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_trusted_email_address_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_trusted_email_domain.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_trusted_email_domain_test.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_webhook.go delete mode 100644 internal/connector/pingone/platform/resources_old/pingone_webhook_test.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/agreement_enable.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_enable.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/alert_channel.go rename internal/testing/testutils_resource/pingone_testable_resources/{langauge.go => language.go} (68%) create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/language_update.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/system_application.go diff --git a/internal/connector/pingone/platform/pingone_platform_connector.go b/internal/connector/pingone/platform/pingone_platform_connector.go index 8c224001..0852c42b 100644 --- a/internal/connector/pingone/platform/pingone_platform_connector.go +++ b/internal/connector/pingone/platform/pingone_platform_connector.go @@ -57,7 +57,7 @@ func (c *PingOnePlatformConnector) Export(format, outputDir string, overwriteExp resources.CustomDomain(&c.clientInfo), resources.Environment(&c.clientInfo), resources.Form(&c.clientInfo), - resources.FormRecaptchaV2(&c.clientInfo), + resources.FormsRecaptchaV2(&c.clientInfo), resources.Gateway(&c.clientInfo), resources.GatewayCredential(&c.clientInfo), resources.GatewayRoleAssignment(&c.clientInfo), diff --git a/internal/connector/pingone/platform/pingone_platform_connector_test.go b/internal/connector/pingone/platform/pingone_platform_connector_test.go index 351497b5..cd476cea 100644 --- a/internal/connector/pingone/platform/pingone_platform_connector_test.go +++ b/internal/connector/pingone/platform/pingone_platform_connector_test.go @@ -5,9 +5,9 @@ package platform_test import ( "testing" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" "github.com/pingidentity/pingcli/internal/testing/testutils_terraform" ) @@ -17,180 +17,199 @@ func TestPlatformTerraformPlan(t *testing.T) { testutils_terraform.InitPingOneTerraform(t) testCases := []struct { - name string - resource connector.ExportableResource - ignoredErrors []string + name string + testableResource *testutils_resource.TestableResource + ignoredErrors []string }{ { - name: "Agreement", - resource: resources.Agreement(clientInfo), - ignoredErrors: nil, + name: "Agreement", + testableResource: pingone_testable_resources.Agreement(t, clientInfo), + ignoredErrors: nil, }, { - name: "AgreementEnable", - resource: resources.AgreementEnable(clientInfo), - ignoredErrors: nil, + name: "AgreementEnable", + testableResource: pingone_testable_resources.AgreementEnable(t, clientInfo), + ignoredErrors: nil, }, { - name: "AgreementLocalization", - resource: resources.AgreementLocalization(clientInfo), - ignoredErrors: nil, + name: "AgreementLocalization", + testableResource: pingone_testable_resources.AgreementLocalization(t, clientInfo), + ignoredErrors: []string{ + "Error: Cannot find language by locale en-US", + }, }, { - name: "AgreementLocalizationEnable", - resource: resources.AgreementLocalizationEnable(clientInfo), - ignoredErrors: nil, + name: "AgreementLocalizationEnable", + testableResource: pingone_testable_resources.AgreementLocalizationEnable(t, clientInfo), + ignoredErrors: nil, }, { - name: "AgreementLocalizationRevision", - resource: resources.AgreementLocalizationRevision(clientInfo), - ignoredErrors: nil, + name: "AgreementLocalizationRevision", + testableResource: pingone_testable_resources.AgreementLocalizationRevision(t, clientInfo), + ignoredErrors: nil, }, { - name: "BrandingSettings", - resource: resources.BrandingSettings(clientInfo), - ignoredErrors: nil, + name: "BrandingSettings", + testableResource: pingone_testable_resources.BrandingSettings(t, clientInfo), + ignoredErrors: nil, }, { - name: "BrandingTheme", - resource: resources.BrandingTheme(clientInfo), + name: "BrandingTheme", + testableResource: pingone_testable_resources.BrandingTheme(t, clientInfo), ignoredErrors: []string{ "Error: Invalid Attribute Combination", }, }, { - name: "BrandingThemeDefault", - resource: resources.BrandingThemeDefault(clientInfo), - ignoredErrors: nil, + name: "BrandingThemeDefault", + testableResource: pingone_testable_resources.BrandingThemeDefault(t, clientInfo), + ignoredErrors: nil, }, { - name: "Certificate", - resource: resources.Certificate(clientInfo), + name: "Certificate", + testableResource: pingone_testable_resources.Certificate(t, clientInfo), ignoredErrors: []string{ "Error: Invalid combination of arguments", }, }, { - name: "CustomDomain", - resource: resources.CustomDomain(clientInfo), - ignoredErrors: nil, + name: "CustomDomain", + testableResource: pingone_testable_resources.CustomDomain(t, clientInfo), + ignoredErrors: nil, }, { - name: "Environment", - resource: resources.Environment(clientInfo), - ignoredErrors: nil, + name: "Environment", + testableResource: pingone_testable_resources.Environment(t, clientInfo), + ignoredErrors: nil, }, { - name: "Form", - resource: resources.Form(clientInfo), - ignoredErrors: nil, + name: "Form", + testableResource: pingone_testable_resources.Form(t, clientInfo), + ignoredErrors: nil, }, { - name: "FormRecaptchaV2", - resource: resources.FormRecaptchaV2(clientInfo), + name: "FormsRecaptchaV2", + testableResource: pingone_testable_resources.FormsRecaptchaV2(t, clientInfo), ignoredErrors: []string{ "Error: Missing Configuration for Required Attribute", }, }, { - name: "Gateway", - resource: resources.Gateway(clientInfo), - ignoredErrors: []string{ - "Error: Invalid Attribute Combination", - "Error: Missing required argument", - }, + name: "Gateway", + testableResource: pingone_testable_resources.Gateway(t, clientInfo), + ignoredErrors: nil, }, { - name: "GatewayCredential", - resource: resources.GatewayCredential(clientInfo), - ignoredErrors: nil, + name: "GatewayCredential", + testableResource: pingone_testable_resources.GatewayCredential(t, clientInfo), + ignoredErrors: nil, }, { - name: "GatewayRoleAssignment", - resource: resources.GatewayRoleAssignment(clientInfo), - ignoredErrors: nil, + name: "GatewayRoleAssignment", + testableResource: pingone_testable_resources.GatewayRoleAssignment(t, clientInfo), + ignoredErrors: nil, }, { - name: "IdentityPropagationPlan", - resource: resources.IdentityPropagationPlan(clientInfo), - ignoredErrors: nil, + name: "IdentityPropagationPlan", + testableResource: pingone_testable_resources.IdentityPropagationPlan(t, clientInfo), + ignoredErrors: nil, }, { - name: "Key", - resource: resources.Key(clientInfo), - ignoredErrors: nil, + name: "Key", + testableResource: pingone_testable_resources.Key(t, clientInfo), + ignoredErrors: nil, }, { - name: "KeyRotationPolicy", - resource: resources.KeyRotationPolicy(clientInfo), - ignoredErrors: nil, + name: "KeyRotationPolicy", + testableResource: pingone_testable_resources.KeyRotationPolicy(t, clientInfo), + ignoredErrors: nil, }, { - name: "Language", - resource: resources.Language(clientInfo), - ignoredErrors: nil, + name: "Language", + testableResource: pingone_testable_resources.Language(t, clientInfo), + ignoredErrors: []string{ + "Error: The language code `pt` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", + "Error: The language code `fr` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", + "Error: The language code `es` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", + "Error: The language code `pl` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", + "Error: The language code `hu` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", + "Error: The language code `cs` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", + "Error: The language code `ru` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", + "Error: The language code `ko` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", + "Error: The language code `th` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", + "Error: The language code `tr` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", + "Error: The language code `fr-CA` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", + "Error: The language code `de` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", + "Error: The language code `it` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", + "Error: The language code `ja` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", + "Error: The language code `zh` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", + "Error: The language code `en` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", + "Error: The language code `nl` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", + }, }, { - name: "LanguageUpdate", - resource: resources.LanguageUpdate(clientInfo), - ignoredErrors: nil, + name: "LanguageUpdate", + testableResource: pingone_testable_resources.LanguageUpdate(t, clientInfo), + ignoredErrors: nil, }, { - name: "NotificationPolicy", - resource: resources.NotificationPolicy(clientInfo), - ignoredErrors: nil, + name: "NotificationPolicy", + testableResource: pingone_testable_resources.NotificationPolicy(t, clientInfo), + ignoredErrors: nil, }, { - name: "NotificationSettings", - resource: resources.NotificationSettings(clientInfo), - ignoredErrors: nil, + name: "NotificationSettings", + testableResource: pingone_testable_resources.NotificationSettings(t, clientInfo), + ignoredErrors: nil, }, { - name: "NotificationSettingsEmail", - resource: resources.NotificationSettingsEmail(clientInfo), + name: "NotificationSettingsEmail", + testableResource: pingone_testable_resources.NotificationSettingsEmail(t, clientInfo), ignoredErrors: []string{ "Error: Missing Configuration for Required Attribute", }, }, - // TODO remove this skip dependent upon STAGING-25369 - // { - // name: "NotificationTemplateContent", - // resource: resources.NotificationTemplateContent(clientInfo), - // ignoredErrors: nil, - // }, { - name: "PhoneDeliverySettings", - resource: resources.PhoneDeliverySettings(clientInfo), + name: "NotificationTemplateContent", + testableResource: pingone_testable_resources.NotificationTemplateContent(t, clientInfo), + ignoredErrors: nil, + }, + { + name: "PhoneDeliverySettings", + testableResource: pingone_testable_resources.PhoneDeliverySettings(t, clientInfo), ignoredErrors: []string{ "Error: Missing required argument", - "Error: Missing Configuration for Required Attribute", }, }, { - name: "SystemApplication", - resource: resources.SystemApplication(clientInfo), - ignoredErrors: nil, - }, - { - name: "TrustedEmailAddress", - resource: resources.TrustedEmailAddress(clientInfo), - ignoredErrors: nil, + name: "SystemApplication", + testableResource: pingone_testable_resources.SystemApplication(t, clientInfo), + ignoredErrors: nil, }, + // TODO: Currently unable to create a trusted email address via API due to trust email domain verification requirement + // { + // name: "TrustedEmailAddress", + // testableResource: pingone_testable_resources.TrustedEmailAddress(t, clientInfo), + // ignoredErrors: nil, + // }, { - name: "TrustedEmailDomain", - resource: resources.TrustedEmailDomain(clientInfo), - ignoredErrors: nil, + name: "TrustedEmailDomain", + testableResource: pingone_testable_resources.TrustedEmailDomain(t, clientInfo), + ignoredErrors: nil, }, { - name: "Webhook", - resource: resources.Webhook(clientInfo), - ignoredErrors: nil, + name: "Webhook", + testableResource: pingone_testable_resources.Webhook(t, clientInfo), + ignoredErrors: nil, }, } for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { - testutils_terraform.ValidateTerraformPlan(t, tc.resource, tc.ignoredErrors) + tc.testableResource.CreateResource(t) + defer tc.testableResource.DeleteResource(t) + + testutils_terraform.ValidateTerraformPlan(t, tc.testableResource.ExportableResource, tc.ignoredErrors) }) } } diff --git a/internal/connector/pingone/platform/resources_old/pingone_agreement_enable.go b/internal/connector/pingone/platform/resources/agreement_enable.go similarity index 100% rename from internal/connector/pingone/platform/resources_old/pingone_agreement_enable.go rename to internal/connector/pingone/platform/resources/agreement_enable.go diff --git a/internal/connector/pingone/platform/resources/agreement_enable_test.go b/internal/connector/pingone/platform/resources/agreement_enable_test.go new file mode 100644 index 00000000..e1d33583 --- /dev/null +++ b/internal/connector/pingone/platform/resources/agreement_enable_test.go @@ -0,0 +1,35 @@ +// Copyright © 2025 Ping Identity Corporation + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_AgreementEnable(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.AgreementEnable(t, clientInfo) + + _ = tr.CreateResource(t) + defer tr.DeleteResource(t) + + agreementTr := tr.Dependencies[0] + + // Defined the expected ImportBlocks for the resource + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_enable", agreementTr.CreationInfo.SelfInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, agreementTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/agreement_localization.go b/internal/connector/pingone/platform/resources/agreement_localization.go index 3f89201b..eb0832b4 100644 --- a/internal/connector/pingone/platform/resources/agreement_localization.go +++ b/internal/connector/pingone/platform/resources/agreement_localization.go @@ -39,40 +39,66 @@ func (r *PingOneAgreementLocalizationResource) ExportAll() (*[]connector.ImportB importBlocks := []connector.ImportBlock{} - agreementLocalizationData, err := r.getAgreementLocalizationData() + agreementData, err := r.getAgreementData() if err != nil { return nil, err } - for agreementLocalizationId, agreementLocalizationName := range agreementLocalizationData { - commentData := map[string]string{ - "Agreement Localization ID": agreementLocalizationId, - "Agreement Localization Name": agreementLocalizationName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), + for agreementId, agreementName := range agreementData { + agreementLocalizationData, err := r.getAgreementLocalizationData(agreementId) + if err != nil { + return nil, err } - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: agreementLocalizationName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, agreementLocalizationId), - CommentInformation: common.GenerateCommentInformation(commentData), - } + for agreementLocalizationId, agreementLocalizationLocale := range agreementLocalizationData { + commentData := map[string]string{ + "Agreement ID": agreementId, + "Agreement Name": agreementName, + "Agreement Localization ID": agreementLocalizationId, + "Agreement Localization Locale": agreementLocalizationLocale, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", agreementName, agreementLocalizationLocale), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, agreementId, agreementLocalizationId), + CommentInformation: common.GenerateCommentInformation(commentData), + } - importBlocks = append(importBlocks, importBlock) + importBlocks = append(importBlocks, importBlock) + } } return &importBlocks, nil } func (r *PingOneAgreementLocalizationResource) getAgreementData() (map[string]string, error) { - //TODO + agreementData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.AgreementsResourcesApi.ReadAllAgreements(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Agreement](iter, "ReadAllAgreements", "GetAgreements", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, agreement := range apiObjs { + agreementId, agreementIdOk := agreement.GetIdOk() + agreementName, agreementNameOk := agreement.GetNameOk() + + if agreementIdOk && agreementNameOk { + agreementData[*agreementId] = *agreementName + } + } + + return agreementData, nil } -func (r *PingOneAgreementLocalizationResource) getAgreementLocalizationData() (map[string]string, error) { +func (r *PingOneAgreementLocalizationResource) getAgreementLocalizationData(agreementId string) (map[string]string, error) { agreementLocalizationData := make(map[string]string) - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.AgreementLanguagesResourcesApi.ReadAllAgreementLanguages(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.AgreementLanguagesResourcesApi.ReadAllAgreementLanguages(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, agreementId).Execute() apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedLanguagesInner](iter, "ReadAllAgreementLanguages", "GetLanguages", r.ResourceType()) if err != nil { return nil, err @@ -80,11 +106,11 @@ func (r *PingOneAgreementLocalizationResource) getAgreementLocalizationData() (m for _, innerObj := range apiObjs { if innerObj.AgreementLanguage != nil { - agreementLocalizationId, agreementLocalizationIdOk := inner.AgreementLanguage.GetIdOk() - agreementLocalizationName, agreementLocalizationNameOk := inner.AgreementLanguage.GetNameOk() + agreementLocalizationId, agreementLocalizationIdOk := innerObj.AgreementLanguage.GetIdOk() + agreementLocalizationLocale, agreementLocalizationLocaleOk := innerObj.AgreementLanguage.GetLocaleOk() - if agreementLocalizationIdOk && agreementLocalizationNameOk { - agreementLocalizationData[*agreementLocalizationId] = *agreementLocalizationName + if agreementLocalizationIdOk && agreementLocalizationLocaleOk { + agreementLocalizationData[*agreementLocalizationId] = *agreementLocalizationLocale } } } diff --git a/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_enable.go b/internal/connector/pingone/platform/resources/agreement_localization_enable.go similarity index 100% rename from internal/connector/pingone/platform/resources_old/pingone_agreement_localization_enable.go rename to internal/connector/pingone/platform/resources/agreement_localization_enable.go diff --git a/internal/connector/pingone/platform/resources/agreement_localization_enable_test.go b/internal/connector/pingone/platform/resources/agreement_localization_enable_test.go new file mode 100644 index 00000000..72908b5a --- /dev/null +++ b/internal/connector/pingone/platform/resources/agreement_localization_enable_test.go @@ -0,0 +1,36 @@ +// Copyright © 2025 Ping Identity Corporation + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_AgreementLocalizationEnable(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.AgreementLocalizationEnable(t, clientInfo) + + _ = tr.CreateResource(t) + defer tr.DeleteResource(t) + + agreementLocalizationTr := tr.Dependencies[0] + agreementTr := agreementLocalizationTr.Dependencies[0] + + // Defined the expected ImportBlocks for the resource + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s_enable", agreementTr.CreationInfo.SelfInfo[testutils_resource.ENUM_NAME], agreementLocalizationTr.CreationInfo.SelfInfo[testutils_resource.ENUM_LOCALE]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, agreementTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID], agreementLocalizationTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/agreement_localization_revision.go b/internal/connector/pingone/platform/resources/agreement_localization_revision.go index 31c0b3f8..dd137f2e 100644 --- a/internal/connector/pingone/platform/resources/agreement_localization_revision.go +++ b/internal/connector/pingone/platform/resources/agreement_localization_revision.go @@ -112,10 +112,10 @@ func (r *PingOneAgreementLocalizationRevisionResource) getAgreementLanguageData( return nil, err } - for _, inner := range apiObjs { - if inner.AgreementLanguage != nil { - agreementLocalizationId, agreementLocalizationIdOk := inner.AgreementLanguage.GetIdOk() - agreementLocalizationLocale, agreementLocalizationLocaleOk := inner.AgreementLanguage.GetLocaleOk() + for _, innerObj := range apiObjs { + if innerObj.AgreementLanguage != nil { + agreementLocalizationId, agreementLocalizationIdOk := innerObj.AgreementLanguage.GetIdOk() + agreementLocalizationLocale, agreementLocalizationLocaleOk := innerObj.AgreementLanguage.GetLocaleOk() if agreementLocalizationIdOk && agreementLocalizationLocaleOk { agreementLocalizationData[*agreementLocalizationId] = *agreementLocalizationLocale diff --git a/internal/connector/pingone/platform/resources/agreement_localization_revision_test.go b/internal/connector/pingone/platform/resources/agreement_localization_revision_test.go index b6a60470..e07ba61d 100644 --- a/internal/connector/pingone/platform/resources/agreement_localization_revision_test.go +++ b/internal/connector/pingone/platform/resources/agreement_localization_revision_test.go @@ -21,11 +21,14 @@ func Test_AgreementLocalizationRevision(t *testing.T) { creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) + agreementLocalizationTr := tr.Dependencies[0] + agreementTr := agreementLocalizationTr.Dependencies[0] + expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: fmt.Sprintf("%s_%s_%s", agreementTr.CreationInfo.SelfInfo[testutils_resource.ENUM_NAME], agreementLocalizationTr.CreationInfo.SelfInfo[testutils_resource.ENUM_LOCALE], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceID: fmt.Sprintf("%s/%s/%s/%s", clientInfo.PingOneExportEnvironmentID, agreementTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID], agreementLocalizationTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/agreement_localization_test.go b/internal/connector/pingone/platform/resources/agreement_localization_test.go index 38c50618..3d8d5594 100644 --- a/internal/connector/pingone/platform/resources/agreement_localization_test.go +++ b/internal/connector/pingone/platform/resources/agreement_localization_test.go @@ -17,6 +17,7 @@ func Test_AgreementLocalization(t *testing.T) { clientInfo := testutils.GetClientInfo(t) tr := pingone_testable_resources.AgreementLocalization(t, clientInfo) + agreementTr := tr.Dependencies[0] creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -24,8 +25,8 @@ func Test_AgreementLocalization(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: fmt.Sprintf("%s_%s", agreementTr.CreationInfo.SelfInfo[testutils_resource.ENUM_NAME], creationInfo.SelfInfo[testutils_resource.ENUM_LOCALE]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, agreementTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources_old/pingone_alert_channel.go b/internal/connector/pingone/platform/resources/alert_channel.go similarity index 100% rename from internal/connector/pingone/platform/resources_old/pingone_alert_channel.go rename to internal/connector/pingone/platform/resources/alert_channel.go diff --git a/internal/connector/pingone/platform/resources_old/pingone_agreement_test.go b/internal/connector/pingone/platform/resources/alert_channel_test.go similarity index 84% rename from internal/connector/pingone/platform/resources_old/pingone_agreement_test.go rename to internal/connector/pingone/platform/resources/alert_channel_test.go index 9218d49a..f318fe78 100644 --- a/internal/connector/pingone/platform/resources_old/pingone_agreement_test.go +++ b/internal/connector/pingone/platform/resources/alert_channel_test.go @@ -1,5 +1,4 @@ // Copyright © 2025 Ping Identity Corporation -// Code generated by ping-cli-generator package resources_test @@ -13,14 +12,15 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" ) -func Test_Agreement(t *testing.T) { +func TestAlertChannelExport(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.Agreement(t, clientInfo) + tr := pingone_testable_resources.AlertChannel(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) + // Defined the expected ImportBlocks for the resource expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), diff --git a/internal/connector/pingone/platform/resources/branding_theme.go b/internal/connector/pingone/platform/resources/branding_theme.go index 13bec099..d6befc00 100644 --- a/internal/connector/pingone/platform/resources/branding_theme.go +++ b/internal/connector/pingone/platform/resources/branding_theme.go @@ -76,10 +76,14 @@ func (r *PingOneBrandingThemeResource) getBrandingThemeData() (map[string]string for _, brandingTheme := range apiObjs { brandingThemeId, brandingThemeIdOk := brandingTheme.GetIdOk() - brandingThemeName, brandingThemeNameOk := brandingTheme.GetNameOk() + brandingThemeConfiguration, brandingThemeConfigurationOk := brandingTheme.GetConfigurationOk() - if brandingThemeIdOk && brandingThemeNameOk { - brandingThemeData[*brandingThemeId] = *brandingThemeName + if brandingThemeIdOk && brandingThemeConfigurationOk { + brandingThemeName, brandingThemeNameOk := brandingThemeConfiguration.GetNameOk() + + if brandingThemeNameOk { + brandingThemeData[*brandingThemeId] = *brandingThemeName + } } } diff --git a/internal/connector/pingone/platform/resources/branding_theme_default.go b/internal/connector/pingone/platform/resources/branding_theme_default.go index b9e7825f..bf1a0980 100644 --- a/internal/connector/pingone/platform/resources/branding_theme_default.go +++ b/internal/connector/pingone/platform/resources/branding_theme_default.go @@ -4,8 +4,10 @@ package resources import ( + "github.com/patrickcping/pingone-go-sdk-v2/management" "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" "github.com/pingidentity/pingcli/internal/logger" ) @@ -61,6 +63,18 @@ func (r *PingOneBrandingThemeDefaultResource) ExportAll() (*[]connector.ImportBl } func (r *PingOneBrandingThemeDefaultResource) checkBrandingThemeDefaultData() (bool, error) { - _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.BrandingThemesApi.ReadBrandingThemeDefault(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - return common.CheckSingletonResource(response, err, "ReadBrandingThemeDefault", r.ResourceType()) + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.BrandingThemesApi.ReadBrandingThemes(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + brandingThemes, err := pingone.GetManagementAPIObjectsFromIterator[management.BrandingTheme](iter, "ReadBrandingThemes", "GetThemes", r.ResourceType()) + if err != nil { + return false, err + } + + for _, brandingTheme := range brandingThemes { + if brandingTheme.Default { + _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.BrandingThemesApi.ReadBrandingThemeDefault(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, *brandingTheme.Id).Execute() + return common.CheckSingletonResource(response, err, "ReadBrandingThemeDefault", r.ResourceType()) + } + } + + return false, nil } diff --git a/internal/connector/pingone/platform/resources/branding_theme_test.go b/internal/connector/pingone/platform/resources/branding_theme_test.go index 335f503a..e8d8945b 100644 --- a/internal/connector/pingone/platform/resources/branding_theme_test.go +++ b/internal/connector/pingone/platform/resources/branding_theme_test.go @@ -29,5 +29,6 @@ func Test_BrandingTheme(t *testing.T) { }, } - testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) + // There are pre-configured branding themes in the environment, so only validate the import blocks as a subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingone/platform/resources/certificate.go b/internal/connector/pingone/platform/resources/certificate.go index b651b625..44ec8909 100644 --- a/internal/connector/pingone/platform/resources/certificate.go +++ b/internal/connector/pingone/platform/resources/certificate.go @@ -6,10 +6,8 @@ package resources import ( "fmt" - "github.com/patrickcping/pingone-go-sdk-v2/management" "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" "github.com/pingidentity/pingcli/internal/logger" ) @@ -68,13 +66,26 @@ func (r *PingOneCertificateResource) ExportAll() (*[]connector.ImportBlock, erro func (r *PingOneCertificateResource) getCertificateData() (map[string]string, error) { certificateData := make(map[string]string) - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.GetCertificates(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.PKIFileUpload](iter, "GetCertificates", "GetKeys", r.ResourceType()) + // TODO: Implement pagination once supported in the PingOne Go Client SDK + entityArray, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.GetCertificates(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + ok, err := common.HandleClientResponse(response, err, "GetCertificates", r.ResourceType()) if err != nil { return nil, err } + if !ok { + return nil, nil + } + + if entityArray == nil { + return nil, common.DataNilError(r.ResourceType(), response) + } + + embedded, embeddedOk := entityArray.GetEmbeddedOk() + if !embeddedOk { + return nil, common.DataNilError(r.ResourceType(), response) + } - for _, certificate := range apiObjs { + for _, certificate := range embedded.GetCertificates() { certificateId, certificateIdOk := certificate.GetIdOk() certificateName, certificateNameOk := certificate.GetNameOk() diff --git a/internal/connector/pingone/platform/resources/custom_domain.go b/internal/connector/pingone/platform/resources/custom_domain.go index de8d23da..f8ee7b64 100644 --- a/internal/connector/pingone/platform/resources/custom_domain.go +++ b/internal/connector/pingone/platform/resources/custom_domain.go @@ -76,7 +76,7 @@ func (r *PingOneCustomDomainResource) getCustomDomainData() (map[string]string, for _, customDomain := range apiObjs { customDomainId, customDomainIdOk := customDomain.GetIdOk() - customDomainName, customDomainNameOk := customDomain.GetNameOk() + customDomainName, customDomainNameOk := customDomain.GetDomainNameOk() if customDomainIdOk && customDomainNameOk { customDomainData[*customDomainId] = *customDomainName diff --git a/internal/connector/pingone/platform/resources/environment.go b/internal/connector/pingone/platform/resources/environment.go index 72fb72f3..bb941d8f 100644 --- a/internal/connector/pingone/platform/resources/environment.go +++ b/internal/connector/pingone/platform/resources/environment.go @@ -4,12 +4,8 @@ package resources import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" "github.com/pingidentity/pingcli/internal/logger" ) @@ -39,49 +35,32 @@ func (r *PingOneEnvironmentResource) ExportAll() (*[]connector.ImportBlock, erro importBlocks := []connector.ImportBlock{} - environmentData, err := r.getEnvironmentData() + ok, err := r.checkEnvironmentData() if err != nil { return nil, err } - - for environmentId, environmentName := range environmentData { - commentData := map[string]string{ - "Environment ID": environmentId, - "Environment Name": environmentName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: environmentName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, environmentId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) + if !ok { + return &importBlocks, nil } - return &importBlocks, nil -} - -func (r *PingOneEnvironmentResource) getEnvironmentData() (map[string]string, error) { - environmentData := make(map[string]string) + commentData := map[string]string{ + "Resource Type": r.ResourceType(), + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + } - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.EnvironmentsApi.ReadAllEnvironments(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Environment](iter, "ReadAllEnvironments", "GetEnvironments", r.ResourceType()) - if err != nil { - return nil, err + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: r.ResourceType(), + ResourceID: r.clientInfo.PingOneExportEnvironmentID, + CommentInformation: common.GenerateCommentInformation(commentData), } - for _, environment := range apiObjs { - environmentId, environmentIdOk := environment.GetIdOk() - environmentName, environmentNameOk := environment.GetNameOk() + importBlocks = append(importBlocks, importBlock) - if environmentIdOk && environmentNameOk { - environmentData[*environmentId] = *environmentName - } - } + return &importBlocks, nil +} - return environmentData, nil +func (r *PingOneEnvironmentResource) checkEnvironmentData() (bool, error) { + _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.EnvironmentsApi.ReadOneEnvironment(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + return common.CheckSingletonResource(response, err, "ReadOneEnvironment", r.ResourceType()) } diff --git a/internal/connector/pingone/platform/resources/environment_test.go b/internal/connector/pingone/platform/resources/environment_test.go index c5bef403..f29622a1 100644 --- a/internal/connector/pingone/platform/resources/environment_test.go +++ b/internal/connector/pingone/platform/resources/environment_test.go @@ -4,12 +4,10 @@ package resources_test import ( - "fmt" "testing" "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource" "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" ) @@ -18,14 +16,11 @@ func Test_Environment(t *testing.T) { tr := pingone_testable_resources.Environment(t, clientInfo) - creationInfo := tr.CreateResource(t) - defer tr.DeleteResource(t) - expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: tr.ExportableResource.ResourceType(), + ResourceID: clientInfo.PingOneExportEnvironmentID, }, } diff --git a/internal/connector/pingone/platform/resources/forms_recaptcha_v2_test.go b/internal/connector/pingone/platform/resources/forms_recaptcha_v2_test.go index f53069b7..719eb2eb 100644 --- a/internal/connector/pingone/platform/resources/forms_recaptcha_v2_test.go +++ b/internal/connector/pingone/platform/resources/forms_recaptcha_v2_test.go @@ -16,6 +16,9 @@ func Test_FormsRecaptchaV2(t *testing.T) { tr := pingone_testable_resources.FormsRecaptchaV2(t, clientInfo) + _ = tr.CreateResource(t) + defer tr.DeleteResource(t) + expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), diff --git a/internal/connector/pingone/platform/resources/gateway.go b/internal/connector/pingone/platform/resources/gateway.go index a88158cf..12e6a97e 100644 --- a/internal/connector/pingone/platform/resources/gateway.go +++ b/internal/connector/pingone/platform/resources/gateway.go @@ -69,14 +69,32 @@ func (r *PingOneGatewayResource) getGatewayData() (map[string]string, error) { gatewayData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GatewaysApi.ReadAllGateways(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.CreateGatewayRequest](iter, "ReadAllGateways", "GetGateways", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedGatewaysInner](iter, "ReadAllGateways", "GetGateways", r.ResourceType()) if err != nil { return nil, err } - for _, gateway := range apiObjs { - gatewayId, gatewayIdOk := gateway.GetIdOk() - gatewayName, gatewayNameOk := gateway.GetNameOk() + for _, innerObj := range apiObjs { + var ( + gatewayId *string + gatewayIdOk bool + gatewayName *string + gatewayNameOk bool + ) + + switch { + case innerObj.Gateway != nil: + gatewayId, gatewayIdOk = innerObj.Gateway.GetIdOk() + gatewayName, gatewayNameOk = innerObj.Gateway.GetNameOk() + case innerObj.GatewayTypeLDAP != nil: + gatewayId, gatewayIdOk = innerObj.GatewayTypeLDAP.GetIdOk() + gatewayName, gatewayNameOk = innerObj.GatewayTypeLDAP.GetNameOk() + case innerObj.GatewayTypeRADIUS != nil: + gatewayId, gatewayIdOk = innerObj.GatewayTypeRADIUS.GetIdOk() + gatewayName, gatewayNameOk = innerObj.GatewayTypeRADIUS.GetNameOk() + default: + continue + } if gatewayIdOk && gatewayNameOk { gatewayData[*gatewayId] = *gatewayName diff --git a/internal/connector/pingone/platform/resources/gateway_credential.go b/internal/connector/pingone/platform/resources/gateway_credential.go index b6c30b50..305d4ef2 100644 --- a/internal/connector/pingone/platform/resources/gateway_credential.go +++ b/internal/connector/pingone/platform/resources/gateway_credential.go @@ -39,40 +39,83 @@ func (r *PingOneGatewayCredentialResource) ExportAll() (*[]connector.ImportBlock importBlocks := []connector.ImportBlock{} - gatewayCredentialData, err := r.getGatewayCredentialData() + gatewayData, err := r.getGatewayData() if err != nil { return nil, err } - for gatewayCredentialId, gatewayCredentialName := range gatewayCredentialData { - commentData := map[string]string{ - "Gateway Credential ID": gatewayCredentialId, - "Gateway Credential Name": gatewayCredentialName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), + for gatewayId, gatewayName := range gatewayData { + gatewayCredentialData, err := r.getGatewayCredentialData(gatewayId) + if err != nil { + return nil, err } - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: gatewayCredentialName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, gatewayCredentialId), - CommentInformation: common.GenerateCommentInformation(commentData), + for _, gatewayCredentialId := range gatewayCredentialData { + commentData := map[string]string{ + "Gateway ID": gatewayId, + "Gateway Name": gatewayName, + "Gateway Credential ID": gatewayCredentialId, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: fmt.Sprintf("%s_credential_%s", gatewayName, gatewayCredentialId), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, gatewayId, gatewayCredentialId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) } - - importBlocks = append(importBlocks, importBlock) } return &importBlocks, nil } func (r *PingOneGatewayCredentialResource) getGatewayData() (map[string]string, error) { - //TODO + gatewayData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GatewaysApi.ReadAllGateways(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedGatewaysInner](iter, "ReadAllGateways", "GetGateways", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, innerObj := range apiObjs { + var ( + gatewayId *string + gatewayIdOk bool + gatewayName *string + gatewayNameOk bool + ) + + switch { + case innerObj.Gateway != nil: + gatewayId, gatewayIdOk = innerObj.Gateway.GetIdOk() + gatewayName, gatewayNameOk = innerObj.Gateway.GetNameOk() + case innerObj.GatewayTypeLDAP != nil: + gatewayId, gatewayIdOk = innerObj.GatewayTypeLDAP.GetIdOk() + gatewayName, gatewayNameOk = innerObj.GatewayTypeLDAP.GetNameOk() + case innerObj.GatewayTypeRADIUS != nil: + gatewayId, gatewayIdOk = innerObj.GatewayTypeRADIUS.GetIdOk() + gatewayName, gatewayNameOk = innerObj.GatewayTypeRADIUS.GetNameOk() + default: + continue + } + + if gatewayIdOk && gatewayNameOk { + gatewayData[*gatewayId] = *gatewayName + } + } + + return gatewayData, nil } -func (r *PingOneGatewayCredentialResource) getGatewayCredentialData() (map[string]string, error) { - gatewayCredentialData := make(map[string]string) +func (r *PingOneGatewayCredentialResource) getGatewayCredentialData(gatewayId string) ([]string, error) { + gatewayCredentialData := []string{} - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GatewayCredentialsApi.ReadAllGatewayCredentials(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GatewayCredentialsApi.ReadAllGatewayCredentials(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, gatewayId).Execute() apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.GatewayCredential](iter, "ReadAllGatewayCredentials", "GetCredentials", r.ResourceType()) if err != nil { return nil, err @@ -80,10 +123,9 @@ func (r *PingOneGatewayCredentialResource) getGatewayCredentialData() (map[strin for _, gatewayCredential := range apiObjs { gatewayCredentialId, gatewayCredentialIdOk := gatewayCredential.GetIdOk() - gatewayCredentialName, gatewayCredentialNameOk := gatewayCredential.GetNameOk() - if gatewayCredentialIdOk && gatewayCredentialNameOk { - gatewayCredentialData[*gatewayCredentialId] = *gatewayCredentialName + if gatewayCredentialIdOk { + gatewayCredentialData = append(gatewayCredentialData, *gatewayCredentialId) } } diff --git a/internal/connector/pingone/platform/resources/gateway_credential_test.go b/internal/connector/pingone/platform/resources/gateway_credential_test.go index 9d101706..bff5359a 100644 --- a/internal/connector/pingone/platform/resources/gateway_credential_test.go +++ b/internal/connector/pingone/platform/resources/gateway_credential_test.go @@ -17,6 +17,7 @@ func Test_GatewayCredential(t *testing.T) { clientInfo := testutils.GetClientInfo(t) tr := pingone_testable_resources.GatewayCredential(t, clientInfo) + gatewayTr := tr.Dependencies[0] creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -24,8 +25,8 @@ func Test_GatewayCredential(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: fmt.Sprintf("%s_credential_%s", gatewayTr.CreationInfo.SelfInfo[testutils_resource.ENUM_NAME], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, gatewayTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/gateway_role_assignment.go b/internal/connector/pingone/platform/resources/gateway_role_assignment.go index 303bdb73..ef647551 100644 --- a/internal/connector/pingone/platform/resources/gateway_role_assignment.go +++ b/internal/connector/pingone/platform/resources/gateway_role_assignment.go @@ -39,40 +39,81 @@ func (r *PingOneGatewayRoleAssignmentResource) ExportAll() (*[]connector.ImportB importBlocks := []connector.ImportBlock{} - gatewayRoleAssignmentData, err := r.getGatewayRoleAssignmentData() + gatewayData, err := r.getGatewayData() if err != nil { return nil, err } - for gatewayRoleAssignmentId, gatewayRoleAssignmentName := range gatewayRoleAssignmentData { - commentData := map[string]string{ - "Gateway Role Assignment ID": gatewayRoleAssignmentId, - "Gateway Role Assignment Name": gatewayRoleAssignmentName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), + for gatewayId, gatewayName := range gatewayData { + gatewayRoleAssignmentData, err := r.getGatewayRoleAssignmentData(gatewayId) + if err != nil { + return nil, err } - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: gatewayRoleAssignmentName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, gatewayRoleAssignmentId), - CommentInformation: common.GenerateCommentInformation(commentData), + for gatewayRoleAssignmentId, gatewayRoleId := range gatewayRoleAssignmentData { + gatewayRoleName, err := r.getRoleAssignmentRoleName(gatewayRoleId) + if err != nil { + return nil, err + } + if gatewayRoleName == nil { + continue + } + + commentData := map[string]string{ + "Gateway ID": gatewayId, + "Gateway Name": gatewayName, + "Gateway Role Assignment ID": gatewayRoleAssignmentId, + "Gateway Role Assignment Role Name": string(*gatewayRoleName), + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s_%s", gatewayName, string(*gatewayRoleName), gatewayRoleAssignmentId), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, gatewayId, gatewayRoleAssignmentId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) } - - importBlocks = append(importBlocks, importBlock) } return &importBlocks, nil } func (r *PingOneGatewayRoleAssignmentResource) getGatewayData() (map[string]string, error) { - //TODO + gatewayData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GatewaysApi.ReadAllGateways(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedGatewaysInner](iter, "ReadAllGateways", "GetGateways", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, innerObj := range apiObjs { + // Only PingFederate Connections have role assignments + if innerObj.Gateway != nil { + gatewayType, gatewayTypeOk := innerObj.Gateway.GetTypeOk() + + if gatewayTypeOk && *gatewayType == management.ENUMGATEWAYTYPE_PING_FEDERATE { + gatewayId, gatewayIdOk := innerObj.Gateway.GetIdOk() + gatewayName, gatewayNameOk := innerObj.Gateway.GetNameOk() + + if gatewayIdOk && gatewayNameOk { + gatewayData[*gatewayId] = *gatewayName + } + } + } + } + + return gatewayData, nil } -func (r *PingOneGatewayRoleAssignmentResource) getGatewayRoleAssignmentData() (map[string]string, error) { +func (r *PingOneGatewayRoleAssignmentResource) getGatewayRoleAssignmentData(gatewayId string) (map[string]string, error) { gatewayRoleAssignmentData := make(map[string]string) - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GatewayRoleAssignmentsApi.ReadGatewayRoleAssignments(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GatewayRoleAssignmentsApi.ReadGatewayRoleAssignments(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, gatewayId).Execute() apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.RoleAssignment](iter, "ReadGatewayRoleAssignments", "GetRoleAssignments", r.ResourceType()) if err != nil { return nil, err @@ -80,12 +121,36 @@ func (r *PingOneGatewayRoleAssignmentResource) getGatewayRoleAssignmentData() (m for _, gatewayRoleAssignment := range apiObjs { gatewayRoleAssignmentId, gatewayRoleAssignmentIdOk := gatewayRoleAssignment.GetIdOk() - gatewayRoleAssignmentName, gatewayRoleAssignmentNameOk := gatewayRoleAssignment.GetNameOk() + gatewayRoleAssignmentRole, gatewayRoleAssignmentRoleOk := gatewayRoleAssignment.GetRoleOk() - if gatewayRoleAssignmentIdOk && gatewayRoleAssignmentNameOk { - gatewayRoleAssignmentData[*gatewayRoleAssignmentId] = *gatewayRoleAssignmentName + if gatewayRoleAssignmentIdOk && gatewayRoleAssignmentRoleOk { + gatewayRoleAssignmentRoleId, gatewayRoleAssignmentRoleIdOk := gatewayRoleAssignmentRole.GetIdOk() + + if gatewayRoleAssignmentRoleIdOk { + gatewayRoleAssignmentData[*gatewayRoleAssignmentId] = *gatewayRoleAssignmentRoleId + } } } return gatewayRoleAssignmentData, nil } + +func (r *PingOneGatewayRoleAssignmentResource) getRoleAssignmentRoleName(roleId string) (*management.EnumRoleName, error) { + role, resp, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.RolesApi.ReadOneRole(r.clientInfo.PingOneContext, roleId).Execute() + ok, err := common.CheckSingletonResource(resp, err, "ReadOneRole", r.ResourceType()) + if err != nil { + return nil, err + } + if !ok { + return nil, nil + } + + if role != nil { + roleName, roleNameOk := role.GetNameOk() + if roleNameOk { + return roleName, nil + } + } + + return nil, fmt.Errorf("failed to export resource '%s'. No role name found for Role ID '%s'", r.ResourceType(), roleId) +} diff --git a/internal/connector/pingone/platform/resources/gateway_role_assignment_test.go b/internal/connector/pingone/platform/resources/gateway_role_assignment_test.go index 8b2de9b1..d3c83004 100644 --- a/internal/connector/pingone/platform/resources/gateway_role_assignment_test.go +++ b/internal/connector/pingone/platform/resources/gateway_role_assignment_test.go @@ -21,13 +21,15 @@ func Test_GatewayRoleAssignment(t *testing.T) { creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) + gatewayTr := tr.Dependencies[0] + expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: fmt.Sprintf("%s_%s_%s", gatewayTr.CreationInfo.SelfInfo[testutils_resource.ENUM_NAME], creationInfo.SelfInfo[testutils_resource.ENUM_NAME], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, gatewayTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), }, } - testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingone/platform/resources/key.go b/internal/connector/pingone/platform/resources/key.go index 95ad9a0f..fc75f888 100644 --- a/internal/connector/pingone/platform/resources/key.go +++ b/internal/connector/pingone/platform/resources/key.go @@ -6,10 +6,8 @@ package resources import ( "fmt" - "github.com/patrickcping/pingone-go-sdk-v2/management" "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" "github.com/pingidentity/pingcli/internal/logger" ) @@ -44,17 +42,21 @@ func (r *PingOneKeyResource) ExportAll() (*[]connector.ImportBlock, error) { return nil, err } - for keyId, keyName := range keyData { + for keyId, keyInfo := range keyData { + keyName := keyInfo[0] + keyType := keyInfo[1] + commentData := map[string]string{ "Key ID": keyId, "Key Name": keyName, + "Key Type": keyType, "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Resource Type": r.ResourceType(), } importBlock := connector.ImportBlock{ ResourceType: r.ResourceType(), - ResourceName: keyName, + ResourceName: fmt.Sprintf("%s_%s", keyName, keyType), ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, keyId), CommentInformation: common.GenerateCommentInformation(commentData), } @@ -65,21 +67,36 @@ func (r *PingOneKeyResource) ExportAll() (*[]connector.ImportBlock, error) { return &importBlocks, nil } -func (r *PingOneKeyResource) getKeyData() (map[string]string, error) { - keyData := make(map[string]string) +func (r *PingOneKeyResource) getKeyData() (map[string][]string, error) { + keyData := make(map[string][]string) + + // TODO: Implement pagination once supported in the PingOne Go Client SDK + entityArray, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.GetKeys(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.GetKeys(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Certificate](iter, "GetKeys", "GetKeys", r.ResourceType()) + ok, err := common.HandleClientResponse(response, err, "GetKeys", r.ResourceType()) if err != nil { return nil, err } + if !ok { + return nil, nil + } + + if entityArray == nil { + return nil, common.DataNilError(r.ResourceType(), response) + } + + embedded, embeddedOk := entityArray.GetEmbeddedOk() + if !embeddedOk { + return nil, common.DataNilError(r.ResourceType(), response) + } - for _, key := range apiObjs { + for _, key := range embedded.GetKeys() { keyId, keyIdOk := key.GetIdOk() keyName, keyNameOk := key.GetNameOk() + keyUsageType, keyUsageTypeOk := key.GetUsageTypeOk() - if keyIdOk && keyNameOk { - keyData[*keyId] = *keyName + if keyIdOk && keyNameOk && keyUsageTypeOk { + keyData[*keyId] = []string{*keyName, string(*keyUsageType)} } } diff --git a/internal/connector/pingone/platform/resources/key_rotation_policy_test.go b/internal/connector/pingone/platform/resources/key_rotation_policy_test.go index 95ac9eca..3fb43808 100644 --- a/internal/connector/pingone/platform/resources/key_rotation_policy_test.go +++ b/internal/connector/pingone/platform/resources/key_rotation_policy_test.go @@ -29,5 +29,6 @@ func Test_KeyRotationPolicy(t *testing.T) { }, } - testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) + // There are pre-configured key rotation policies in the environment, so only validate the import blocks as a subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingone/platform/resources/key_test.go b/internal/connector/pingone/platform/resources/key_test.go index 01d57352..8181078d 100644 --- a/internal/connector/pingone/platform/resources/key_test.go +++ b/internal/connector/pingone/platform/resources/key_test.go @@ -24,10 +24,11 @@ func Test_Key(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceName: fmt.Sprintf("%s_%s", creationInfo.SelfInfo[testutils_resource.ENUM_NAME], creationInfo.SelfInfo[testutils_resource.ENUM_TYPE]), ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), }, } - testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) + // There are pre-configured keys in the environment, so only validate the import blocks as a subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingone/platform/resources/langauge.go b/internal/connector/pingone/platform/resources/language.go similarity index 68% rename from internal/connector/pingone/platform/resources/langauge.go rename to internal/connector/pingone/platform/resources/language.go index ed8bb80c..217adcb2 100644 --- a/internal/connector/pingone/platform/resources/langauge.go +++ b/internal/connector/pingone/platform/resources/language.go @@ -15,39 +15,39 @@ import ( // Verify that the resource satisfies the exportable resource interface var ( - _ connector.ExportableResource = &PingOneLangaugeResource{} + _ connector.ExportableResource = &PingOneLanguageResource{} ) -type PingOneLangaugeResource struct { +type PingOneLanguageResource struct { clientInfo *connector.ClientInfo } -// Utility method for creating a PingOneLangaugeResource -func Langauge(clientInfo *connector.ClientInfo) *PingOneLangaugeResource { - return &PingOneLangaugeResource{ +// Utility method for creating a PingOneLanguageResource +func Language(clientInfo *connector.ClientInfo) *PingOneLanguageResource { + return &PingOneLanguageResource{ clientInfo: clientInfo, } } -func (r *PingOneLangaugeResource) ResourceType() string { - return "pingone_langauge" +func (r *PingOneLanguageResource) ResourceType() string { + return "pingone_language" } -func (r *PingOneLangaugeResource) ExportAll() (*[]connector.ImportBlock, error) { +func (r *PingOneLanguageResource) ExportAll() (*[]connector.ImportBlock, error) { l := logger.Get() l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) importBlocks := []connector.ImportBlock{} - langaugeData, err := r.getLangaugeData() + languageData, err := r.getLanguageData() if err != nil { return nil, err } - for langaugeId, langaugeName := range langaugeData { + for langaugeId, langaugeName := range languageData { commentData := map[string]string{ - "Langauge ID": langaugeId, - "Langauge Name": langaugeName, + "Language ID": langaugeId, + "Language Name": langaugeName, "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Resource Type": r.ResourceType(), } @@ -65,7 +65,7 @@ func (r *PingOneLangaugeResource) ExportAll() (*[]connector.ImportBlock, error) return &importBlocks, nil } -func (r *PingOneLangaugeResource) getLangaugeData() (map[string]string, error) { +func (r *PingOneLanguageResource) getLanguageData() (map[string]string, error) { langaugeData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.LanguagesApi.ReadLanguages(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() @@ -76,11 +76,11 @@ func (r *PingOneLangaugeResource) getLangaugeData() (map[string]string, error) { for _, innerObj := range apiObjs { if innerObj.Language != nil { - langaugeId, langaugeIdOk := inner.Language.GetIdOk() - langaugeName, langaugeNameOk := inner.Language.GetNameOk() + languageId, languageIdOk := innerObj.Language.GetIdOk() + languageName, languageNameOk := innerObj.Language.GetNameOk() - if langaugeIdOk && langaugeNameOk { - langaugeData[*langaugeId] = *langaugeName + if languageIdOk && languageNameOk { + langaugeData[*languageId] = *languageName } } } diff --git a/internal/connector/pingone/platform/resources/langauge_test.go b/internal/connector/pingone/platform/resources/language_test.go similarity index 75% rename from internal/connector/pingone/platform/resources/langauge_test.go rename to internal/connector/pingone/platform/resources/language_test.go index 73d4800f..850e036e 100644 --- a/internal/connector/pingone/platform/resources/langauge_test.go +++ b/internal/connector/pingone/platform/resources/language_test.go @@ -13,10 +13,10 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" ) -func Test_Langauge(t *testing.T) { +func Test_Language(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.Langauge(t, clientInfo) + tr := pingone_testable_resources.Language(t, clientInfo) creationInfo := tr.CreateResource(t) defer tr.DeleteResource(t) @@ -29,5 +29,6 @@ func Test_Langauge(t *testing.T) { }, } - testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) + // There are pre-configured languages in the environment, so only validate the import blocks as a subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingone/platform/resources_old/pingone_language_update.go b/internal/connector/pingone/platform/resources/language_update.go similarity index 81% rename from internal/connector/pingone/platform/resources_old/pingone_language_update.go rename to internal/connector/pingone/platform/resources/language_update.go index fedf73c9..3395c008 100644 --- a/internal/connector/pingone/platform/resources_old/pingone_language_update.go +++ b/internal/connector/pingone/platform/resources/language_update.go @@ -68,16 +68,16 @@ func (r *PingOneLanguageUpdateResource) getLanguageUpdateData() (map[string]stri languageUpdateData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.LanguagesApi.ReadLanguages(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - languageInners, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedLanguagesInner](iter, "ReadLanguages", "GetLanguages", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedLanguagesInner](iter, "ReadLanguages", "GetLanguages", r.ResourceType()) if err != nil { return nil, err } - for _, languageInner := range languageInners { - if languageInner.Language != nil { - languageEnabled, languageEnabledOk := languageInner.Language.GetEnabledOk() - languageLocale, languageLocaleOk := languageInner.Language.GetLocaleOk() - languageDefault, languageDefaultOk := languageInner.Language.GetDefaultOk() + for _, innerObj := range apiObjs { + if innerObj.Language != nil { + languageEnabled, languageEnabledOk := innerObj.Language.GetEnabledOk() + languageLocale, languageLocaleOk := innerObj.Language.GetLocaleOk() + languageDefault, languageDefaultOk := innerObj.Language.GetDefaultOk() if languageEnabledOk && languageLocaleOk && languageDefaultOk { // Export the language if it meets any of the criteria of the following 3 conditions: @@ -86,8 +86,8 @@ func (r *PingOneLanguageUpdateResource) getLanguageUpdateData() (map[string]stri // 3) If any language other than 'en' is the default if *languageEnabled || (*languageLocale == "en" && !*languageEnabled) || (*languageLocale != "en" && *languageDefault) { - languageId, languageIdOk := languageInner.Language.GetIdOk() - languageName, languageNameOk := languageInner.Language.GetNameOk() + languageId, languageIdOk := innerObj.Language.GetIdOk() + languageName, languageNameOk := innerObj.Language.GetNameOk() if languageIdOk && languageNameOk { languageUpdateData[*languageId] = *languageName diff --git a/internal/connector/pingone/platform/resources/language_update_test.go b/internal/connector/pingone/platform/resources/language_update_test.go new file mode 100644 index 00000000..9078048b --- /dev/null +++ b/internal/connector/pingone/platform/resources/language_update_test.go @@ -0,0 +1,36 @@ +// Copyright © 2025 Ping Identity Corporation + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func TestLanguageUpdateExport(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.LanguageUpdate(t, clientInfo) + + _ = tr.CreateResource(t) + defer tr.DeleteResource(t) + + languageTr := tr.Dependencies[0] + + // Defined the expected ImportBlocks for the resource + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_update", languageTr.CreationInfo.SelfInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, languageTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID]), + }, + } + + // There are pre-configured languages in the environment, so only validate the import blocks as a subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/notification_policy_test.go b/internal/connector/pingone/platform/resources/notification_policy_test.go index 6e66a325..3af8e229 100644 --- a/internal/connector/pingone/platform/resources/notification_policy_test.go +++ b/internal/connector/pingone/platform/resources/notification_policy_test.go @@ -29,5 +29,6 @@ func Test_NotificationPolicy(t *testing.T) { }, } - testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) + // There are pre-configured notification policies in the environment, so only validate the import blocks as a subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingone/platform/resources/notification_template_content.go b/internal/connector/pingone/platform/resources/notification_template_content.go index 4fab003a..ae93cd09 100644 --- a/internal/connector/pingone/platform/resources/notification_template_content.go +++ b/internal/connector/pingone/platform/resources/notification_template_content.go @@ -5,14 +5,24 @@ package resources import ( "fmt" + "io" + "strings" "github.com/patrickcping/pingone-go-sdk-v2/management" "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/connector/common" "github.com/pingidentity/pingcli/internal/connector/pingone" "github.com/pingidentity/pingcli/internal/logger" + "github.com/pingidentity/pingcli/internal/output" ) +type NotificationTemplateContentData struct { + TemplateContentId string + TemplateContentDeliveryMethod string + TemplateContentLocale string + TemplateContentVariant string +} + // Verify that the resource satisfies the exportable resource interface var ( _ connector.ExportableResource = &PingOneNotificationTemplateContentResource{} @@ -39,51 +49,170 @@ func (r *PingOneNotificationTemplateContentResource) ExportAll() (*[]connector.I importBlocks := []connector.ImportBlock{} - notificationTemplateContentData, err := r.getNotificationTemplateContentData() + enabledLocales, err := r.getEnabledLocales() if err != nil { return nil, err } - for notificationTemplateContentId, notificationTemplateContentName := range notificationTemplateContentData { - commentData := map[string]string{ - "Notification Template Content ID": notificationTemplateContentId, - "Notification Template Content Name": notificationTemplateContentName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - } + templateNames, err := r.getTemplateNames() + if err != nil { + return nil, err + } - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: notificationTemplateContentName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, notificationTemplateContentId), - CommentInformation: common.GenerateCommentInformation(commentData), + for _, templateName := range templateNames { + templateContentData, err := r.getNotificationTemplateContentData(templateName) + if err != nil { + return nil, err } - importBlocks = append(importBlocks, importBlock) + for _, templateContentInfo := range templateContentData { + templateContentId := templateContentInfo.TemplateContentId + templateContentDeliveryMethod := templateContentInfo.TemplateContentDeliveryMethod + templateContentLocale := templateContentInfo.TemplateContentLocale + templateContentVariant := templateContentInfo.TemplateContentVariant + + // Only export template content if the locale is enabled + if enabledLocales[templateContentLocale] { + commentData := map[string]string{ + "Resource Type": r.ResourceType(), + "Template Name": string(templateName), + "Template Content Delivery Method": templateContentDeliveryMethod, + "Template Content Locale": templateContentLocale, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Template Content ID": templateContentId, + } + + if templateContentVariant != "" { + commentData["Template Content Variant"] = templateContentVariant + templateContentVariant = fmt.Sprintf("_%s", templateContentVariant) + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s_%s%s_%s", string(templateName), templateContentDeliveryMethod, templateContentLocale, templateContentVariant, templateContentId), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, string(templateName), templateContentId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + } } return &importBlocks, nil } -func (r *PingOneNotificationTemplateContentResource) getTemplateData() (map[string]string, error) { - //TODO +func (r *PingOneNotificationTemplateContentResource) getEnabledLocales() (map[string]bool, error) { + enabledLocales := make(map[string]bool) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.LanguagesApi.ReadLanguages(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedLanguagesInner](iter, "ReadLanguages", "GetLanguages", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, innerObj := range apiObjs { + if innerObj.Language != nil { + languageLocale, languageLocaleOk := innerObj.Language.GetLocaleOk() + languageEnabled, languageEnabledOk := innerObj.Language.GetEnabledOk() + + if languageLocaleOk && languageEnabledOk && *languageEnabled { + enabledLocales[*languageLocale] = true + } + } + } + + return enabledLocales, nil +} + +func (r *PingOneNotificationTemplateContentResource) getTemplateNames() ([]management.EnumTemplateName, error) { + templateNames := []management.EnumTemplateName{} + + for _, templateName := range management.AllowedEnumTemplateNameEnumValues { + _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsTemplatesApi.ReadOneTemplate(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, templateName).Execute() + // When PingOne services are not enabled in an environment, + // the response code for the templates related to that service is + // 400 Bad Request - "CONSTRAINT_VIOLATION" + if err != nil && response.StatusCode == 400 && response.Status == "400 Bad Request" { + defer response.Body.Close() + body, err := io.ReadAll(response.Body) + if err != nil { + return nil, err + } + + if strings.Contains(string(body), "CONSTRAINT_VIOLATION") { + continue + } // else fall through to handle other errors + } + + // Handle all other errors or bad responses + ok, err := common.HandleClientResponse(response, err, "ReadOneTemplate", r.ResourceType()) + if err != nil { + return nil, err + } + if !ok { + continue + } + + templateNames = append(templateNames, templateName) + } + + return templateNames, nil } -func (r *PingOneNotificationTemplateContentResource) getNotificationTemplateContentData() (map[string]string, error) { - notificationTemplateContentData := make(map[string]string) +func (r *PingOneNotificationTemplateContentResource) getNotificationTemplateContentData(templateName management.EnumTemplateName) ([]NotificationTemplateContentData, error) { + notificationTemplateContentData := []NotificationTemplateContentData{} - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsTemplatesApi.ReadAllTemplateContents(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsTemplatesApi.ReadAllTemplateContents(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, templateName).Execute() apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.TemplateContent](iter, "ReadAllTemplateContents", "GetContents", r.ResourceType()) if err != nil { return nil, err } for _, notificationTemplateContent := range apiObjs { - notificationTemplateContentId, notificationTemplateContentIdOk := notificationTemplateContent.GetIdOk() - notificationTemplateContentName, notificationTemplateContentNameOk := notificationTemplateContent.GetNameOk() + var ( + notificationTemplateContentId *string + notificationTemplateContentIdOk bool + notificationTemplateContentDeliveryMethod *management.EnumTemplateContentDeliveryMethod + notificationTemplateContentDeliveryMethodOk bool + notificationTemplateContentLocale *string + notificationTemplateContentLocaleOk bool + notificationTemplateContentVariant string + ) + + switch { + case notificationTemplateContent.TemplateContentPush != nil: + notificationTemplateContentId, notificationTemplateContentIdOk = notificationTemplateContent.TemplateContentPush.GetIdOk() + notificationTemplateContentDeliveryMethod, notificationTemplateContentDeliveryMethodOk = notificationTemplateContent.TemplateContentPush.GetDeliveryMethodOk() + notificationTemplateContentLocale, notificationTemplateContentLocaleOk = notificationTemplateContent.TemplateContentPush.GetLocaleOk() + notificationTemplateContentVariant = notificationTemplateContent.TemplateContentPush.GetVariant() + case notificationTemplateContent.TemplateContentSMS != nil: + notificationTemplateContentId, notificationTemplateContentIdOk = notificationTemplateContent.TemplateContentSMS.GetIdOk() + notificationTemplateContentDeliveryMethod, notificationTemplateContentDeliveryMethodOk = notificationTemplateContent.TemplateContentSMS.GetDeliveryMethodOk() + notificationTemplateContentLocale, notificationTemplateContentLocaleOk = notificationTemplateContent.TemplateContentSMS.GetLocaleOk() + notificationTemplateContentVariant = notificationTemplateContent.TemplateContentSMS.GetVariant() + case notificationTemplateContent.TemplateContentEmail != nil: + notificationTemplateContentId, notificationTemplateContentIdOk = notificationTemplateContent.TemplateContentEmail.GetIdOk() + notificationTemplateContentDeliveryMethod, notificationTemplateContentDeliveryMethodOk = notificationTemplateContent.TemplateContentEmail.GetDeliveryMethodOk() + notificationTemplateContentLocale, notificationTemplateContentLocaleOk = notificationTemplateContent.TemplateContentEmail.GetLocaleOk() + notificationTemplateContentVariant = notificationTemplateContent.TemplateContentEmail.GetVariant() + case notificationTemplateContent.TemplateContentVoice != nil: + notificationTemplateContentId, notificationTemplateContentIdOk = notificationTemplateContent.TemplateContentVoice.GetIdOk() + notificationTemplateContentDeliveryMethod, notificationTemplateContentDeliveryMethodOk = notificationTemplateContent.TemplateContentVoice.GetDeliveryMethodOk() + notificationTemplateContentLocale, notificationTemplateContentLocaleOk = notificationTemplateContent.TemplateContentVoice.GetLocaleOk() + notificationTemplateContentVariant = notificationTemplateContent.TemplateContentVoice.GetVariant() + default: + output.Warn(fmt.Sprintf("Template content '%v' for template '%s' is not one of: Push, SMS, Email, or Voice. Skipping export.", notificationTemplateContent, templateName), nil) + continue + } - if notificationTemplateContentIdOk && notificationTemplateContentNameOk { - notificationTemplateContentData[*notificationTemplateContentId] = *notificationTemplateContentName + if notificationTemplateContentIdOk && notificationTemplateContentDeliveryMethodOk && notificationTemplateContentLocaleOk { + notificationTemplateContentData = append(notificationTemplateContentData, NotificationTemplateContentData{ + TemplateContentId: *notificationTemplateContentId, + TemplateContentDeliveryMethod: string(*notificationTemplateContentDeliveryMethod), + TemplateContentLocale: *notificationTemplateContentLocale, + TemplateContentVariant: notificationTemplateContentVariant, + }) } } diff --git a/internal/connector/pingone/platform/resources/notification_template_content_test.go b/internal/connector/pingone/platform/resources/notification_template_content_test.go index 7cf6a8c5..0a65ee86 100644 --- a/internal/connector/pingone/platform/resources/notification_template_content_test.go +++ b/internal/connector/pingone/platform/resources/notification_template_content_test.go @@ -24,10 +24,11 @@ func Test_NotificationTemplateContent(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: fmt.Sprintf("%s_%s_%s_%s_%s", creationInfo.SelfInfo[testutils_resource.ENUM_NAME], creationInfo.SelfInfo[testutils_resource.ENUM_TEMPLATE_DELIVERY_METHOD], creationInfo.SelfInfo[testutils_resource.ENUM_LOCALE], creationInfo.SelfInfo[testutils_resource.ENUM_TEMPLATE_VARIANT], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_NAME], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), }, } - testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) + // There are pre-configured notification template contents in the environment, so only validate the import blocks as a subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingone/platform/resources/phone_delivery_settings.go b/internal/connector/pingone/platform/resources/phone_delivery_settings.go index 924ca5d7..f765bfbf 100644 --- a/internal/connector/pingone/platform/resources/phone_delivery_settings.go +++ b/internal/connector/pingone/platform/resources/phone_delivery_settings.go @@ -74,9 +74,37 @@ func (r *PingOnePhoneDeliverySettingsResource) getPhoneDeliverySettingsData() (m return nil, err } - for _, phoneDeliverySettings := range apiObjs { - phoneDeliverySettingsId, phoneDeliverySettingsIdOk := phoneDeliverySettings.GetIdOk() - phoneDeliverySettingsName, phoneDeliverySettingsNameOk := phoneDeliverySettings.GetNameOk() + for _, innerObj := range apiObjs { + var ( + phoneDeliverySettingsId *string + phoneDeliverySettingsIdOk bool + phoneDeliverySettingsName *string + phoneDeliverySettingsNameOk bool + ) + + switch { + case innerObj.NotificationsSettingsPhoneDeliverySettingsCustom != nil: + phoneDeliverySettingsId, phoneDeliverySettingsIdOk = innerObj.NotificationsSettingsPhoneDeliverySettingsCustom.GetIdOk() + phoneDeliverySettingsName, phoneDeliverySettingsNameOk = innerObj.NotificationsSettingsPhoneDeliverySettingsCustom.GetNameOk() + if phoneDeliverySettingsNameOk { + *phoneDeliverySettingsName = fmt.Sprintf("provider_custom_%s", *phoneDeliverySettingsName) + } + case innerObj.NotificationsSettingsPhoneDeliverySettingsTwilioSyniverse != nil: + phoneDeliverySettingsId, phoneDeliverySettingsIdOk = innerObj.NotificationsSettingsPhoneDeliverySettingsTwilioSyniverse.GetIdOk() + phoneDeliverySettingsProvider, phoneDeliverySettingProviderOk := innerObj.NotificationsSettingsPhoneDeliverySettingsTwilioSyniverse.GetProviderOk() + if phoneDeliverySettingsIdOk && phoneDeliverySettingProviderOk { + switch *phoneDeliverySettingsProvider { + case management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSPROVIDER_TWILIO: + *phoneDeliverySettingsName, phoneDeliverySettingsNameOk = fmt.Sprintf("provider_twilio_%s", *phoneDeliverySettingsId), true + case management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSPROVIDER_SYNIVERSE: + *phoneDeliverySettingsName, phoneDeliverySettingsNameOk = fmt.Sprintf("provider_syniverse_%s", *phoneDeliverySettingsId), true + default: + continue + } + } + default: + continue + } if phoneDeliverySettingsIdOk && phoneDeliverySettingsNameOk { phoneDeliverySettingsData[*phoneDeliverySettingsId] = *phoneDeliverySettingsName diff --git a/internal/connector/pingone/platform/resources/phone_delivery_settings_test.go b/internal/connector/pingone/platform/resources/phone_delivery_settings_test.go index d1858c17..28e81c89 100644 --- a/internal/connector/pingone/platform/resources/phone_delivery_settings_test.go +++ b/internal/connector/pingone/platform/resources/phone_delivery_settings_test.go @@ -24,7 +24,7 @@ func Test_PhoneDeliverySettings(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], + ResourceName: fmt.Sprintf("provider_custom_%s", creationInfo.SelfInfo[testutils_resource.ENUM_NAME]), ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources_old/pingone_system_application.go b/internal/connector/pingone/platform/resources/system_application.go similarity index 93% rename from internal/connector/pingone/platform/resources_old/pingone_system_application.go rename to internal/connector/pingone/platform/resources/system_application.go index 58b628af..f185f761 100644 --- a/internal/connector/pingone/platform/resources_old/pingone_system_application.go +++ b/internal/connector/pingone/platform/resources/system_application.go @@ -68,11 +68,11 @@ func (r *PingOneSystemApplicationResource) getSystemApplicationData() (map[strin applicationData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.ReadAllApplications(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - applications, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", r.ResourceType()) if err != nil { return nil, err } - for _, application := range applications { + for _, application := range apiObjs { var ( applicationId *string applicationIdOk bool diff --git a/internal/connector/pingone/platform/resources/system_application_test.go b/internal/connector/pingone/platform/resources/system_application_test.go new file mode 100644 index 00000000..79048966 --- /dev/null +++ b/internal/connector/pingone/platform/resources/system_application_test.go @@ -0,0 +1,58 @@ +// Copyright © 2025 Ping Identity Corporation + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func TestSystemApplicationExport(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.SystemApplication(t, clientInfo) + + expectedImportBlocks := []connector.ImportBlock{} + + // Every environmnt has pre-configured system applications, so we need to get them all. + iter := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.ReadAllApplications(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", tr.ExportableResource.ResourceType()) + if err != nil { + t.Fatalf("Failed to get system applications: %v", err) + } + for _, application := range apiObjs { + var ( + applicationId *string + applicationIdOk bool + applicationName *string + applicationNameOk bool + ) + + switch { + case application.ApplicationPingOnePortal != nil: + applicationId, applicationIdOk = application.ApplicationPingOnePortal.GetIdOk() + applicationName, applicationNameOk = application.ApplicationPingOnePortal.GetNameOk() + case application.ApplicationPingOneSelfService != nil: + applicationId, applicationIdOk = application.ApplicationPingOneSelfService.GetIdOk() + applicationName, applicationNameOk = application.ApplicationPingOneSelfService.GetNameOk() + default: + continue + } + + if applicationIdOk && applicationNameOk { + expectedImportBlocks = append(expectedImportBlocks, connector.ImportBlock{ + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: *applicationName, + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, *applicationId), + }) + } + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/platform/resources/trusted_email_address.go b/internal/connector/pingone/platform/resources/trusted_email_address.go index 8bdf7447..a80fb31b 100644 --- a/internal/connector/pingone/platform/resources/trusted_email_address.go +++ b/internal/connector/pingone/platform/resources/trusted_email_address.go @@ -39,40 +39,66 @@ func (r *PingOneTrustedEmailAddressResource) ExportAll() (*[]connector.ImportBlo importBlocks := []connector.ImportBlock{} - trustedEmailAddressData, err := r.getTrustedEmailAddressData() + trustedEmailDomainData, err := r.getEmailDomainData() if err != nil { return nil, err } - for trustedEmailAddressId, trustedEmailAddressName := range trustedEmailAddressData { - commentData := map[string]string{ - "Trusted Email Address ID": trustedEmailAddressId, - "Trusted Email Address Name": trustedEmailAddressName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), + for trustedEmailDomainId, trustedEmailDomainName := range trustedEmailDomainData { + trustedEmailAddressData, err := r.getTrustedEmailAddressData(trustedEmailDomainId) + if err != nil { + return nil, err } - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: trustedEmailAddressName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, trustedEmailAddressId), - CommentInformation: common.GenerateCommentInformation(commentData), + for trustedEmailAddressId, trustedEmailAddress := range trustedEmailAddressData { + commentData := map[string]string{ + "Trusted Email Domain ID": trustedEmailDomainId, + "Trusted Email Domain Name": trustedEmailDomainName, + "Trusted Email Address ID": trustedEmailAddressId, + "Trusted Email Address": trustedEmailAddress, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", trustedEmailDomainName, trustedEmailAddress), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, trustedEmailDomainId, trustedEmailAddressId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) } - - importBlocks = append(importBlocks, importBlock) } return &importBlocks, nil } func (r *PingOneTrustedEmailAddressResource) getEmailDomainData() (map[string]string, error) { - //TODO + trustedEmailDomainData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailDomainsApi.ReadAllTrustedEmailDomains(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EmailDomain](iter, "ReadAllTrustedEmailDomains", "GetEmailDomains", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, trustedEmailDomain := range apiObjs { + trustedEmailDomainId, trustedEmailDomainIdOk := trustedEmailDomain.GetIdOk() + trustedEmailDomainName, trustedEmailDomainNameOk := trustedEmailDomain.GetDomainNameOk() + + if trustedEmailDomainIdOk && trustedEmailDomainNameOk { + trustedEmailDomainData[*trustedEmailDomainId] = *trustedEmailDomainName + } + } + + return trustedEmailDomainData, nil } -func (r *PingOneTrustedEmailAddressResource) getTrustedEmailAddressData() (map[string]string, error) { +func (r *PingOneTrustedEmailAddressResource) getTrustedEmailAddressData(trustedEmailDomainId string) (map[string]string, error) { trustedEmailAddressData := make(map[string]string) - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailAddressesApi.ReadAllTrustedEmailAddresses(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailAddressesApi.ReadAllTrustedEmailAddresses(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, trustedEmailDomainId).Execute() apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EmailDomainTrustedEmail](iter, "ReadAllTrustedEmailAddresses", "GetTrustedEmails", r.ResourceType()) if err != nil { return nil, err @@ -80,10 +106,10 @@ func (r *PingOneTrustedEmailAddressResource) getTrustedEmailAddressData() (map[s for _, trustedEmailAddress := range apiObjs { trustedEmailAddressId, trustedEmailAddressIdOk := trustedEmailAddress.GetIdOk() - trustedEmailAddressName, trustedEmailAddressNameOk := trustedEmailAddress.GetNameOk() + trustedEmailAddress, trustedEmailAddressOk := trustedEmailAddress.GetEmailAddressOk() - if trustedEmailAddressIdOk && trustedEmailAddressNameOk { - trustedEmailAddressData[*trustedEmailAddressId] = *trustedEmailAddressName + if trustedEmailAddressIdOk && trustedEmailAddressOk { + trustedEmailAddressData[*trustedEmailAddressId] = *trustedEmailAddress } } diff --git a/internal/connector/pingone/platform/resources/trusted_email_address_test.go b/internal/connector/pingone/platform/resources/trusted_email_address_test.go index 898bb1a5..58edc248 100644 --- a/internal/connector/pingone/platform/resources/trusted_email_address_test.go +++ b/internal/connector/pingone/platform/resources/trusted_email_address_test.go @@ -4,12 +4,10 @@ package resources_test import ( - "fmt" "testing" "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource" "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" ) @@ -18,16 +16,21 @@ func Test_TrustedEmailAddress(t *testing.T) { tr := pingone_testable_resources.TrustedEmailAddress(t, clientInfo) - creationInfo := tr.CreateResource(t) - defer tr.DeleteResource(t) + // TODO: Currently unable to create a trusted email address via API due to trust email domain verification requirement + // trustedEmailDomainTr := tr.Dependencies[0] - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), - }, - } + // creationInfo := tr.CreateResource(t) + // defer tr.DeleteResource(t) + + // expectedImportBlocks := []connector.ImportBlock{ + // { + // ResourceType: tr.ExportableResource.ResourceType(), + // ResourceName: fmt.Sprintf("%s_%s", trustedEmailDomainTr.CreationInfo.SelfInfo[testutils_resource.ENUM_NAME], creationInfo.SelfInfo[testutils_resource.ENUM_NAME]), + // ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, trustedEmailDomainTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + // }, + // } + + expectedImportBlocks := []connector.ImportBlock{} testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) } diff --git a/internal/connector/pingone/platform/resources/trusted_email_domain.go b/internal/connector/pingone/platform/resources/trusted_email_domain.go index 69c585a5..d2657d17 100644 --- a/internal/connector/pingone/platform/resources/trusted_email_domain.go +++ b/internal/connector/pingone/platform/resources/trusted_email_domain.go @@ -76,7 +76,7 @@ func (r *PingOneTrustedEmailDomainResource) getTrustedEmailDomainData() (map[str for _, trustedEmailDomain := range apiObjs { trustedEmailDomainId, trustedEmailDomainIdOk := trustedEmailDomain.GetIdOk() - trustedEmailDomainName, trustedEmailDomainNameOk := trustedEmailDomain.GetNameOk() + trustedEmailDomainName, trustedEmailDomainNameOk := trustedEmailDomain.GetDomainNameOk() if trustedEmailDomainIdOk && trustedEmailDomainNameOk { trustedEmailDomainData[*trustedEmailDomainId] = *trustedEmailDomainName diff --git a/internal/connector/pingone/platform/resources_old/pingone_agreement.go b/internal/connector/pingone/platform/resources_old/pingone_agreement.go deleted file mode 100644 index 898ac2c2..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_agreement.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneAgreementResource{} -) - -type PingOneAgreementResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneAgreementResource -func Agreement(clientInfo *connector.ClientInfo) *PingOneAgreementResource { - return &PingOneAgreementResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneAgreementResource) ResourceType() string { - return "pingone_agreement" -} - -func (r *PingOneAgreementResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - agreementData, err := r.getAgreementData() - if err != nil { - return nil, err - } - - for agreementId, agreementName := range agreementData { - commentData := map[string]string{ - "Agreement ID": agreementId, - "Agreement Name": agreementName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: agreementName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, agreementId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingOneAgreementResource) getAgreementData() (map[string]string, error) { - agreementData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.AgreementsResourcesApi.ReadAllAgreements(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - agreements, err := pingone.GetManagementAPIObjectsFromIterator[management.Agreement](iter, "ReadAllAgreements", "GetAgreements", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, agreement := range agreements { - agreementId, agreementIdOk := agreement.GetIdOk() - agreementName, agreementNameOk := agreement.GetNameOk() - - if agreementIdOk && agreementNameOk { - agreementData[*agreementId] = *agreementName - } - } - - return agreementData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_agreement_enable_test.go b/internal/connector/pingone/platform/resources_old/pingone_agreement_enable_test.go deleted file mode 100644 index 74b00540..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_agreement_enable_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestAgreementEnableExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.AgreementEnable(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_agreement_enable", - ResourceName: "Test_enable", - ResourceID: fmt.Sprintf("%s/37ab76b8-8eff-43ae-b499-a7dce9fe0e75", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_agreement_enable", - ResourceName: "Test2_enable", - ResourceID: fmt.Sprintf("%s/38c0c463-b13d-4d22-8da5-f9fd8093d594", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_agreement_localization.go b/internal/connector/pingone/platform/resources_old/pingone_agreement_localization.go deleted file mode 100644 index e45c99cd..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_agreement_localization.go +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneAgreementLocalizationResource{} -) - -type PingOneAgreementLocalizationResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneAgreementLocalizationResource -func AgreementLocalization(clientInfo *connector.ClientInfo) *PingOneAgreementLocalizationResource { - return &PingOneAgreementLocalizationResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneAgreementLocalizationResource) ResourceType() string { - return "pingone_agreement_localization" -} - -func (r *PingOneAgreementLocalizationResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - agreementData, err := r.getAgreementData() - if err != nil { - return nil, err - } - - for agreementId, agreementName := range agreementData { - agreementLocalizationData, err := r.getAgreementLocalizationData(agreementId) - if err != nil { - return nil, err - } - - for agreementLocalizationId, agreementLocalizationLocale := range agreementLocalizationData { - commentData := map[string]string{ - "Agreement ID": agreementId, - "Agreement Name": agreementName, - "Agreement Localization ID": agreementLocalizationId, - "Agreement Localization Locale": agreementLocalizationLocale, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", agreementName, agreementLocalizationLocale), - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, agreementId, agreementLocalizationId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - } - - return &importBlocks, nil -} - -func (r *PingOneAgreementLocalizationResource) getAgreementData() (map[string]string, error) { - agreementData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.AgreementsResourcesApi.ReadAllAgreements(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - agreements, err := pingone.GetManagementAPIObjectsFromIterator[management.Agreement](iter, "ReadAllAgreements", "GetAgreements", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, agreement := range agreements { - agreementId, agreementIdOk := agreement.GetIdOk() - agreementName, agreementNameOk := agreement.GetNameOk() - - if agreementIdOk && agreementNameOk { - agreementData[*agreementId] = *agreementName - } - } - - return agreementData, nil -} - -func (r *PingOneAgreementLocalizationResource) getAgreementLocalizationData(agreementId string) (map[string]string, error) { - agreementLocalizationData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.AgreementLanguagesResourcesApi.ReadAllAgreementLanguages(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, agreementId).Execute() - languageInners, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedLanguagesInner](iter, "ReadAllAgreementLanguages", "GetLanguages", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, languageInner := range languageInners { - if languageInner.AgreementLanguage != nil { - agreementLocalizationId, agreementLocalizationIdOk := languageInner.AgreementLanguage.GetIdOk() - agreementLocalizationLocale, agreementLocalizationLocaleOk := languageInner.AgreementLanguage.GetLocaleOk() - - if agreementLocalizationIdOk && agreementLocalizationLocaleOk { - agreementLocalizationData[*agreementLocalizationId] = *agreementLocalizationLocale - } - } - } - - return agreementLocalizationData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_enable_test.go b/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_enable_test.go deleted file mode 100644 index d49843be..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_enable_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestAgreementLocalizationEnableExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.AgreementLocalizationEnable(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_agreement_localization_enable", - ResourceName: "Test_fr_enable", - ResourceID: fmt.Sprintf("%s/37ab76b8-8eff-43ae-b499-a7dce9fe0e75/03cd7e69-2836-4bad-b69f-249684c42fd9", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_agreement_localization_enable", - ResourceName: "Test_en_enable", - ResourceID: fmt.Sprintf("%s/37ab76b8-8eff-43ae-b499-a7dce9fe0e75/b5ceb6b5-025c-4896-951d-dd676c96d3c6", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_revision.go b/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_revision.go deleted file mode 100644 index cd28bec7..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_revision.go +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneAgreementLocalizationRevisionResource{} -) - -type PingOneAgreementLocalizationRevisionResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneAgreementLocalizationRevisionResource -func AgreementLocalizationRevision(clientInfo *connector.ClientInfo) *PingOneAgreementLocalizationRevisionResource { - return &PingOneAgreementLocalizationRevisionResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneAgreementLocalizationRevisionResource) ResourceType() string { - return "pingone_agreement_localization_revision" -} - -func (r *PingOneAgreementLocalizationRevisionResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - agreementData, err := r.getAgreementData() - if err != nil { - return nil, err - } - - for agreementId, agreementName := range agreementData { - agreementLocalizationData, err := r.getAgreementLanguageData(agreementId) - if err != nil { - return nil, err - } - - for agreementLocalizationId, agreementLocalizationLocale := range agreementLocalizationData { - agreementLocalizationRevisionData, err := r.getAgreementLocalizationRevisionData(agreementId, agreementLocalizationId) - if err != nil { - return nil, err - } - - for _, agreementLocalizationRevisionId := range agreementLocalizationRevisionData { - commentData := map[string]string{ - "Agreement ID": agreementId, - "Agreement Name": agreementName, - "Agreement Localization ID": agreementLocalizationId, - "Agreement Localization Locale": agreementLocalizationLocale, - "Agreement Localization Revision ID": agreementLocalizationRevisionId, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s_%s", agreementName, agreementLocalizationLocale, agreementLocalizationRevisionId), - ResourceID: fmt.Sprintf("%s/%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, agreementId, agreementLocalizationId, agreementLocalizationRevisionId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - } - } - - return &importBlocks, nil -} - -func (r *PingOneAgreementLocalizationRevisionResource) getAgreementData() (map[string]string, error) { - agreementData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.AgreementsResourcesApi.ReadAllAgreements(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - agreements, err := pingone.GetManagementAPIObjectsFromIterator[management.Agreement](iter, "ReadAllAgreements", "GetAgreements", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, agreement := range agreements { - agreementId, agreementIdOk := agreement.GetIdOk() - agreementName, agreementNameOk := agreement.GetNameOk() - - if agreementIdOk && agreementNameOk { - agreementData[*agreementId] = *agreementName - } - } - - return agreementData, nil -} - -func (r *PingOneAgreementLocalizationRevisionResource) getAgreementLanguageData(agreementId string) (map[string]string, error) { - agreementLanguageData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.AgreementLanguagesResourcesApi.ReadAllAgreementLanguages(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, agreementId).Execute() - languageInners, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedLanguagesInner](iter, "ReadAllAgreementLanguages", "GetLanguages", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, languageInner := range languageInners { - if languageInner.AgreementLanguage != nil { - agreementLanguageLocale, agreementLanguageLocaleOk := languageInner.AgreementLanguage.GetLocaleOk() - agreementLanguageId, agreementLanguageIdOk := languageInner.AgreementLanguage.GetIdOk() - - if agreementLanguageLocaleOk && agreementLanguageIdOk { - agreementLanguageData[*agreementLanguageId] = *agreementLanguageLocale - } - } - } - - return agreementLanguageData, nil -} - -func (r *PingOneAgreementLocalizationRevisionResource) getAgreementLocalizationRevisionData(agreementId, agreementLocalizationId string) ([]string, error) { - agreementLocalizationRevisionData := []string{} - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.AgreementRevisionsResourcesApi.ReadAllAgreementLanguageRevisions(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, agreementId, agreementLocalizationId).Execute() - agreementLocalizationRevisions, err := pingone.GetManagementAPIObjectsFromIterator[management.AgreementLanguageRevision](iter, "ReadAllAgreementLanguageRevisions", "GetRevisions", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, agreementLocalizationRevision := range agreementLocalizationRevisions { - agreementLocalizationRevisionId, agreementLocalizationRevisionIdOk := agreementLocalizationRevision.GetIdOk() - - if agreementLocalizationRevisionIdOk { - agreementLocalizationRevisionData = append(agreementLocalizationRevisionData, *agreementLocalizationRevisionId) - } - } - - return agreementLocalizationRevisionData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_revision_test.go b/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_revision_test.go deleted file mode 100644 index e2c0ea42..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_revision_test.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestAgreementLocalizationRevisionExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.AgreementLocalizationRevision(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_agreement_localization_revision", - ResourceName: "Test_fr_08c49433-b84b-4aeb-860b-02d58336e309", - ResourceID: fmt.Sprintf("%s/37ab76b8-8eff-43ae-b499-a7dce9fe0e75/03cd7e69-2836-4bad-b69f-249684c42fd9/08c49433-b84b-4aeb-860b-02d58336e309", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_agreement_localization_revision", - ResourceName: "Test_en_2c2a98d7-8c11-4887-b35b-7f5358f75ec1", - ResourceID: fmt.Sprintf("%s/37ab76b8-8eff-43ae-b499-a7dce9fe0e75/b5ceb6b5-025c-4896-951d-dd676c96d3c6/2c2a98d7-8c11-4887-b35b-7f5358f75ec1", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_agreement_localization_revision", - ResourceName: "Test_en_82cff258-1af7-4f2d-94f0-a0ebbbc84a5e", - ResourceID: fmt.Sprintf("%s/37ab76b8-8eff-43ae-b499-a7dce9fe0e75/b5ceb6b5-025c-4896-951d-dd676c96d3c6/82cff258-1af7-4f2d-94f0-a0ebbbc84a5e", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_test.go b/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_test.go deleted file mode 100644 index 7d39ff97..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_agreement_localization_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestAgreementLocalizationExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.AgreementLocalization(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_agreement_localization", - ResourceName: "Test_fr", - ResourceID: fmt.Sprintf("%s/37ab76b8-8eff-43ae-b499-a7dce9fe0e75/03cd7e69-2836-4bad-b69f-249684c42fd9", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_agreement_localization", - ResourceName: "Test_en", - ResourceID: fmt.Sprintf("%s/37ab76b8-8eff-43ae-b499-a7dce9fe0e75/b5ceb6b5-025c-4896-951d-dd676c96d3c6", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_alert_channel_test.go b/internal/connector/pingone/platform/resources_old/pingone_alert_channel_test.go deleted file mode 100644 index 0b6d3570..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_alert_channel_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestAlertChannelExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.AlertChannel(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_alert_channel", - ResourceName: "Test Alert Channel", - ResourceID: fmt.Sprintf("%s/6035f516-b474-4941-945a-76514913a74d", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_branding_settings.go b/internal/connector/pingone/platform/resources_old/pingone_branding_settings.go deleted file mode 100644 index 1ae0088d..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_branding_settings.go +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneBrandingSettingsResource{} -) - -type PingOneBrandingSettingsResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneBrandingSettingsResource -func BrandingSettings(clientInfo *connector.ClientInfo) *PingOneBrandingSettingsResource { - return &PingOneBrandingSettingsResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneBrandingSettingsResource) ResourceType() string { - return "pingone_branding_settings" -} - -func (r *PingOneBrandingSettingsResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - ok, err := r.checkBrandingSettingsData() - if err != nil { - return nil, err - } - if !ok { - return &importBlocks, nil - } - - commentData := map[string]string{ - "Resource Type": r.ResourceType(), - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: r.ResourceType(), - ResourceID: r.clientInfo.PingOneExportEnvironmentID, - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - - return &importBlocks, nil -} - -func (r *PingOneBrandingSettingsResource) checkBrandingSettingsData() (bool, error) { - _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.BrandingSettingsApi.ReadBrandingSettings(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - return common.CheckSingletonResource(response, err, "ReadBrandingSettings", r.ResourceType()) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_branding_settings_test.go b/internal/connector/pingone/platform/resources_old/pingone_branding_settings_test.go deleted file mode 100644 index 6e9cbf95..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_branding_settings_test.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation -// Code generated by ping-cli-generator - -package resources_test - -import ( - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/testing/testutils" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" -) - -func Test_BrandingSettings(t *testing.T) { - clientInfo := testutils.GetClientInfo(t) - - tr := pingone_testable_resources.BrandingSettings(t, clientInfo) - - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: tr.ExportableResource.ResourceType(), - ResourceID: clientInfo.PingOneExportEnvironmentID, - }, - } - - testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_branding_theme.go b/internal/connector/pingone/platform/resources_old/pingone_branding_theme.go deleted file mode 100644 index f8d979dd..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_branding_theme.go +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneBrandingThemeResource{} -) - -type PingOneBrandingThemeResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneBrandingThemeResource -func BrandingTheme(clientInfo *connector.ClientInfo) *PingOneBrandingThemeResource { - return &PingOneBrandingThemeResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneBrandingThemeResource) ResourceType() string { - return "pingone_branding_theme" -} - -func (r *PingOneBrandingThemeResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - brandingThemeData, err := r.getBrandingThemeData() - if err != nil { - return nil, err - } - - for brandingThemeId, brandingThemeName := range brandingThemeData { - commentData := map[string]string{ - "Branding Theme ID": brandingThemeId, - "Branding Theme Name": brandingThemeName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: brandingThemeName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, brandingThemeId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingOneBrandingThemeResource) getBrandingThemeData() (map[string]string, error) { - brandingThemeData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.BrandingThemesApi.ReadBrandingThemes(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - brandingThemes, err := pingone.GetManagementAPIObjectsFromIterator[management.BrandingTheme](iter, "ReadBrandingThemes", "GetThemes", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, brandingTheme := range brandingThemes { - brandingThemeId, brandingThemeIdOk := brandingTheme.GetIdOk() - brandingThemeConfiguration, brandingThemeConfigurationOk := brandingTheme.GetConfigurationOk() - - if brandingThemeIdOk && brandingThemeConfigurationOk { - brandingThemeName, brandingThemeNameOk := brandingThemeConfiguration.GetNameOk() - - if brandingThemeNameOk { - brandingThemeData[*brandingThemeId] = *brandingThemeName - } - } - } - - return brandingThemeData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_branding_theme_default.go b/internal/connector/pingone/platform/resources_old/pingone_branding_theme_default.go deleted file mode 100644 index 448b9cf4..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_branding_theme_default.go +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneBrandingThemeDefaultResource{} -) - -type PingOneBrandingThemeDefaultResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneBrandingThemeDefaultResource -func BrandingThemeDefault(clientInfo *connector.ClientInfo) *PingOneBrandingThemeDefaultResource { - return &PingOneBrandingThemeDefaultResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneBrandingThemeDefaultResource) ResourceType() string { - return "pingone_branding_theme_default" -} - -func (r *PingOneBrandingThemeDefaultResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - defaultBrandingThemeName, err := r.getDefaultBrandingThemeName() - if err != nil { - return nil, err - } - if defaultBrandingThemeName == nil { - return &importBlocks, nil - } - - commentData := map[string]string{ - "Default Branding Theme Name": *defaultBrandingThemeName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_default_theme", *defaultBrandingThemeName), - ResourceID: r.clientInfo.PingOneExportEnvironmentID, - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - - return &importBlocks, nil -} - -func (r *PingOneBrandingThemeDefaultResource) getDefaultBrandingThemeName() (*string, error) { - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.BrandingThemesApi.ReadBrandingThemes(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - brandingThemes, err := pingone.GetManagementAPIObjectsFromIterator[management.BrandingTheme](iter, "ReadBrandingThemes", "GetThemes", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, brandingTheme := range brandingThemes { - brandingThemeDefault, brandingThemeDefaultOk := brandingTheme.GetDefaultOk() - - if brandingThemeDefaultOk && *brandingThemeDefault { - brandingThemeConfiguration, brandingThemeConfigurationOk := brandingTheme.GetConfigurationOk() - - if brandingThemeConfigurationOk { - brandingThemeName, brandingThemeNameOk := brandingThemeConfiguration.GetNameOk() - - if brandingThemeNameOk { - return brandingThemeName, nil - } - } - - } - } - - return nil, fmt.Errorf("failed to export resource '%s'. No default branding theme found", r.ResourceType()) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_branding_theme_default_test.go b/internal/connector/pingone/platform/resources_old/pingone_branding_theme_default_test.go deleted file mode 100644 index 91e8e5e5..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_branding_theme_default_test.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestBrandingThemeDefaultExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.BrandingThemeDefault(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_branding_theme_default", - ResourceName: "test_slate_2_default_theme", - ResourceID: clientInfo.PingOneExportEnvironmentID, - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_branding_theme_test.go b/internal/connector/pingone/platform/resources_old/pingone_branding_theme_test.go deleted file mode 100644 index 6c6ea79b..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_branding_theme_test.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestBrandingThemeExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.BrandingTheme(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_branding_theme", - ResourceName: "test_slate_2", - ResourceID: fmt.Sprintf("%s/a3e0fc98-a7bf-4750-9778-2397fc0a3586", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_branding_theme", - ResourceName: "Ping Default", - ResourceID: fmt.Sprintf("%s/b02d49a3-c468-462a-9fd0-659e0f3dde96", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_branding_theme", - ResourceName: "Slate", - ResourceID: fmt.Sprintf("%s/fbf0886a-fb1f-41c2-ad42-e7dc601dabb3", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_certificate.go b/internal/connector/pingone/platform/resources_old/pingone_certificate.go deleted file mode 100644 index 02fd6ec7..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_certificate.go +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneCertificateResource{} -) - -type PingOneCertificateResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneCertificateResource -func Certificate(clientInfo *connector.ClientInfo) *PingOneCertificateResource { - return &PingOneCertificateResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneCertificateResource) ResourceType() string { - return "pingone_certificate" -} - -func (r *PingOneCertificateResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - certificateData, err := r.getCertificateData() - if err != nil { - return nil, err - } - - for certificateId, certificateName := range certificateData { - commentData := map[string]string{ - "Certificate ID": certificateId, - "Certificate Name": certificateName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: certificateName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, certificateId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingOneCertificateResource) getCertificateData() (map[string]string, error) { - certificateData := make(map[string]string) - - // TODO: Implement pagination once supported in the PingOne Go Client SDK - entityArray, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.GetCertificates(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - ok, err := common.HandleClientResponse(response, err, "GetCertificates", r.ResourceType()) - if err != nil { - return nil, err - } - if !ok { - return nil, nil - } - - if entityArray == nil { - return nil, common.DataNilError(r.ResourceType(), response) - } - - embedded, embeddedOk := entityArray.GetEmbeddedOk() - if !embeddedOk { - return nil, common.DataNilError(r.ResourceType(), response) - } - - for _, certificate := range embedded.GetCertificates() { - certificateId, certificateIdOk := certificate.GetIdOk() - certificateName, certificateNameOk := certificate.GetNameOk() - - if certificateIdOk && certificateNameOk { - certificateData[*certificateId] = *certificateName - } - } - - return certificateData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_certificate_test.go b/internal/connector/pingone/platform/resources_old/pingone_certificate_test.go deleted file mode 100644 index b0d56f3c..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_certificate_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestCertificateExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.Certificate(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_certificate", - ResourceName: "common name", - ResourceID: fmt.Sprintf("%s/b9eb2b6e-381e-4b1c-86d3-096d951787f4", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_certificate", - ResourceName: "terraform", - ResourceID: fmt.Sprintf("%s/fa8f15d6-1c62-4db1-920e-d22f6dd68ba8", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_custom_domain.go b/internal/connector/pingone/platform/resources_old/pingone_custom_domain.go deleted file mode 100644 index a6a1cc3d..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_custom_domain.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneCustomDomainResource{} -) - -type PingOneCustomDomainResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneCustomDomainResource -func CustomDomain(clientInfo *connector.ClientInfo) *PingOneCustomDomainResource { - return &PingOneCustomDomainResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneCustomDomainResource) ResourceType() string { - return "pingone_custom_domain" -} - -func (r *PingOneCustomDomainResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - domainData, err := r.getCustomDomainData() - if err != nil { - return nil, err - } - - for domainId, domainName := range domainData { - commentData := map[string]string{ - "Custom Domain ID": domainId, - "Custom Domain Name": domainName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: domainName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, domainId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingOneCustomDomainResource) getCustomDomainData() (map[string]string, error) { - domainData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.CustomDomainsApi.ReadAllDomains(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - customDomains, err := pingone.GetManagementAPIObjectsFromIterator[management.CustomDomain](iter, "ReadAllDomains", "GetCustomDomains", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, customDomain := range customDomains { - customDomainName, customDomainNameOk := customDomain.GetDomainNameOk() - customDomainId, customDomainIdOk := customDomain.GetIdOk() - - if customDomainIdOk && customDomainNameOk { - domainData[*customDomainId] = *customDomainName - } - } - - return domainData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_custom_domain_test.go b/internal/connector/pingone/platform/resources_old/pingone_custom_domain_test.go deleted file mode 100644 index 368cff86..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_custom_domain_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestCustomDomainExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.CustomDomain(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_custom_domain", - ResourceName: "pioneerpalaceband.com", - ResourceID: fmt.Sprintf("%s/5eb2548d-fdb2-45f6-85bc-7adfd856cbd9", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_environment.go b/internal/connector/pingone/platform/resources_old/pingone_environment.go deleted file mode 100644 index 0ad8d988..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_environment.go +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneCustomDomainResource{} -) - -type PingOneEnvironmentResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneEnvironmentResource -func Environment(clientInfo *connector.ClientInfo) *PingOneEnvironmentResource { - return &PingOneEnvironmentResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneEnvironmentResource) ResourceType() string { - return "pingone_environment" -} - -func (r *PingOneEnvironmentResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - ok, err := r.checkEnvironmentData() - if err != nil { - return nil, err - } - if !ok { - return &importBlocks, nil - } - - commentData := map[string]string{ - "Resource Type": r.ResourceType(), - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: r.ResourceType(), - ResourceID: r.clientInfo.PingOneExportEnvironmentID, - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - - return &importBlocks, nil -} - -func (r *PingOneEnvironmentResource) checkEnvironmentData() (bool, error) { - _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.EnvironmentsApi.ReadOneEnvironment(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - return common.CheckSingletonResource(response, err, "ReadOneEnvironment", r.ResourceType()) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_environment_test.go b/internal/connector/pingone/platform/resources_old/pingone_environment_test.go deleted file mode 100644 index a7d80862..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_environment_test.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestEnvironmentExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.Environment(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_environment", - ResourceName: "pingone_environment", - ResourceID: clientInfo.PingOneExportEnvironmentID, - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_form.go b/internal/connector/pingone/platform/resources_old/pingone_form.go deleted file mode 100644 index fafc5f0f..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_form.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneFormResource{} -) - -type PingOneFormResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneFormResource -func Form(clientInfo *connector.ClientInfo) *PingOneFormResource { - return &PingOneFormResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneFormResource) ResourceType() string { - return "pingone_form" -} - -func (r *PingOneFormResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - formData, err := r.getFormData() - if err != nil { - return nil, err - } - - for formId, formName := range formData { - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Form ID": formId, - "Form Name": formName, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: formName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, formId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingOneFormResource) getFormData() (map[string]string, error) { - formData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.FormManagementApi.ReadAllForms(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - forms, err := pingone.GetManagementAPIObjectsFromIterator[management.Form](iter, "ReadAllForms", "GetForms", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, form := range forms { - formId, formIdOk := form.GetIdOk() - formName, formNameOk := form.GetNameOk() - - if formIdOk && formNameOk { - formData[*formId] = *formName - } - } - - return formData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_form_test.go b/internal/connector/pingone/platform/resources_old/pingone_form_test.go deleted file mode 100644 index 72ccaac7..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_form_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestFormExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.Form(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_form", - ResourceName: "Test Form", - ResourceID: fmt.Sprintf("%s/837c2f09-f8dc-41e9-b2f2-5f7bf1efded1", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_forms_recaptcha_v2.go b/internal/connector/pingone/platform/resources_old/pingone_forms_recaptcha_v2.go deleted file mode 100644 index 53c5c8cd..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_forms_recaptcha_v2.go +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneFormRecaptchaV2Resource{} -) - -type PingOneFormRecaptchaV2Resource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneFormRecaptchaV2Resource -func FormRecaptchaV2(clientInfo *connector.ClientInfo) *PingOneFormRecaptchaV2Resource { - return &PingOneFormRecaptchaV2Resource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneFormRecaptchaV2Resource) ResourceType() string { - return "pingone_forms_recaptcha_v2" -} - -func (r *PingOneFormRecaptchaV2Resource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - ok, err := r.checkFormRecaptchaV2Data() - if err != nil { - return nil, err - } - if !ok { - return &importBlocks, nil - } - - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: r.ResourceType(), - ResourceID: r.clientInfo.PingOneExportEnvironmentID, - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - - return &importBlocks, nil -} - -func (r *PingOneFormRecaptchaV2Resource) checkFormRecaptchaV2Data() (bool, error) { - _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.RecaptchaConfigurationApi.ReadRecaptchaConfiguration(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - return common.CheckSingletonResource(response, err, "ReadRecaptchaConfiguration", r.ResourceType()) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_forms_recaptcha_v2_test.go b/internal/connector/pingone/platform/resources_old/pingone_forms_recaptcha_v2_test.go deleted file mode 100644 index 365710f2..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_forms_recaptcha_v2_test.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestFormRecaptchaV2Export(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.FormRecaptchaV2(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_forms_recaptcha_v2", - ResourceName: "pingone_forms_recaptcha_v2", - ResourceID: clientInfo.PingOneExportEnvironmentID, - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_gateway.go b/internal/connector/pingone/platform/resources_old/pingone_gateway.go deleted file mode 100644 index 9602d7cf..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_gateway.go +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneGatewayResource{} -) - -type PingOneGatewayResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneGatewayResource -func Gateway(clientInfo *connector.ClientInfo) *PingOneGatewayResource { - return &PingOneGatewayResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneGatewayResource) ResourceType() string { - return "pingone_gateway" -} - -func (r *PingOneGatewayResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - gatewayData, err := r.getGatewayData() - if err != nil { - return nil, err - } - - for gatewayId, gatewayName := range gatewayData { - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Gateway ID": gatewayId, - "Gateway Name": gatewayName, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: gatewayName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, gatewayId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingOneGatewayResource) getGatewayData() (map[string]string, error) { - gatewayData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GatewaysApi.ReadAllGateways(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - gateways, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedGatewaysInner](iter, "ReadAllGateways", "GetGateways", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, gatewayInner := range gateways { - var ( - gatewayId *string - gatewayIdOk bool - gatewayName *string - gatewayNameOk bool - ) - - switch { - case gatewayInner.Gateway != nil: - gatewayId, gatewayIdOk = gatewayInner.Gateway.GetIdOk() - gatewayName, gatewayNameOk = gatewayInner.Gateway.GetNameOk() - case gatewayInner.GatewayTypeLDAP != nil: - gatewayId, gatewayIdOk = gatewayInner.GatewayTypeLDAP.GetIdOk() - gatewayName, gatewayNameOk = gatewayInner.GatewayTypeLDAP.GetNameOk() - case gatewayInner.GatewayTypeRADIUS != nil: - gatewayId, gatewayIdOk = gatewayInner.GatewayTypeRADIUS.GetIdOk() - gatewayName, gatewayNameOk = gatewayInner.GatewayTypeRADIUS.GetNameOk() - default: - continue - } - - if gatewayIdOk && gatewayNameOk { - gatewayData[*gatewayId] = *gatewayName - } - } - - return gatewayData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_gateway_credential.go b/internal/connector/pingone/platform/resources_old/pingone_gateway_credential.go deleted file mode 100644 index 005734f1..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_gateway_credential.go +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneGatewayCredentialResource{} -) - -type PingOneGatewayCredentialResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneGatewayCredentialResource -func GatewayCredential(clientInfo *connector.ClientInfo) *PingOneGatewayCredentialResource { - return &PingOneGatewayCredentialResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneGatewayCredentialResource) ResourceType() string { - return "pingone_gateway_credential" -} - -func (r *PingOneGatewayCredentialResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - gatewayData, err := r.getGatewayData() - if err != nil { - return nil, err - } - - for gatewayId, gatewayName := range gatewayData { - gatewayCredentialData, err := r.getGatewayCredentialData(gatewayId) - if err != nil { - return nil, err - } - - for _, gatewayCredentialId := range gatewayCredentialData { - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Gateway Credential ID": gatewayCredentialId, - "Gateway ID": gatewayId, - "Gateway Name": gatewayName, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_credential_%s", gatewayName, gatewayCredentialId), - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, gatewayId, gatewayCredentialId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - } - - return &importBlocks, nil -} - -func (r *PingOneGatewayCredentialResource) getGatewayData() (map[string]string, error) { - gatewayData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GatewaysApi.ReadAllGateways(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - gatewayInners, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedGatewaysInner](iter, "ReadAllGateways", "GetGateways", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, gatewayInner := range gatewayInners { - var ( - gatewayId *string - gatewayIdOk bool - gatewayName *string - gatewayNameOk bool - ) - - switch { - case gatewayInner.Gateway != nil: - gatewayId, gatewayIdOk = gatewayInner.Gateway.GetIdOk() - gatewayName, gatewayNameOk = gatewayInner.Gateway.GetNameOk() - case gatewayInner.GatewayTypeLDAP != nil: - gatewayId, gatewayIdOk = gatewayInner.GatewayTypeLDAP.GetIdOk() - gatewayName, gatewayNameOk = gatewayInner.GatewayTypeLDAP.GetNameOk() - case gatewayInner.GatewayTypeRADIUS != nil: - gatewayId, gatewayIdOk = gatewayInner.GatewayTypeRADIUS.GetIdOk() - gatewayName, gatewayNameOk = gatewayInner.GatewayTypeRADIUS.GetNameOk() - default: - continue - } - - if gatewayIdOk && gatewayNameOk { - gatewayData[*gatewayId] = *gatewayName - } - } - - return gatewayData, nil -} - -func (r *PingOneGatewayCredentialResource) getGatewayCredentialData(gatewayId string) ([]string, error) { - gatewayCredentialData := []string{} - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GatewayCredentialsApi.ReadAllGatewayCredentials(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, gatewayId).Execute() - gatewayCredentials, err := pingone.GetManagementAPIObjectsFromIterator[management.GatewayCredential](iter, "ReadAllGatewayCredentials", "GetCredentials", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, gatewayCredential := range gatewayCredentials { - gatewayCredentialId, gatewayCredentialIdOk := gatewayCredential.GetIdOk() - - if gatewayCredentialIdOk { - gatewayCredentialData = append(gatewayCredentialData, *gatewayCredentialId) - } - } - - return gatewayCredentialData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_gateway_credential_test.go b/internal/connector/pingone/platform/resources_old/pingone_gateway_credential_test.go deleted file mode 100644 index 8a6bd325..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_gateway_credential_test.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestGatewayCredentialExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.GatewayCredential(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_gateway_credential", - ResourceName: "random_credential_932c1ca6-da29-4a0e-b19c-d012f5b6014f", - ResourceID: fmt.Sprintf("%s/0b1d882c-5c71-4600-a9fb-befdad921df2/932c1ca6-da29-4a0e-b19c-d012f5b6014f", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_gateway_credential", - ResourceName: "PingFederate LDAP Gateway_credential_fa809636-4796-4a25-8693-2b786eed4f71", - ResourceID: fmt.Sprintf("%s/3b7b5d9d-1820-4b21-bb29-a5336af65352/fa809636-4796-4a25-8693-2b786eed4f71", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_gateway_credential", - ResourceName: "PF TF Provider_credential_971b5d20-0955-4030-b49b-7e349b3b9b1e", - ResourceID: fmt.Sprintf("%s/554257ac-76ca-447a-a210-722343328312/971b5d20-0955-4030-b49b-7e349b3b9b1e", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_gateway_credential", - ResourceName: "Local Test_credential_bd2307d8-2a5e-4c11-a397-cfb991179f3f", - ResourceID: fmt.Sprintf("%s/5cd3f6b7-35f0-4873-ac64-f32118bf3102/bd2307d8-2a5e-4c11-a397-cfb991179f3f", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_gateway_credential", - ResourceName: "TestGateway_credential_2e2ab72c-6dcf-4ec2-96be-1a5ba2e66f4a", - ResourceID: fmt.Sprintf("%s/bc37814f-b3a9-4149-b880-0ed457bbb5c5/2e2ab72c-6dcf-4ec2-96be-1a5ba2e66f4a", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_gateway_credential", - ResourceName: "TestGateway_credential_5aa73594-66a3-4175-ad69-67fa38b5e307", - ResourceID: fmt.Sprintf("%s/bc37814f-b3a9-4149-b880-0ed457bbb5c5/5aa73594-66a3-4175-ad69-67fa38b5e307", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_gateway_credential", - ResourceName: "TestGateway_credential_ed648842-d109-4a40-97ba-ef4f8ce8eabe", - ResourceID: fmt.Sprintf("%s/bc37814f-b3a9-4149-b880-0ed457bbb5c5/ed648842-d109-4a40-97ba-ef4f8ce8eabe", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_gateway_credential", - ResourceName: "another connection for testing_credential_98f9946c-3a78-4b4b-8645-a425f89c7ab5", - ResourceID: fmt.Sprintf("%s/8773b833-ade0-4883-9cad-05fe82b23135/98f9946c-3a78-4b4b-8645-a425f89c7ab5", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_gateway_role_assignment.go b/internal/connector/pingone/platform/resources_old/pingone_gateway_role_assignment.go deleted file mode 100644 index f94866f4..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_gateway_role_assignment.go +++ /dev/null @@ -1,154 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneGatewayRoleAssignmentResource{} -) - -type PingOneGatewayRoleAssignmentResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneGatewayRoleAssignmentResource -func GatewayRoleAssignment(clientInfo *connector.ClientInfo) *PingOneGatewayRoleAssignmentResource { - return &PingOneGatewayRoleAssignmentResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneGatewayRoleAssignmentResource) ResourceType() string { - return "pingone_gateway_role_assignment" -} - -func (r *PingOneGatewayRoleAssignmentResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - gatewayData, err := r.getGatewayData() - if err != nil { - return nil, err - } - - for gatewayId, gatewayName := range gatewayData { - gatewayRoleAssignmentData, err := r.getGatewayRoleAssignmentData(gatewayId) - if err != nil { - return nil, err - } - - for roleAssignmentId, roleId := range gatewayRoleAssignmentData { - roleName, err := r.getRoleAssignmentRoleName(roleId) - if err != nil { - return nil, err - } - if roleName == nil { - continue - } - - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Gateway ID": gatewayId, - "Gateway Name": gatewayName, - "Resource Type": r.ResourceType(), - "Role Assignment ID": roleAssignmentId, - "Role Name": string(*roleName), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s_%s", gatewayName, string(*roleName), roleAssignmentId), - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, gatewayId, roleAssignmentId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - } - - return &importBlocks, nil -} - -func (r *PingOneGatewayRoleAssignmentResource) getGatewayData() (map[string]string, error) { - gatewayData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GatewaysApi.ReadAllGateways(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - gatewayInners, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedGatewaysInner](iter, "ReadAllGateways", "GetGateways", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, gatewayInner := range gatewayInners { - // Only PingFederate Connections have role assignments - if gatewayInner.Gateway != nil { - gatewayType, gatewayTypeOk := gatewayInner.Gateway.GetTypeOk() - - if gatewayTypeOk && *gatewayType == management.ENUMGATEWAYTYPE_PING_FEDERATE { - gatewayId, gatewayIdOk := gatewayInner.Gateway.GetIdOk() - gatewayName, gatewayNameOk := gatewayInner.Gateway.GetNameOk() - - if gatewayIdOk && gatewayNameOk { - gatewayData[*gatewayId] = *gatewayName - } - } - } - } - - return gatewayData, nil -} - -func (r *PingOneGatewayRoleAssignmentResource) getGatewayRoleAssignmentData(gatewayId string) (map[string]string, error) { - gatewayRoleAssignmentData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GatewayRoleAssignmentsApi.ReadGatewayRoleAssignments(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, gatewayId).Execute() - gatewayRoleAssignments, err := pingone.GetManagementAPIObjectsFromIterator[management.RoleAssignment](iter, "ReadGatewayRoleAssignments", "GetRoleAssignments", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, roleAssignment := range gatewayRoleAssignments { - roleAssignmentId, roleAssignmentIdOk := roleAssignment.GetIdOk() - roleAssignmentRole, roleAssignmentRoleOk := roleAssignment.GetRoleOk() - - if roleAssignmentIdOk && roleAssignmentRoleOk { - roleAssignmentRoleId, roleAssignmentRoleIdOk := roleAssignmentRole.GetIdOk() - if roleAssignmentRoleIdOk { - gatewayRoleAssignmentData[*roleAssignmentId] = *roleAssignmentRoleId - } - } - } - - return gatewayRoleAssignmentData, nil -} - -func (r *PingOneGatewayRoleAssignmentResource) getRoleAssignmentRoleName(roleId string) (*management.EnumRoleName, error) { - role, resp, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.RolesApi.ReadOneRole(r.clientInfo.PingOneContext, roleId).Execute() - ok, err := common.CheckSingletonResource(resp, err, "ReadOneRole", r.ResourceType()) - if err != nil { - return nil, err - } - if !ok { - return nil, nil - } - - if role != nil { - roleName, roleNameOk := role.GetNameOk() - if roleNameOk { - return roleName, nil - } - } - - return nil, fmt.Errorf("failed to export resource '%s'. No role name found for Role ID '%s'", r.ResourceType(), roleId) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_gateway_role_assignment_test.go b/internal/connector/pingone/platform/resources_old/pingone_gateway_role_assignment_test.go deleted file mode 100644 index 3e9ed468..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_gateway_role_assignment_test.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestGatewayRoleAssignmentExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.GatewayRoleAssignment(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_gateway_role_assignment", - ResourceName: "PF TF Provider_Identity Data Admin_1c5549f9-95f5-4380-b975-d0165aadd9d2", - ResourceID: fmt.Sprintf("%s/554257ac-76ca-447a-a210-722343328312/1c5549f9-95f5-4380-b975-d0165aadd9d2", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_gateway_role_assignment", - ResourceName: "PF TF Provider_Environment Admin_1cf8fca5-f14f-4a64-a521-60efc7891e7e", - ResourceID: fmt.Sprintf("%s/554257ac-76ca-447a-a210-722343328312/1cf8fca5-f14f-4a64-a521-60efc7891e7e", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_gateway_role_assignment", - ResourceName: "Local Test_Identity Data Admin_e424fff4-a8ca-4a75-a169-3376dd2aad96", - ResourceID: fmt.Sprintf("%s/5cd3f6b7-35f0-4873-ac64-f32118bf3102/e424fff4-a8ca-4a75-a169-3376dd2aad96", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_gateway_role_assignment", - ResourceName: "Local Test_Environment Admin_393d4c4e-6642-432d-bc11-1638948d6dd2", - ResourceID: fmt.Sprintf("%s/5cd3f6b7-35f0-4873-ac64-f32118bf3102/393d4c4e-6642-432d-bc11-1638948d6dd2", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_gateway_role_assignment", - ResourceName: "another connection for testing_Identity Data Admin_239579d0-fc0b-4b50-ba03-dfe80e2bb6d0", - ResourceID: fmt.Sprintf("%s/8773b833-ade0-4883-9cad-05fe82b23135/239579d0-fc0b-4b50-ba03-dfe80e2bb6d0", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_gateway_role_assignment", - ResourceName: "another connection for testing_Environment Admin_07ed5801-4d44-4578-9d2f-c6ef6d537e83", - ResourceID: fmt.Sprintf("%s/8773b833-ade0-4883-9cad-05fe82b23135/07ed5801-4d44-4578-9d2f-c6ef6d537e83", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_gateway_test.go b/internal/connector/pingone/platform/resources_old/pingone_gateway_test.go deleted file mode 100644 index da8141b2..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_gateway_test.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestGatewayExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.Gateway(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_gateway", - ResourceName: "random", - ResourceID: fmt.Sprintf("%s/0b1d882c-5c71-4600-a9fb-befdad921df2", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_gateway", - ResourceName: "PingFederate LDAP Gateway", - ResourceID: fmt.Sprintf("%s/3b7b5d9d-1820-4b21-bb29-a5336af65352", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_gateway", - ResourceName: "PF TF Provider", - ResourceID: fmt.Sprintf("%s/554257ac-76ca-447a-a210-722343328312", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_gateway", - ResourceName: "Local Test", - ResourceID: fmt.Sprintf("%s/5cd3f6b7-35f0-4873-ac64-f32118bf3102", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_gateway", - ResourceName: "TestGateway", - ResourceID: fmt.Sprintf("%s/bc37814f-b3a9-4149-b880-0ed457bbb5c5", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_gateway", - ResourceName: "another connection for testing", - ResourceID: fmt.Sprintf("%s/8773b833-ade0-4883-9cad-05fe82b23135", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_identity_propagation_plan.go b/internal/connector/pingone/platform/resources_old/pingone_identity_propagation_plan.go deleted file mode 100644 index e3092d03..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_identity_propagation_plan.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneIdentityPropagationPlanResource{} -) - -type PingOneIdentityPropagationPlanResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneIdentityPropagationPlanResource -func IdentityPropagationPlan(clientInfo *connector.ClientInfo) *PingOneIdentityPropagationPlanResource { - return &PingOneIdentityPropagationPlanResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneIdentityPropagationPlanResource) ResourceType() string { - return "pingone_identity_propagation_plan" -} - -func (r *PingOneIdentityPropagationPlanResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - planData, err := r.getIdentityPropagationPlanData() - if err != nil { - return nil, err - } - - for planId, planName := range planData { - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Identity Propagation Plan ID": planId, - "Identity Propagation Plan Name": planName, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: planName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, planId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingOneIdentityPropagationPlanResource) getIdentityPropagationPlanData() (map[string]string, error) { - identityPropagationPlanData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.IdentityPropagationPlansApi.ReadAllPlans(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - identityPropagationPlans, err := pingone.GetManagementAPIObjectsFromIterator[management.IdentityPropagationPlan](iter, "ReadAllPlans", "GetPlans", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, identityPropagationPlan := range identityPropagationPlans { - identityPropagationPlanId, identityPropagationPlanIdOk := identityPropagationPlan.GetIdOk() - identityPropagationPlanName, identityPropagationPlanNameOk := identityPropagationPlan.GetNameOk() - - if identityPropagationPlanIdOk && identityPropagationPlanNameOk { - identityPropagationPlanData[*identityPropagationPlanId] = *identityPropagationPlanName - } - } - - return identityPropagationPlanData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_identity_propagation_plan_test.go b/internal/connector/pingone/platform/resources_old/pingone_identity_propagation_plan_test.go deleted file mode 100644 index ce4bed43..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_identity_propagation_plan_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestIdentityPropagationPlanExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.IdentityPropagationPlan(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_identity_propagation_plan", - ResourceName: "Default", - ResourceID: fmt.Sprintf("%s/ffc23586-01a8-498a-9745-af0b9f0e9c74", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_key.go b/internal/connector/pingone/platform/resources_old/pingone_key.go deleted file mode 100644 index 7548e41d..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_key.go +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneKeyResource{} -) - -type PingOneKeyResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneKeyResource -func Key(clientInfo *connector.ClientInfo) *PingOneKeyResource { - return &PingOneKeyResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneKeyResource) ResourceType() string { - return "pingone_key" -} - -func (r *PingOneKeyResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - keyData, err := r.getKeyData() - if err != nil { - return nil, err - } - - for keyId, keyNameAndType := range keyData { - keyName := keyNameAndType[0] - keyType := keyNameAndType[1] - - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Key ID": keyId, - "Key Name": keyName, - "Key Type": keyType, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", keyName, keyType), - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, keyId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingOneKeyResource) getKeyData() (map[string][]string, error) { - keyData := make(map[string][]string) - - // TODO: Implement pagination once supported in the PingOne Go Client SDK - entityArray, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.GetKeys(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - - ok, err := common.HandleClientResponse(response, err, "GetKeys", r.ResourceType()) - if err != nil { - return nil, err - } - if !ok { - return nil, nil - } - - if entityArray == nil { - return nil, common.DataNilError(r.ResourceType(), response) - } - - embedded, embeddedOk := entityArray.GetEmbeddedOk() - if !embeddedOk { - return nil, common.DataNilError(r.ResourceType(), response) - } - - for _, key := range embedded.GetKeys() { - keyId, keyIdOk := key.GetIdOk() - keyName, keyNameOk := key.GetNameOk() - keyUsageType, keyUsageTypeOk := key.GetUsageTypeOk() - - if keyIdOk && keyNameOk && keyUsageTypeOk { - keyData[*keyId] = []string{*keyName, string(*keyUsageType)} - } - } - - return keyData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_key_rotation_policy.go b/internal/connector/pingone/platform/resources_old/pingone_key_rotation_policy.go deleted file mode 100644 index a9137692..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_key_rotation_policy.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneKeyRotationPolicyResource{} -) - -type PingOneKeyRotationPolicyResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneKeyRotationPolicyResource -func KeyRotationPolicy(clientInfo *connector.ClientInfo) *PingOneKeyRotationPolicyResource { - return &PingOneKeyRotationPolicyResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneKeyRotationPolicyResource) ResourceType() string { - return "pingone_key_rotation_policy" -} - -func (r *PingOneKeyRotationPolicyResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - keyRotationPolicyData, err := r.getKeyRotationPolicyData() - if err != nil { - return nil, err - } - - for keyRotationPolicyId, keyRotationPolicyName := range keyRotationPolicyData { - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Key Rotation Policy ID": keyRotationPolicyId, - "Key Rotation Policy Name": keyRotationPolicyName, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: keyRotationPolicyName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, keyRotationPolicyId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingOneKeyRotationPolicyResource) getKeyRotationPolicyData() (map[string]string, error) { - keyRotationPolicyData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.KeyRotationPoliciesApi.GetKeyRotationPolicies(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - keyRotationPolicies, err := pingone.GetManagementAPIObjectsFromIterator[management.KeyRotationPolicy](iter, "GetKeyRotationPolicies", "GetKeyRotationPolicies", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, keyRotationPolicy := range keyRotationPolicies { - keyRotationPolicyId, keyRotationPolicyIdOk := keyRotationPolicy.GetIdOk() - keyRotationPolicyName, keyRotationPolicyNameOk := keyRotationPolicy.GetNameOk() - - if keyRotationPolicyIdOk && keyRotationPolicyNameOk { - keyRotationPolicyData[*keyRotationPolicyId] = *keyRotationPolicyName - } - } - - return keyRotationPolicyData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_key_rotation_policy_test.go b/internal/connector/pingone/platform/resources_old/pingone_key_rotation_policy_test.go deleted file mode 100644 index c9f0a6d0..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_key_rotation_policy_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestKeyRotationPolicyExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.KeyRotationPolicy(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_key_rotation_policy", - ResourceName: "PingOne Key Rotation Policy for PingFederate Terraform Provider environment", - ResourceID: fmt.Sprintf("%s/9ad5e4a1-b414-40cc-84d1-8255272e4a30", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_key_test.go b/internal/connector/pingone/platform/resources_old/pingone_key_test.go deleted file mode 100644 index 6b86b83e..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_key_test.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestKeyExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.Key(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_key", - ResourceName: "PingOne SSO Certificate for PingFederate Terraform Provider environment_ENCRYPTION", - ResourceID: fmt.Sprintf("%s/46a2d7ad-27ee-4743-92ce-aac279a4358a", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_key", - ResourceName: "test_SIGNING", - ResourceID: fmt.Sprintf("%s/619bad1d-c884-47c5-99d7-a998bc317791", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_key", - ResourceName: "PingOne SSO Certificate for PingFederate Terraform Provider environment_SIGNING", - ResourceID: fmt.Sprintf("%s/702d1a27-10e9-40cc-ba73-d0274a2c97d2", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_key", - ResourceName: "common name_SIGNING", - ResourceID: fmt.Sprintf("%s/7d16daa9-f7eb-405f-b130-6567fe9d918f", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_language.go b/internal/connector/pingone/platform/resources_old/pingone_language.go deleted file mode 100644 index 8949e829..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_language.go +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneLanguageResource{} -) - -type PingOneLanguageResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneLanguageResource -func Language(clientInfo *connector.ClientInfo) *PingOneLanguageResource { - return &PingOneLanguageResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneLanguageResource) ResourceType() string { - return "pingone_language" -} - -func (r *PingOneLanguageResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - languageData, err := r.getLanguageData() - if err != nil { - return nil, err - } - - for languageId, languageName := range languageData { - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Language ID": languageId, - "Language Name": languageName, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: languageName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, languageId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingOneLanguageResource) getLanguageData() (map[string]string, error) { - languageData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.LanguagesApi.ReadLanguages(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - languageInners, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedLanguagesInner](iter, "ReadLanguages", "GetLanguages", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, languageInner := range languageInners { - if languageInner.Language != nil { - // If language is not customer added, skip it - languageCustomerAdded, languageCustomerAddedOk := languageInner.Language.GetCustomerAddedOk() - if !languageCustomerAddedOk || !*languageCustomerAdded { - continue - } - - languageId, languageIdOk := languageInner.Language.GetIdOk() - languageName, languageNameOk := languageInner.Language.GetNameOk() - - if languageIdOk && languageNameOk { - languageData[*languageId] = *languageName - } - } - } - - return languageData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_language_test.go b/internal/connector/pingone/platform/resources_old/pingone_language_test.go deleted file mode 100644 index f5fc4a0b..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_language_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestLanguageExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.Language(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_language", - ResourceName: "Afar", - ResourceID: fmt.Sprintf("%s/c5f97303-c5c1-459a-b8ee-3fcb183eb52a", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_language_update_test.go b/internal/connector/pingone/platform/resources_old/pingone_language_update_test.go deleted file mode 100644 index 89aded38..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_language_update_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestLanguageUpdateExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.LanguageUpdate(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_language_update", - ResourceName: "French_update", - ResourceID: fmt.Sprintf("%s/3f8a2e14-0ace-41db-a92d-74b3b7913ffe", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_language_update", - ResourceName: "English_update", - ResourceID: fmt.Sprintf("%s/88c78fb2-9d74-41e3-a1d8-a9f729a2b463", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_notification_policy.go b/internal/connector/pingone/platform/resources_old/pingone_notification_policy.go deleted file mode 100644 index 03d509d8..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_notification_policy.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneNotificationPolicyResource{} -) - -type PingOneNotificationPolicyResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneNotificationPolicyResource -func NotificationPolicy(clientInfo *connector.ClientInfo) *PingOneNotificationPolicyResource { - return &PingOneNotificationPolicyResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneNotificationPolicyResource) ResourceType() string { - return "pingone_notification_policy" -} - -func (r *PingOneNotificationPolicyResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - notificationPolicyData, err := r.getNotificationPolicyData() - if err != nil { - return nil, err - } - - for notificationPolicyId, notificationPolicyName := range notificationPolicyData { - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Notification Policy ID": notificationPolicyId, - "Notification Policy Name": notificationPolicyName, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: notificationPolicyName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, notificationPolicyId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingOneNotificationPolicyResource) getNotificationPolicyData() (map[string]string, error) { - notificationPolicyData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsPoliciesApi.ReadAllNotificationsPolicies(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - notificationPolicies, err := pingone.GetManagementAPIObjectsFromIterator[management.NotificationsPolicy](iter, "ReadAllNotificationsPolicies", "GetNotificationsPolicies", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, notificationPolicy := range notificationPolicies { - notificationPolicyId, notificationPolicyIdOk := notificationPolicy.GetIdOk() - notificationPolicyName, notificationPolicyNameOk := notificationPolicy.GetNameOk() - - if notificationPolicyIdOk && notificationPolicyNameOk { - notificationPolicyData[*notificationPolicyId] = *notificationPolicyName - } - } - - return notificationPolicyData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_notification_policy_test.go b/internal/connector/pingone/platform/resources_old/pingone_notification_policy_test.go deleted file mode 100644 index daf1863e..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_notification_policy_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestNotificationPolicyExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.NotificationPolicy(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_notification_policy", - ResourceName: "Test", - ResourceID: fmt.Sprintf("%s/32cc413d-0ec8-4be9-823c-a9e06f5a5830", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_policy", - ResourceName: "Default Notification Policy", - ResourceID: fmt.Sprintf("%s/54606af4-72a6-4b38-bfb8-75034097af9a", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_notification_settings.go b/internal/connector/pingone/platform/resources_old/pingone_notification_settings.go deleted file mode 100644 index 1169438a..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_notification_settings.go +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneNotificationSettingsResource{} -) - -type PingOneNotificationSettingsResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneNotificationSettingsResource -func NotificationSettings(clientInfo *connector.ClientInfo) *PingOneNotificationSettingsResource { - return &PingOneNotificationSettingsResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneNotificationSettingsResource) ResourceType() string { - return "pingone_notification_settings" -} - -func (r *PingOneNotificationSettingsResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - ok, err := r.checkNotificationSettingsData() - if err != nil { - return nil, err - } - if !ok { - return &importBlocks, nil - } - - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: r.ResourceType(), - ResourceID: r.clientInfo.PingOneExportEnvironmentID, - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - - return &importBlocks, nil -} - -func (r *PingOneNotificationSettingsResource) checkNotificationSettingsData() (bool, error) { - _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsSettingsApi.ReadNotificationsSettings(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - return common.CheckSingletonResource(response, err, "ReadNotificationsSettings", r.ResourceType()) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_notification_settings_email.go b/internal/connector/pingone/platform/resources_old/pingone_notification_settings_email.go deleted file mode 100644 index 48e0bb4a..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_notification_settings_email.go +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneNotificationSettingsEmailResource{} -) - -type PingOneNotificationSettingsEmailResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneNotificationSettingsEmailResource -func NotificationSettingsEmail(clientInfo *connector.ClientInfo) *PingOneNotificationSettingsEmailResource { - return &PingOneNotificationSettingsEmailResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneNotificationSettingsEmailResource) ResourceType() string { - return "pingone_notification_settings_email" -} - -func (r *PingOneNotificationSettingsEmailResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - ok, err := r.checkNotificationSettingsEmailData() - if err != nil { - return nil, err - } - if !ok { - return &importBlocks, nil - } - - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: r.ResourceType(), - ResourceID: r.clientInfo.PingOneExportEnvironmentID, - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - - return &importBlocks, nil -} - -func (r *PingOneNotificationSettingsEmailResource) checkNotificationSettingsEmailData() (bool, error) { - _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsSettingsSMTPApi.ReadEmailNotificationsSettings(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - return common.CheckSingletonResource(response, err, "ReadEmailNotificationsSettings", r.ResourceType()) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_notification_settings_email_test.go b/internal/connector/pingone/platform/resources_old/pingone_notification_settings_email_test.go deleted file mode 100644 index de076481..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_notification_settings_email_test.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestNotificationSettingsEmailExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.NotificationSettingsEmail(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_notification_settings_email", - ResourceName: "pingone_notification_settings_email", - ResourceID: clientInfo.PingOneExportEnvironmentID, - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_notification_settings_test.go b/internal/connector/pingone/platform/resources_old/pingone_notification_settings_test.go deleted file mode 100644 index e1985829..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_notification_settings_test.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestNotificationSettingsExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.NotificationSettings(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_notification_settings", - ResourceName: "pingone_notification_settings", - ResourceID: clientInfo.PingOneExportEnvironmentID, - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_notification_template_content.go b/internal/connector/pingone/platform/resources_old/pingone_notification_template_content.go deleted file mode 100644 index 75812923..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_notification_template_content.go +++ /dev/null @@ -1,219 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - "io" - "strings" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" - "github.com/pingidentity/pingcli/internal/output" -) - -type NotificationTemplateContentData struct { - TemplateContentId string - TemplateContentDeliveryMethod string - TemplateContentLocale string - TemplateContentVariant string -} - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneNotificationTemplateContentResource{} -) - -type PingOneNotificationTemplateContentResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneNotificationTemplateContentResource -func NotificationTemplateContent(clientInfo *connector.ClientInfo) *PingOneNotificationTemplateContentResource { - return &PingOneNotificationTemplateContentResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneNotificationTemplateContentResource) ResourceType() string { - return "pingone_notification_template_content" -} - -func (r *PingOneNotificationTemplateContentResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - enabledLocales, err := r.getEnabledLocales() - if err != nil { - return nil, err - } - - templateNames, err := r.getTemplateNames() - if err != nil { - return nil, err - } - - for _, templateName := range templateNames { - templateContentData, err := r.getTemplateContentData(templateName) - if err != nil { - return nil, err - } - - for _, templateContentInfo := range templateContentData { - templateContentId := templateContentInfo.TemplateContentId - templateContentDeliveryMethod := templateContentInfo.TemplateContentDeliveryMethod - templateContentLocale := templateContentInfo.TemplateContentLocale - templateContentVariant := templateContentInfo.TemplateContentVariant - - // Only export template content if the locale is enabled - if enabledLocales[templateContentLocale] { - commentData := map[string]string{ - "Resource Type": r.ResourceType(), - "Template Name": string(templateName), - "Template Content Delivery Method": templateContentDeliveryMethod, - "Template Content Locale": templateContentLocale, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Template Content ID": templateContentId, - } - - if templateContentVariant != "" { - commentData["Template Content Variant"] = templateContentVariant - templateContentVariant = fmt.Sprintf("_%s", templateContentVariant) - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s_%s%s", string(templateName), templateContentDeliveryMethod, templateContentLocale, templateContentVariant), - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, string(templateName), templateContentId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - } - } - - return &importBlocks, nil -} - -func (r *PingOneNotificationTemplateContentResource) getEnabledLocales() (map[string]bool, error) { - enabledLocales := make(map[string]bool) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.LanguagesApi.ReadLanguages(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - languageInners, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedLanguagesInner](iter, "ReadLanguages", "GetLanguages", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, languageInner := range languageInners { - if languageInner.Language != nil { - languageLocale, languageLocaleOk := languageInner.Language.GetLocaleOk() - languageEnabled, languageEnabledOk := languageInner.Language.GetEnabledOk() - - if languageLocaleOk && languageEnabledOk && *languageEnabled { - enabledLocales[*languageLocale] = true - } - } - } - - return enabledLocales, nil -} - -func (r *PingOneNotificationTemplateContentResource) getTemplateNames() ([]management.EnumTemplateName, error) { - templateNames := []management.EnumTemplateName{} - - for _, templateName := range management.AllowedEnumTemplateNameEnumValues { - _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsTemplatesApi.ReadOneTemplate(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, templateName).Execute() - // When PingOne services are not enabled in an environment, - // the response code for the templates related to that service is - // 400 Bad Request - "CONSTRAINT_VIOLATION" - if err != nil && response.StatusCode == 400 && response.Status == "400 Bad Request" { - defer response.Body.Close() - body, err := io.ReadAll(response.Body) - if err != nil { - return nil, err - } - - if strings.Contains(string(body), "CONSTRAINT_VIOLATION") { - continue - } - } - - // Handle all other errors or bad responses - ok, err := common.HandleClientResponse(response, err, "ReadOneTemplate", r.ResourceType()) - if err != nil { - return nil, err - } - if !ok { - return nil, nil - } - - templateNames = append(templateNames, templateName) - } - - return templateNames, nil -} - -func (r *PingOneNotificationTemplateContentResource) getTemplateContentData(templateName management.EnumTemplateName) ([]NotificationTemplateContentData, error) { - templateContentData := []NotificationTemplateContentData{} - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsTemplatesApi.ReadAllTemplateContents(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, templateName).Execute() - templateContents, err := pingone.GetManagementAPIObjectsFromIterator[management.TemplateContent](iter, "ReadAllTemplateContents", "GetContents", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, templateContent := range templateContents { - var ( - templateContentId *string - templateContentIdOk bool - templateContentDeliveryMethod *management.EnumTemplateContentDeliveryMethod - templateContentDeliveryMethodOk bool - templateContentLocale *string - templateContentLocaleOk bool - templateContentVariant string - ) - - switch { - case templateContent.TemplateContentPush != nil: - templateContentId, templateContentIdOk = templateContent.TemplateContentPush.GetIdOk() - templateContentDeliveryMethod, templateContentDeliveryMethodOk = templateContent.TemplateContentPush.GetDeliveryMethodOk() - templateContentLocale, templateContentLocaleOk = templateContent.TemplateContentPush.GetLocaleOk() - templateContentVariant = templateContent.TemplateContentPush.GetVariant() - case templateContent.TemplateContentSMS != nil: - templateContentId, templateContentIdOk = templateContent.TemplateContentSMS.GetIdOk() - templateContentDeliveryMethod, templateContentDeliveryMethodOk = templateContent.TemplateContentSMS.GetDeliveryMethodOk() - templateContentLocale, templateContentLocaleOk = templateContent.TemplateContentSMS.GetLocaleOk() - templateContentVariant = templateContent.TemplateContentSMS.GetVariant() - case templateContent.TemplateContentEmail != nil: - templateContentId, templateContentIdOk = templateContent.TemplateContentEmail.GetIdOk() - templateContentDeliveryMethod, templateContentDeliveryMethodOk = templateContent.TemplateContentEmail.GetDeliveryMethodOk() - templateContentLocale, templateContentLocaleOk = templateContent.TemplateContentEmail.GetLocaleOk() - templateContentVariant = templateContent.TemplateContentEmail.GetVariant() - case templateContent.TemplateContentVoice != nil: - templateContentId, templateContentIdOk = templateContent.TemplateContentVoice.GetIdOk() - templateContentDeliveryMethod, templateContentDeliveryMethodOk = templateContent.TemplateContentVoice.GetDeliveryMethodOk() - templateContentLocale, templateContentLocaleOk = templateContent.TemplateContentVoice.GetLocaleOk() - templateContentVariant = templateContent.TemplateContentVoice.GetVariant() - default: - output.Warn(fmt.Sprintf("Template content '%v' for template '%s' is not one of: Push, SMS, Email, or Voice. Skipping export.", templateContent, templateName), nil) - continue - } - - if templateContentIdOk && templateContentDeliveryMethodOk && templateContentLocaleOk { - templateContentData = append(templateContentData, NotificationTemplateContentData{ - TemplateContentId: *templateContentId, - TemplateContentDeliveryMethod: string(*templateContentDeliveryMethod), - TemplateContentLocale: *templateContentLocale, - TemplateContentVariant: templateContentVariant, - }) - } - } - - return templateContentData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_notification_template_content_test.go b/internal/connector/pingone/platform/resources_old/pingone_notification_template_content_test.go deleted file mode 100644 index 80f4083c..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_notification_template_content_test.go +++ /dev/null @@ -1,262 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestNotificationTemplateContentExport(t *testing.T) { - // TODO remove this skip dependent upon STAGING-25369 - t.SkipNow() - - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.NotificationTemplateContent(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_notification_template_content", - ResourceName: "device_pairing_email_en_625d98de_9f2d_4e1b_8417_d0ba139d36b2", - ResourceID: fmt.Sprintf("%s/device_pairing/625d98de-9f2d-4e1b-8417-d0ba139d36b2", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "device_pairing_sms_en_d4ca6154_bf87_4201_825b_6a1fecbd66ac", - ResourceID: fmt.Sprintf("%s/device_pairing/d4ca6154-bf87-4201-825b-6a1fecbd66ac", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "device_pairing_voice_en_d4ed6d8d_1b54_4903_970f_1c9896eed55d", - ResourceID: fmt.Sprintf("%s/device_pairing/d4ed6d8d-1b54-4903-970f-1c9896eed55d", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "device_pairing_email_en_2acfe36d_065c_465e_be21_cb95e46cee45", - ResourceID: fmt.Sprintf("%s/device_pairing/2acfe36d-065c-465e-be21-cb95e46cee45", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "device_pairing_voice_fr_f50e80bc_e84d_7124_0db5_4fd4cf72d7c9", - ResourceID: fmt.Sprintf("%s/device_pairing/f50e80bc-e84d-7124-0db5-4fd4cf72d7c9", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "device_pairing_email_fr_a0a13d00_a249_7ad1_3f7e_b6ba77a55955", - ResourceID: fmt.Sprintf("%s/device_pairing/a0a13d00-a249-7ad1-3f7e-b6ba77a55955", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "device_pairing_sms_fr_c21bda2c_64b4_7025_2c83_d04d0f72077f", - ResourceID: fmt.Sprintf("%s/device_pairing/c21bda2c-64b4-7025-2c83-d04d0f72077f", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "device_pairing_email_en_14651a6a_945b_725b_321f_e13cbe0fd9c6", - ResourceID: fmt.Sprintf("%s/device_pairing/14651a6a-945b-725b-321f-e13cbe0fd9c6", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "device_pairing_sms_en_f67b076d_bb78_4cbd_b945_f721be9c88f6", - ResourceID: fmt.Sprintf("%s/device_pairing/f67b076d-bb78-4cbd-b945-f721be9c88f6", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "device_pairing_voice_en_56b27d33_0110_7670_2c16_f0fca48b6340", - ResourceID: fmt.Sprintf("%s/device_pairing/56b27d33-0110-7670-2c16-f0fca48b6340", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "device_pairing_voice_en_d02693ae_8809_4a7f_a7f9_da9f272c8096", - ResourceID: fmt.Sprintf("%s/device_pairing/d02693ae-8809-4a7f-a7f9-da9f272c8096", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "device_pairing_sms_en_2512b56d_e14d_7cbd_3667_e1663d44fa41", - ResourceID: fmt.Sprintf("%s/device_pairing/2512b56d-e14d-7cbd-3667-e1663d44fa41", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "email_verification_admin_email_en_b130f9a6_a422_72c0_3afa_105d5f8fbb88", - ResourceID: fmt.Sprintf("%s/email_verification_admin/b130f9a6-a422-72c0-3afa-105d5f8fbb88", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "email_verification_user_email_en_5eda6f7b_59c6_7c22_3348_9821179c2b37", - ResourceID: fmt.Sprintf("%s/email_verification_user/5eda6f7b-59c6-7c22-3348-9821179c2b37", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "general_sms_fr_63501c32_723c_7d4c_1f93_4e3c8c0cb292", - ResourceID: fmt.Sprintf("%s/general/63501c32-723c-7d4c-1f93-4e3c8c0cb292", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "general_email_en_92adace7_5056_7d40_1c7e_adc71e57cc3f", - ResourceID: fmt.Sprintf("%s/general/92adace7-5056-7d40-1c7e-adc71e57cc3f", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "general_sms_en_1dd4c1a3_802b_70c0_3d10_5524eb9defc7", - ResourceID: fmt.Sprintf("%s/general/1dd4c1a3-802b-70c0-3d10-5524eb9defc7", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "general_voice_en_72618f82_18ed_7b7c_19ac_0b5899d92f0c", - ResourceID: fmt.Sprintf("%s/general/72618f82-18ed-7b7c-19ac-0b5899d92f0c", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "general_email_fr_28524b17_b60b_7fa2_131d_59816ac19864", - ResourceID: fmt.Sprintf("%s/general/28524b17-b60b-7fa2-131d-59816ac19864", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "general_voice_fr_831e9b77_5a05_7ed1_0fa6_c8cb637b5904", - ResourceID: fmt.Sprintf("%s/general/831e9b77-5a05-7ed1-0fa6-c8cb637b5904", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "new_device_paired_email_fr_a7c11013_ca70_7071_3955_d647568f95d2", - ResourceID: fmt.Sprintf("%s/new_device_paired/a7c11013-ca70-7071-3955-d647568f95d2", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "new_device_paired_email_en_995558d3_39a9_72bf_32a6_e3c1e395aa1f", - ResourceID: fmt.Sprintf("%s/new_device_paired/995558d3-39a9-72bf-32a6-e3c1e395aa1f", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "new_device_paired_sms_fr_a5dacd1c_c395_74ab_216f_a17037b22cf6", - ResourceID: fmt.Sprintf("%s/new_device_paired/a5dacd1c-c395-74ab-216f-a17037b22cf6", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "new_device_paired_sms_en_daef917c_3695_7347_1ed0_bb03d80198c2", - ResourceID: fmt.Sprintf("%s/new_device_paired/daef917c-3695-7347-1ed0-bb03d80198c2", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "recovery_code_template_email_fr_c558cd3c_eb16_7158_38c3_d87fb2e320f0", - ResourceID: fmt.Sprintf("%s/recovery_code_template/c558cd3c-eb16-7158-38c3-d87fb2e320f0", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "recovery_code_template_email_en_dc6755cd_123b_71f6_2fe0_5b74d3789001", - ResourceID: fmt.Sprintf("%s/recovery_code_template/dc6755cd-123b-71f6-2fe0-5b74d3789001", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "strong_authentication_push_en_c6b2f1e9_fcde_4b64_b473_f5370219da76", - ResourceID: fmt.Sprintf("%s/strong_authentication/c6b2f1e9-fcde-4b64-b473-f5370219da76", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "strong_authentication_voice_fr_c6de3d50_d766_7533_25cf_bd28f72e2f86", - ResourceID: fmt.Sprintf("%s/strong_authentication/c6de3d50-d766-7533-25cf-bd28f72e2f86", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "strong_authentication_sms_en_5d2b94bc_d264_7f79_048f_a0f062f66d98", - ResourceID: fmt.Sprintf("%s/strong_authentication/5d2b94bc-d264-7f79-048f-a0f062f66d98", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "strong_authentication_push_en_b368bc5e_0815_7d16_178c_2631a620e00c", - ResourceID: fmt.Sprintf("%s/strong_authentication/b368bc5e-0815-7d16-178c-2631a620e00c", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "strong_authentication_email_fr_2e103d6d_af8e_70fa_282f_91821ed778fd", - ResourceID: fmt.Sprintf("%s/strong_authentication/2e103d6d-af8e-70fa-282f-91821ed778fd", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "strong_authentication_push_fr_d3d66f1b_b748_7afc_2d4b_a1daffd50a77", - ResourceID: fmt.Sprintf("%s/strong_authentication/d3d66f1b-b748-7afc-2d4b-a1daffd50a77", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "strong_authentication_voice_en_8a888c96_4cb9_7941_0c07_0a4e99a54a04", - ResourceID: fmt.Sprintf("%s/strong_authentication/8a888c96-4cb9-7941-0c07-0a4e99a54a04", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "strong_authentication_sms_en_41054e31_dacd_4591_a8c8_f44cbec6313f", - ResourceID: fmt.Sprintf("%s/strong_authentication/41054e31-dacd-4591-a8c8-f44cbec6313f", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "strong_authentication_sms_fr_807cd1a1_f3f8_7440_10f5_5f9cf944abb3", - ResourceID: fmt.Sprintf("%s/strong_authentication/807cd1a1-f3f8-7440-10f5-5f9cf944abb3", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "strong_authentication_email_en_e8539132_48c6_7061_1309_f33e99599a3e", - ResourceID: fmt.Sprintf("%s/strong_authentication/e8539132-48c6-7061-1309-f33e99599a3e", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "strong_authentication_email_en_d1235c66_48c6_46ae_ae6d_599513ab26d7", - ResourceID: fmt.Sprintf("%s/strong_authentication/d1235c66-48c6-46ae-ae6d-599513ab26d7", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "transaction_push_fr_453937a6_e95b_78b9_0d13_be9e17cdda89", - ResourceID: fmt.Sprintf("%s/transaction/453937a6-e95b-78b9-0d13-be9e17cdda89", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "transaction_sms_fr_10458132_7361_7d6b_3e42_04128ae31625", - ResourceID: fmt.Sprintf("%s/transaction/10458132-7361-7d6b-3e42-04128ae31625", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "transaction_voice_en_b2509f63_c86c_7f76_0fea_52472af67df2", - ResourceID: fmt.Sprintf("%s/transaction/b2509f63-c86c-7f76-0fea-52472af67df2", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "transaction_email_fr_1953c10e_53a9_7c44_13eb_560823acacf6", - ResourceID: fmt.Sprintf("%s/transaction/1953c10e-53a9-7c44-13eb-560823acacf6", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "transaction_push_en_926802db_4abb_7369_249a_ff3c63c6a7d1", - ResourceID: fmt.Sprintf("%s/transaction/926802db-4abb-7369-249a-ff3c63c6a7d1", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "transaction_email_en_996806a7_0c4e_744c_117b_6312e08225d3", - ResourceID: fmt.Sprintf("%s/transaction/996806a7-0c4e-744c-117b-6312e08225d3", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "transaction_sms_en_d9751d12_2f37_7d6e_3cc4_33368770f6da", - ResourceID: fmt.Sprintf("%s/transaction/d9751d12-2f37-7d6e-3cc4-33368770f6da", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "transaction_voice_fr_0db4c9f4_c1d6_7adf_1870_22f70f5e95a1", - ResourceID: fmt.Sprintf("%s/transaction/0db4c9f4-c1d6-7adf-1870-22f70f5e95a1", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "verification_code_template_email_fr_03bdf108_c71d_74fb_28e8_143f22b98125", - ResourceID: fmt.Sprintf("%s/verification_code_template/03bdf108-c71d-74fb-28e8-143f22b98125", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_notification_template_content", - ResourceName: "verification_code_template_email_en_93688f61_e554_736d_227d_ac8ee610c254", - ResourceID: fmt.Sprintf("%s/verification_code_template/93688f61-e554-736d-227d-ac8ee610c254", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_phone_delivery_settings.go b/internal/connector/pingone/platform/resources_old/pingone_phone_delivery_settings.go deleted file mode 100644 index d2b3b9cd..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_phone_delivery_settings.go +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOnePhoneDeliverySettingsResource{} -) - -type PingOnePhoneDeliverySettingsResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOnePhoneDeliverySettingsResource -func PhoneDeliverySettings(clientInfo *connector.ClientInfo) *PingOnePhoneDeliverySettingsResource { - return &PingOnePhoneDeliverySettingsResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOnePhoneDeliverySettingsResource) ResourceType() string { - return "pingone_phone_delivery_settings" -} - -func (r *PingOnePhoneDeliverySettingsResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - phoneDeliverySettingsData, err := r.getPhoneDeliverySettingsData() - if err != nil { - return nil, err - } - - for phoneDeliverySettingsId, phoneDeliverySettingsName := range phoneDeliverySettingsData { - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Phone Delivery Settings ID": phoneDeliverySettingsId, - "Phone Delivery Settings Name": phoneDeliverySettingsName, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: phoneDeliverySettingsName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, phoneDeliverySettingsId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingOnePhoneDeliverySettingsResource) getPhoneDeliverySettingsData() (map[string]string, error) { - phoneDeliverySettingsData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.PhoneDeliverySettingsApi.ReadAllPhoneDeliverySettings(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - phoneDeliverySettings, err := pingone.GetManagementAPIObjectsFromIterator[management.NotificationsSettingsPhoneDeliverySettings](iter, "ReadAllPhoneDeliverySettings", "GetPhoneDeliverySettings", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, phoneDeliverySettings := range phoneDeliverySettings { - var ( - phoneDeliverySettingsId *string - phoneDeliverySettingsIdOk bool - phoneDeliverySettingsName string - phoneDeliverySettingsNameOk bool - ) - - switch { - case phoneDeliverySettings.NotificationsSettingsPhoneDeliverySettingsCustom != nil: - phoneDeliverySettingsId, phoneDeliverySettingsIdOk = phoneDeliverySettings.NotificationsSettingsPhoneDeliverySettingsCustom.GetIdOk() - if phoneDeliverySettingsIdOk { - phoneDeliverySettingsName, phoneDeliverySettingsNameOk = fmt.Sprintf("provider_custom_%s", *phoneDeliverySettingsId), true - } - case phoneDeliverySettings.NotificationsSettingsPhoneDeliverySettingsTwilioSyniverse != nil: - phoneDeliverySettingsId, phoneDeliverySettingsIdOk = phoneDeliverySettings.NotificationsSettingsPhoneDeliverySettingsTwilioSyniverse.GetIdOk() - phoneDeliverySettingsProvider, phoneDeliverySettingProviderOk := phoneDeliverySettings.NotificationsSettingsPhoneDeliverySettingsTwilioSyniverse.GetProviderOk() - if phoneDeliverySettingsIdOk && phoneDeliverySettingProviderOk { - switch *phoneDeliverySettingsProvider { - case management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSPROVIDER_TWILIO: - phoneDeliverySettingsName, phoneDeliverySettingsNameOk = fmt.Sprintf("provider_twilio_%s", *phoneDeliverySettingsId), true - case management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSPROVIDER_SYNIVERSE: - phoneDeliverySettingsName, phoneDeliverySettingsNameOk = fmt.Sprintf("provider_syniverse_%s", *phoneDeliverySettingsId), true - default: - continue - } - } - default: - continue - } - - if phoneDeliverySettingsIdOk && phoneDeliverySettingsNameOk { - phoneDeliverySettingsData[*phoneDeliverySettingsId] = phoneDeliverySettingsName - } - } - - return phoneDeliverySettingsData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_phone_delivery_settings_test.go b/internal/connector/pingone/platform/resources_old/pingone_phone_delivery_settings_test.go deleted file mode 100644 index 45aeb8a9..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_phone_delivery_settings_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestPhoneDeliverySettingsExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.PhoneDeliverySettings(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_phone_delivery_settings", - ResourceName: "provider_custom_eb90b2a5-a801-45b3-8bf4-7d06cb6a5374", - ResourceID: fmt.Sprintf("%s/eb90b2a5-a801-45b3-8bf4-7d06cb6a5374", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_system_application_test.go b/internal/connector/pingone/platform/resources_old/pingone_system_application_test.go deleted file mode 100644 index 0a1bee3b..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_system_application_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestSystemApplicationExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.SystemApplication(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_system_application", - ResourceName: "PingOne Application Portal", - ResourceID: fmt.Sprintf("%s/92a3765c-e135-4afa-8b12-4469672ac8a9", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_system_application", - ResourceName: "PingOne Self-Service - MyAccount", - ResourceID: fmt.Sprintf("%s/4ce54d01-5138-4c56-8175-4f02f69278f5", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_trusted_email_address.go b/internal/connector/pingone/platform/resources_old/pingone_trusted_email_address.go deleted file mode 100644 index a4e35305..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_trusted_email_address.go +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneTrustedEmailAddressResource{} -) - -type PingOneTrustedEmailAddressResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneTrustedEmailAddressResource -func TrustedEmailAddress(clientInfo *connector.ClientInfo) *PingOneTrustedEmailAddressResource { - return &PingOneTrustedEmailAddressResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneTrustedEmailAddressResource) ResourceType() string { - return "pingone_trusted_email_address" -} - -func (r *PingOneTrustedEmailAddressResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - trustedEmailDomainData, err := r.getTrustedEmailDomainData() - if err != nil { - return nil, err - } - - for trustedEmailDomainId, trustedEmailDomainName := range trustedEmailDomainData { - trustedEmailAddressData, err := r.getTrustedEmailAddressData(trustedEmailDomainId) - if err != nil { - return nil, err - } - - for trustedEmailId, trustedEmailAddress := range trustedEmailAddressData { - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - "Trusted Email Address": trustedEmailAddress, - "Trusted Email Address ID": trustedEmailId, - "Trusted Email Domain ID": trustedEmailDomainId, - "Trusted Email Domain Name": trustedEmailDomainName, - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", trustedEmailDomainName, trustedEmailAddress), - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, trustedEmailDomainId, trustedEmailId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - } - - return &importBlocks, nil -} - -func (r *PingOneTrustedEmailAddressResource) getTrustedEmailDomainData() (map[string]string, error) { - trustedEmailDomainData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailDomainsApi.ReadAllTrustedEmailDomains(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - trustedEmailDomains, err := pingone.GetManagementAPIObjectsFromIterator[management.EmailDomain](iter, "ReadAllTrustedEmailDomains", "GetEmailDomains", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, trustedEmailDomain := range trustedEmailDomains { - trustedEmailDomainId, trustedEmailDomainIdOk := trustedEmailDomain.GetIdOk() - trustedEmailDomainName, trustedEmailDomainNameOk := trustedEmailDomain.GetDomainNameOk() - - if trustedEmailDomainIdOk && trustedEmailDomainNameOk { - trustedEmailDomainData[*trustedEmailDomainId] = *trustedEmailDomainName - } - } - - return trustedEmailDomainData, nil -} - -func (r *PingOneTrustedEmailAddressResource) getTrustedEmailAddressData(trustedEmailDomainId string) (map[string]string, error) { - trustedEmailAddressData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailAddressesApi.ReadAllTrustedEmailAddresses(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, trustedEmailDomainId).Execute() - trustedEmailAddresses, err := pingone.GetManagementAPIObjectsFromIterator[management.EmailDomainTrustedEmail](iter, "ReadAllTrustedEmailAddresses", "GetTrustedEmails", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, trustedEmail := range trustedEmailAddresses { - trustedEmailAddress, trustedEmailAddressOk := trustedEmail.GetEmailAddressOk() - trustedEmailId, trustedEmailIdOk := trustedEmail.GetIdOk() - - if trustedEmailAddressOk && trustedEmailIdOk { - trustedEmailAddressData[*trustedEmailId] = *trustedEmailAddress - } - } - - return trustedEmailAddressData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_trusted_email_address_test.go b/internal/connector/pingone/platform/resources_old/pingone_trusted_email_address_test.go deleted file mode 100644 index 79895f6d..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_trusted_email_address_test.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestTrustedEmailAddressExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.TrustedEmailAddress(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{} - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_trusted_email_domain.go b/internal/connector/pingone/platform/resources_old/pingone_trusted_email_domain.go deleted file mode 100644 index 82f07cda..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_trusted_email_domain.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneTrustedEmailDomainResource{} -) - -type PingOneTrustedEmailDomainResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOne Trusted Email Domain Resource -func TrustedEmailDomain(clientInfo *connector.ClientInfo) *PingOneTrustedEmailDomainResource { - return &PingOneTrustedEmailDomainResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneTrustedEmailDomainResource) ResourceType() string { - return "pingone_trusted_email_domain" -} - -func (r *PingOneTrustedEmailDomainResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - trustedEmailDomainData, err := r.getTrustedEmailDomainData() - if err != nil { - return nil, err - } - - for trustedEmailDomainId, trustedEmailDomainName := range trustedEmailDomainData { - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - "Trusted Email Domain ID": trustedEmailDomainId, - "Trusted Email Domain Name": trustedEmailDomainName, - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: trustedEmailDomainName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, trustedEmailDomainId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingOneTrustedEmailDomainResource) getTrustedEmailDomainData() (map[string]string, error) { - trustedEmailDomainData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailDomainsApi.ReadAllTrustedEmailDomains(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - trustedEmailDomains, err := pingone.GetManagementAPIObjectsFromIterator[management.EmailDomain](iter, "ReadAllTrustedEmailDomains", "GetEmailDomains", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, trustedEmailDomain := range trustedEmailDomains { - trustedEmailDomainId, trustedEmailDomainIdOk := trustedEmailDomain.GetIdOk() - trustedEmailDomainName, trustedEmailDomainNameOk := trustedEmailDomain.GetDomainNameOk() - - if trustedEmailDomainIdOk && trustedEmailDomainNameOk { - trustedEmailDomainData[*trustedEmailDomainId] = *trustedEmailDomainName - } - } - - return trustedEmailDomainData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_trusted_email_domain_test.go b/internal/connector/pingone/platform/resources_old/pingone_trusted_email_domain_test.go deleted file mode 100644 index 49f1659b..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_trusted_email_domain_test.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestTrustedEmailDomainExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.TrustedEmailDomain(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_trusted_email_domain", - ResourceName: "test.customdomain.com", - ResourceID: fmt.Sprintf("%s/47efb375-e9e8-40dc-b1ce-8598bf7b4aea", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_trusted_email_domain", - ResourceName: "test.pingidentity.com", - ResourceID: fmt.Sprintf("%s/ff26c5c9-2e87-46d4-9cb0-077d162c7bcb", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_trusted_email_domain", - ResourceName: "demo.bxretail.org", - ResourceID: fmt.Sprintf("%s/49f94864-f9c7-4778-ae37-839c2c546d1c", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_trusted_email_domain", - ResourceName: "pioneerpalaceband.com", - ResourceID: fmt.Sprintf("%s/63d645d1-046a-4d53-a267-513cfc1d4213", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_webhook.go b/internal/connector/pingone/platform/resources_old/pingone_webhook.go deleted file mode 100644 index d171d1d1..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_webhook.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneWebhookResource{} -) - -type PingOneWebhookResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneWebhookResource -func Webhook(clientInfo *connector.ClientInfo) *PingOneWebhookResource { - return &PingOneWebhookResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneWebhookResource) ResourceType() string { - return "pingone_webhook" -} - -func (r *PingOneWebhookResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - subscriptionData, err := r.getSubscriptionData() - if err != nil { - return nil, err - } - - for subscriptionId, subscriptionName := range subscriptionData { - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - "Webhook ID": subscriptionId, - "Webhook Name": subscriptionName, - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: subscriptionName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, subscriptionId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingOneWebhookResource) getSubscriptionData() (map[string]string, error) { - subscriptionData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.SubscriptionsWebhooksApi.ReadAllSubscriptions(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - subscriptions, err := pingone.GetManagementAPIObjectsFromIterator[management.Subscription](iter, "ReadAllSubscriptions", "GetSubscriptions", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, subscription := range subscriptions { - subscriptionId, subscriptionIdOk := subscription.GetIdOk() - subscriptionName, subscriptionNameOk := subscription.GetNameOk() - - if subscriptionIdOk && subscriptionNameOk { - subscriptionData[*subscriptionId] = *subscriptionName - } - } - - return subscriptionData, nil -} diff --git a/internal/connector/pingone/platform/resources_old/pingone_webhook_test.go b/internal/connector/pingone/platform/resources_old/pingone_webhook_test.go deleted file mode 100644 index 5f6668f1..00000000 --- a/internal/connector/pingone/platform/resources_old/pingone_webhook_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestWebhookExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.Webhook(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_webhook", - ResourceName: "Test Webhook", - ResourceID: fmt.Sprintf("%s/e50056fe-6571-46bc-aee1-e70f702c8b74", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/testing/testutils/utils.go b/internal/testing/testutils/utils.go index 5e725d32..32f29bd7 100644 --- a/internal/testing/testutils/utils.go +++ b/internal/testing/testutils/utils.go @@ -116,7 +116,7 @@ func initPingOneClientInfo(t *testing.T, clientInfo *connector.ClientInfo) { clientInfo.PingOneExportEnvironmentID = environmentId } -func ValidateImportBlocks(t *testing.T, resource connector.ExportableResource, expectedImportBlocks *[]connector.ImportBlock) { +func getValidatedActualImportBlocks(t *testing.T, resource connector.ExportableResource) *[]connector.ImportBlock { t.Helper() importBlocks, err := resource.ExportAll() @@ -139,34 +139,102 @@ func ValidateImportBlocks(t *testing.T, resource connector.ExportableResource, e resourceIDs[importBlock.ResourceID] = true } + return importBlocks +} + +func getValidatedExpectedImportBlocks(t *testing.T, expectedImportBlocks *[]connector.ImportBlock) *[]connector.ImportBlock { + t.Helper() + // Check if provided pointer to expected import blocks is nil, and created an empty slice if so. if expectedImportBlocks == nil { expectedImportBlocks = &[]connector.ImportBlock{} } + // Make sure the resource name and id in each import block is unique across all import blocks + resourceNames := map[string]bool{} + resourceIDs := map[string]bool{} + for _, importBlock := range *expectedImportBlocks { + if resourceNames[importBlock.ResourceName] { + t.Errorf("Resource name %s is not unique", importBlock.ResourceName) + } + resourceNames[importBlock.ResourceName] = true + + if resourceIDs[importBlock.ResourceID] { + t.Errorf("Resource ID %s is not unique", importBlock.ResourceID) + } + resourceIDs[importBlock.ResourceID] = true + } + + return expectedImportBlocks +} + +func ValidateImportBlocks(t *testing.T, resource connector.ExportableResource, expectedImportBlocks *[]connector.ImportBlock) { + t.Helper() + + actualImportBlocks := getValidatedActualImportBlocks(t, resource) + expectedImportBlocks = getValidatedExpectedImportBlocks(t, expectedImportBlocks) + expectedImportBlocksMap := map[string]connector.ImportBlock{} for _, importBlock := range *expectedImportBlocks { expectedImportBlocksMap[importBlock.ResourceName] = importBlock } // Check number of export blocks - expectedNumberOfBlocks := len(expectedImportBlocksMap) - actualNumberOfBlocks := len(*importBlocks) + expectedNumberOfBlocks := len(*expectedImportBlocks) + actualNumberOfBlocks := len(*actualImportBlocks) if actualNumberOfBlocks != expectedNumberOfBlocks { t.Fatalf("Expected %d import blocks, got %d", expectedNumberOfBlocks, actualNumberOfBlocks) } // Make sure the import blocks match the expected import blocks - for _, importBlock := range *importBlocks { - expectedImportBlock, ok := expectedImportBlocksMap[importBlock.ResourceName] + for _, actualImportBlock := range *actualImportBlocks { + expectedImportBlock, ok := expectedImportBlocksMap[actualImportBlock.ResourceName] + + if !ok { + t.Errorf("No matching expected import block for generated import block:\n%s", actualImportBlock.String()) + continue + } + + if !actualImportBlock.Equals(expectedImportBlock) { + t.Errorf("Expected import block \n%s\n Got import block \n%s", expectedImportBlock.String(), actualImportBlock.String()) + } + } +} + +// Similar to ValidateImportBlocks, but only checks if the expectedImportBlocks are a subset of the actual import blocks. +// This is useful for resources that have pre-configured resources that are not created by the test. +func ValidateImportBlockSubset(t *testing.T, resource connector.ExportableResource, expectedImportBlocks *[]connector.ImportBlock) { + t.Helper() + + actualImportBlocks := getValidatedActualImportBlocks(t, resource) + expectedImportBlocks = getValidatedExpectedImportBlocks(t, expectedImportBlocks) + + actualImportBlocksMap := map[string]connector.ImportBlock{} + for _, importBlock := range *actualImportBlocks { + actualImportBlocksMap[importBlock.ResourceName] = importBlock + } + + // Check number of export blocks + expectedNumberOfBlocks := len(*expectedImportBlocks) + actualNumberOfBlocks := len(*actualImportBlocks) + if actualNumberOfBlocks < expectedNumberOfBlocks { + t.Fatalf("Expected import blocks count (%d) is greater than Actual import blocks count (%d)", expectedNumberOfBlocks, actualNumberOfBlocks) + } + if expectedNumberOfBlocks == 0 { + t.Fatalf("Expected import blocks count is 0") + } + + // For each expected import block, make sure it matches an actual import block + for _, expectedImportBlock := range *expectedImportBlocks { + actualImportBlock, ok := actualImportBlocksMap[expectedImportBlock.ResourceName] if !ok { - t.Errorf("No matching expected import block for generated import block:\n%s", importBlock.String()) + t.Errorf("No matching actual import block for expected import block:\n%s", expectedImportBlock.String()) continue } - if !importBlock.Equals(expectedImportBlock) { - t.Errorf("Expected import block \n%s\n Got import block \n%s", expectedImportBlock.String(), importBlock.String()) + if !actualImportBlock.Equals(expectedImportBlock) { + t.Errorf("Expected import block \n%s\n Got import block \n%s", expectedImportBlock.String(), actualImportBlock.String()) } } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/agreement_enable.go b/internal/testing/testutils_resource/pingone_testable_resources/agreement_enable.go new file mode 100644 index 00000000..42b93e6a --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/agreement_enable.go @@ -0,0 +1,26 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func AgreementEnable(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: nil, + DeleteFunc: nil, + Dependencies: []*testutils_resource.TestableResource{ + Agreement(t, clientInfo), + }, + ExportableResource: resources.AgreementEnable(clientInfo), + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_enable.go b/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_enable.go new file mode 100644 index 00000000..8b58161f --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_enable.go @@ -0,0 +1,26 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func AgreementLocalizationEnable(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: nil, + DeleteFunc: nil, + Dependencies: []*testutils_resource.TestableResource{ + AgreementLocalization(t, clientInfo), + }, + ExportableResource: resources.AgreementLocalizationEnable(clientInfo), + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go b/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go index 290d034a..8420cd40 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go @@ -48,6 +48,7 @@ func createAgreementLocalizationRevision(t *testing.T, clientInfo *connector.Cli }(), RequireReconsent: false, Text: "Test, test, test", + ContentType: "text/plain", } request = request.AgreementLanguageRevision(clientStruct) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/alert_channel.go b/internal/testing/testutils_resource/pingone_testable_resources/alert_channel.go new file mode 100644 index 00000000..97e32c82 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/alert_channel.go @@ -0,0 +1,89 @@ +// Copyright © 2025 Ping Identity Corporation + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func AlertChannel(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createAlertChannel, + DeleteFunc: deleteAlertChannel, + Dependencies: nil, + ExportableResource: resources.AlertChannel(clientInfo), + } +} + +func createAlertChannel(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createAlertChannel(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.AlertingApi.CreateAlertChannel(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.AlertChannel{ + ChannelType: management.ENUMALERTCHANNELTYPE_EMAIL, + AlertName: utils.Pointer("Cert Expired Alert"), + IncludeSeverities: []management.EnumAlertChannelSeverity{ + management.ENUMALERTCHANNELSEVERITY_ERROR, + }, + IncludeAlertTypes: []management.EnumAlertChannelAlertType{ + management.ENUMALERTCHANNELALERTTYPE_CERTIFICATE_EXPIRED, + }, + ExcludeAlertTypes: []management.EnumAlertChannelAlertType{}, + Addresses: []string{ + "example@example.com", + }, + } + + request = request.AlertChannel(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateAlertChannel", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: *resource.AlertName, + }, + } +} + +func deleteAlertChannel(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteAlertChannel(): %v", ids) + } + id := ids[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.AlertingApi.DeleteAlertChannel(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteAlertChannel", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/certificate.go b/internal/testing/testutils_resource/pingone_testable_resources/certificate.go index 13c9a4ce..7b68aadc 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/certificate.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/certificate.go @@ -40,7 +40,8 @@ func createCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceT t.Fatalf("Failed to create X509 certificate: %v", err) } - request.File(utils.Pointer([]byte(fileData))) + request = request.File(utils.Pointer([]byte(fileData))) + request = request.UsageType("SIGNING") resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateCertificateFromFile", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/form.go b/internal/testing/testutils_resource/pingone_testable_resources/form.go index 330297ab..fc2d9ab2 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/form.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/form.go @@ -35,44 +35,20 @@ func createForm(t *testing.T, clientInfo *connector.ClientInfo, resourceType str request := clientInfo.PingOneApiClient.ManagementAPIClient.FormManagementApi.CreateForm(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) clientStruct := management.Form{ - Name: "CustomFormName", - Description: utils.Pointer("Test Description - created via CREATE Custom Form request"), - Category: "CUSTOM", - Components: management.FormComponents{ - Fields: []management.FormField{ - { - FormFieldText: &management.FormFieldText{ - Position: management.FormFieldCommonPosition{Row: 0, Col: 0}, - Key: "field", - Label: "[{\"type\":\"paragraph\",\"children\":[{\"text\":\"\"},{\"type\":\"i18n\",\"key\":\"fields.user.email.label\",\"defaultTranslation\":\"Email Address\",\"inline\":true,\"children\":[{\"text\":\"\"}]},{\"text\":\"\"}]}]", - Required: utils.Pointer(true), - Validation: management.FormElementValidation{ - Type: utils.Pointer(management.ENUMFORMELEMENTVALIDATIONTYPE_NONE), - Regex: utils.Pointer(""), - ErrorMessage: utils.Pointer(""), - }, - AttributeDisabled: utils.Pointer(false), - }, - }, - { - FormFieldSubmitButton: &management.FormFieldSubmitButton{ - Position: management.FormFieldCommonPosition{Row: 1, Col: 0}, - Label: "[{\"type\":\"paragraph\",\"children\":[{\"text\":\"\"},{\"type\":\"i18n\",\"key\":\"button.text\",\"defaultTranslation\":\"Submit\",\"inline\":true,\"children\":[{\"text\":\"\"}]},{\"text\":\"\"}]}]", - }, - }, - }, - }, + Name: "TestFormName", + Description: utils.Pointer("TestFormDescription"), + Category: management.ENUMFORMCATEGORY_CUSTOM, Cols: utils.Pointer(int32(4)), MarkOptional: true, MarkRequired: false, TranslationMethod: utils.Pointer(management.ENUMFORMTRANSLATIONMETHOD_TRANSLATE), FieldTypes: []management.EnumFormFieldType{ - management.ENUMFORMFIELDTYPE_SUBMIT_BUTTON, + management.ENUMFORMFIELDTYPE_ERROR_DISPLAY, management.ENUMFORMFIELDTYPE_TEXT, + management.ENUMFORMFIELDTYPE_SUBMIT_BUTTON, }, LanguageBundle: &map[string]string{ - "fields.user.email.label": "Email Address", - "button.text": "Submit", + "button.text": "Submit", }, } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go b/internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go index 27d02195..11a27127 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go @@ -6,7 +6,9 @@ package pingone_testable_resources import ( "testing" + "github.com/patrickcping/pingone-go-sdk-v2/management" "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) @@ -16,9 +18,54 @@ func FormsRecaptchaV2(t *testing.T, clientInfo *connector.ClientInfo) *testutils return &testutils_resource.TestableResource{ ClientInfo: clientInfo, - CreateFunc: nil, - DeleteFunc: nil, + CreateFunc: createFormsRecaptchaV2, + DeleteFunc: deleteFormsRecaptchaV2, Dependencies: nil, ExportableResource: resources.FormsRecaptchaV2(clientInfo), } } + +func createFormsRecaptchaV2(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createFormsRecaptchaV2(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.RecaptchaConfigurationApi.UpdateRecaptchaConfiguration(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.RecaptchaConfiguration{ + SiteKey: "siteKey", + SecretKey: "secretKey", + } + + request = request.RecaptchaConfiguration(clientStruct) + + _, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "UpdateRecaptchaConfiguration", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceCreationInfo{ + DepIds: []string{}, + SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{}, + } +} + +func deleteFormsRecaptchaV2(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + request := clientInfo.PingOneApiClient.ManagementAPIClient.RecaptchaConfigurationApi.DeleteRecaptchaConfiguration(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteRecaptchaConfiguration", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go b/internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go index 680bc09c..34efbdbb 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go @@ -37,22 +37,33 @@ func createGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, gatewayId := strArgs[0] iter := clientInfo.PingOneApiClient.ManagementAPIClient.RolesApi.ReadAllRoles(clientInfo.PingOneContext).Execute() - roles, err := pingone.GetManagementAPIObjectsFromIterator[management.Role](iter, "ReadAllRoles", "GetRoles", resourceType) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedRolesInner](iter, "ReadAllRoles", "GetRoles", resourceType) if err != nil { t.Fatalf("Failed to execute PingOne client function\nError: %v", err) } - if len(roles) == 0 { - t.Fatalf("Failed to execute PingOne client function\n No built-in roles returned from ReadAllRoles()", err) + if len(apiObjs) == 0 { + t.Fatal("Failed to execute PingOne client function\n No built-in roles returned from ReadAllRoles()") } - // Use a random role - roleId := roles[0].Id - roleName := roles[0].Name + var ( + roleId string + roleName string + ) + + for _, role := range apiObjs { + if role.Role != nil { + if role.Role.Name != nil && *role.Role.Name == management.ENUMROLENAME_APPLICATION_OWNER { + roleId = *role.Role.Id + roleName = string(*role.Role.Name) + break + } + } + } request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewayRoleAssignmentsApi.CreateGatewayRoleAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, gatewayId) clientStruct := management.RoleAssignment{ Role: management.RoleAssignmentRole{ - Id: *roleId, + Id: roleId, }, Scope: management.RoleAssignmentScope{ Id: clientInfo.PingOneExportEnvironmentID, @@ -77,7 +88,7 @@ func createGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, }, SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, - testutils_resource.ENUM_NAME: string(*roleName), + testutils_resource.ENUM_NAME: roleName, }, } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/key.go b/internal/testing/testutils_resource/pingone_testable_resources/key.go index 0ffe7623..9fd5d246 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/key.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/key.go @@ -64,6 +64,7 @@ func createKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType stri SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, + testutils_resource.ENUM_TYPE: string(resource.UsageType), }, } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/langauge.go b/internal/testing/testutils_resource/pingone_testable_resources/language.go similarity index 68% rename from internal/testing/testutils_resource/pingone_testable_resources/langauge.go rename to internal/testing/testutils_resource/pingone_testable_resources/language.go index 0ed6b72c..fd6b7a12 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/langauge.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/language.go @@ -13,23 +13,23 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils_resource" ) -func Langauge(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { +func Language(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { t.Helper() return &testutils_resource.TestableResource{ ClientInfo: clientInfo, - CreateFunc: createLangauge, - DeleteFunc: deleteLangauge, + CreateFunc: createLanguage, + DeleteFunc: deleteLanguage, Dependencies: nil, - ExportableResource: resources.Langauge(clientInfo), + ExportableResource: resources.Language(clientInfo), } } -func createLangauge(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createLanguage(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createLangauge(): %v", strArgs) + t.Fatalf("Unexpected number of arguments provided to createLanguage(): %v", strArgs) } request := clientInfo.PingOneApiClient.ManagementAPIClient.LanguagesApi.CreateLanguage(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -48,6 +48,24 @@ func createLangauge(t *testing.T, clientInfo *connector.ClientInfo, resourceType t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } + // Enable the language + enableRequest := clientInfo.PingOneApiClient.ManagementAPIClient.LanguagesApi.UpdateLanguage(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, *resource.Id) + enabledClientStruct := management.Language{ + Enabled: true, + Locale: "fi", + } + + enableRequest = enableRequest.Language(enabledClientStruct) + + _, response, err = enableRequest.Execute() + ok, err = common.HandleClientResponse(response, err, "UpdateLanguage", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + return testutils_resource.ResourceCreationInfo{ DepIds: []string{}, SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ @@ -57,11 +75,11 @@ func createLangauge(t *testing.T, clientInfo *connector.ClientInfo, resourceType } } -func deleteLangauge(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { +func deleteLanguage(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteLangauge(): %v", ids) + t.Fatalf("Unexpected number of arguments provided to deleteLanguage(): %v", ids) } id := ids[0] diff --git a/internal/testing/testutils_resource/pingone_testable_resources/language_update.go b/internal/testing/testutils_resource/pingone_testable_resources/language_update.go new file mode 100644 index 00000000..627e8fad --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/language_update.go @@ -0,0 +1,26 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func LanguageUpdate(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: nil, + DeleteFunc: nil, + Dependencies: []*testutils_resource.TestableResource{ + Language(t, clientInfo), + }, + ExportableResource: resources.LanguageUpdate(clientInfo), + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go b/internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go index 44d22de9..6441b4e6 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go @@ -4,7 +4,6 @@ package pingone_testable_resources import ( - "strconv" "testing" "github.com/patrickcping/pingone-go-sdk-v2/management" @@ -61,9 +60,9 @@ func createNotificationTemplateContent(t *testing.T, clientInfo *connector.Clien SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.TemplateContentSMS.Id, testutils_resource.ENUM_NAME: string(management.ENUMTEMPLATENAME_STRONG_AUTHENTICATION), + testutils_resource.ENUM_LOCALE: resource.TemplateContentSMS.Locale, testutils_resource.ENUM_TEMPLATE_VARIANT: *resource.TemplateContentSMS.Variant, testutils_resource.ENUM_TEMPLATE_DELIVERY_METHOD: string(resource.TemplateContentSMS.DeliveryMethod), - testutils_resource.ENUM_TEMPLATE_DEFAULT: strconv.FormatBool(*resource.TemplateContentSMS.Default), }, } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go b/internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go index d4c72151..f75cd760 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go @@ -36,7 +36,8 @@ func createPhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo, request := clientInfo.PingOneApiClient.ManagementAPIClient.PhoneDeliverySettingsApi.CreatePhoneDeliverySettings(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) clientStruct := management.NotificationsSettingsPhoneDeliverySettings{ NotificationsSettingsPhoneDeliverySettingsCustom: &management.NotificationsSettingsPhoneDeliverySettingsCustom{ - Name: "CustomProviderName1", + Provider: management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSPROVIDER_PROVIDER, + Name: "CustomProviderName1", Authentication: management.NotificationsSettingsPhoneDeliverySettingsCustomAllOfAuthentication{ Method: management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMAUTHMETHOD_BASIC, Username: utils.Pointer("testUsername"), @@ -47,21 +48,29 @@ func createPhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo, DeliveryMethod: management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMDELIVERYMETHOD_SMS, Url: "https://example.com/message", Method: management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMREQUESTMETHOD_POST, - Body: utils.Pointer("ARN&message=${message}&phoneNumber=${to}&sender=${from}"), + Body: utils.Pointer("messageType=ARN&message=${message}&phoneNumber=${to}&sender=${from}"), + Headers: &map[string]string{ + "content-type": "application/json", + }, + PhoneNumberFormat: management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMNUMBERFORMAT_FULL, }, { DeliveryMethod: management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMDELIVERYMETHOD_VOICE, Url: "https://example.com/voice", Method: management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMREQUESTMETHOD_POST, - Body: utils.Pointer("ARN&message=${message}&phoneNumber=${to}&sender=${from}"), + Body: utils.Pointer("messageType=ARN&message=${message}&phoneNumber=${to}&sender=${from}"), + Headers: &map[string]string{ + "content-type": "application/json", + }, + PhoneNumberFormat: management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMNUMBERFORMAT_FULL, }, }, Numbers: []management.NotificationsSettingsPhoneDeliverySettingsCustomNumbers{ { Type: management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMNUMBERSTYPE_PHONE_NUMBER, - Number: "+1 222 333", - Selected: utils.Pointer(true), - Available: utils.Pointer(true), + Number: "12164081234", + Selected: utils.Pointer(false), + Available: utils.Pointer(false), Capabilities: []management.EnumNotificationsSettingsPhoneDeliverySettingsCustomNumbersCapability{ management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMNUMBERSCAPABILITY_SMS, management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMNUMBERSCAPABILITY_VOICE, @@ -69,9 +78,9 @@ func createPhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo, }, { Type: management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMNUMBERSTYPE_TOLL_FREE, - Number: "+18544440099", + Number: "18661234567", Selected: utils.Pointer(false), - Available: utils.Pointer(true), + Available: utils.Pointer(false), Capabilities: []management.EnumNotificationsSettingsPhoneDeliverySettingsCustomNumbersCapability{ management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMNUMBERSCAPABILITY_SMS, management.ENUMNOTIFICATIONSSETTINGSPHONEDELIVERYSETTINGSCUSTOMNUMBERSCAPABILITY_VOICE, diff --git a/internal/testing/testutils_resource/pingone_testable_resources/system_application.go b/internal/testing/testutils_resource/pingone_testable_resources/system_application.go new file mode 100644 index 00000000..9bffec1e --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/system_application.go @@ -0,0 +1,24 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/pingone/platform/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func SystemApplication(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: nil, + DeleteFunc: nil, + Dependencies: nil, + ExportableResource: resources.SystemApplication(clientInfo), + } +} diff --git a/internal/testing/testutils_resource/testutils_resource.go b/internal/testing/testutils_resource/testutils_resource.go index 1b1f4185..f42cc2f7 100644 --- a/internal/testing/testutils_resource/testutils_resource.go +++ b/internal/testing/testutils_resource/testutils_resource.go @@ -29,7 +29,6 @@ const ( // Template Info for Template resources ENUM_TEMPLATE_VARIANT ResourceCreationInfoType = "ENUM_TEMPLATE_VARIANT" ENUM_TEMPLATE_DELIVERY_METHOD ResourceCreationInfoType = "ENUM_TEMPLATE_DELIVERY_METHOD" - ENUM_TEMPLATE_DEFAULT ResourceCreationInfoType = "ENUM_TEMPLATE_DEFAULT" // Miscellaneous Info for resources that don't fit the above ENUM_TYPE ResourceCreationInfoType = "ENUM_TYPE" @@ -93,6 +92,9 @@ func (tr *TestableResource) CreateResource(t *testing.T) ResourceCreationInfo { t.Fatalf("Failed to get ID from dependency: %v", dependency) } + if len(dependency.CreationInfo.DepIds) > 0 { + createdDepIds = append(createdDepIds, dependency.CreationInfo.DepIds...) + } createdDepIds = append(createdDepIds, depId) } From 16d7ef57376dfd39773e3a314d517c6dd8d7c063 Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Tue, 25 Mar 2025 14:47:40 -0600 Subject: [PATCH 04/18] Add PingOne SSO generated code and testable resources --- .../authentication_api_application_test.go | 6 +- .../authentication_policies_fragment_test.go | 6 +- .../authentication_policy_contract_test.go | 6 +- .../resources/authentication_selector_test.go | 6 +- .../resources/captcha_provider_test.go | 6 +- .../resources/certificate_ca_test.go | 6 +- ...icates_revocation_ocsp_certificate_test.go | 6 +- .../identity_store_provisioner_test.go | 6 +- .../resources/idp_adapter_test.go | 6 +- .../resources/idp_sp_connection_test.go | 6 +- ...dp_sts_request_parameters_contract_test.go | 6 +- .../idp_to_sp_adapter_mapping_test.go | 6 +- .../resources/idp_token_processor_test.go | 6 +- .../resources/kerberos_realm_test.go | 6 +- ..._openid_connect_additional_key_set_test.go | 6 +- ...airs_signing_key_rotation_settings_test.go | 6 +- .../resources/local_identity_profile_test.go | 6 +- .../resources/metadata_url_test.go | 6 +- .../resources/notification_publisher_test.go | 6 +- .../oauth_access_token_manager_test.go | 6 +- .../oauth_access_token_mapping_test.go | 6 +- ...entication_policy_contract_mapping_test.go | 6 +- ..._ciba_server_policy_request_policy_test.go | 6 +- .../oauth_client_registration_policy_test.go | 6 +- .../resources/oauth_client_test.go | 6 +- .../oauth_idp_adapter_mapping_test.go | 6 +- .../resources/oauth_issuer_test.go | 6 +- ...n_exchange_token_generator_mapping_test.go | 6 +- .../resources/openid_connect_policy_test.go | 6 +- .../password_credential_validator_test.go | 6 +- .../resources/pingone_connection_test.go | 6 +- .../resources/secret_manager_test.go | 6 +- ...st_sts_settings_issuer_certificate_test.go | 6 +- .../session_authentication_policy_test.go | 6 +- .../pingfederate/resources/sp_adapter_test.go | 6 +- ...entication_policy_contract_mapping_test.go | 6 +- .../resources/sp_idp_connection_test.go | 6 +- ...ocessor_to_token_generator_mapping_test.go | 6 +- .../resources/agreement_enable_test.go | 6 +- .../agreement_localization_enable_test.go | 6 +- .../agreement_localization_revision_test.go | 6 +- .../resources/agreement_localization_test.go | 6 +- .../platform/resources/agreement_test.go | 6 +- .../platform/resources/alert_channel_test.go | 6 +- .../platform/resources/branding_theme_test.go | 6 +- .../platform/resources/certificate_test.go | 6 +- .../platform/resources/custom_domain_test.go | 6 +- .../pingone/platform/resources/form_test.go | 6 +- .../resources/forms_recaptcha_v2_test.go | 2 +- .../resources/gateway_credential_test.go | 6 +- .../resources/gateway_role_assignment_test.go | 6 +- .../platform/resources/gateway_test.go | 6 +- .../identity_propagation_plan_test.go | 6 +- .../resources/key_rotation_policy_test.go | 6 +- .../pingone/platform/resources/key_test.go | 6 +- .../platform/resources/language_test.go | 6 +- .../resources/language_update_test.go | 6 +- .../resources/notification_policy_test.go | 6 +- .../notification_template_content_test.go | 6 +- .../resources/phone_delivery_settings_test.go | 6 +- .../resources/trusted_email_address_test.go | 6 +- .../resources/trusted_email_domain_test.go | 6 +- .../platform/resources/webhook_test.go | 6 +- .../pingone/sso/pingone_sso_connector.go | 2 +- .../pingone/sso/pingone_sso_connector_test.go | 165 ++++++++-------- ...{pingone_application.go => application.go} | 45 ++--- ...ng.go => application_attribute_mapping.go} | 69 +++---- .../application_attribute_mapping_test.go | 36 ++++ ... => application_flow_policy_assignment.go} | 84 ++++---- ...application_flow_policy_assignment_test.go | 36 ++++ .../resources/application_resource_grant.go | 174 +++++++++++++++++ .../application_resource_grant_test.go | 36 ++++ .../resources/application_role_assignment.go | 183 ++++++++++++++++++ .../application_role_assignment_test.go | 36 ++++ ...cation_secret.go => application_secret.go} | 23 +-- .../sso/resources/application_secret_test.go | 36 ++++ ... application_sign_on_policy_assignment.go} | 86 ++++---- ...lication_sign_on_policy_assignment_test.go | 35 ++++ .../pingone/sso/resources/application_test.go | 34 ++++ .../resources/{pingone_group.go => group.go} | 7 +- ...gone_group_nesting.go => group_nesting.go} | 32 +-- .../sso/resources/group_nesting_test.go | 36 ++++ ...assignment.go => group_role_assignment.go} | 41 ++-- .../resources/group_role_assignment_test.go | 35 ++++ .../pingone/sso/resources/group_test.go | 33 ++++ ...ntity_provider.go => identity_provider.go} | 63 +++--- .../resources/identity_provider_attribute.go | 146 ++++++++++++++ .../identity_provider_attribute_test.go | 36 ++++ .../sso/resources/identity_provider_test.go | 33 ++++ ..._password_policy.go => password_policy.go} | 7 +- .../sso/resources/password_policy_test.go | 34 ++++ ...gone_application_attribute_mapping_test.go | 59 ------ ...application_flow_policy_assignment_test.go | 34 ---- .../pingone_application_resource_grant.go | 166 ---------------- ...pingone_application_resource_grant_test.go | 44 ----- .../pingone_application_role_assignment.go | 181 ----------------- ...ingone_application_role_assignment_test.go | 154 --------------- .../pingone_application_secret_test.go | 54 ------ ...lication_sign_on_policy_assignment_test.go | 35 ---- .../sso/resources/pingone_application_test.go | 59 ------ .../resources/pingone_group_nesting_test.go | 29 --- .../pingone_group_role_assignment_test.go | 34 ---- .../sso/resources/pingone_group_test.go | 44 ----- .../pingone_identity_provider_attribute.go | 145 -------------- ...ingone_identity_provider_attribute_test.go | 29 --- .../pingone_identity_provider_test.go | 29 --- .../resources/pingone_password_policy_test.go | 44 ----- ...pulation_default_identity_provider_test.go | 39 ---- .../pingone_population_default_test.go | 28 --- .../sso/resources/pingone_population_test.go | 39 ---- .../pingone_resource_attribute_test.go | 169 ---------------- .../pingone_resource_scope_openid_test.go | 74 ------- ...pingone_resource_scope_pingone_api_test.go | 39 ---- .../resources/pingone_resource_scope_test.go | 49 ----- .../resources/pingone_resource_secret_test.go | 44 ----- .../sso/resources/pingone_resource_test.go | 54 ------ .../pingone_schema_attribute_test.go | 174 ----------------- .../pingone_sign_on_policy_action.go | 146 -------------- .../pingone_sign_on_policy_action_test.go | 54 ------ .../resources/pingone_sign_on_policy_test.go | 44 ----- .../{pingone_population.go => population.go} | 7 +- ...ation_default.go => population_default.go} | 4 +- ...> population_default_identity_provider.go} | 31 +-- ...pulation_default_identity_provider_test.go | 36 ++++ .../sso/resources/population_default_test.go | 34 ++++ .../pingone/sso/resources/population_test.go | 34 ++++ .../{pingone_resource.go => resource.go} | 15 +- ...rce_attribute.go => resource_attribute.go} | 45 ++--- .../sso/resources/resource_attribute_test.go | 36 ++++ ...ne_resource_scope.go => resource_scope.go} | 38 ++-- ...ope_openid.go => resource_scope_openid.go} | 24 +-- .../resources/resource_scope_openid_test.go | 34 ++++ ...e_api.go => resource_scope_pingone_api.go} | 26 +-- .../resource_scope_pingone_api_test.go | 34 ++++ .../sso/resources/resource_scope_test.go | 35 ++++ ..._resource_secret.go => resource_secret.go} | 24 +-- .../sso/resources/resource_secret_test.go | 35 ++++ .../pingone/sso/resources/resource_test.go | 34 ++++ ...chema_attribute.go => schema_attribute.go} | 22 +-- .../sso/resources/schema_attribute_test.go | 34 ++++ ...ne_sign_on_policy.go => sign_on_policy.go} | 9 +- .../sso/resources/sign_on_policy_action.go | 148 ++++++++++++++ .../resources/sign_on_policy_action_test.go | 36 ++++ .../sso/resources/sign_on_policy_test.go | 34 ++++ .../authentication_api_application.go | 8 +- .../authentication_policies_fragment.go | 8 +- .../authentication_policy_contract.go | 8 +- .../authentication_selector.go | 8 +- .../captcha_provider.go | 8 +- .../certificate_ca.go | 8 +- ...ertificates_revocation_ocsp_certificate.go | 8 +- .../identity_store_provisioner.go | 8 +- .../idp_adapter.go | 8 +- .../idp_sp_connection.go | 8 +- .../idp_sts_request_parameters_contract.go | 8 +- .../idp_to_sp_adapter_mapping.go | 8 +- .../idp_token_processor.go | 8 +- .../kerberos_realm.go | 8 +- ...oauth_openid_connect_additional_key_set.go | 8 +- .../keypairs_signing_key.go | 8 +- .../keypairs_signing_key_rotation_settings.go | 8 +- .../local_identity_profile.go | 8 +- .../metadata_url.go | 8 +- .../notification_publisher.go | 8 +- .../oauth_access_token_manager.go | 8 +- .../oauth_access_token_mapping.go | 8 +- ..._authentication_policy_contract_mapping.go | 8 +- ...oauth_ciba_server_policy_request_policy.go | 8 +- .../oauth_client.go | 8 +- .../oauth_client_registration_policy.go | 8 +- .../oauth_idp_adapter_mapping.go | 8 +- .../oauth_issuer.go | 8 +- .../oauth_token_exchange_processor_policy.go | 8 +- ..._token_exchange_token_generator_mapping.go | 8 +- .../openid_connect_policy.go | 8 +- .../out_of_band_auth_plugins.go | 8 +- .../password_credential_validator.go | 8 +- .../pingone_connection.go | 8 +- .../secret_manager.go | 8 +- ...s_trust_sts_settings_issuer_certificate.go | 8 +- .../session_authentication_policy.go | 8 +- .../sp_adapter.go | 8 +- ..._authentication_policy_contract_mapping.go | 8 +- .../sp_idp_connection.go | 8 +- .../sp_token_generator.go | 8 +- ...en_processor_to_token_generator_mapping.go | 8 +- .../pingone_testable_resources/agreement.go | 13 +- .../agreement_localization.go | 13 +- .../agreement_localization_revision.go | 14 +- .../alert_channel.go | 13 +- .../application_attribute_mapping.go | 85 ++++++++ .../application_device_authorization.go | 96 +++++++++ .../application_flow_policy_assignment.go | 107 ++++++++++ .../application_resource_grant.go | 116 +++++++++++ .../application_role_assignment.go | 114 +++++++++++ .../application_secret.go | 26 +++ .../application_sign_on_policy_assignment.go | 97 ++++++++++ .../application_worker.go | 98 ++++++++++ .../branding_theme.go | 13 +- .../pingone_testable_resources/certificate.go | 13 +- .../custom_domain.go | 13 +- .../device_auth_application.go | 13 +- .../pingone_testable_resources/form.go | 13 +- .../forms_recaptcha_v2.go | 8 +- .../pingone_testable_resources/gateway.go | 13 +- .../gateway_credential.go | 13 +- .../gateway_role_assignment.go | 13 +- .../pingone_testable_resources/group.go | 92 +++++++++ .../group_nesting.go | 94 +++++++++ .../group_role_assignment.go | 114 +++++++++++ .../identity_propagation_plan.go | 13 +- .../identity_provider.go | 95 +++++++++ .../identity_provider_attribute.go | 86 ++++++++ .../pingone_testable_resources/key.go | 13 +- .../key_rotation_policy.go | 13 +- .../pingone_testable_resources/language.go | 13 +- .../notification_policy.go | 13 +- .../notification_template_content.go | 13 +- .../password_policy.go | 96 +++++++++ .../phone_delivery_settings.go | 13 +- .../pingone_testable_resources/population.go | 111 +++++++++++ .../population_default.go | 26 +++ .../population_default_identity_provider.go | 26 +++ .../pingone_testable_resources/resource.go | 86 ++++++++ .../resource_attribute.go | 84 ++++++++ .../resource_scope.go | 85 ++++++++ .../resource_scope_openid.go | 95 +++++++++ .../resource_scope_pingone_api.go | 101 ++++++++++ .../resource_secret.go | 26 +++ .../schema_attribute.go | 114 +++++++++++ .../sign_on_policy.go | 82 ++++++++ .../sign_on_policy_action.go | 84 ++++++++ .../trusted_email_address.go | 13 +- .../trusted_email_domain.go | 13 +- .../pingone_testable_resources/webhook.go | 13 +- .../testutils_resource/testutils_resource.go | 31 ++- 236 files changed, 4729 insertions(+), 3028 deletions(-) rename internal/connector/pingone/sso/resources/{pingone_application.go => application.go} (62%) rename internal/connector/pingone/sso/resources/{pingone_application_attribute_mapping.go => application_attribute_mapping.go} (52%) create mode 100644 internal/connector/pingone/sso/resources/application_attribute_mapping_test.go rename internal/connector/pingone/sso/resources/{pingone_application_flow_policy_assignment.go => application_flow_policy_assignment.go} (51%) create mode 100644 internal/connector/pingone/sso/resources/application_flow_policy_assignment_test.go create mode 100644 internal/connector/pingone/sso/resources/application_resource_grant.go create mode 100644 internal/connector/pingone/sso/resources/application_resource_grant_test.go create mode 100644 internal/connector/pingone/sso/resources/application_role_assignment.go create mode 100644 internal/connector/pingone/sso/resources/application_role_assignment_test.go rename internal/connector/pingone/sso/resources/{pingone_application_secret.go => application_secret.go} (88%) create mode 100644 internal/connector/pingone/sso/resources/application_secret_test.go rename internal/connector/pingone/sso/resources/{pingone_application_sign_on_policy_assignment.go => application_sign_on_policy_assignment.go} (50%) create mode 100644 internal/connector/pingone/sso/resources/application_sign_on_policy_assignment_test.go create mode 100644 internal/connector/pingone/sso/resources/application_test.go rename internal/connector/pingone/sso/resources/{pingone_group.go => group.go} (91%) rename internal/connector/pingone/sso/resources/{pingone_group_nesting.go => group_nesting.go} (71%) create mode 100644 internal/connector/pingone/sso/resources/group_nesting_test.go rename internal/connector/pingone/sso/resources/{pingone_group_role_assignment.go => group_role_assignment.go} (74%) create mode 100644 internal/connector/pingone/sso/resources/group_role_assignment_test.go create mode 100644 internal/connector/pingone/sso/resources/group_test.go rename internal/connector/pingone/sso/resources/{pingone_identity_provider.go => identity_provider.go} (50%) create mode 100644 internal/connector/pingone/sso/resources/identity_provider_attribute.go create mode 100644 internal/connector/pingone/sso/resources/identity_provider_attribute_test.go create mode 100644 internal/connector/pingone/sso/resources/identity_provider_test.go rename internal/connector/pingone/sso/resources/{pingone_password_policy.go => password_policy.go} (91%) create mode 100644 internal/connector/pingone/sso/resources/password_policy_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_application_attribute_mapping_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_application_flow_policy_assignment_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_application_resource_grant.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_application_resource_grant_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_application_role_assignment.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_application_role_assignment_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_application_secret_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_application_sign_on_policy_assignment_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_application_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_group_nesting_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_group_role_assignment_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_group_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_identity_provider_attribute.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_identity_provider_attribute_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_identity_provider_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_password_policy_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_population_default_identity_provider_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_population_default_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_population_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_resource_attribute_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_resource_scope_openid_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_resource_scope_pingone_api_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_resource_scope_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_resource_secret_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_resource_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_schema_attribute_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_sign_on_policy_action.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_sign_on_policy_action_test.go delete mode 100644 internal/connector/pingone/sso/resources/pingone_sign_on_policy_test.go rename internal/connector/pingone/sso/resources/{pingone_population.go => population.go} (91%) rename internal/connector/pingone/sso/resources/{pingone_population_default.go => population_default.go} (92%) rename internal/connector/pingone/sso/resources/{pingone_population_default_identity_provider.go => population_default_identity_provider.go} (59%) create mode 100644 internal/connector/pingone/sso/resources/population_default_identity_provider_test.go create mode 100644 internal/connector/pingone/sso/resources/population_default_test.go create mode 100644 internal/connector/pingone/sso/resources/population_test.go rename internal/connector/pingone/sso/resources/{pingone_resource.go => resource.go} (82%) rename internal/connector/pingone/sso/resources/{pingone_resource_attribute.go => resource_attribute.go} (69%) create mode 100644 internal/connector/pingone/sso/resources/resource_attribute_test.go rename internal/connector/pingone/sso/resources/{pingone_resource_scope.go => resource_scope.go} (71%) rename internal/connector/pingone/sso/resources/{pingone_resource_scope_openid.go => resource_scope_openid.go} (78%) create mode 100644 internal/connector/pingone/sso/resources/resource_scope_openid_test.go rename internal/connector/pingone/sso/resources/{pingone_resource_scope_pingone_api.go => resource_scope_pingone_api.go} (79%) create mode 100644 internal/connector/pingone/sso/resources/resource_scope_pingone_api_test.go create mode 100644 internal/connector/pingone/sso/resources/resource_scope_test.go rename internal/connector/pingone/sso/resources/{pingone_resource_secret.go => resource_secret.go} (78%) create mode 100644 internal/connector/pingone/sso/resources/resource_secret_test.go create mode 100644 internal/connector/pingone/sso/resources/resource_test.go rename internal/connector/pingone/sso/resources/{pingone_schema_attribute.go => schema_attribute.go} (83%) create mode 100644 internal/connector/pingone/sso/resources/schema_attribute_test.go rename internal/connector/pingone/sso/resources/{pingone_sign_on_policy.go => sign_on_policy.go} (88%) create mode 100644 internal/connector/pingone/sso/resources/sign_on_policy_action.go create mode 100644 internal/connector/pingone/sso/resources/sign_on_policy_action_test.go create mode 100644 internal/connector/pingone/sso/resources/sign_on_policy_test.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/application_attribute_mapping.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/application_device_authorization.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/application_flow_policy_assignment.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/application_resource_grant.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/application_role_assignment.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/application_secret.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/application_sign_on_policy_assignment.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/application_worker.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/group.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/group_nesting.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/group_role_assignment.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/identity_provider.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/identity_provider_attribute.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/password_policy.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/population.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/population_default.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/population_default_identity_provider.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/resource.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/resource_attribute.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/resource_scope.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/resource_scope_openid.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/resource_scope_pingone_api.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/resource_secret.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/schema_attribute.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy.go create mode 100644 internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy_action.go diff --git a/internal/connector/pingfederate/resources/authentication_api_application_test.go b/internal/connector/pingfederate/resources/authentication_api_application_test.go index 122ad233..dfd16852 100644 --- a/internal/connector/pingfederate/resources/authentication_api_application_test.go +++ b/internal/connector/pingfederate/resources/authentication_api_application_test.go @@ -17,14 +17,14 @@ func Test_PingFederateAuthenticationApiApplication(t *testing.T) { tr := pingfederate_testable_resources.AuthenticationApiApplication(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/authentication_policies_fragment_test.go b/internal/connector/pingfederate/resources/authentication_policies_fragment_test.go index a2b420e6..7a890256 100644 --- a/internal/connector/pingfederate/resources/authentication_policies_fragment_test.go +++ b/internal/connector/pingfederate/resources/authentication_policies_fragment_test.go @@ -17,14 +17,14 @@ func Test_PingFederateAuthenticationPoliciesFragment(t *testing.T) { tr := pingfederate_testable_resources.AuthenticationPoliciesFragment(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/authentication_policy_contract_test.go b/internal/connector/pingfederate/resources/authentication_policy_contract_test.go index d4e88508..549b8605 100644 --- a/internal/connector/pingfederate/resources/authentication_policy_contract_test.go +++ b/internal/connector/pingfederate/resources/authentication_policy_contract_test.go @@ -17,14 +17,14 @@ func Test_PingFederateAuthenticationPolicyContract(t *testing.T) { tr := pingfederate_testable_resources.AuthenticationPolicyContract(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/authentication_selector_test.go b/internal/connector/pingfederate/resources/authentication_selector_test.go index a08c38ec..d4acbdb6 100644 --- a/internal/connector/pingfederate/resources/authentication_selector_test.go +++ b/internal/connector/pingfederate/resources/authentication_selector_test.go @@ -17,14 +17,14 @@ func Test_PingFederateAuthenticationSelector(t *testing.T) { tr := pingfederate_testable_resources.AuthenticationSelector(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/captcha_provider_test.go b/internal/connector/pingfederate/resources/captcha_provider_test.go index 8eabba04..219bd69e 100644 --- a/internal/connector/pingfederate/resources/captcha_provider_test.go +++ b/internal/connector/pingfederate/resources/captcha_provider_test.go @@ -17,14 +17,14 @@ func Test_PingFederateCaptchaProvider(t *testing.T) { tr := pingfederate_testable_resources.CaptchaProvider(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/certificate_ca_test.go b/internal/connector/pingfederate/resources/certificate_ca_test.go index e3e03952..a140d94e 100644 --- a/internal/connector/pingfederate/resources/certificate_ca_test.go +++ b/internal/connector/pingfederate/resources/certificate_ca_test.go @@ -18,14 +18,14 @@ func Test_PingFederateCertificateCa(t *testing.T) { tr := pingfederate_testable_resources.CertificateCa(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", creationInfo.SelfInfo[testutils_resource.ENUM_ISSUER_DN], creationInfo.SelfInfo[testutils_resource.ENUM_SERIAL_NUMBER]), - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_%s", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ISSUER_DN], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_SERIAL_NUMBER]), + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate_test.go b/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate_test.go index 7bcc9704..9bc09663 100644 --- a/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate_test.go +++ b/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate_test.go @@ -18,14 +18,14 @@ func Test_PingFederateCertificatesRevocationOcspCertificate(t *testing.T) { tr := pingfederate_testable_resources.CertificatesRevocationOcspCertificate(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", creationInfo.SelfInfo[testutils_resource.ENUM_ISSUER_DN], creationInfo.SelfInfo[testutils_resource.ENUM_SERIAL_NUMBER]), - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_%s", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ISSUER_DN], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_SERIAL_NUMBER]), + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/identity_store_provisioner_test.go b/internal/connector/pingfederate/resources/identity_store_provisioner_test.go index fa7e9741..0fd5acfd 100644 --- a/internal/connector/pingfederate/resources/identity_store_provisioner_test.go +++ b/internal/connector/pingfederate/resources/identity_store_provisioner_test.go @@ -17,14 +17,14 @@ func Test_PingFederateIdentityStoreProvisioner(t *testing.T) { tr := pingfederate_testable_resources.IdentityStoreProvisioner(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/idp_adapter_test.go b/internal/connector/pingfederate/resources/idp_adapter_test.go index 747abf90..002412b7 100644 --- a/internal/connector/pingfederate/resources/idp_adapter_test.go +++ b/internal/connector/pingfederate/resources/idp_adapter_test.go @@ -17,14 +17,14 @@ func Test_PingFederateIdpAdapter(t *testing.T) { tr := pingfederate_testable_resources.IdpAdapter(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/idp_sp_connection_test.go b/internal/connector/pingfederate/resources/idp_sp_connection_test.go index 870cbc0d..515e77ad 100644 --- a/internal/connector/pingfederate/resources/idp_sp_connection_test.go +++ b/internal/connector/pingfederate/resources/idp_sp_connection_test.go @@ -17,14 +17,14 @@ func Test_PingFederateIdpSpConnection(t *testing.T) { tr := pingfederate_testable_resources.IdpSpConnection(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract_test.go b/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract_test.go index 08207fcc..7cc250f5 100644 --- a/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract_test.go +++ b/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract_test.go @@ -17,14 +17,14 @@ func Test_PingFederateIdpStsRequestParametersContract(t *testing.T) { tr := pingfederate_testable_resources.IdpStsRequestParametersContract(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping_test.go b/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping_test.go index 4f4173af..7190b4f7 100644 --- a/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping_test.go +++ b/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping_test.go @@ -18,14 +18,14 @@ func Test_PingFederateIdpToSpAdapterMapping(t *testing.T) { tr := pingfederate_testable_resources.IdpToSpAdapterMapping(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_to_%s", creationInfo.SelfInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo.SelfInfo[testutils_resource.ENUM_TARGET_ID]), - ResourceID: fmt.Sprintf("%s|%s", creationInfo.SelfInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo.SelfInfo[testutils_resource.ENUM_TARGET_ID]), + ResourceName: fmt.Sprintf("%s_to_%s", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_SOURCE_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_TARGET_ID]), + ResourceID: fmt.Sprintf("%s|%s", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_SOURCE_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_TARGET_ID]), }, } diff --git a/internal/connector/pingfederate/resources/idp_token_processor_test.go b/internal/connector/pingfederate/resources/idp_token_processor_test.go index 37005941..0cd8830b 100644 --- a/internal/connector/pingfederate/resources/idp_token_processor_test.go +++ b/internal/connector/pingfederate/resources/idp_token_processor_test.go @@ -17,14 +17,14 @@ func Test_PingFederateIdpTokenProcessor(t *testing.T) { tr := pingfederate_testable_resources.IdpTokenProcessor(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/kerberos_realm_test.go b/internal/connector/pingfederate/resources/kerberos_realm_test.go index 4a7b8b04..c08f24c5 100644 --- a/internal/connector/pingfederate/resources/kerberos_realm_test.go +++ b/internal/connector/pingfederate/resources/kerberos_realm_test.go @@ -17,14 +17,14 @@ func Test_PingFederateKerberosRealm(t *testing.T) { tr := pingfederate_testable_resources.KerberosRealm(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set_test.go b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set_test.go index 471ec6bb..b44aa79b 100644 --- a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set_test.go +++ b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set_test.go @@ -17,14 +17,14 @@ func Test_PingFederateKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T) { tr := pingfederate_testable_resources.KeypairsOauthOpenidConnectAdditionalKeySet(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings_test.go b/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings_test.go index 03421ce8..fc01405e 100644 --- a/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings_test.go +++ b/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings_test.go @@ -18,7 +18,7 @@ func Test_PingFederateKeypairsSigningKeyRotationSettings(t *testing.T) { tr := pingfederate_testable_resources.KeypairsSigningKeyRotationSettings(t, clientInfo) - _ = tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) // Test_PingFederateKeypairsSigningKeyRotationSettings only has one dependency @@ -27,8 +27,8 @@ func Test_PingFederateKeypairsSigningKeyRotationSettings(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s_rotation_settings", keypairTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ISSUER_DN], keypairTr.CreationInfo.SelfInfo[testutils_resource.ENUM_SERIAL_NUMBER]), - ResourceID: keypairTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_%s_rotation_settings", keypairTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ISSUER_DN], keypairTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_SERIAL_NUMBER]), + ResourceID: keypairTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/local_identity_profile_test.go b/internal/connector/pingfederate/resources/local_identity_profile_test.go index 4ebf01cd..7772263d 100644 --- a/internal/connector/pingfederate/resources/local_identity_profile_test.go +++ b/internal/connector/pingfederate/resources/local_identity_profile_test.go @@ -17,14 +17,14 @@ func Test_PingFederateLocalIdentityProfile(t *testing.T) { tr := pingfederate_testable_resources.LocalIdentityProfile(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/metadata_url_test.go b/internal/connector/pingfederate/resources/metadata_url_test.go index 88b11a7c..2c365ad7 100644 --- a/internal/connector/pingfederate/resources/metadata_url_test.go +++ b/internal/connector/pingfederate/resources/metadata_url_test.go @@ -17,14 +17,14 @@ func Test_PingFederateMetadataUrl(t *testing.T) { tr := pingfederate_testable_resources.MetadataUrl(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/notification_publisher_test.go b/internal/connector/pingfederate/resources/notification_publisher_test.go index bf572643..492b4d02 100644 --- a/internal/connector/pingfederate/resources/notification_publisher_test.go +++ b/internal/connector/pingfederate/resources/notification_publisher_test.go @@ -17,14 +17,14 @@ func Test_PingFederateNotificationPublisher(t *testing.T) { tr := pingfederate_testable_resources.NotificationPublisher(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_access_token_manager_test.go b/internal/connector/pingfederate/resources/oauth_access_token_manager_test.go index e051bb1e..4d036428 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_manager_test.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_manager_test.go @@ -17,14 +17,14 @@ func Test_PingFederateOauthAccessTokenManager(t *testing.T) { tr := pingfederate_testable_resources.OauthAccessTokenManager(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_access_token_mapping_test.go b/internal/connector/pingfederate/resources/oauth_access_token_mapping_test.go index 82f7ee3b..b064d795 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_mapping_test.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_mapping_test.go @@ -18,14 +18,14 @@ func Test_PingFederateOauthAccessTokenMapping(t *testing.T) { tr := pingfederate_testable_resources.OauthAccessTokenMapping(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", creationInfo.SelfInfo[testutils_resource.ENUM_ID], creationInfo.SelfInfo[testutils_resource.ENUM_CONTEXT_TYPE]), - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_%s", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_CONTEXT_TYPE]), + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping_test.go b/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping_test.go index 15cced3a..2236d3c9 100644 --- a/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping_test.go +++ b/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping_test.go @@ -18,14 +18,14 @@ func Test_PingFederateOauthAuthenticationPolicyContractMapping(t *testing.T) { tr := pingfederate_testable_resources.OauthAuthenticationPolicyContractMapping(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_mapping", creationInfo.SelfInfo[testutils_resource.ENUM_ID]), - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_mapping", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy_test.go b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy_test.go index 61f95041..306a3ed8 100644 --- a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy_test.go +++ b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy_test.go @@ -20,14 +20,14 @@ func Test_PingFederateOauthCibaServerPolicyRequestPolicy(t *testing.T) { tr := pingfederate_testable_resources.OauthCibaServerPolicyRequestPolicy(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_client_registration_policy_test.go b/internal/connector/pingfederate/resources/oauth_client_registration_policy_test.go index 5827889a..f4c78d16 100644 --- a/internal/connector/pingfederate/resources/oauth_client_registration_policy_test.go +++ b/internal/connector/pingfederate/resources/oauth_client_registration_policy_test.go @@ -17,14 +17,14 @@ func Test_PingFederateOauthClientRegistrationPolicy(t *testing.T) { tr := pingfederate_testable_resources.OauthClientRegistrationPolicy(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_client_test.go b/internal/connector/pingfederate/resources/oauth_client_test.go index b332495d..16a794ae 100644 --- a/internal/connector/pingfederate/resources/oauth_client_test.go +++ b/internal/connector/pingfederate/resources/oauth_client_test.go @@ -17,14 +17,14 @@ func Test_PingFederateOauthClient(t *testing.T) { tr := pingfederate_testable_resources.OauthClient(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping_test.go b/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping_test.go index 7ccdcd9c..37f49758 100644 --- a/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping_test.go +++ b/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping_test.go @@ -18,14 +18,14 @@ func Test_PingFederateOauthIdpAdapterMapping(t *testing.T) { tr := pingfederate_testable_resources.OauthIdpAdapterMapping(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_mapping", creationInfo.SelfInfo[testutils_resource.ENUM_ID]), - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_mapping", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_issuer_test.go b/internal/connector/pingfederate/resources/oauth_issuer_test.go index 9b8f9e24..e97a5a2a 100644 --- a/internal/connector/pingfederate/resources/oauth_issuer_test.go +++ b/internal/connector/pingfederate/resources/oauth_issuer_test.go @@ -17,14 +17,14 @@ func Test_PingFederateOauthIssuer(t *testing.T) { tr := pingfederate_testable_resources.OauthIssuer(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping_test.go b/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping_test.go index 5caa5e49..e720ce2a 100644 --- a/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping_test.go +++ b/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping_test.go @@ -18,14 +18,14 @@ func Test_PingFederateOauthTokenExchangeTokenGeneratorMapping(t *testing.T) { tr := pingfederate_testable_resources.OauthTokenExchangeTokenGeneratorMapping(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_to_%s", creationInfo.SelfInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo.SelfInfo[testutils_resource.ENUM_TARGET_ID]), - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_to_%s", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_SOURCE_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_TARGET_ID]), + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/openid_connect_policy_test.go b/internal/connector/pingfederate/resources/openid_connect_policy_test.go index 16aa8ac5..20145084 100644 --- a/internal/connector/pingfederate/resources/openid_connect_policy_test.go +++ b/internal/connector/pingfederate/resources/openid_connect_policy_test.go @@ -17,14 +17,14 @@ func Test_PingFederateOpenidConnectPolicy(t *testing.T) { tr := pingfederate_testable_resources.OpenidConnectPolicy(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/password_credential_validator_test.go b/internal/connector/pingfederate/resources/password_credential_validator_test.go index 5f887da3..5b7dffde 100644 --- a/internal/connector/pingfederate/resources/password_credential_validator_test.go +++ b/internal/connector/pingfederate/resources/password_credential_validator_test.go @@ -17,14 +17,14 @@ func Test_PingFederatePasswordCredentialValidator(t *testing.T) { tr := pingfederate_testable_resources.PasswordCredentialValidator(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/pingone_connection_test.go b/internal/connector/pingfederate/resources/pingone_connection_test.go index 5767ea8b..2fceb4da 100644 --- a/internal/connector/pingfederate/resources/pingone_connection_test.go +++ b/internal/connector/pingfederate/resources/pingone_connection_test.go @@ -17,14 +17,14 @@ func Test_PingFederatePingoneConnection(t *testing.T) { tr := pingfederate_testable_resources.PingoneConnection(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/secret_manager_test.go b/internal/connector/pingfederate/resources/secret_manager_test.go index 02bbaa1b..ce8a31b8 100644 --- a/internal/connector/pingfederate/resources/secret_manager_test.go +++ b/internal/connector/pingfederate/resources/secret_manager_test.go @@ -17,14 +17,14 @@ func Test_PingFederateSecretManager(t *testing.T) { tr := pingfederate_testable_resources.SecretManager(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate_test.go b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate_test.go index 87418f64..0f6a69f5 100644 --- a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate_test.go +++ b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate_test.go @@ -18,14 +18,14 @@ func Test_PingFederateServerSettingsWsTrustStsSettingsIssuerCertificate(t *testi tr := pingfederate_testable_resources.ServerSettingsWsTrustStsSettingsIssuerCertificate(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", creationInfo.SelfInfo[testutils_resource.ENUM_ISSUER_DN], creationInfo.SelfInfo[testutils_resource.ENUM_SERIAL_NUMBER]), - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_%s", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ISSUER_DN], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_SERIAL_NUMBER]), + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/session_authentication_policy_test.go b/internal/connector/pingfederate/resources/session_authentication_policy_test.go index 938b73de..89b46e9b 100644 --- a/internal/connector/pingfederate/resources/session_authentication_policy_test.go +++ b/internal/connector/pingfederate/resources/session_authentication_policy_test.go @@ -18,14 +18,14 @@ func Test_PingFederateSessionAuthenticationPolicy(t *testing.T) { tr := pingfederate_testable_resources.SessionAuthenticationPolicy(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s_%s", creationInfo.SelfInfo[testutils_resource.ENUM_ID], creationInfo.SelfInfo[testutils_resource.ENUM_TYPE], creationInfo.SelfInfo[testutils_resource.ENUM_SOURCE_REF_ID]), - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_%s_%s", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_TYPE], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_SOURCE_REF_ID]), + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/sp_adapter_test.go b/internal/connector/pingfederate/resources/sp_adapter_test.go index ff488963..49defcc6 100644 --- a/internal/connector/pingfederate/resources/sp_adapter_test.go +++ b/internal/connector/pingfederate/resources/sp_adapter_test.go @@ -17,14 +17,14 @@ func Test_PingFederateSpAdapter(t *testing.T) { tr := pingfederate_testable_resources.SpAdapter(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping_test.go b/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping_test.go index 6240ecf7..b95473cb 100644 --- a/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping_test.go +++ b/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping_test.go @@ -18,14 +18,14 @@ func Test_PingFederateSpAuthenticationPolicyContractMapping(t *testing.T) { tr := pingfederate_testable_resources.SpAuthenticationPolicyContractMapping(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_to_%s", creationInfo.SelfInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo.SelfInfo[testutils_resource.ENUM_TARGET_ID]), - ResourceID: fmt.Sprintf("%s|%s", creationInfo.SelfInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo.SelfInfo[testutils_resource.ENUM_TARGET_ID]), + ResourceName: fmt.Sprintf("%s_to_%s", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_SOURCE_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_TARGET_ID]), + ResourceID: fmt.Sprintf("%s|%s", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_SOURCE_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_TARGET_ID]), }, } diff --git a/internal/connector/pingfederate/resources/sp_idp_connection_test.go b/internal/connector/pingfederate/resources/sp_idp_connection_test.go index 8c0844ef..05086f2b 100644 --- a/internal/connector/pingfederate/resources/sp_idp_connection_test.go +++ b/internal/connector/pingfederate/resources/sp_idp_connection_test.go @@ -17,14 +17,14 @@ func Test_PingFederateSpIdpConnection(t *testing.T) { tr := pingfederate_testable_resources.SpIdpConnection(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping_test.go b/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping_test.go index 3fba41c9..ecc17cf3 100644 --- a/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping_test.go +++ b/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping_test.go @@ -18,14 +18,14 @@ func Test_PingFederateTokenProcessorToTokenGeneratorMapping(t *testing.T) { tr := pingfederate_testable_resources.TokenProcessorToTokenGeneratorMapping(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_to_%s", creationInfo.SelfInfo[testutils_resource.ENUM_SOURCE_ID], creationInfo.SelfInfo[testutils_resource.ENUM_TARGET_ID]), - ResourceID: creationInfo.SelfInfo[testutils_resource.ENUM_ID], + ResourceName: fmt.Sprintf("%s_to_%s", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_SOURCE_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_TARGET_ID]), + ResourceID: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], }, } diff --git a/internal/connector/pingone/platform/resources/agreement_enable_test.go b/internal/connector/pingone/platform/resources/agreement_enable_test.go index e1d33583..e3daa3b0 100644 --- a/internal/connector/pingone/platform/resources/agreement_enable_test.go +++ b/internal/connector/pingone/platform/resources/agreement_enable_test.go @@ -17,7 +17,7 @@ func Test_AgreementEnable(t *testing.T) { tr := pingone_testable_resources.AgreementEnable(t, clientInfo) - _ = tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) agreementTr := tr.Dependencies[0] @@ -26,8 +26,8 @@ func Test_AgreementEnable(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_enable", agreementTr.CreationInfo.SelfInfo[testutils_resource.ENUM_NAME]), - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, agreementTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: fmt.Sprintf("%s_enable", agreementTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, agreementTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/agreement_localization_enable_test.go b/internal/connector/pingone/platform/resources/agreement_localization_enable_test.go index 72908b5a..e7a29f19 100644 --- a/internal/connector/pingone/platform/resources/agreement_localization_enable_test.go +++ b/internal/connector/pingone/platform/resources/agreement_localization_enable_test.go @@ -17,7 +17,7 @@ func Test_AgreementLocalizationEnable(t *testing.T) { tr := pingone_testable_resources.AgreementLocalizationEnable(t, clientInfo) - _ = tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) agreementLocalizationTr := tr.Dependencies[0] @@ -27,8 +27,8 @@ func Test_AgreementLocalizationEnable(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s_enable", agreementTr.CreationInfo.SelfInfo[testutils_resource.ENUM_NAME], agreementLocalizationTr.CreationInfo.SelfInfo[testutils_resource.ENUM_LOCALE]), - ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, agreementTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID], agreementLocalizationTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: fmt.Sprintf("%s_%s_enable", agreementTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], agreementLocalizationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_LOCALE]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, agreementTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], agreementLocalizationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/agreement_localization_revision_test.go b/internal/connector/pingone/platform/resources/agreement_localization_revision_test.go index e07ba61d..e76cd6d8 100644 --- a/internal/connector/pingone/platform/resources/agreement_localization_revision_test.go +++ b/internal/connector/pingone/platform/resources/agreement_localization_revision_test.go @@ -18,7 +18,7 @@ func Test_AgreementLocalizationRevision(t *testing.T) { tr := pingone_testable_resources.AgreementLocalizationRevision(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) agreementLocalizationTr := tr.Dependencies[0] @@ -27,8 +27,8 @@ func Test_AgreementLocalizationRevision(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s_%s", agreementTr.CreationInfo.SelfInfo[testutils_resource.ENUM_NAME], agreementLocalizationTr.CreationInfo.SelfInfo[testutils_resource.ENUM_LOCALE], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), - ResourceID: fmt.Sprintf("%s/%s/%s/%s", clientInfo.PingOneExportEnvironmentID, agreementTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID], agreementLocalizationTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: fmt.Sprintf("%s_%s_%s", agreementTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], agreementLocalizationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_LOCALE], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + ResourceID: fmt.Sprintf("%s/%s/%s/%s", clientInfo.PingOneExportEnvironmentID, agreementTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], agreementLocalizationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/agreement_localization_test.go b/internal/connector/pingone/platform/resources/agreement_localization_test.go index 3d8d5594..5a4e239b 100644 --- a/internal/connector/pingone/platform/resources/agreement_localization_test.go +++ b/internal/connector/pingone/platform/resources/agreement_localization_test.go @@ -19,14 +19,14 @@ func Test_AgreementLocalization(t *testing.T) { tr := pingone_testable_resources.AgreementLocalization(t, clientInfo) agreementTr := tr.Dependencies[0] - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", agreementTr.CreationInfo.SelfInfo[testutils_resource.ENUM_NAME], creationInfo.SelfInfo[testutils_resource.ENUM_LOCALE]), - ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, agreementTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: fmt.Sprintf("%s_%s", agreementTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_LOCALE]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, agreementTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/agreement_test.go b/internal/connector/pingone/platform/resources/agreement_test.go index 9218d49a..56c83b8e 100644 --- a/internal/connector/pingone/platform/resources/agreement_test.go +++ b/internal/connector/pingone/platform/resources/agreement_test.go @@ -18,14 +18,14 @@ func Test_Agreement(t *testing.T) { tr := pingone_testable_resources.Agreement(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/alert_channel_test.go b/internal/connector/pingone/platform/resources/alert_channel_test.go index f318fe78..cfa80160 100644 --- a/internal/connector/pingone/platform/resources/alert_channel_test.go +++ b/internal/connector/pingone/platform/resources/alert_channel_test.go @@ -17,15 +17,15 @@ func TestAlertChannelExport(t *testing.T) { tr := pingone_testable_resources.AlertChannel(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) // Defined the expected ImportBlocks for the resource expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/branding_theme_test.go b/internal/connector/pingone/platform/resources/branding_theme_test.go index e8d8945b..b9566ef8 100644 --- a/internal/connector/pingone/platform/resources/branding_theme_test.go +++ b/internal/connector/pingone/platform/resources/branding_theme_test.go @@ -18,14 +18,14 @@ func Test_BrandingTheme(t *testing.T) { tr := pingone_testable_resources.BrandingTheme(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/certificate_test.go b/internal/connector/pingone/platform/resources/certificate_test.go index f6f2773c..67d485fc 100644 --- a/internal/connector/pingone/platform/resources/certificate_test.go +++ b/internal/connector/pingone/platform/resources/certificate_test.go @@ -18,14 +18,14 @@ func Test_Certificate(t *testing.T) { tr := pingone_testable_resources.Certificate(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/custom_domain_test.go b/internal/connector/pingone/platform/resources/custom_domain_test.go index fa776c2b..c03affc2 100644 --- a/internal/connector/pingone/platform/resources/custom_domain_test.go +++ b/internal/connector/pingone/platform/resources/custom_domain_test.go @@ -18,14 +18,14 @@ func Test_CustomDomain(t *testing.T) { tr := pingone_testable_resources.CustomDomain(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/form_test.go b/internal/connector/pingone/platform/resources/form_test.go index 9c4998da..06bd6486 100644 --- a/internal/connector/pingone/platform/resources/form_test.go +++ b/internal/connector/pingone/platform/resources/form_test.go @@ -18,14 +18,14 @@ func Test_Form(t *testing.T) { tr := pingone_testable_resources.Form(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/forms_recaptcha_v2_test.go b/internal/connector/pingone/platform/resources/forms_recaptcha_v2_test.go index 719eb2eb..48e8c7e2 100644 --- a/internal/connector/pingone/platform/resources/forms_recaptcha_v2_test.go +++ b/internal/connector/pingone/platform/resources/forms_recaptcha_v2_test.go @@ -16,7 +16,7 @@ func Test_FormsRecaptchaV2(t *testing.T) { tr := pingone_testable_resources.FormsRecaptchaV2(t, clientInfo) - _ = tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ diff --git a/internal/connector/pingone/platform/resources/gateway_credential_test.go b/internal/connector/pingone/platform/resources/gateway_credential_test.go index bff5359a..80672656 100644 --- a/internal/connector/pingone/platform/resources/gateway_credential_test.go +++ b/internal/connector/pingone/platform/resources/gateway_credential_test.go @@ -19,14 +19,14 @@ func Test_GatewayCredential(t *testing.T) { tr := pingone_testable_resources.GatewayCredential(t, clientInfo) gatewayTr := tr.Dependencies[0] - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_credential_%s", gatewayTr.CreationInfo.SelfInfo[testutils_resource.ENUM_NAME], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), - ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, gatewayTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: fmt.Sprintf("%s_credential_%s", gatewayTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, gatewayTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/gateway_role_assignment_test.go b/internal/connector/pingone/platform/resources/gateway_role_assignment_test.go index d3c83004..6d53e1db 100644 --- a/internal/connector/pingone/platform/resources/gateway_role_assignment_test.go +++ b/internal/connector/pingone/platform/resources/gateway_role_assignment_test.go @@ -18,7 +18,7 @@ func Test_GatewayRoleAssignment(t *testing.T) { tr := pingone_testable_resources.GatewayRoleAssignment(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) gatewayTr := tr.Dependencies[0] @@ -26,8 +26,8 @@ func Test_GatewayRoleAssignment(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s_%s", gatewayTr.CreationInfo.SelfInfo[testutils_resource.ENUM_NAME], creationInfo.SelfInfo[testutils_resource.ENUM_NAME], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), - ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, gatewayTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: fmt.Sprintf("%s_%s_%s", gatewayTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, gatewayTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/gateway_test.go b/internal/connector/pingone/platform/resources/gateway_test.go index f3ffa215..60cde453 100644 --- a/internal/connector/pingone/platform/resources/gateway_test.go +++ b/internal/connector/pingone/platform/resources/gateway_test.go @@ -18,14 +18,14 @@ func Test_Gateway(t *testing.T) { tr := pingone_testable_resources.Gateway(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/identity_propagation_plan_test.go b/internal/connector/pingone/platform/resources/identity_propagation_plan_test.go index ab506a19..be11c42c 100644 --- a/internal/connector/pingone/platform/resources/identity_propagation_plan_test.go +++ b/internal/connector/pingone/platform/resources/identity_propagation_plan_test.go @@ -18,14 +18,14 @@ func Test_IdentityPropagationPlan(t *testing.T) { tr := pingone_testable_resources.IdentityPropagationPlan(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/key_rotation_policy_test.go b/internal/connector/pingone/platform/resources/key_rotation_policy_test.go index 3fb43808..b60b023f 100644 --- a/internal/connector/pingone/platform/resources/key_rotation_policy_test.go +++ b/internal/connector/pingone/platform/resources/key_rotation_policy_test.go @@ -18,14 +18,14 @@ func Test_KeyRotationPolicy(t *testing.T) { tr := pingone_testable_resources.KeyRotationPolicy(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/key_test.go b/internal/connector/pingone/platform/resources/key_test.go index 8181078d..f411aa63 100644 --- a/internal/connector/pingone/platform/resources/key_test.go +++ b/internal/connector/pingone/platform/resources/key_test.go @@ -18,14 +18,14 @@ func Test_Key(t *testing.T) { tr := pingone_testable_resources.Key(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", creationInfo.SelfInfo[testutils_resource.ENUM_NAME], creationInfo.SelfInfo[testutils_resource.ENUM_TYPE]), - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: fmt.Sprintf("%s_%s", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_TYPE]), + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/language_test.go b/internal/connector/pingone/platform/resources/language_test.go index 850e036e..63058b35 100644 --- a/internal/connector/pingone/platform/resources/language_test.go +++ b/internal/connector/pingone/platform/resources/language_test.go @@ -18,14 +18,14 @@ func Test_Language(t *testing.T) { tr := pingone_testable_resources.Language(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/language_update_test.go b/internal/connector/pingone/platform/resources/language_update_test.go index 9078048b..536bddac 100644 --- a/internal/connector/pingone/platform/resources/language_update_test.go +++ b/internal/connector/pingone/platform/resources/language_update_test.go @@ -17,7 +17,7 @@ func TestLanguageUpdateExport(t *testing.T) { tr := pingone_testable_resources.LanguageUpdate(t, clientInfo) - _ = tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) languageTr := tr.Dependencies[0] @@ -26,8 +26,8 @@ func TestLanguageUpdateExport(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_update", languageTr.CreationInfo.SelfInfo[testutils_resource.ENUM_NAME]), - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, languageTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: fmt.Sprintf("%s_update", languageTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, languageTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/notification_policy_test.go b/internal/connector/pingone/platform/resources/notification_policy_test.go index 3af8e229..412de7e8 100644 --- a/internal/connector/pingone/platform/resources/notification_policy_test.go +++ b/internal/connector/pingone/platform/resources/notification_policy_test.go @@ -18,14 +18,14 @@ func Test_NotificationPolicy(t *testing.T) { tr := pingone_testable_resources.NotificationPolicy(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/notification_template_content_test.go b/internal/connector/pingone/platform/resources/notification_template_content_test.go index 0a65ee86..a27f543a 100644 --- a/internal/connector/pingone/platform/resources/notification_template_content_test.go +++ b/internal/connector/pingone/platform/resources/notification_template_content_test.go @@ -18,14 +18,14 @@ func Test_NotificationTemplateContent(t *testing.T) { tr := pingone_testable_resources.NotificationTemplateContent(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s_%s_%s_%s", creationInfo.SelfInfo[testutils_resource.ENUM_NAME], creationInfo.SelfInfo[testutils_resource.ENUM_TEMPLATE_DELIVERY_METHOD], creationInfo.SelfInfo[testutils_resource.ENUM_LOCALE], creationInfo.SelfInfo[testutils_resource.ENUM_TEMPLATE_VARIANT], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), - ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_NAME], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: fmt.Sprintf("%s_%s_%s_%s_%s", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_TEMPLATE_DELIVERY_METHOD], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_LOCALE], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_TEMPLATE_VARIANT], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/phone_delivery_settings_test.go b/internal/connector/pingone/platform/resources/phone_delivery_settings_test.go index 28e81c89..8817b6f3 100644 --- a/internal/connector/pingone/platform/resources/phone_delivery_settings_test.go +++ b/internal/connector/pingone/platform/resources/phone_delivery_settings_test.go @@ -18,14 +18,14 @@ func Test_PhoneDeliverySettings(t *testing.T) { tr := pingone_testable_resources.PhoneDeliverySettings(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("provider_custom_%s", creationInfo.SelfInfo[testutils_resource.ENUM_NAME]), - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: fmt.Sprintf("provider_custom_%s", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/trusted_email_address_test.go b/internal/connector/pingone/platform/resources/trusted_email_address_test.go index 58edc248..72428226 100644 --- a/internal/connector/pingone/platform/resources/trusted_email_address_test.go +++ b/internal/connector/pingone/platform/resources/trusted_email_address_test.go @@ -19,14 +19,14 @@ func Test_TrustedEmailAddress(t *testing.T) { // TODO: Currently unable to create a trusted email address via API due to trust email domain verification requirement // trustedEmailDomainTr := tr.Dependencies[0] - // creationInfo := tr.CreateResource(t) + // tr.CreateResource(t) // defer tr.DeleteResource(t) // expectedImportBlocks := []connector.ImportBlock{ // { // ResourceType: tr.ExportableResource.ResourceType(), - // ResourceName: fmt.Sprintf("%s_%s", trustedEmailDomainTr.CreationInfo.SelfInfo[testutils_resource.ENUM_NAME], creationInfo.SelfInfo[testutils_resource.ENUM_NAME]), - // ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, trustedEmailDomainTr.CreationInfo.SelfInfo[testutils_resource.ENUM_ID], creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + // ResourceName: fmt.Sprintf("%s_%s", trustedEmailDomainTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + // ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, trustedEmailDomainTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), // }, // } diff --git a/internal/connector/pingone/platform/resources/trusted_email_domain_test.go b/internal/connector/pingone/platform/resources/trusted_email_domain_test.go index ea69341b..c43e282c 100644 --- a/internal/connector/pingone/platform/resources/trusted_email_domain_test.go +++ b/internal/connector/pingone/platform/resources/trusted_email_domain_test.go @@ -18,14 +18,14 @@ func Test_TrustedEmailDomain(t *testing.T) { tr := pingone_testable_resources.TrustedEmailDomain(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/platform/resources/webhook_test.go b/internal/connector/pingone/platform/resources/webhook_test.go index 1f50cc8e..f9287a8b 100644 --- a/internal/connector/pingone/platform/resources/webhook_test.go +++ b/internal/connector/pingone/platform/resources/webhook_test.go @@ -18,14 +18,14 @@ func Test_Webhook(t *testing.T) { tr := pingone_testable_resources.Webhook(t, clientInfo) - creationInfo := tr.CreateResource(t) + tr.CreateResource(t) defer tr.DeleteResource(t) expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: creationInfo.SelfInfo[testutils_resource.ENUM_NAME], - ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, creationInfo.SelfInfo[testutils_resource.ENUM_ID]), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), }, } diff --git a/internal/connector/pingone/sso/pingone_sso_connector.go b/internal/connector/pingone/sso/pingone_sso_connector.go index 670377da..eac1fdc4 100644 --- a/internal/connector/pingone/sso/pingone_sso_connector.go +++ b/internal/connector/pingone/sso/pingone_sso_connector.go @@ -59,7 +59,7 @@ func (c *PingOneSSOConnector) Export(format, outputDir string, overwriteExport b resources.PasswordPolicy(&c.clientInfo), resources.Population(&c.clientInfo), resources.PopulationDefault(&c.clientInfo), - resources.PopulationDefaultIdp(&c.clientInfo), + resources.PopulationDefaultIdentityProvider(&c.clientInfo), resources.Resource(&c.clientInfo), resources.ResourceAttribute(&c.clientInfo), resources.ResourceSecret(&c.clientInfo), diff --git a/internal/connector/pingone/sso/pingone_sso_connector_test.go b/internal/connector/pingone/sso/pingone_sso_connector_test.go index 7bd31faa..09d09f95 100644 --- a/internal/connector/pingone/sso/pingone_sso_connector_test.go +++ b/internal/connector/pingone/sso/pingone_sso_connector_test.go @@ -5,9 +5,9 @@ package sso_test import ( "testing" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" "github.com/pingidentity/pingcli/internal/testing/testutils_terraform" ) @@ -17,135 +17,139 @@ func TestSSOTerraformPlan(t *testing.T) { testutils_terraform.InitPingOneTerraform(t) testCases := []struct { - name string - resource connector.ExportableResource - ignoredErrors []string + name string + testableResource *testutils_resource.TestableResource + ignoredErrors []string }{ { - name: "Application", - resource: resources.Application(clientInfo), - ignoredErrors: nil, + name: "Application", + testableResource: pingone_testable_resources.ApplicationDeviceAuthorization(t, clientInfo), + ignoredErrors: nil, }, { - name: "ApplicationAttributeMapping", - resource: resources.ApplicationAttributeMapping(clientInfo), - ignoredErrors: nil, + name: "ApplicationAttributeMapping", + testableResource: pingone_testable_resources.ApplicationAttributeMapping(t, clientInfo), + ignoredErrors: nil, }, { - name: "ApplicationFlowPolicyAssignment", - resource: resources.ApplicationFlowPolicyAssignment(clientInfo), - ignoredErrors: nil, + name: "ApplicationFlowPolicyAssignment", + testableResource: pingone_testable_resources.ApplicationFlowPolicyAssignment(t, clientInfo), + ignoredErrors: nil, }, { - name: "ApplicationResourceGrant", - resource: resources.ApplicationResourceGrant(clientInfo), - ignoredErrors: nil, + name: "ApplicationResourceGrant", + testableResource: pingone_testable_resources.ApplicationResourceGrant(t, clientInfo), + ignoredErrors: nil, }, { - name: "ApplicationRoleAssignment", - resource: resources.ApplicationRoleAssignment(clientInfo), - ignoredErrors: nil, + name: "ApplicationRoleAssignment", + testableResource: pingone_testable_resources.ApplicationRoleAssignment(t, clientInfo), + ignoredErrors: nil, }, { - name: "ApplicationSecret", - resource: resources.ApplicationSecret(clientInfo), - ignoredErrors: nil, + name: "ApplicationSecret", + testableResource: pingone_testable_resources.ApplicationSecret(t, clientInfo), + ignoredErrors: nil, }, { - name: "ApplicationSignOnPolicyAssignment", - resource: resources.ApplicationSignOnPolicyAssignment(clientInfo), - ignoredErrors: nil, + name: "ApplicationSignOnPolicyAssignment", + testableResource: pingone_testable_resources.ApplicationSignOnPolicyAssignment(t, clientInfo), + ignoredErrors: nil, }, { - name: "Group", - resource: resources.Group(clientInfo), - ignoredErrors: nil, + name: "Group", + testableResource: pingone_testable_resources.Group(t, clientInfo), + ignoredErrors: nil, }, { - name: "GroupNesting", - resource: resources.GroupNesting(clientInfo), - ignoredErrors: nil, + name: "GroupNesting", + testableResource: pingone_testable_resources.GroupNesting(t, clientInfo), + ignoredErrors: nil, }, { - name: "GroupRoleAssignment", - resource: resources.GroupRoleAssignment(clientInfo), - ignoredErrors: nil, + name: "GroupRoleAssignment", + testableResource: pingone_testable_resources.GroupRoleAssignment(t, clientInfo), + ignoredErrors: nil, }, { - name: "IdentityProvider", - resource: resources.IdentityProvider(clientInfo), - ignoredErrors: nil, + name: "IdentityProvider", + testableResource: pingone_testable_resources.IdentityProvider(t, clientInfo), + ignoredErrors: []string{ + "Error: Missing Configuration for Required Attribute", + }, }, { - name: "IdentityProviderAttribute", - resource: resources.IdentityProviderAttribute(clientInfo), - ignoredErrors: nil, + name: "IdentityProviderAttribute", + testableResource: pingone_testable_resources.IdentityProviderAttribute(t, clientInfo), + ignoredErrors: nil, }, { - name: "PasswordPolicy", - resource: resources.PasswordPolicy(clientInfo), - ignoredErrors: nil, + name: "PasswordPolicy", + testableResource: pingone_testable_resources.PasswordPolicy(t, clientInfo), + ignoredErrors: nil, }, { - name: "Population", - resource: resources.Population(clientInfo), - ignoredErrors: nil, + name: "Population", + testableResource: pingone_testable_resources.Population(t, clientInfo), + ignoredErrors: nil, }, { - name: "PopulationDefault", - resource: resources.PopulationDefault(clientInfo), - ignoredErrors: nil, + name: "PopulationDefault", + testableResource: pingone_testable_resources.PopulationDefault(t, clientInfo), + ignoredErrors: nil, }, { - name: "PopulationDefaultIdp", - resource: resources.PopulationDefaultIdp(clientInfo), - ignoredErrors: nil, + name: "PopulationDefaultIdp", + testableResource: pingone_testable_resources.PopulationDefaultIdentityProvider(t, clientInfo), + ignoredErrors: nil, }, { - name: "Resource", - resource: resources.Resource(clientInfo), - ignoredErrors: nil, + name: "Resource", + testableResource: pingone_testable_resources.Resource(t, clientInfo), + ignoredErrors: nil, }, { - name: "ResourceAttribute", - resource: resources.ResourceAttribute(clientInfo), - ignoredErrors: nil, + name: "ResourceAttribute", + testableResource: pingone_testable_resources.ResourceAttribute(t, clientInfo), + ignoredErrors: nil, }, { - name: "ResourceScope", - resource: resources.ResourceScope(clientInfo), - ignoredErrors: nil, + name: "ResourceScope", + testableResource: pingone_testable_resources.ResourceScope(t, clientInfo), + ignoredErrors: nil, }, { - name: "ResourceScopeOpenId", - resource: resources.ResourceScopeOpenId(clientInfo), - ignoredErrors: nil, + name: "ResourceScopeOpenId", + testableResource: pingone_testable_resources.ResourceScopeOpenId(t, clientInfo), + ignoredErrors: nil, }, { - name: "ResourceScopePingOneApi", - resource: resources.ResourceScopePingOneApi(clientInfo), - ignoredErrors: nil, + name: "ResourceScopePingOneApi", + testableResource: pingone_testable_resources.ResourceScopePingOneApi(t, clientInfo), + ignoredErrors: []string{ + "Error: Invalid Attribute Value Match", + }, }, { - name: "ResourceSecret", - resource: resources.ResourceSecret(clientInfo), - ignoredErrors: nil, + name: "ResourceSecret", + testableResource: pingone_testable_resources.ResourceSecret(t, clientInfo), + ignoredErrors: nil, }, { - name: "SchemaAttribute", - resource: resources.SchemaAttribute(clientInfo), + name: "SchemaAttribute", + testableResource: pingone_testable_resources.SchemaAttribute(t, clientInfo), ignoredErrors: []string{ "Error: Data Loss Protection", }, }, { - name: "SignOnPolicy", - resource: resources.SignOnPolicy(clientInfo), - ignoredErrors: nil, + name: "SignOnPolicy", + testableResource: pingone_testable_resources.SignOnPolicy(t, clientInfo), + ignoredErrors: nil, }, { - name: "SignOnPolicyAction", - resource: resources.SignOnPolicyAction(clientInfo), + name: "SignOnPolicyAction", + testableResource: pingone_testable_resources.SignOnPolicyAction(t, clientInfo), ignoredErrors: []string{ "Error: Conflicting configuration arguments", }, @@ -154,7 +158,10 @@ func TestSSOTerraformPlan(t *testing.T) { for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { - testutils_terraform.ValidateTerraformPlan(t, tc.resource, tc.ignoredErrors) + tc.testableResource.CreateResource(t) + defer tc.testableResource.DeleteResource(t) + + testutils_terraform.ValidateTerraformPlan(t, tc.testableResource.ExportableResource, tc.ignoredErrors) }) } } diff --git a/internal/connector/pingone/sso/resources/pingone_application.go b/internal/connector/pingone/sso/resources/application.go similarity index 62% rename from internal/connector/pingone/sso/resources/pingone_application.go rename to internal/connector/pingone/sso/resources/application.go index b69830c1..fd49a2a5 100644 --- a/internal/connector/pingone/sso/resources/pingone_application.go +++ b/internal/connector/pingone/sso/resources/application.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -43,18 +44,18 @@ func (r *PingOneApplicationResource) ExportAll() (*[]connector.ImportBlock, erro return nil, err } - for appId, appName := range applicationData { + for applicationId, applicationName := range applicationData { commentData := map[string]string{ - "Application ID": appId, - "Application Name": appName, + "Application ID": applicationId, + "Application Name": applicationName, "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Resource Type": r.ResourceType(), } importBlock := connector.ImportBlock{ ResourceType: r.ResourceType(), - ResourceName: appName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, appId), + ResourceName: applicationName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, applicationId), CommentInformation: common.GenerateCommentInformation(commentData), } @@ -68,35 +69,35 @@ func (r *PingOneApplicationResource) getApplicationData() (map[string]string, er applicationData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.ReadAllApplications(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - applications, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", r.ResourceType()) if err != nil { return nil, err } - for _, app := range applications { + for _, inner := range apiObjs { var ( - appId *string - appIdOk bool - appName *string - appNameOk bool + applicationId *string + applicationIdOk bool + applicationName *string + applicationNameOk bool ) switch { - case app.ApplicationOIDC != nil: - appId, appIdOk = app.ApplicationOIDC.GetIdOk() - appName, appNameOk = app.ApplicationOIDC.GetNameOk() - case app.ApplicationSAML != nil: - appId, appIdOk = app.ApplicationSAML.GetIdOk() - appName, appNameOk = app.ApplicationSAML.GetNameOk() - case app.ApplicationExternalLink != nil: - appId, appIdOk = app.ApplicationExternalLink.GetIdOk() - appName, appNameOk = app.ApplicationExternalLink.GetNameOk() + case inner.ApplicationOIDC != nil: + applicationId, applicationIdOk = inner.ApplicationOIDC.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationOIDC.GetNameOk() + case inner.ApplicationSAML != nil: + applicationId, applicationIdOk = inner.ApplicationSAML.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationSAML.GetNameOk() + case inner.ApplicationExternalLink != nil: + applicationId, applicationIdOk = inner.ApplicationExternalLink.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationExternalLink.GetNameOk() default: continue } - if appIdOk && appNameOk { - applicationData[*appId] = *appName + if applicationIdOk && applicationNameOk { + applicationData[*applicationId] = *applicationName } } diff --git a/internal/connector/pingone/sso/resources/pingone_application_attribute_mapping.go b/internal/connector/pingone/sso/resources/application_attribute_mapping.go similarity index 52% rename from internal/connector/pingone/sso/resources/pingone_application_attribute_mapping.go rename to internal/connector/pingone/sso/resources/application_attribute_mapping.go index ef6c7b2d..eb4231a0 100644 --- a/internal/connector/pingone/sso/resources/pingone_application_attribute_mapping.go +++ b/internal/connector/pingone/sso/resources/application_attribute_mapping.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -43,26 +44,26 @@ func (r *PingOneApplicationAttributeMappingResource) ExportAll() (*[]connector.I return nil, err } - for appId, appName := range applicationData { - applicationAttributeMappingData, err := r.getApplicationAttributeMappingData(appId) + for applicationId, applicationName := range applicationData { + applicationAttributeMappingData, err := r.getApplicationAttributeMappingData(applicationId) if err != nil { return nil, err } - for attributeMappingId, attributeMappingName := range applicationAttributeMappingData { + for applicationAttributeMappingId, applicationAttributeMappingName := range applicationAttributeMappingData { commentData := map[string]string{ - "Application ID": appId, - "Application Name": appName, - "Attribute Mapping ID": attributeMappingId, - "Attribute Mapping Name": attributeMappingName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), + "Application ID": applicationId, + "Application Name": applicationName, + "Application Attribute Mapping ID": applicationAttributeMappingId, + "Application Attribute Mapping Name": applicationAttributeMappingName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), } importBlock := connector.ImportBlock{ ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", appName, attributeMappingName), - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, appId, attributeMappingId), + ResourceName: fmt.Sprintf("%s_%s", applicationName, applicationAttributeMappingName), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, applicationId, applicationAttributeMappingId), CommentInformation: common.GenerateCommentInformation(commentData), } @@ -77,54 +78,54 @@ func (r *PingOneApplicationAttributeMappingResource) getApplicationData() (map[s applicationData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.ReadAllApplications(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - applications, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", r.ResourceType()) if err != nil { return nil, err } - for _, app := range applications { + for _, inner := range apiObjs { var ( - appId *string - appIdOk bool - appName *string - appNameOk bool + applicationId *string + applicationIdOk bool + applicationName *string + applicationNameOk bool ) switch { - case app.ApplicationOIDC != nil: - appId, appIdOk = app.ApplicationOIDC.GetIdOk() - appName, appNameOk = app.ApplicationOIDC.GetNameOk() - case app.ApplicationSAML != nil: - appId, appIdOk = app.ApplicationSAML.GetIdOk() - appName, appNameOk = app.ApplicationSAML.GetNameOk() + case inner.ApplicationOIDC != nil: + applicationId, applicationIdOk = inner.ApplicationOIDC.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationOIDC.GetNameOk() + case inner.ApplicationSAML != nil: + applicationId, applicationIdOk = inner.ApplicationSAML.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationSAML.GetNameOk() default: continue } - if appIdOk && appNameOk { - applicationData[*appId] = *appName + if applicationIdOk && applicationNameOk { + applicationData[*applicationId] = *applicationName } } return applicationData, nil } -func (r *PingOneApplicationAttributeMappingResource) getApplicationAttributeMappingData(appId string) (map[string]string, error) { +func (r *PingOneApplicationAttributeMappingResource) getApplicationAttributeMappingData(applicationId string) (map[string]string, error) { applicationAttributeMappingData := make(map[string]string) - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationAttributeMappingApi.ReadAllApplicationAttributeMappings(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, appId).Execute() - attributeMappingInners, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedAttributesInner](iter, "ReadAllApplicationAttributeMappings", "GetAttributes", r.ResourceType()) + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationAttributeMappingApi.ReadAllApplicationAttributeMappings(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, applicationId).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedAttributesInner](iter, "ReadAllApplicationAttributeMappings", "GetAttributes", r.ResourceType()) if err != nil { return nil, err } - for _, attributeMappingInner := range attributeMappingInners { - if attributeMappingInner.ApplicationAttributeMapping != nil { - attributeMappingId, attributeMappingIdOk := attributeMappingInner.ApplicationAttributeMapping.GetIdOk() - attributeMappingName, attributeMappingNameOk := attributeMappingInner.ApplicationAttributeMapping.GetNameOk() + for _, innerObj := range apiObjs { + if innerObj.ApplicationAttributeMapping != nil { + applicationAttributeMappingId, applicationAttributeMappingIdOk := innerObj.ApplicationAttributeMapping.GetIdOk() + applicationAttributeMappingName, applicationAttributeMappingNameOk := innerObj.ApplicationAttributeMapping.GetNameOk() - if attributeMappingIdOk && attributeMappingNameOk { - applicationAttributeMappingData[*attributeMappingId] = *attributeMappingName + if applicationAttributeMappingIdOk && applicationAttributeMappingNameOk { + applicationAttributeMappingData[*applicationAttributeMappingId] = *applicationAttributeMappingName } } } diff --git a/internal/connector/pingone/sso/resources/application_attribute_mapping_test.go b/internal/connector/pingone/sso/resources/application_attribute_mapping_test.go new file mode 100644 index 00000000..c08d32dc --- /dev/null +++ b/internal/connector/pingone/sso/resources/application_attribute_mapping_test.go @@ -0,0 +1,36 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_ApplicationAttributeMapping(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.ApplicationAttributeMapping(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + applicationTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", applicationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, applicationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing application attribute mappings are generated. Test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/pingone_application_flow_policy_assignment.go b/internal/connector/pingone/sso/resources/application_flow_policy_assignment.go similarity index 51% rename from internal/connector/pingone/sso/resources/pingone_application_flow_policy_assignment.go rename to internal/connector/pingone/sso/resources/application_flow_policy_assignment.go index 75b39d6a..0259ad2e 100644 --- a/internal/connector/pingone/sso/resources/pingone_application_flow_policy_assignment.go +++ b/internal/connector/pingone/sso/resources/application_flow_policy_assignment.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -43,34 +44,35 @@ func (r *PingOneApplicationFlowPolicyAssignmentResource) ExportAll() (*[]connect return nil, err } - for appId, appName := range applicationData { - flowPolicyAssignmentData, err := r.getFlowPolicyAssignmentData(appId) + for applicationId, applicationName := range applicationData { + applicationFlowPolicyAssignmentData, err := r.getApplicationFlowPolicyAssignmentData(applicationId) if err != nil { return nil, err } - for flowPolicyAssignmentId, flowPolicyId := range flowPolicyAssignmentData { - flowPolicyName, flowPolicyNameOk, err := r.getFlowPolicyName(flowPolicyId) + for applicationFlowPolicyAssignmentId, applicationFlowPolicyAssignmentFlowPolicyId := range applicationFlowPolicyAssignmentData { + flowPolicyName, flowPolicyNameOk, err := r.getFlowPolicyName(applicationFlowPolicyAssignmentFlowPolicyId) if err != nil { return nil, err } + if !flowPolicyNameOk { continue } commentData := map[string]string{ - "Application ID": appId, - "Application Name": appName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Flow Policy Assignment ID": flowPolicyAssignmentId, - "Flow Policy Name": flowPolicyName, - "Resource Type": r.ResourceType(), + "Application ID": applicationId, + "Application Name": applicationName, + "Application Flow Policy Assignment ID": applicationFlowPolicyAssignmentId, + "Application Flow Policy Assignment Flow Policy Name": flowPolicyName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), } importBlock := connector.ImportBlock{ ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", appName, flowPolicyName), - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, appId, flowPolicyAssignmentId), + ResourceName: fmt.Sprintf("%s_%s", applicationName, flowPolicyName), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, applicationId, applicationFlowPolicyAssignmentId), CommentInformation: common.GenerateCommentInformation(commentData), } @@ -85,64 +87,64 @@ func (r *PingOneApplicationFlowPolicyAssignmentResource) getApplicationData() (m applicationData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.ReadAllApplications(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - applications, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", r.ResourceType()) if err != nil { return nil, err } - for _, app := range applications { + for _, inner := range apiObjs { var ( - appId *string - appIdOk bool - appName *string - appNameOk bool + applicationId *string + applicationIdOk bool + applicationName *string + applicationNameOk bool ) switch { - case app.ApplicationOIDC != nil: - appId, appIdOk = app.ApplicationOIDC.GetIdOk() - appName, appNameOk = app.ApplicationOIDC.GetNameOk() - case app.ApplicationSAML != nil: - appId, appIdOk = app.ApplicationSAML.GetIdOk() - appName, appNameOk = app.ApplicationSAML.GetNameOk() - case app.ApplicationExternalLink != nil: - appId, appIdOk = app.ApplicationExternalLink.GetIdOk() - appName, appNameOk = app.ApplicationExternalLink.GetNameOk() + case inner.ApplicationOIDC != nil: + applicationId, applicationIdOk = inner.ApplicationOIDC.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationOIDC.GetNameOk() + case inner.ApplicationSAML != nil: + applicationId, applicationIdOk = inner.ApplicationSAML.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationSAML.GetNameOk() + case inner.ApplicationExternalLink != nil: + applicationId, applicationIdOk = inner.ApplicationExternalLink.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationExternalLink.GetNameOk() default: continue } - if appIdOk && appNameOk { - applicationData[*appId] = *appName + if applicationIdOk && applicationNameOk { + applicationData[*applicationId] = *applicationName } } return applicationData, nil } -func (r *PingOneApplicationFlowPolicyAssignmentResource) getFlowPolicyAssignmentData(appId string) (map[string]string, error) { - flowPolicyAssignmentData := make(map[string]string) +func (r *PingOneApplicationFlowPolicyAssignmentResource) getApplicationFlowPolicyAssignmentData(applicationId string) (map[string]string, error) { + applicationFlowPolicyAssignmentData := make(map[string]string) - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationFlowPolicyAssignmentsApi.ReadAllFlowPolicyAssignments(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, appId).Execute() - flowPolicyAssignments, err := pingone.GetManagementAPIObjectsFromIterator[management.FlowPolicyAssignment](iter, "ReadAllFlowPolicyAssignments", "GetFlowPolicyAssignments", r.ResourceType()) + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationFlowPolicyAssignmentsApi.ReadAllFlowPolicyAssignments(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, applicationId).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.FlowPolicyAssignment](iter, "ReadAllFlowPolicyAssignments", "GetFlowPolicyAssignments", r.ResourceType()) if err != nil { return nil, err } - for _, flowPolicyAssignment := range flowPolicyAssignments { - flowPolicyAssignmentId, flowPolicyAssignmentIdOk := flowPolicyAssignment.GetIdOk() - flowPolicyAssignmentFlowPolicy, flowPolicyAssignmentFlowPolicyOk := flowPolicyAssignment.GetFlowPolicyOk() + for _, applicationFlowPolicyAssignment := range apiObjs { + applicationFlowPolicyAssignmentId, applicationFlowPolicyAssignmentIdOk := applicationFlowPolicyAssignment.GetIdOk() + applicationFlowPolicyAssignmentFlowPolicy, applicationFlowPolicyAssignmentFlowPolicyOk := applicationFlowPolicyAssignment.GetFlowPolicyOk() - if flowPolicyAssignmentIdOk && flowPolicyAssignmentFlowPolicyOk { - flowPolicyId, flowPolicyIdOk := flowPolicyAssignmentFlowPolicy.GetIdOk() + if applicationFlowPolicyAssignmentIdOk && applicationFlowPolicyAssignmentFlowPolicyOk { + applicationFlowPolicyAssignmentFlowPolicyId, applicationFlowPolicyAssignmentFlowPolicyIdOk := applicationFlowPolicyAssignmentFlowPolicy.GetIdOk() - if flowPolicyIdOk { - flowPolicyAssignmentData[*flowPolicyAssignmentId] = *flowPolicyId + if applicationFlowPolicyAssignmentFlowPolicyIdOk { + applicationFlowPolicyAssignmentData[*applicationFlowPolicyAssignmentId] = *applicationFlowPolicyAssignmentFlowPolicyId } } } - return flowPolicyAssignmentData, nil + return applicationFlowPolicyAssignmentData, nil } func (r *PingOneApplicationFlowPolicyAssignmentResource) getFlowPolicyName(flowPolicyId string) (string, bool, error) { diff --git a/internal/connector/pingone/sso/resources/application_flow_policy_assignment_test.go b/internal/connector/pingone/sso/resources/application_flow_policy_assignment_test.go new file mode 100644 index 00000000..8d296577 --- /dev/null +++ b/internal/connector/pingone/sso/resources/application_flow_policy_assignment_test.go @@ -0,0 +1,36 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_ApplicationFlowPolicyAssignment(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.ApplicationFlowPolicyAssignment(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + applicationTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", applicationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, applicationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing application flow policy assignments are generated. Test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/application_resource_grant.go b/internal/connector/pingone/sso/resources/application_resource_grant.go new file mode 100644 index 00000000..599cd39f --- /dev/null +++ b/internal/connector/pingone/sso/resources/application_resource_grant.go @@ -0,0 +1,174 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneApplicationResourceGrantResource{} +) + +type PingOneApplicationResourceGrantResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneApplicationResourceGrantResource +func ApplicationResourceGrant(clientInfo *connector.ClientInfo) *PingOneApplicationResourceGrantResource { + return &PingOneApplicationResourceGrantResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneApplicationResourceGrantResource) ResourceType() string { + return "pingone_application_resource_grant" +} + +func (r *PingOneApplicationResourceGrantResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + applicationData, err := r.getApplicationData() + if err != nil { + return nil, err + } + + for applicationId, applicationName := range applicationData { + applicationResourceGrantData, err := r.getApplicationResourceGrantData(applicationId) + if err != nil { + return nil, err + } + + for applicationResourceGrantId, applicationResourceGrantResourceId := range applicationResourceGrantData { + resourceName, resourceNameOk, err := r.getGrantResourceName(applicationResourceGrantResourceId) + if err != nil { + return nil, err + } + + if !resourceNameOk { + continue + } + + commentData := map[string]string{ + "Application ID": applicationId, + "Application Name": applicationName, + "Application Resource Grant ID": applicationResourceGrantId, + "Application Resource Grant Resource Name": resourceName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", applicationName, resourceName), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, applicationId, applicationResourceGrantId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + } + + return &importBlocks, nil +} + +func (r *PingOneApplicationResourceGrantResource) getApplicationData() (map[string]string, error) { + applicationData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.ReadAllApplications(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, inner := range apiObjs { + var ( + applicationId *string + applicationIdOk bool + applicationName *string + applicationNameOk bool + ) + + switch { + case inner.ApplicationPingOnePortal != nil: + applicationId, applicationIdOk = inner.ApplicationPingOnePortal.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationPingOnePortal.GetNameOk() + case inner.ApplicationPingOneSelfService != nil: + applicationId, applicationIdOk = inner.ApplicationPingOneSelfService.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationPingOneSelfService.GetNameOk() + case inner.ApplicationExternalLink != nil: + applicationId, applicationIdOk = inner.ApplicationExternalLink.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationExternalLink.GetNameOk() + case inner.ApplicationOIDC != nil: + applicationId, applicationIdOk = inner.ApplicationOIDC.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationOIDC.GetNameOk() + case inner.ApplicationSAML != nil: + applicationId, applicationIdOk = inner.ApplicationSAML.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationSAML.GetNameOk() + default: + continue + } + + if applicationIdOk && applicationNameOk { + applicationData[*applicationId] = *applicationName + } + } + + return applicationData, nil +} + +func (r *PingOneApplicationResourceGrantResource) getApplicationResourceGrantData(applicationId string) (map[string]string, error) { + applicationResourceGrantData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationResourceGrantsApi.ReadAllApplicationGrants(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, applicationId).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.ApplicationResourceGrant](iter, "ReadAllApplicationGrants", "GetGrants", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, applicationResourceGrant := range apiObjs { + applicationResourceGrantId, applicationResourceGrantIdOk := applicationResourceGrant.GetIdOk() + applicationResourceGrantResource, applicationResourceGrantResourceOk := applicationResourceGrant.GetResourceOk() + + if applicationResourceGrantIdOk && applicationResourceGrantResourceOk { + applicationResourceGrantResourceId, applicationResourceGrantResourceIdOk := applicationResourceGrantResource.GetIdOk() + + if applicationResourceGrantResourceIdOk { + applicationResourceGrantData[*applicationResourceGrantId] = *applicationResourceGrantResourceId + } + } + } + + return applicationResourceGrantData, nil +} + +func (r *PingOneApplicationResourceGrantResource) getGrantResourceName(grantResourceId string) (string, bool, error) { + resource, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.ReadOneResource(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, grantResourceId).Execute() + ok, err := common.HandleClientResponse(response, err, "ReadOneResource", r.ResourceType()) + if err != nil { + return "", false, err + } + if !ok { + return "", false, nil + } + + if resource != nil { + resourceName, resourceNameOk := resource.GetNameOk() + if resourceNameOk { + return *resourceName, true, nil + } + } + + return "", false, fmt.Errorf("unable to get resource name for grant resource ID: %s", grantResourceId) +} diff --git a/internal/connector/pingone/sso/resources/application_resource_grant_test.go b/internal/connector/pingone/sso/resources/application_resource_grant_test.go new file mode 100644 index 00000000..64ee73f1 --- /dev/null +++ b/internal/connector/pingone/sso/resources/application_resource_grant_test.go @@ -0,0 +1,36 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_ApplicationResourceGrant(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.ApplicationResourceGrant(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + applicationTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", applicationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, applicationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing application grants are generated. Test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/application_role_assignment.go b/internal/connector/pingone/sso/resources/application_role_assignment.go new file mode 100644 index 00000000..c24652f6 --- /dev/null +++ b/internal/connector/pingone/sso/resources/application_role_assignment.go @@ -0,0 +1,183 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneApplicationRoleAssignmentResource{} +) + +type PingOneApplicationRoleAssignmentResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneApplicationRoleAssignmentResource +func ApplicationRoleAssignment(clientInfo *connector.ClientInfo) *PingOneApplicationRoleAssignmentResource { + return &PingOneApplicationRoleAssignmentResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneApplicationRoleAssignmentResource) ResourceType() string { + return "pingone_application_role_assignment" +} + +func (r *PingOneApplicationRoleAssignmentResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + applicationData, err := r.getApplicationData() + if err != nil { + return nil, err + } + + for applicationId, applicationName := range applicationData { + applicationRoleAssignmentData, err := r.getApplicationRoleAssignmentData(applicationId) + if err != nil { + return nil, err + } + + for applicationRoleAssignmentId, applicationRoleAssignmentRoleId := range applicationRoleAssignmentData { + applicationRoleAssignmentRoleName, applicationRoleAssignmentRoleNameOk, err := r.getRoleName(applicationRoleAssignmentRoleId) + if err != nil { + return nil, err + } + + if !applicationRoleAssignmentRoleNameOk { + continue + } + + commentData := map[string]string{ + "Application ID": applicationId, + "Application Name": applicationName, + "Application Role Assignment ID": applicationRoleAssignmentId, + "Application Role Assignment Role Name": applicationRoleAssignmentRoleId, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s_%s", applicationName, string(applicationRoleAssignmentRoleName), applicationRoleAssignmentId), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, applicationId, applicationRoleAssignmentId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + } + + return &importBlocks, nil +} + +func (r *PingOneApplicationRoleAssignmentResource) getApplicationData() (map[string]string, error) { + applicationData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.ReadAllApplications(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, inner := range apiObjs { + var ( + applicationId *string + applicationIdOk bool + applicationName *string + applicationNameOk bool + applicationAccessControlRole *management.ApplicationAccessControlRole + applicationAccessControlRoleOk bool + ) + + switch { + case inner.ApplicationOIDC != nil: + applicationId, applicationIdOk = inner.ApplicationOIDC.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationOIDC.GetNameOk() + if inner.ApplicationOIDC.AccessControl != nil { + applicationAccessControlRole, applicationAccessControlRoleOk = inner.ApplicationOIDC.AccessControl.GetRoleOk() + } + case inner.ApplicationSAML != nil: + applicationId, applicationIdOk = inner.ApplicationSAML.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationSAML.GetNameOk() + if inner.ApplicationSAML.AccessControl != nil { + applicationAccessControlRole, applicationAccessControlRoleOk = inner.ApplicationSAML.AccessControl.GetRoleOk() + } + case inner.ApplicationExternalLink != nil: + applicationId, applicationIdOk = inner.ApplicationExternalLink.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationExternalLink.GetNameOk() + if inner.ApplicationExternalLink.AccessControl != nil { + applicationAccessControlRole, applicationAccessControlRoleOk = inner.ApplicationExternalLink.AccessControl.GetRoleOk() + } + default: + continue + } + + if applicationIdOk && applicationNameOk && applicationAccessControlRoleOk { + if applicationAccessControlRole.GetType() != management.ENUMAPPLICATIONACCESSCONTROLTYPE_ADMIN_USERS_ONLY { + continue + } + + applicationData[*applicationId] = *applicationName + } + } + + return applicationData, nil +} + +func (r *PingOneApplicationRoleAssignmentResource) getApplicationRoleAssignmentData(applicationId string) (map[string]string, error) { + applicationRoleAssignmentData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationRoleAssignmentsApi.ReadApplicationRoleAssignments(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, applicationId).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.RoleAssignment](iter, "ReadApplicationRoleAssignments", "GetRoleAssignments", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, applicationRoleAssignment := range apiObjs { + applicationRoleAssignmentId, applicationRoleAssignmentIdOk := applicationRoleAssignment.GetIdOk() + applicationRoleAssignmentRole, applicationRoleAssignmentRoleOk := applicationRoleAssignment.GetRoleOk() + + if applicationRoleAssignmentIdOk && applicationRoleAssignmentRoleOk { + applicationRoleAssignmentRoleId, applicationRoleAssignmentRoleIdOk := applicationRoleAssignmentRole.GetIdOk() + + if applicationRoleAssignmentRoleIdOk { + applicationRoleAssignmentData[*applicationRoleAssignmentId] = *applicationRoleAssignmentRoleId + } + } + } + + return applicationRoleAssignmentData, nil +} + +func (r *PingOneApplicationRoleAssignmentResource) getRoleName(roleId string) (management.EnumRoleName, bool, error) { + apiRole, resp, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.RolesApi.ReadOneRole(r.clientInfo.PingOneContext, roleId).Execute() + ok, err := common.HandleClientResponse(resp, err, "ReadOneRole", r.ResourceType()) + if err != nil { + return "", false, err + } + if !ok { + return "", false, nil + } + + if apiRole != nil { + apiRoleName, apiRoleNameOk := apiRole.GetNameOk() + if apiRoleNameOk { + return *apiRoleName, true, nil + } + } + + return "", false, fmt.Errorf("unable to get role name for role ID: %s", roleId) +} diff --git a/internal/connector/pingone/sso/resources/application_role_assignment_test.go b/internal/connector/pingone/sso/resources/application_role_assignment_test.go new file mode 100644 index 00000000..6b182266 --- /dev/null +++ b/internal/connector/pingone/sso/resources/application_role_assignment_test.go @@ -0,0 +1,36 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_ApplicationRoleAssignment(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.ApplicationRoleAssignment(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + applicationTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s_%s", applicationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, applicationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Worker App used for SDK auth has additional role assignments. Test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/pingone_application_secret.go b/internal/connector/pingone/sso/resources/application_secret.go similarity index 88% rename from internal/connector/pingone/sso/resources/pingone_application_secret.go rename to internal/connector/pingone/sso/resources/application_secret.go index 3a8be944..edeae4a4 100644 --- a/internal/connector/pingone/sso/resources/pingone_application_secret.go +++ b/internal/connector/pingone/sso/resources/application_secret.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -44,8 +45,8 @@ func (r *PingOneApplicationSecretResource) ExportAll() (*[]connector.ImportBlock return nil, err } - for appId, appName := range applicationData { - ok, err := r.checkApplicationSecretData(appId) + for applicationId, applicationName := range applicationData { + ok, err := r.checkApplicationSecretData(applicationId) if err != nil { return nil, err } @@ -55,16 +56,16 @@ func (r *PingOneApplicationSecretResource) ExportAll() (*[]connector.ImportBlock } commentData := map[string]string{ - "Application ID": appId, - "Application Name": appName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Application ID": applicationId, + "Application Name": applicationName, "Resource Type": r.ResourceType(), + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, } importBlock := connector.ImportBlock{ ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_secret", appName), - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, appId), + ResourceName: fmt.Sprintf("%s_secret", applicationName), + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, applicationId), CommentInformation: common.GenerateCommentInformation(commentData), } @@ -113,14 +114,14 @@ func (r *PingOneApplicationSecretResource) getApplicationData() (map[string]stri return applicationData, nil } -func (r *PingOneApplicationSecretResource) checkApplicationSecretData(appId string) (bool, error) { +func (r *PingOneApplicationSecretResource) checkApplicationSecretData(applicationId string) (bool, error) { // The platform enforces that worker apps cannot read their own secret // Make sure we can read the secret before adding it to the import blocks - _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationSecretApi.ReadApplicationSecret(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, appId).Execute() + _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationSecretApi.ReadApplicationSecret(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, applicationId).Execute() defer response.Body.Close() // If the appId is the same as the worker ID, make sure the API response is a 403 and ignore the error - if appId == r.clientInfo.PingOneApiClientId { + if applicationId == r.clientInfo.PingOneApiClientId { if response.StatusCode == 403 { return false, nil } else { @@ -132,7 +133,7 @@ func (r *PingOneApplicationSecretResource) checkApplicationSecretData(appId stri // Expected behavior in this case is to skip the resource, and continue exporting the other resources if err != nil || response.StatusCode >= 300 || response.StatusCode < 200 { output.Warn("Failed to read secret for application", map[string]interface{}{ - "Application ID": appId, + "Application ID": applicationId, "API Function Name": "ReadApplicationSecret", "Response Code": response.Status, "Response Body": response.Body, diff --git a/internal/connector/pingone/sso/resources/application_secret_test.go b/internal/connector/pingone/sso/resources/application_secret_test.go new file mode 100644 index 00000000..d72cb4ec --- /dev/null +++ b/internal/connector/pingone/sso/resources/application_secret_test.go @@ -0,0 +1,36 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_ApplicationSecret(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.ApplicationSecret(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + applicationTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_secret", applicationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, applicationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing application secrets are generated. Test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/pingone_application_sign_on_policy_assignment.go b/internal/connector/pingone/sso/resources/application_sign_on_policy_assignment.go similarity index 50% rename from internal/connector/pingone/sso/resources/pingone_application_sign_on_policy_assignment.go rename to internal/connector/pingone/sso/resources/application_sign_on_policy_assignment.go index c1ef1827..65af52f6 100644 --- a/internal/connector/pingone/sso/resources/pingone_application_sign_on_policy_assignment.go +++ b/internal/connector/pingone/sso/resources/application_sign_on_policy_assignment.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -43,34 +44,35 @@ func (r *PingOneApplicationSignOnPolicyAssignmentResource) ExportAll() (*[]conne return nil, err } - for appId, appName := range applicationData { - signOnPolicyAssignmentData, err := r.getApplicationSignOnPolicyAssignmentData(appId) + for applicationId, applicationName := range applicationData { + applicationSignOnPolicyAssignmentData, err := r.getApplicationSignOnPolicyAssignmentData(applicationId) if err != nil { return nil, err } - for signOnPolicyAssignmentId, signOnPolicyId := range signOnPolicyAssignmentData { - signOnPolicyName, signOnPolicyNameOk, err := r.getSignOnPolicyName(signOnPolicyId) + for applicationSignOnPolicyAssignmentId, applicationSignOnPolicyAssignmentSignOnPolicyId := range applicationSignOnPolicyAssignmentData { + applicationSignOnPolicyAssignmentName, applicationSignOnPolicyAssignmentNameOk, err := r.getSignOnPolicyName(applicationSignOnPolicyAssignmentSignOnPolicyId) if err != nil { return nil, err } - if !signOnPolicyNameOk { + + if !applicationSignOnPolicyAssignmentNameOk { continue } commentData := map[string]string{ - "Resource Type": r.ResourceType(), - "Application ID": appId, - "Application Name": appName, - "Application Sign-On Policy Assignment ID": signOnPolicyAssignmentId, - "Application Sign-On Policy Name": signOnPolicyName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Application ID": applicationId, + "Application Name": applicationName, + "Application Sign On Policy Assignment ID": applicationSignOnPolicyAssignmentId, + "Application Sign On Policy Assignment Sign On Policy Name": applicationSignOnPolicyAssignmentName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), } importBlock := connector.ImportBlock{ ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", appName, signOnPolicyName), - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, appId, signOnPolicyAssignmentId), + ResourceName: fmt.Sprintf("%s_%s", applicationName, applicationSignOnPolicyAssignmentName), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, applicationId, applicationSignOnPolicyAssignmentId), CommentInformation: common.GenerateCommentInformation(commentData), } @@ -85,64 +87,64 @@ func (r *PingOneApplicationSignOnPolicyAssignmentResource) getApplicationData() applicationData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.ReadAllApplications(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - applications, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", r.ResourceType()) if err != nil { return nil, err } - for _, app := range applications { + for _, inner := range apiObjs { var ( - appId *string - appIdOk bool - appName *string - appNameOk bool + applicationId *string + applicationIdOk bool + applicationName *string + applicationNameOk bool ) switch { - case app.ApplicationOIDC != nil: - appId, appIdOk = app.ApplicationOIDC.GetIdOk() - appName, appNameOk = app.ApplicationOIDC.GetNameOk() - case app.ApplicationSAML != nil: - appId, appIdOk = app.ApplicationSAML.GetIdOk() - appName, appNameOk = app.ApplicationSAML.GetNameOk() - case app.ApplicationExternalLink != nil: - appId, appIdOk = app.ApplicationExternalLink.GetIdOk() - appName, appNameOk = app.ApplicationExternalLink.GetNameOk() + case inner.ApplicationOIDC != nil: + applicationId, applicationIdOk = inner.ApplicationOIDC.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationOIDC.GetNameOk() + case inner.ApplicationSAML != nil: + applicationId, applicationIdOk = inner.ApplicationSAML.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationSAML.GetNameOk() + case inner.ApplicationExternalLink != nil: + applicationId, applicationIdOk = inner.ApplicationExternalLink.GetIdOk() + applicationName, applicationNameOk = inner.ApplicationExternalLink.GetNameOk() default: continue } - if appIdOk && appNameOk { - applicationData[*appId] = *appName + if applicationIdOk && applicationNameOk { + applicationData[*applicationId] = *applicationName } } return applicationData, nil } -func (r *PingOneApplicationSignOnPolicyAssignmentResource) getApplicationSignOnPolicyAssignmentData(appId string) (map[string]string, error) { - signOnPolicyAssignmentData := make(map[string]string) +func (r *PingOneApplicationSignOnPolicyAssignmentResource) getApplicationSignOnPolicyAssignmentData(applicationId string) (map[string]string, error) { + applicationSignOnPolicyAssignmentData := make(map[string]string) - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationSignOnPolicyAssignmentsApi.ReadAllSignOnPolicyAssignments(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, appId).Execute() - signOnPolicyAssignments, err := pingone.GetManagementAPIObjectsFromIterator[management.SignOnPolicyAssignment](iter, "ReadAllSignOnPolicyAssignments", "GetSignOnPolicyAssignments", r.ResourceType()) + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationSignOnPolicyAssignmentsApi.ReadAllSignOnPolicyAssignments(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, applicationId).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.SignOnPolicyAssignment](iter, "ReadAllSignOnPolicyAssignments", "GetSignOnPolicyAssignments", r.ResourceType()) if err != nil { return nil, err } - for _, signOnPolicyAssignment := range signOnPolicyAssignments { - signOnPolicyAssignmentId, signOnPolicyAssignmentIdOk := signOnPolicyAssignment.GetIdOk() - signOnPolicyAssignmentSignOnPolicy, signOnPolicyAssignmentSignOnPolicyOk := signOnPolicyAssignment.GetSignOnPolicyOk() + for _, applicationSignOnPolicyAssignment := range apiObjs { + applicationSignOnPolicyAssignmentId, applicationSignOnPolicyAssignmentIdOk := applicationSignOnPolicyAssignment.GetIdOk() + applicationSignOnPolicyAssignmentSignOnPolicy, applicationSignOnPolicyAssignmentSignOnPolicyOk := applicationSignOnPolicyAssignment.GetSignOnPolicyOk() - if signOnPolicyAssignmentIdOk && signOnPolicyAssignmentSignOnPolicyOk { - signOnPolicyAssignmentSignOnPolicyId, signOnPolicyAssignmentSignOnPolicyIdOk := signOnPolicyAssignmentSignOnPolicy.GetIdOk() + if applicationSignOnPolicyAssignmentIdOk && applicationSignOnPolicyAssignmentSignOnPolicyOk { + applicationSignOnPolicyAssignmentSignOnPolicyId, applicationSignOnPolicyAssignmentSignOnPolicyIdOk := applicationSignOnPolicyAssignmentSignOnPolicy.GetIdOk() - if signOnPolicyAssignmentSignOnPolicyIdOk { - signOnPolicyAssignmentData[*signOnPolicyAssignmentId] = *signOnPolicyAssignmentSignOnPolicyId + if applicationSignOnPolicyAssignmentSignOnPolicyIdOk { + applicationSignOnPolicyAssignmentData[*applicationSignOnPolicyAssignmentId] = *applicationSignOnPolicyAssignmentSignOnPolicyId } } } - return signOnPolicyAssignmentData, nil + return applicationSignOnPolicyAssignmentData, nil } func (r *PingOneApplicationSignOnPolicyAssignmentResource) getSignOnPolicyName(signOnPolicyId string) (string, bool, error) { diff --git a/internal/connector/pingone/sso/resources/application_sign_on_policy_assignment_test.go b/internal/connector/pingone/sso/resources/application_sign_on_policy_assignment_test.go new file mode 100644 index 00000000..8b0c617c --- /dev/null +++ b/internal/connector/pingone/sso/resources/application_sign_on_policy_assignment_test.go @@ -0,0 +1,35 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_ApplicationSignOnPolicyAssignment(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.ApplicationSignOnPolicyAssignment(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + applicationTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", applicationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, applicationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/application_test.go b/internal/connector/pingone/sso/resources/application_test.go new file mode 100644 index 00000000..fe473b3f --- /dev/null +++ b/internal/connector/pingone/sso/resources/application_test.go @@ -0,0 +1,34 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_Application(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.ApplicationDeviceAuthorization(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing applications are generated. Test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/pingone_group.go b/internal/connector/pingone/sso/resources/group.go similarity index 91% rename from internal/connector/pingone/sso/resources/pingone_group.go rename to internal/connector/pingone/sso/resources/group.go index f67363c4..7fb0b51a 100644 --- a/internal/connector/pingone/sso/resources/pingone_group.go +++ b/internal/connector/pingone/sso/resources/group.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -45,9 +46,9 @@ func (r *PingOneGroupResource) ExportAll() (*[]connector.ImportBlock, error) { for groupId, groupName := range groupData { commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Group ID": groupId, "Group Name": groupName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Resource Type": r.ResourceType(), } @@ -68,12 +69,12 @@ func (r *PingOneGroupResource) getGroupData() (map[string]string, error) { groupData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GroupsApi.ReadAllGroups(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - groups, err := pingone.GetManagementAPIObjectsFromIterator[management.Group](iter, "ReadAllGroups", "GetGroups", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Group](iter, "ReadAllGroups", "GetGroups", r.ResourceType()) if err != nil { return nil, err } - for _, group := range groups { + for _, group := range apiObjs { groupId, groupIdOk := group.GetIdOk() groupName, groupNameOk := group.GetNameOk() diff --git a/internal/connector/pingone/sso/resources/pingone_group_nesting.go b/internal/connector/pingone/sso/resources/group_nesting.go similarity index 71% rename from internal/connector/pingone/sso/resources/pingone_group_nesting.go rename to internal/connector/pingone/sso/resources/group_nesting.go index 23c1a0dc..03709d2d 100644 --- a/internal/connector/pingone/sso/resources/pingone_group_nesting.go +++ b/internal/connector/pingone/sso/resources/group_nesting.go @@ -43,8 +43,8 @@ func (r *PingOneGroupNestingResource) ExportAll() (*[]connector.ImportBlock, err return nil, err } - for parentGroupId, parentGroupName := range groupData { - groupNestingData, err := r.getGroupNestingData(parentGroupId) + for groupId, groupName := range groupData { + groupNestingData, err := r.getGroupNestingData(groupId) if err != nil { return nil, err } @@ -54,15 +54,15 @@ func (r *PingOneGroupNestingResource) ExportAll() (*[]connector.ImportBlock, err "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Nested Group ID": nestedGroupId, "Nested Group Name": nestedGroupName, - "Parent Group ID": parentGroupId, - "Parent Group Name": parentGroupName, + "Parent Group ID": groupId, + "Parent Group Name": groupName, "Resource Type": r.ResourceType(), } importBlock := connector.ImportBlock{ ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", parentGroupName, nestedGroupName), - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, parentGroupId, nestedGroupId), + ResourceName: fmt.Sprintf("%s_%s", groupName, nestedGroupName), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, groupId, nestedGroupId), CommentInformation: common.GenerateCommentInformation(commentData), } @@ -77,33 +77,33 @@ func (r *PingOneGroupNestingResource) getGroupData() (map[string]string, error) groupData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GroupsApi.ReadAllGroups(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - groups, err := pingone.GetManagementAPIObjectsFromIterator[management.Group](iter, "ReadAllGroups", "GetGroups", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Group](iter, "ReadAllGroups", "GetGroups", r.ResourceType()) if err != nil { return nil, err } - for _, parentGroup := range groups { - parentGroupId, parentGroupIdOk := parentGroup.GetIdOk() - parentGroupName, parentGroupNameOk := parentGroup.GetNameOk() + for _, group := range apiObjs { + groupId, groupIdOk := group.GetIdOk() + groupName, groupNameOk := group.GetNameOk() - if parentGroupIdOk && parentGroupNameOk { - groupData[*parentGroupId] = *parentGroupName + if groupIdOk && groupNameOk { + groupData[*groupId] = *groupName } } return groupData, nil } -func (r *PingOneGroupNestingResource) getGroupNestingData(parentGroupId string) (map[string]string, error) { +func (r *PingOneGroupNestingResource) getGroupNestingData(groupId string) (map[string]string, error) { groupNestingData := make(map[string]string) - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GroupsApi.ReadGroupNesting(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, parentGroupId).Execute() - groupNestings, err := pingone.GetManagementAPIObjectsFromIterator[management.GroupMembership](iter, "ReadGroupNesting", "GetGroupMemberships", r.ResourceType()) + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GroupsApi.ReadGroupNesting(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, groupId).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.GroupMembership](iter, "ReadGroupNesting", "GetGroupMemberships", r.ResourceType()) if err != nil { return nil, err } - for _, nestedGroup := range groupNestings { + for _, nestedGroup := range apiObjs { nestedGroupId, nestedGroupIdOk := nestedGroup.GetIdOk() nestedGroupName, nestedGroupNameOk := nestedGroup.GetNameOk() diff --git a/internal/connector/pingone/sso/resources/group_nesting_test.go b/internal/connector/pingone/sso/resources/group_nesting_test.go new file mode 100644 index 00000000..2cf19778 --- /dev/null +++ b/internal/connector/pingone/sso/resources/group_nesting_test.go @@ -0,0 +1,36 @@ +// Copyright © 2025 Ping Identity Corporation + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_GroupNesting(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.GroupNesting(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + groupTr := tr.Dependencies[0] + nestedGroupTr := tr.Dependencies[1] + + // Defined the expected ImportBlocks for the resource + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", groupTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], nestedGroupTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, groupTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/pingone_group_role_assignment.go b/internal/connector/pingone/sso/resources/group_role_assignment.go similarity index 74% rename from internal/connector/pingone/sso/resources/pingone_group_role_assignment.go rename to internal/connector/pingone/sso/resources/group_role_assignment.go index cc5413b2..d97d7526 100644 --- a/internal/connector/pingone/sso/resources/pingone_group_role_assignment.go +++ b/internal/connector/pingone/sso/resources/group_role_assignment.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -49,27 +50,29 @@ func (r *PingOneGroupRoleAssignmentResource) ExportAll() (*[]connector.ImportBlo return nil, err } - for groupRoleAssignmentId, roleId := range groupRoleAssignmentData { - roleName, err := r.getRoleName(roleId) + for groupRoleAssignmentId, groupRoleAssignmentRoleId := range groupRoleAssignmentData { + + groupRoleAssignmentRoleName, groupRoleAssignmentRoleNameOk, err := r.getRoleName(groupRoleAssignmentRoleId) if err != nil { return nil, err } - if roleName == nil { + + if !groupRoleAssignmentRoleNameOk { continue } commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Group ID": groupId, - "Group Name": groupName, - "Group Role Assignment ID": groupRoleAssignmentId, - "Group Role Name": string(*roleName), - "Resource Type": r.ResourceType(), + "Group ID": groupId, + "Group Name": groupName, + "Group Role Assignment ID": groupRoleAssignmentId, + "Group Role Assignment Role Name": string(*groupRoleAssignmentRoleName), + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), } importBlock := connector.ImportBlock{ ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s_%s", groupName, string(*roleName), groupRoleAssignmentId), + ResourceName: fmt.Sprintf("%s_%s_%s", groupName, string(*groupRoleAssignmentRoleName), groupRoleAssignmentId), ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, groupId, groupRoleAssignmentId), CommentInformation: common.GenerateCommentInformation(commentData), } @@ -85,12 +88,12 @@ func (r *PingOneGroupRoleAssignmentResource) getGroupData() (map[string]string, groupData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GroupsApi.ReadAllGroups(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - groups, err := pingone.GetManagementAPIObjectsFromIterator[management.Group](iter, "ReadAllGroups", "GetGroups", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Group](iter, "ReadAllGroups", "GetGroups", r.ResourceType()) if err != nil { return nil, err } - for _, group := range groups { + for _, group := range apiObjs { groupId, groupIdOk := group.GetIdOk() groupName, groupNameOk := group.GetNameOk() @@ -106,12 +109,12 @@ func (r *PingOneGroupRoleAssignmentResource) getGroupRoleAssignmentData(groupId groupRoleAssignmentData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.GroupRoleAssignmentsApi.ReadGroupRoleAssignments(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, groupId).Execute() - roleAssignments, err := pingone.GetManagementAPIObjectsFromIterator[management.RoleAssignment](iter, "ReadGroupRoleAssignments", "GetRoleAssignments", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.RoleAssignment](iter, "ReadGroupRoleAssignments", "GetRoleAssignments", r.ResourceType()) if err != nil { return nil, err } - for _, groupRoleAssignment := range roleAssignments { + for _, groupRoleAssignment := range apiObjs { groupRoleAssignmentId, groupRoleAssignmentIdOk := groupRoleAssignment.GetIdOk() groupRoleAssignmentRole, groupRoleAssignmentRoleOk := groupRoleAssignment.GetRoleOk() @@ -127,22 +130,22 @@ func (r *PingOneGroupRoleAssignmentResource) getGroupRoleAssignmentData(groupId return groupRoleAssignmentData, nil } -func (r *PingOneGroupRoleAssignmentResource) getRoleName(roleId string) (*management.EnumRoleName, error) { +func (r *PingOneGroupRoleAssignmentResource) getRoleName(roleId string) (*management.EnumRoleName, bool, error) { apiRole, resp, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.RolesApi.ReadOneRole(r.clientInfo.PingOneContext, roleId).Execute() ok, err := common.HandleClientResponse(resp, err, "ReadOneRole", r.ResourceType()) if err != nil { - return nil, err + return nil, false, err } if !ok { - return nil, nil + return nil, false, nil } if apiRole != nil { apiRoleName, apiRoleNameOk := apiRole.GetNameOk() if apiRoleNameOk { - return apiRoleName, nil + return apiRoleName, true, nil } } - return nil, fmt.Errorf("unable to get role name for role ID: %s", roleId) + return nil, false, fmt.Errorf("unable to get role name for role ID: %s", roleId) } diff --git a/internal/connector/pingone/sso/resources/group_role_assignment_test.go b/internal/connector/pingone/sso/resources/group_role_assignment_test.go new file mode 100644 index 00000000..ad53d3f0 --- /dev/null +++ b/internal/connector/pingone/sso/resources/group_role_assignment_test.go @@ -0,0 +1,35 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_GroupRoleAssignment(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.GroupRoleAssignment(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + groupTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s_%s", groupTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, groupTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/group_test.go b/internal/connector/pingone/sso/resources/group_test.go new file mode 100644 index 00000000..a0abce6c --- /dev/null +++ b/internal/connector/pingone/sso/resources/group_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_Group(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.Group(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/pingone_identity_provider.go b/internal/connector/pingone/sso/resources/identity_provider.go similarity index 50% rename from internal/connector/pingone/sso/resources/pingone_identity_provider.go rename to internal/connector/pingone/sso/resources/identity_provider.go index 83d888b2..0a1dbe32 100644 --- a/internal/connector/pingone/sso/resources/pingone_identity_provider.go +++ b/internal/connector/pingone/sso/resources/identity_provider.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -43,18 +44,18 @@ func (r *PingOneIdentityProviderResource) ExportAll() (*[]connector.ImportBlock, return nil, err } - for idpId, idpName := range identityProviderData { + for identityProviderId, identityProviderName := range identityProviderData { commentData := map[string]string{ + "Identity Provider ID": identityProviderId, + "Identity Provider Name": identityProviderName, "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Identity Provider ID": idpId, - "Identity Provider Name": idpName, "Resource Type": r.ResourceType(), } importBlock := connector.ImportBlock{ ResourceType: r.ResourceType(), - ResourceName: idpName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, idpId), + ResourceName: identityProviderName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, identityProviderId), CommentInformation: common.GenerateCommentInformation(commentData), } @@ -68,44 +69,44 @@ func (r *PingOneIdentityProviderResource) getIdentityProviderData() (map[string] identityProviderData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.IdentityProvidersApi.ReadAllIdentityProviders(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - identityProviders, err := pingone.GetManagementAPIObjectsFromIterator[management.IdentityProvider](iter, "ReadAllIdentityProviders", "GetIdentityProviders", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.IdentityProvider](iter, "ReadAllIdentityProviders", "GetIdentityProviders", r.ResourceType()) if err != nil { return nil, err } - for _, idp := range identityProviders { + for _, inner := range apiObjs { var ( - idpId *string - idpIdOk bool - idpName *string - idpNameOk bool + identityProviderId *string + identityProviderIdOk bool + identityProviderName *string + identityProviderNameOk bool ) switch { - case idp.IdentityProviderApple != nil: - idpId, idpIdOk = idp.IdentityProviderApple.GetIdOk() - idpName, idpNameOk = idp.IdentityProviderApple.GetNameOk() - case idp.IdentityProviderClientIDClientSecret != nil: - idpId, idpIdOk = idp.IdentityProviderClientIDClientSecret.GetIdOk() - idpName, idpNameOk = idp.IdentityProviderClientIDClientSecret.GetNameOk() - case idp.IdentityProviderFacebook != nil: - idpId, idpIdOk = idp.IdentityProviderFacebook.GetIdOk() - idpName, idpNameOk = idp.IdentityProviderFacebook.GetNameOk() - case idp.IdentityProviderOIDC != nil: - idpId, idpIdOk = idp.IdentityProviderOIDC.GetIdOk() - idpName, idpNameOk = idp.IdentityProviderOIDC.GetNameOk() - case idp.IdentityProviderPaypal != nil: - idpId, idpIdOk = idp.IdentityProviderPaypal.GetIdOk() - idpName, idpNameOk = idp.IdentityProviderPaypal.GetNameOk() - case idp.IdentityProviderSAML != nil: - idpId, idpIdOk = idp.IdentityProviderSAML.GetIdOk() - idpName, idpNameOk = idp.IdentityProviderSAML.GetNameOk() + case inner.IdentityProviderApple != nil: + identityProviderId, identityProviderIdOk = inner.IdentityProviderApple.GetIdOk() + identityProviderName, identityProviderNameOk = inner.IdentityProviderApple.GetNameOk() + case inner.IdentityProviderClientIDClientSecret != nil: + identityProviderId, identityProviderIdOk = inner.IdentityProviderClientIDClientSecret.GetIdOk() + identityProviderName, identityProviderNameOk = inner.IdentityProviderClientIDClientSecret.GetNameOk() + case inner.IdentityProviderFacebook != nil: + identityProviderId, identityProviderIdOk = inner.IdentityProviderFacebook.GetIdOk() + identityProviderName, identityProviderNameOk = inner.IdentityProviderFacebook.GetNameOk() + case inner.IdentityProviderOIDC != nil: + identityProviderId, identityProviderIdOk = inner.IdentityProviderOIDC.GetIdOk() + identityProviderName, identityProviderNameOk = inner.IdentityProviderOIDC.GetNameOk() + case inner.IdentityProviderPaypal != nil: + identityProviderId, identityProviderIdOk = inner.IdentityProviderPaypal.GetIdOk() + identityProviderName, identityProviderNameOk = inner.IdentityProviderPaypal.GetNameOk() + case inner.IdentityProviderSAML != nil: + identityProviderId, identityProviderIdOk = inner.IdentityProviderSAML.GetIdOk() + identityProviderName, identityProviderNameOk = inner.IdentityProviderSAML.GetNameOk() default: continue } - if idpIdOk && idpNameOk { - identityProviderData[*idpId] = *idpName + if identityProviderIdOk && identityProviderNameOk { + identityProviderData[*identityProviderId] = *identityProviderName } } diff --git a/internal/connector/pingone/sso/resources/identity_provider_attribute.go b/internal/connector/pingone/sso/resources/identity_provider_attribute.go new file mode 100644 index 00000000..91b29e5d --- /dev/null +++ b/internal/connector/pingone/sso/resources/identity_provider_attribute.go @@ -0,0 +1,146 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneIdentityProviderAttributeResource{} +) + +type PingOneIdentityProviderAttributeResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneIdentityProviderAttributeResource +func IdentityProviderAttribute(clientInfo *connector.ClientInfo) *PingOneIdentityProviderAttributeResource { + return &PingOneIdentityProviderAttributeResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneIdentityProviderAttributeResource) ResourceType() string { + return "pingone_identity_provider_attribute" +} + +func (r *PingOneIdentityProviderAttributeResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + providerData, err := r.getProviderData() + if err != nil { + return nil, err + } + + for providerId, providerName := range providerData { + identityProviderAttributeData, err := r.getIdentityProviderAttributeData(providerId) + if err != nil { + return nil, err + } + + for identityProviderAttributeId, identityProviderAttributeName := range identityProviderAttributeData { + commentData := map[string]string{ + "Identity Provider ID": providerId, + "Identity Provider Name": providerName, + "Identity Provider Attribute ID": identityProviderAttributeId, + "Identity Provider Attribute Name": identityProviderAttributeName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", providerName, identityProviderAttributeName), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, providerId, identityProviderAttributeId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + } + + return &importBlocks, nil +} + +func (r *PingOneIdentityProviderAttributeResource) getProviderData() (map[string]string, error) { + providerData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.IdentityProvidersApi.ReadAllIdentityProviders(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.IdentityProvider](iter, "ReadAllIdentityProviders", "GetIdentityProviders", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, inner := range apiObjs { + var ( + providerId *string + providerIdOk bool + providerName *string + providerNameOk bool + ) + + switch { + case inner.IdentityProviderApple != nil: + providerId, providerIdOk = inner.IdentityProviderApple.GetIdOk() + providerName, providerNameOk = inner.IdentityProviderApple.GetNameOk() + case inner.IdentityProviderClientIDClientSecret != nil: + providerId, providerIdOk = inner.IdentityProviderClientIDClientSecret.GetIdOk() + providerName, providerNameOk = inner.IdentityProviderClientIDClientSecret.GetNameOk() + case inner.IdentityProviderFacebook != nil: + providerId, providerIdOk = inner.IdentityProviderFacebook.GetIdOk() + providerName, providerNameOk = inner.IdentityProviderFacebook.GetNameOk() + case inner.IdentityProviderOIDC != nil: + providerId, providerIdOk = inner.IdentityProviderOIDC.GetIdOk() + providerName, providerNameOk = inner.IdentityProviderOIDC.GetNameOk() + case inner.IdentityProviderPaypal != nil: + providerId, providerIdOk = inner.IdentityProviderPaypal.GetIdOk() + providerName, providerNameOk = inner.IdentityProviderPaypal.GetNameOk() + case inner.IdentityProviderSAML != nil: + providerId, providerIdOk = inner.IdentityProviderSAML.GetIdOk() + providerName, providerNameOk = inner.IdentityProviderSAML.GetNameOk() + default: + continue + } + + if providerIdOk && providerNameOk { + providerData[*providerId] = *providerName + } + } + + return providerData, nil +} + +func (r *PingOneIdentityProviderAttributeResource) getIdentityProviderAttributeData(providerId string) (map[string]string, error) { + identityProviderAttributeData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.IdentityProviderAttributesApi.ReadAllIdentityProviderAttributes(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, providerId).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedAttributesInner](iter, "ReadAllIdentityProviderAttributes", "GetAttributes", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, innerObj := range apiObjs { + if innerObj.IdentityProviderAttribute != nil { + identityProviderAttributeId, identityProviderAttributeIdOk := innerObj.IdentityProviderAttribute.GetIdOk() + identityProviderAttributeName, identityProviderAttributeNameOk := innerObj.IdentityProviderAttribute.GetNameOk() + + if identityProviderAttributeIdOk && identityProviderAttributeNameOk { + identityProviderAttributeData[*identityProviderAttributeId] = *identityProviderAttributeName + } + } + } + + return identityProviderAttributeData, nil +} diff --git a/internal/connector/pingone/sso/resources/identity_provider_attribute_test.go b/internal/connector/pingone/sso/resources/identity_provider_attribute_test.go new file mode 100644 index 00000000..991b02c1 --- /dev/null +++ b/internal/connector/pingone/sso/resources/identity_provider_attribute_test.go @@ -0,0 +1,36 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_IdentityProviderAttribute(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.IdentityProviderAttribute(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + providerTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", providerTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, providerTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing attributes are generated, test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/identity_provider_test.go b/internal/connector/pingone/sso/resources/identity_provider_test.go new file mode 100644 index 00000000..6c35602f --- /dev/null +++ b/internal/connector/pingone/sso/resources/identity_provider_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_IdentityProvider(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.IdentityProvider(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/pingone_password_policy.go b/internal/connector/pingone/sso/resources/password_policy.go similarity index 91% rename from internal/connector/pingone/sso/resources/pingone_password_policy.go rename to internal/connector/pingone/sso/resources/password_policy.go index 78a8885c..cd65da2d 100644 --- a/internal/connector/pingone/sso/resources/pingone_password_policy.go +++ b/internal/connector/pingone/sso/resources/password_policy.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -45,9 +46,9 @@ func (r *PingOnePasswordPolicyResource) ExportAll() (*[]connector.ImportBlock, e for passwordPolicyId, passwordPolicyName := range passwordPolicyData { commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Password Policy ID": passwordPolicyId, "Password Policy Name": passwordPolicyName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Resource Type": r.ResourceType(), } @@ -68,12 +69,12 @@ func (r *PingOnePasswordPolicyResource) getPasswordPolicyData() (map[string]stri passwordPolicyData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.PasswordPoliciesApi.ReadAllPasswordPolicies(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - passwordPolicies, err := pingone.GetManagementAPIObjectsFromIterator[management.PasswordPolicy](iter, "ReadAllPasswordPolicies", "GetPasswordPolicies", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.PasswordPolicy](iter, "ReadAllPasswordPolicies", "GetPasswordPolicies", r.ResourceType()) if err != nil { return nil, err } - for _, passwordPolicy := range passwordPolicies { + for _, passwordPolicy := range apiObjs { passwordPolicyId, passwordPolicyIdOk := passwordPolicy.GetIdOk() passwordPolicyName, passwordPolicyNameOk := passwordPolicy.GetNameOk() diff --git a/internal/connector/pingone/sso/resources/password_policy_test.go b/internal/connector/pingone/sso/resources/password_policy_test.go new file mode 100644 index 00000000..05f9b2d9 --- /dev/null +++ b/internal/connector/pingone/sso/resources/password_policy_test.go @@ -0,0 +1,34 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_PasswordPolicy(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.PasswordPolicy(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing password policies are generated. Test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/pingone_application_attribute_mapping_test.go b/internal/connector/pingone/sso/resources/pingone_application_attribute_mapping_test.go deleted file mode 100644 index 82738a26..00000000 --- a/internal/connector/pingone/sso/resources/pingone_application_attribute_mapping_test.go +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestApplicationAttributeMappingExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.ApplicationAttributeMapping(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_application_attribute_mapping", - ResourceName: "Example OAuth App_sub", - ResourceID: fmt.Sprintf("%s/2a7c1b5d-415b-4fb5-a6c0-1e290f776785/f6d41400-e571-432e-9151-4ff06e0b51ce", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_attribute_mapping", - ResourceName: "Getting Started Application_sub", - ResourceID: fmt.Sprintf("%s/3da7aae6-92e5-4295-a37c-8515d1f2cd86/f6d41400-e571-432e-9151-4ff06e0b51ce", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_attribute_mapping", - ResourceName: "OAuth Worker App_sub", - ResourceID: fmt.Sprintf("%s/9d6c443b-6329-4d3c-949e-880eda3b9599/f6d41400-e571-432e-9151-4ff06e0b51ce", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_attribute_mapping", - ResourceName: "PingOne DaVinci Connection_sub", - ResourceID: fmt.Sprintf("%s/7b621870-7124-4426-b432-6c675642afcb/f6d41400-e571-432e-9151-4ff06e0b51ce", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_attribute_mapping", - ResourceName: "test app_sub", - ResourceID: fmt.Sprintf("%s/a4cbf57e-fa2c-452f-bbc8-f40b551da0e2/f6d41400-e571-432e-9151-4ff06e0b51ce", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_attribute_mapping", - ResourceName: "Worker App_sub", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/f6d41400-e571-432e-9151-4ff06e0b51ce", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_attribute_mapping", - ResourceName: "Test MFA_sub", - ResourceID: fmt.Sprintf("%s/11cfc8c7-ec0c-43ff-b49a-64f5e243f932/f6d41400-e571-432e-9151-4ff06e0b51ce", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_application_flow_policy_assignment_test.go b/internal/connector/pingone/sso/resources/pingone_application_flow_policy_assignment_test.go deleted file mode 100644 index e6f2558a..00000000 --- a/internal/connector/pingone/sso/resources/pingone_application_flow_policy_assignment_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestApplicationFlowPolicyAssignmentExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.ApplicationFlowPolicyAssignment(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_application_flow_policy_assignment", - ResourceName: "Getting Started Application_PingOne - Sign On and Registration", - ResourceID: fmt.Sprintf("%s/3da7aae6-92e5-4295-a37c-8515d1f2cd86/0b08c0c3-db40-4be2-aa5b-eb0e17396a75", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_flow_policy_assignment", - ResourceName: "test app_PingOne - Sign On and Registration", - ResourceID: fmt.Sprintf("%s/a4cbf57e-fa2c-452f-bbc8-f40b551da0e2/87a6045e-fa59-41fd-9a06-867ef8cc7a0c", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_application_resource_grant.go b/internal/connector/pingone/sso/resources/pingone_application_resource_grant.go deleted file mode 100644 index 572ec74b..00000000 --- a/internal/connector/pingone/sso/resources/pingone_application_resource_grant.go +++ /dev/null @@ -1,166 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneApplicationResourceGrantResource{} -) - -type PingOneApplicationResourceGrantResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneApplicationResourceGrantResource -func ApplicationResourceGrant(clientInfo *connector.ClientInfo) *PingOneApplicationResourceGrantResource { - return &PingOneApplicationResourceGrantResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneApplicationResourceGrantResource) ResourceType() string { - return "pingone_application_resource_grant" -} - -func (r *PingOneApplicationResourceGrantResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - applicationData, err := r.getApplicationData() - if err != nil { - return nil, err - } - - for appId, appName := range applicationData { - applicationGrantData, err := r.getApplicationGrantData(appId) - if err != nil { - return nil, err - } - - for grantId, grantResourceId := range applicationGrantData { - resourceName, resourceNameOk, err := r.getGrantResourceName(grantResourceId) - if err != nil { - return nil, err - } - if !resourceNameOk { - continue - } - - commentData := map[string]string{ - "Application ID": appId, - "Application Name": appName, - "Application Resource Grant ID": grantId, - "Application Resource Name": resourceName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", appName, resourceName), - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, appId, grantId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - } - - return &importBlocks, nil -} - -func (r *PingOneApplicationResourceGrantResource) getApplicationData() (map[string]string, error) { - applicationData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.ReadAllApplications(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - applications, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, app := range applications { - var ( - appId *string - appIdOk bool - appName *string - appNameOk bool - ) - - switch { - case app.ApplicationPingOnePortal != nil: - appId, appIdOk = app.ApplicationPingOnePortal.GetIdOk() - appName, appNameOk = app.ApplicationPingOnePortal.GetNameOk() - case app.ApplicationPingOneSelfService != nil: - appId, appIdOk = app.ApplicationPingOneSelfService.GetIdOk() - appName, appNameOk = app.ApplicationPingOneSelfService.GetNameOk() - case app.ApplicationExternalLink != nil: - appId, appIdOk = app.ApplicationExternalLink.GetIdOk() - appName, appNameOk = app.ApplicationExternalLink.GetNameOk() - default: - continue - } - - if appIdOk && appNameOk { - applicationData[*appId] = *appName - } - } - - return applicationData, nil -} - -func (r *PingOneApplicationResourceGrantResource) getApplicationGrantData(appId string) (map[string]string, error) { - applicationGrantData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationResourceGrantsApi.ReadAllApplicationGrants(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, appId).Execute() - applicationGrants, err := pingone.GetManagementAPIObjectsFromIterator[management.ApplicationResourceGrant](iter, "ReadAllApplicationGrants", "GetGrants", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, grant := range applicationGrants { - grantId, grantIdOk := grant.GetIdOk() - grantResource, grantResourceOk := grant.GetResourceOk() - - if grantIdOk && grantResourceOk { - grantResourceId, grantResourceIdOk := grantResource.GetIdOk() - - if grantResourceIdOk { - applicationGrantData[*grantId] = *grantResourceId - } - } - } - - return applicationGrantData, nil -} - -func (r *PingOneApplicationResourceGrantResource) getGrantResourceName(grantResourceId string) (string, bool, error) { - resource, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.ReadOneResource(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, grantResourceId).Execute() - ok, err := common.HandleClientResponse(response, err, "ReadOneResource", r.ResourceType()) - if err != nil { - return "", false, err - } - if !ok { - return "", false, nil - } - - if resource != nil { - resourceName, resourceNameOk := resource.GetNameOk() - if resourceNameOk { - return *resourceName, true, nil - } - } - - return "", false, fmt.Errorf("unable to get resource name for grant resource ID: %s", grantResourceId) -} diff --git a/internal/connector/pingone/sso/resources/pingone_application_resource_grant_test.go b/internal/connector/pingone/sso/resources/pingone_application_resource_grant_test.go deleted file mode 100644 index 70c88366..00000000 --- a/internal/connector/pingone/sso/resources/pingone_application_resource_grant_test.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestApplicationResourceGrantExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.ApplicationResourceGrant(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_application_resource_grant", - ResourceName: "PingOne Application Portal_openid", - ResourceID: fmt.Sprintf("%s/92a3765c-e135-4afa-8b12-4469672ac8a9/7e1e25cd-a29e-43b3-bf4a-317ffaabb49c", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_resource_grant", - ResourceName: "PingOne Application Portal_PingOne API", - ResourceID: fmt.Sprintf("%s/92a3765c-e135-4afa-8b12-4469672ac8a9/cf7c2b8e-718c-4ccc-ad1e-1612724baf8e", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_resource_grant", - ResourceName: "PingOne Self-Service - MyAccount_PingOne API", - ResourceID: fmt.Sprintf("%s/4ce54d01-5138-4c56-8175-4f02f69278f5/78d28a77-127d-434b-ae30-71bc18c97902", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_resource_grant", - ResourceName: "PingOne Self-Service - MyAccount_openid", - ResourceID: fmt.Sprintf("%s/4ce54d01-5138-4c56-8175-4f02f69278f5/88063562-7b01-4dbc-b638-119435f74860", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_application_role_assignment.go b/internal/connector/pingone/sso/resources/pingone_application_role_assignment.go deleted file mode 100644 index ab27b2fc..00000000 --- a/internal/connector/pingone/sso/resources/pingone_application_role_assignment.go +++ /dev/null @@ -1,181 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneApplicationRoleAssignmentResource{} -) - -type PingOneApplicationRoleAssignmentResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneApplicationRoleAssignmentResource -func ApplicationRoleAssignment(clientInfo *connector.ClientInfo) *PingOneApplicationRoleAssignmentResource { - return &PingOneApplicationRoleAssignmentResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneApplicationRoleAssignmentResource) ResourceType() string { - return "pingone_application_role_assignment" -} - -func (r *PingOneApplicationRoleAssignmentResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - applicationData, err := r.getApplicationData() - if err != nil { - return nil, err - } - - for appId, appName := range applicationData { - applicationRoleAssignmentData, err := r.getApplicationRoleAssignmentData(appId) - if err != nil { - return nil, err - } - - for roleAssignmentId, roleId := range applicationRoleAssignmentData { - roleName, roleNameOk, err := r.getRoleName(roleId) - if err != nil { - return nil, err - } - if !roleNameOk { - continue - } - - commentData := map[string]string{ - "Application ID": appId, - "Application Name": appName, - "Application Role Assignment ID": roleAssignmentId, - "Application Role Name": string(roleName), - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s_%s", appName, string(roleName), roleAssignmentId), - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, appId, roleAssignmentId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - } - - return &importBlocks, nil -} - -func (r *PingOneApplicationRoleAssignmentResource) getApplicationData() (map[string]string, error) { - applicationData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.ReadAllApplications(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - applications, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, app := range applications { - var ( - appId *string - appIdOk bool - appName *string - appNameOk bool - appAccessControlRole *management.ApplicationAccessControlRole - appAccessControlRoleOk bool - ) - - switch { - case app.ApplicationOIDC != nil: - appId, appIdOk = app.ApplicationOIDC.GetIdOk() - appName, appNameOk = app.ApplicationOIDC.GetNameOk() - if app.ApplicationOIDC.AccessControl != nil { - appAccessControlRole, appAccessControlRoleOk = app.ApplicationOIDC.AccessControl.GetRoleOk() - } - case app.ApplicationSAML != nil: - appId, appIdOk = app.ApplicationSAML.GetIdOk() - appName, appNameOk = app.ApplicationSAML.GetNameOk() - if app.ApplicationSAML.AccessControl != nil { - appAccessControlRole, appAccessControlRoleOk = app.ApplicationSAML.AccessControl.GetRoleOk() - } - case app.ApplicationExternalLink != nil: - appId, appIdOk = app.ApplicationExternalLink.GetIdOk() - appName, appNameOk = app.ApplicationExternalLink.GetNameOk() - if app.ApplicationExternalLink.AccessControl != nil { - appAccessControlRole, appAccessControlRoleOk = app.ApplicationExternalLink.AccessControl.GetRoleOk() - } - default: - continue - } - - if appIdOk && appNameOk && appAccessControlRoleOk { - if appAccessControlRole.GetType() != management.ENUMAPPLICATIONACCESSCONTROLTYPE_ADMIN_USERS_ONLY { - continue - } - - applicationData[*appId] = *appName - } - } - - return applicationData, nil -} - -func (r *PingOneApplicationRoleAssignmentResource) getApplicationRoleAssignmentData(appId string) (map[string]string, error) { - applicationRoleAssignmentData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationRoleAssignmentsApi.ReadApplicationRoleAssignments(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, appId).Execute() - applicationRoleAssignments, err := pingone.GetManagementAPIObjectsFromIterator[management.RoleAssignment](iter, "ReadApplicationRoleAssignments", "GetRoleAssignments", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, roleAssignment := range applicationRoleAssignments { - roleAssignmentId, roleAssignmentIdOk := roleAssignment.GetIdOk() - roleAssignmentRole, roleAssignmentRoleOk := roleAssignment.GetRoleOk() - - if roleAssignmentIdOk && roleAssignmentRoleOk { - roleAssignmentRoleId, roleAssignmentRoleIdOk := roleAssignmentRole.GetIdOk() - - if roleAssignmentRoleIdOk { - applicationRoleAssignmentData[*roleAssignmentId] = *roleAssignmentRoleId - } - } - } - - return applicationRoleAssignmentData, nil -} - -func (r *PingOneApplicationRoleAssignmentResource) getRoleName(roleId string) (management.EnumRoleName, bool, error) { - apiRole, resp, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.RolesApi.ReadOneRole(r.clientInfo.PingOneContext, roleId).Execute() - ok, err := common.HandleClientResponse(resp, err, "ReadOneRole", r.ResourceType()) - if err != nil { - return "", false, err - } - if !ok { - return "", false, nil - } - - if apiRole != nil { - apiRoleName, apiRoleNameOk := apiRole.GetNameOk() - if apiRoleNameOk { - return *apiRoleName, true, nil - } - } - - return "", false, fmt.Errorf("unable to get role name for role ID: %s", roleId) -} diff --git a/internal/connector/pingone/sso/resources/pingone_application_role_assignment_test.go b/internal/connector/pingone/sso/resources/pingone_application_role_assignment_test.go deleted file mode 100644 index f33f3cb9..00000000 --- a/internal/connector/pingone/sso/resources/pingone_application_role_assignment_test.go +++ /dev/null @@ -1,154 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestApplicationRoleAssignmentExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.ApplicationRoleAssignment(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "OAuth Worker App_PingFederate Crypto Administrator_d4aa4aec-c521-4538-ab76-8776355d2b22", - ResourceID: fmt.Sprintf("%s/9d6c443b-6329-4d3c-949e-880eda3b9599/d4aa4aec-c521-4538-ab76-8776355d2b22", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "OAuth Worker App_PingFederate User Administrator_9f431f95-8df7-43cb-8419-e2b3898ca8c4", - ResourceID: fmt.Sprintf("%s/9d6c443b-6329-4d3c-949e-880eda3b9599/9f431f95-8df7-43cb-8419-e2b3898ca8c4", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "OAuth Worker App_PingFederate Administrator_28607a1f-b0b3-4c43-8807-4bf8a93c8d07", - ResourceID: fmt.Sprintf("%s/9d6c443b-6329-4d3c-949e-880eda3b9599/28607a1f-b0b3-4c43-8807-4bf8a93c8d07", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "OAuth Worker App_PingFederate Expression Administrator_cbd5b6a0-1748-4ca6-b252-e02fd843897e", - ResourceID: fmt.Sprintf("%s/9d6c443b-6329-4d3c-949e-880eda3b9599/cbd5b6a0-1748-4ca6-b252-e02fd843897e", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "PingOne DaVinci Connection_Identity Data Admin_4331fc1a-434c-4cee-ba2a-ceb57974550c", - ResourceID: fmt.Sprintf("%s/7b621870-7124-4426-b432-6c675642afcb/4331fc1a-434c-4cee-ba2a-ceb57974550c", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "PingOne DaVinci Connection_DaVinci Admin_ebcdd4c7-0014-4eb5-9aa9-15af45795c15", - ResourceID: fmt.Sprintf("%s/7b621870-7124-4426-b432-6c675642afcb/ebcdd4c7-0014-4eb5-9aa9-15af45795c15", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "PingOne DaVinci Connection_Environment Admin_9e1d7f96-c4a9-49d3-bb2d-d2b1fef197dd", - ResourceID: fmt.Sprintf("%s/7b621870-7124-4426-b432-6c675642afcb/9e1d7f96-c4a9-49d3-bb2d-d2b1fef197dd", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_Identity Data Admin_9225c10f-b902-4107-8aba-b15b219d6c0e", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/9225c10f-b902-4107-8aba-b15b219d6c0e", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_Client Application Developer_0081f0ab-d02c-4718-b10c-35fd48b82f47", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/0081f0ab-d02c-4718-b10c-35fd48b82f47", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_Identity Data Read Only_a0f34409-4d1b-4b22-911a-7b4a61ac68b1", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/a0f34409-4d1b-4b22-911a-7b4a61ac68b1", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_Identity Data Admin_970667f1-26d5-4021-809f-e5d17fe44a7d", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/970667f1-26d5-4021-809f-e5d17fe44a7d", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_Client Application Developer_785b582f-eaf2-4a0b-ac8e-b7c7f9665762", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/785b582f-eaf2-4a0b-ac8e-b7c7f9665762", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_Identity Data Read Only_91562725-239b-4854-8cef-c4efe35ea77f", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/91562725-239b-4854-8cef-c4efe35ea77f", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_Identity Data Admin_ed54c262-38ab-4874-a206-2d13e34f21fd", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/ed54c262-38ab-4874-a206-2d13e34f21fd", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_Client Application Developer_3f112aa9-b712-4388-821d-8f37a429b071", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/3f112aa9-b712-4388-821d-8f37a429b071", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_Identity Data Read Only_1395d969-6527-45f4-b356-4ef36a5d6349", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/1395d969-6527-45f4-b356-4ef36a5d6349", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_PingFederate Crypto Administrator_c01ef5c4-74c4-4074-8929-b0836aa9a783", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/c01ef5c4-74c4-4074-8929-b0836aa9a783", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_DaVinci Admin_9bdbe295-e199-4952-8717-3405112eccad", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/9bdbe295-e199-4952-8717-3405112eccad", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_Organization Admin_b57756a8-d9c6-4fbc-95d4-9d2aabf801e0", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/b57756a8-d9c6-4fbc-95d4-9d2aabf801e0", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_Environment Admin_3e77cca6-8820-4eb6-bcfd-761cf4e74ad1", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/3e77cca6-8820-4eb6-bcfd-761cf4e74ad1", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_PingFederate User Administrator_6600fad1-82c4-412f-aa2c-22e8668d8c3a", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/6600fad1-82c4-412f-aa2c-22e8668d8c3a", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_Configuration Read Only_6f01ea75-5e04-45a5-8614-186b58f9eb4e", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/6f01ea75-5e04-45a5-8614-186b58f9eb4e", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_PingFederate Auditor_cf1edf79-fd13-4d72-a049-7bdc4377ee0c", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/cf1edf79-fd13-4d72-a049-7bdc4377ee0c", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_PingFederate Administrator_530824c1-675f-4282-8a61-6567fc3afee6", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/530824c1-675f-4282-8a61-6567fc3afee6", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_DaVinci Admin Read Only_e82d85ed-8687-4724-87ad-7f138cdbe673", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/e82d85ed-8687-4724-87ad-7f138cdbe673", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_role_assignment", - ResourceName: "Worker App_PingFederate Expression Administrator_c090f7c9-4419-447b-8316-baf3e70030bc", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57/c090f7c9-4419-447b-8316-baf3e70030bc", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_application_secret_test.go b/internal/connector/pingone/sso/resources/pingone_application_secret_test.go deleted file mode 100644 index b25018a1..00000000 --- a/internal/connector/pingone/sso/resources/pingone_application_secret_test.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestApplicationSecretExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.ApplicationSecret(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_application_secret", - ResourceName: "Example OAuth App_secret", - ResourceID: fmt.Sprintf("%s/2a7c1b5d-415b-4fb5-a6c0-1e290f776785", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_secret", - ResourceName: "Getting Started Application_secret", - ResourceID: fmt.Sprintf("%s/3da7aae6-92e5-4295-a37c-8515d1f2cd86", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_secret", - ResourceName: "OAuth Worker App_secret", - ResourceID: fmt.Sprintf("%s/9d6c443b-6329-4d3c-949e-880eda3b9599", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_secret", - ResourceName: "PingOne DaVinci Connection_secret", - ResourceID: fmt.Sprintf("%s/7b621870-7124-4426-b432-6c675642afcb", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_secret", - ResourceName: "test app_secret", - ResourceID: fmt.Sprintf("%s/a4cbf57e-fa2c-452f-bbc8-f40b551da0e2", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_secret", - ResourceName: "Test MFA_secret", - ResourceID: fmt.Sprintf("%s/11cfc8c7-ec0c-43ff-b49a-64f5e243f932", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_application_sign_on_policy_assignment_test.go b/internal/connector/pingone/sso/resources/pingone_application_sign_on_policy_assignment_test.go deleted file mode 100644 index 65a78476..00000000 --- a/internal/connector/pingone/sso/resources/pingone_application_sign_on_policy_assignment_test.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestApplicationSignOnPolicyAssignmentExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.ApplicationSignOnPolicyAssignment(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_application_sign_on_policy_assignment", - ResourceName: "Example OAuth App_Single_Factor", - ResourceID: fmt.Sprintf("%s/2a7c1b5d-415b-4fb5-a6c0-1e290f776785/056ed696-f2e9-44b1-8d2c-68e690cd1f24", clientInfo.PingOneExportEnvironmentID), - }, - - { - ResourceType: "pingone_application_sign_on_policy_assignment", - ResourceName: "Test MFA_multi_factor", - ResourceID: fmt.Sprintf("%s/11cfc8c7-ec0c-43ff-b49a-64f5e243f932/b0ecdaab-9d7c-4c1f-ab0d-891cfdbc73b2", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_application_test.go b/internal/connector/pingone/sso/resources/pingone_application_test.go deleted file mode 100644 index 6d9091cc..00000000 --- a/internal/connector/pingone/sso/resources/pingone_application_test.go +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestApplicationExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.Application(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_application", - ResourceName: "Example OAuth App", - ResourceID: fmt.Sprintf("%s/2a7c1b5d-415b-4fb5-a6c0-1e290f776785", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application", - ResourceName: "Getting Started Application", - ResourceID: fmt.Sprintf("%s/3da7aae6-92e5-4295-a37c-8515d1f2cd86", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application", - ResourceName: "OAuth Worker App", - ResourceID: fmt.Sprintf("%s/9d6c443b-6329-4d3c-949e-880eda3b9599", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application", - ResourceName: "PingOne DaVinci Connection", - ResourceID: fmt.Sprintf("%s/7b621870-7124-4426-b432-6c675642afcb", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application", - ResourceName: "test app", - ResourceID: fmt.Sprintf("%s/a4cbf57e-fa2c-452f-bbc8-f40b551da0e2", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application", - ResourceName: "Worker App", - ResourceID: fmt.Sprintf("%s/c45c2f8c-dee0-4a12-b169-bae693a13d57", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application", - ResourceName: "Test MFA", - ResourceID: fmt.Sprintf("%s/11cfc8c7-ec0c-43ff-b49a-64f5e243f932", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_group_nesting_test.go b/internal/connector/pingone/sso/resources/pingone_group_nesting_test.go deleted file mode 100644 index a110b9ed..00000000 --- a/internal/connector/pingone/sso/resources/pingone_group_nesting_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestGroupNestingExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.GroupNesting(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_group_nesting", - ResourceName: "My parent group_My nested group", - ResourceID: fmt.Sprintf("%s/298cf355-6806-4058-b87e-1ae92c7fb13b/d12ae346-c596-438c-95e3-3d76f364d527", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_group_role_assignment_test.go b/internal/connector/pingone/sso/resources/pingone_group_role_assignment_test.go deleted file mode 100644 index 7c1bf8cf..00000000 --- a/internal/connector/pingone/sso/resources/pingone_group_role_assignment_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestGroupRoleAssignmentExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.GroupRoleAssignment(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_group_role_assignment", - ResourceName: "testing_Client Application Developer_1db1accc-f63f-4f03-ab62-c767398fa730", - ResourceID: fmt.Sprintf("%s/b6924f30-73ca-4d3c-964b-90c77adce6a7/1db1accc-f63f-4f03-ab62-c767398fa730", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_group_role_assignment", - ResourceName: "testing_Identity Data Read Only_53a88921-2a9f-44f1-958e-3db9be3f8c69", - ResourceID: fmt.Sprintf("%s/b6924f30-73ca-4d3c-964b-90c77adce6a7/53a88921-2a9f-44f1-958e-3db9be3f8c69", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_group_test.go b/internal/connector/pingone/sso/resources/pingone_group_test.go deleted file mode 100644 index b6bd0e6b..00000000 --- a/internal/connector/pingone/sso/resources/pingone_group_test.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestGroupExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.Group(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_group", - ResourceName: "test group", - ResourceID: fmt.Sprintf("%s/ebdf1771-4f43-4fa6-bb9a-ec17333e5ca7", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_group", - ResourceName: "testing", - ResourceID: fmt.Sprintf("%s/b6924f30-73ca-4d3c-964b-90c77adce6a7", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_group", - ResourceName: "My parent group", - ResourceID: fmt.Sprintf("%s/298cf355-6806-4058-b87e-1ae92c7fb13b", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_group", - ResourceName: "My nested group", - ResourceID: fmt.Sprintf("%s/d12ae346-c596-438c-95e3-3d76f364d527", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_identity_provider_attribute.go b/internal/connector/pingone/sso/resources/pingone_identity_provider_attribute.go deleted file mode 100644 index c748eb84..00000000 --- a/internal/connector/pingone/sso/resources/pingone_identity_provider_attribute.go +++ /dev/null @@ -1,145 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneIdentityProviderAttributeResource{} -) - -type PingOneIdentityProviderAttributeResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneIdentityProviderAttributeResource -func IdentityProviderAttribute(clientInfo *connector.ClientInfo) *PingOneIdentityProviderAttributeResource { - return &PingOneIdentityProviderAttributeResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneIdentityProviderAttributeResource) ResourceType() string { - return "pingone_identity_provider_attribute" -} - -func (r *PingOneIdentityProviderAttributeResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - identityProviderData, err := r.getIdentityProviderData() - if err != nil { - return nil, err - } - - for idpId, idpName := range identityProviderData { - identityProviderAttributeData, err := r.getIdentityProviderAttributeData(idpId) - if err != nil { - return nil, err - } - - for idpAttributeId, idpAttributeName := range identityProviderAttributeData { - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Identity Provider Attribute ID": idpAttributeId, - "Identity Provider Attribute Name": idpAttributeName, - "Identity Provider ID": idpId, - "Identity Provider Name": idpName, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", idpName, idpAttributeName), - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, idpId, idpAttributeId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - } - - return &importBlocks, nil -} - -func (r *PingOneIdentityProviderAttributeResource) getIdentityProviderData() (map[string]string, error) { - identityProviderData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.IdentityProvidersApi.ReadAllIdentityProviders(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - identityProviders, err := pingone.GetManagementAPIObjectsFromIterator[management.IdentityProvider](iter, "ReadAllIdentityProviders", "GetIdentityProviders", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, idp := range identityProviders { - var ( - idpId *string - idpIdOk bool - idpName *string - idpNameOk bool - ) - - switch { - case idp.IdentityProviderApple != nil: - idpId, idpIdOk = idp.IdentityProviderApple.GetIdOk() - idpName, idpNameOk = idp.IdentityProviderApple.GetNameOk() - case idp.IdentityProviderClientIDClientSecret != nil: - idpId, idpIdOk = idp.IdentityProviderClientIDClientSecret.GetIdOk() - idpName, idpNameOk = idp.IdentityProviderClientIDClientSecret.GetNameOk() - case idp.IdentityProviderFacebook != nil: - idpId, idpIdOk = idp.IdentityProviderFacebook.GetIdOk() - idpName, idpNameOk = idp.IdentityProviderFacebook.GetNameOk() - case idp.IdentityProviderOIDC != nil: - idpId, idpIdOk = idp.IdentityProviderOIDC.GetIdOk() - idpName, idpNameOk = idp.IdentityProviderOIDC.GetNameOk() - case idp.IdentityProviderPaypal != nil: - idpId, idpIdOk = idp.IdentityProviderPaypal.GetIdOk() - idpName, idpNameOk = idp.IdentityProviderPaypal.GetNameOk() - case idp.IdentityProviderSAML != nil: - idpId, idpIdOk = idp.IdentityProviderSAML.GetIdOk() - idpName, idpNameOk = idp.IdentityProviderSAML.GetNameOk() - default: - continue - } - - if idpIdOk && idpNameOk { - identityProviderData[*idpId] = *idpName - } - } - - return identityProviderData, nil -} - -func (r *PingOneIdentityProviderAttributeResource) getIdentityProviderAttributeData(idpId string) (map[string]string, error) { - identityProviderAttributeData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.IdentityProviderAttributesApi.ReadAllIdentityProviderAttributes(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, idpId).Execute() - attributeInners, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedAttributesInner](iter, "ReadAllIdentityProviderAttributes", "GetAttributes", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, attributeInners := range attributeInners { - if attributeInners.IdentityProviderAttribute != nil { - idpAttributeId, idpAttributeIdOk := attributeInners.IdentityProviderAttribute.GetIdOk() - idpAttributeName, idpAttributeNameOk := attributeInners.IdentityProviderAttribute.GetNameOk() - - if idpAttributeIdOk && idpAttributeNameOk { - identityProviderAttributeData[*idpAttributeId] = *idpAttributeName - } - } - } - - return identityProviderAttributeData, nil -} diff --git a/internal/connector/pingone/sso/resources/pingone_identity_provider_attribute_test.go b/internal/connector/pingone/sso/resources/pingone_identity_provider_attribute_test.go deleted file mode 100644 index 9ceaa345..00000000 --- a/internal/connector/pingone/sso/resources/pingone_identity_provider_attribute_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestIdentityProviderAttributeExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.IdentityProviderAttribute(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_identity_provider_attribute", - ResourceName: "Default Idp Test_username", - ResourceID: fmt.Sprintf("%s/a99df558-7090-4303-8f35-860ac660e371/51a036c6-41ed-44f7-bd1d-eacaa2a1feab", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_identity_provider_test.go b/internal/connector/pingone/sso/resources/pingone_identity_provider_test.go deleted file mode 100644 index 3fb1c680..00000000 --- a/internal/connector/pingone/sso/resources/pingone_identity_provider_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestIdentityProviderExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.IdentityProvider(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_identity_provider", - ResourceName: "Default Idp Test", - ResourceID: fmt.Sprintf("%s/a99df558-7090-4303-8f35-860ac660e371", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_password_policy_test.go b/internal/connector/pingone/sso/resources/pingone_password_policy_test.go deleted file mode 100644 index a7a7cab3..00000000 --- a/internal/connector/pingone/sso/resources/pingone_password_policy_test.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestPasswordPolicyExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.PasswordPolicy(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_password_policy", - ResourceName: "Standard", - ResourceID: fmt.Sprintf("%s/10c1f1bc-3dff-49ca-9abb-cf034b728793", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_password_policy", - ResourceName: "Basic", - ResourceID: fmt.Sprintf("%s/48641620-f51d-4675-86e1-e45d378ac0b2", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_password_policy", - ResourceName: "Passphrase", - ResourceID: fmt.Sprintf("%s/686e2710-d59f-484a-8ba5-47959753012c", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_password_policy", - ResourceName: "LDAP Gateway Policy", - ResourceID: fmt.Sprintf("%s/c79032d2-b156-46a5-a9c9-7d18e93095b7", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_population_default_identity_provider_test.go b/internal/connector/pingone/sso/resources/pingone_population_default_identity_provider_test.go deleted file mode 100644 index 9fb92551..00000000 --- a/internal/connector/pingone/sso/resources/pingone_population_default_identity_provider_test.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestPopulationDefaultIdpExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.PopulationDefaultIdp(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_population_default_identity_provider", - ResourceName: "Default_default_identity_provider", - ResourceID: fmt.Sprintf("%s/720da2ce-4dd0-48d9-af75-aeadbda1860d", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_population_default_identity_provider", - ResourceName: "LDAP Gateway Population_default_identity_provider", - ResourceID: fmt.Sprintf("%s/374fdb3c-4e94-4547-838a-0c200b9a7c70", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_population_default_identity_provider", - ResourceName: "Test Default Idp Population_default_identity_provider", - ResourceID: fmt.Sprintf("%s/2814912d-4a0f-4104-a779-80c13b2a6dcd", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_population_default_test.go b/internal/connector/pingone/sso/resources/pingone_population_default_test.go deleted file mode 100644 index 5ec58269..00000000 --- a/internal/connector/pingone/sso/resources/pingone_population_default_test.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestPopulationDefaultExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.PopulationDefault(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_population_default", - ResourceName: "Default_population_default", - ResourceID: clientInfo.PingOneExportEnvironmentID, - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_population_test.go b/internal/connector/pingone/sso/resources/pingone_population_test.go deleted file mode 100644 index 430cdf63..00000000 --- a/internal/connector/pingone/sso/resources/pingone_population_test.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestPopulationExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.Population(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_population", - ResourceName: "Default", - ResourceID: fmt.Sprintf("%s/720da2ce-4dd0-48d9-af75-aeadbda1860d", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_population", - ResourceName: "LDAP Gateway Population", - ResourceID: fmt.Sprintf("%s/374fdb3c-4e94-4547-838a-0c200b9a7c70", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_population", - ResourceName: "Test Default Idp Population", - ResourceID: fmt.Sprintf("%s/2814912d-4a0f-4104-a779-80c13b2a6dcd", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_resource_attribute_test.go b/internal/connector/pingone/sso/resources/pingone_resource_attribute_test.go deleted file mode 100644 index 79318b32..00000000 --- a/internal/connector/pingone/sso/resources/pingone_resource_attribute_test.go +++ /dev/null @@ -1,169 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestResourceAttributeExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.ResourceAttribute(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_resource_attribute", - ResourceName: "authorize-api-service_sub", - ResourceID: fmt.Sprintf("%s/3c6001a0-6110-4934-9d34-fa8c4a2894c2/3f79ad4f-588a-4652-bad8-d64d405bef8a", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "test_sub", - ResourceID: fmt.Sprintf("%s/4b9ef858-62ce-4bd0-9186-997b8527529d/c82b24b9-7ea3-4de4-8840-50b6c3cb1387", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "testing_sub", - ResourceID: fmt.Sprintf("%s/52afd89f-f3c0-4c78-b896-432c0a07329b/a7cf0daf-0e30-4ae5-bf88-7c5dc629d7cf", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_locale", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/0122f755-ac5d-4bc1-a755-0f56b6f582ec", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_preferred_username", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/09c1e110-7b3b-4f2d-a1ab-7d3054df8aa6", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_email", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/0b230ac5-25a4-4012-a393-e2529d91d4df", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_email_verified", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/1754e8e0-97b5-4477-b76e-a97d6d4fcb8d", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_phone_number", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/1b6c9496-a281-4379-a8ef-dc5b60cb1bf4", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_nickname", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/1c822a3c-52fb-4cb2-b8c7-99800d32221a", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_address.postal_code", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/1fdeb8af-3f4d-4979-a4eb-2344694f9ec2", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_name", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/28ce7067-77cb-460c-ad61-c7300b6b2ceb", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_updated_at", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/310677e7-2ece-4740-a17a-ec5cd9412b5c", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_family_name", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/37c492db-521d-4ef5-9fb2-dec64bb1de1e", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_profile", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/3c3f3bfe-d096-4f0e-9f9e-1ce9633cac5d", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_address.formatted", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/3dc6971b-d7e8-4019-8502-d43dc0ced872", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_address.region", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/4dab2957-276b-4132-886f-fd217d21c01d", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_phone_number_verified", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/791968e4-08bb-4aa8-bfc3-a28287fe0070", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_website", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/8447184f-1d5c-43cd-951b-a15c924b5bae", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_given_name", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/8bf9debc-5f13-45e4-81ba-cae3bc1c0d77", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_birthdate", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/91234ec7-61e8-4c5b-83f3-a08388e1a5f7", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_address.locality", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/b1f8538f-2b55-43ff-9b78-238fcad14b9d", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_zoneinfo", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/b298df9c-75c8-4b5a-b1a9-97b71bce415f", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_gender", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/c24c29ad-14d9-407e-a7c9-acb22a4792ce", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_address.street_address", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/d1c9d1eb-f988-4983-93e1-97ed6f0d835f", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_address.country", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/d2964153-b987-4688-a5dc-09b7a1d52667", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_exampleAttribute", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/dc35abb7-79bc-4449-8fcc-265fbb39345f", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_picture", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/dc9cd3f2-2076-44d2-b760-100a2beb49db", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "openid_middle_name", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80/fd6180af-b339-47bb-a9e3-6e02b69fb7ad", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_attribute", - ResourceName: "Undeployed Test API Service_sub", - ResourceID: fmt.Sprintf("%s/a35fe5ea-084c-4245-80f1-85f9eaf4f063/be2a2418-127a-4d60-9c04-88a5a568e25c", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_resource_scope_openid_test.go b/internal/connector/pingone/sso/resources/pingone_resource_scope_openid_test.go deleted file mode 100644 index 7e621b19..00000000 --- a/internal/connector/pingone/sso/resources/pingone_resource_scope_openid_test.go +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestResourceScopeOpenIdExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.ResourceScopeOpenId(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_resource_scope_openid", - ResourceName: "openid_profile", - ResourceID: fmt.Sprintf("%s/5a2881ba-affc-4556-a9ff-ad662ea84e89", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_scope_openid", - ResourceName: "openid_newscope2", - ResourceID: fmt.Sprintf("%s/5f07b021-5f0e-47d0-a62b-1e983bdff753", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_scope_openid", - ResourceName: "openid_openid", - ResourceID: fmt.Sprintf("%s/6f095311-2cb9-4414-b30f-af8ee5e11e34", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_scope_openid", - ResourceName: "openid_newscope", - ResourceID: fmt.Sprintf("%s/792fa804-8aae-43c8-bea7-ea2dbbb1ca88", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_scope_openid", - ResourceName: "openid_email", - ResourceID: fmt.Sprintf("%s/a95eb903-b691-4aa9-91df-8b02d69816df", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_scope_openid", - ResourceName: "openid_test", - ResourceID: fmt.Sprintf("%s/d4213f0d-e1fc-42db-bcc6-dfad730f7be7", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_scope_openid", - ResourceName: "openid_phone", - ResourceID: fmt.Sprintf("%s/dad64f0c-187e-4991-a5b3-c4e53a4167e5", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_scope_openid", - ResourceName: "openid_testing", - ResourceID: fmt.Sprintf("%s/eb7e9feb-6076-4a2e-9e9e-5c9c0a503606", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_scope_openid", - ResourceName: "openid_address", - ResourceID: fmt.Sprintf("%s/fcd04665-fb97-4943-9c88-427331ebe930", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_scope_openid", - ResourceName: "openid_offline_access", - ResourceID: fmt.Sprintf("%s/4ac3e5ac-7baf-4c05-80a5-01a40c813d1a", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_resource_scope_pingone_api_test.go b/internal/connector/pingone/sso/resources/pingone_resource_scope_pingone_api_test.go deleted file mode 100644 index a75ae481..00000000 --- a/internal/connector/pingone/sso/resources/pingone_resource_scope_pingone_api_test.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestResourceScopePingOneApiExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.ResourceScopePingOneApi(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_resource_scope_pingone_api", - ResourceName: "PingOne API_p1:read:user", - ResourceID: fmt.Sprintf("%s/089adcde-be64-4e7e-9a5a-dda60ce38a9f", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_scope_pingone_api", - ResourceName: "PingOne API_p1:read:user:2", - ResourceID: fmt.Sprintf("%s/83d8ee1d-938f-4287-9792-aa808dc0cad9", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_scope_pingone_api", - ResourceName: "PingOne API_p1:update:user", - ResourceID: fmt.Sprintf("%s/d5bd66de-8044-41c5-aed2-278b6cf47dad", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_resource_scope_test.go b/internal/connector/pingone/sso/resources/pingone_resource_scope_test.go deleted file mode 100644 index 49ab8446..00000000 --- a/internal/connector/pingone/sso/resources/pingone_resource_scope_test.go +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestResourceScopeExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.ResourceScope(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_resource_scope", - ResourceName: "authorize-api-service_apiscope", - ResourceID: fmt.Sprintf("%s/3c6001a0-6110-4934-9d34-fa8c4a2894c2/97b9c81c-56a3-4727-8626-9c55826f98c0", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_scope", - ResourceName: "authorize-api-service_testing", - ResourceID: fmt.Sprintf("%s/3c6001a0-6110-4934-9d34-fa8c4a2894c2/6aa03c9d-7003-4ddb-9395-b176d4bde6d6", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_scope", - ResourceName: "test_testing", - ResourceID: fmt.Sprintf("%s/4b9ef858-62ce-4bd0-9186-997b8527529d/99bda6e7-f34b-4218-8fb0-221f5414e0db", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_scope", - ResourceName: "test_oidc", - ResourceID: fmt.Sprintf("%s/4b9ef858-62ce-4bd0-9186-997b8527529d/9f2c9b87-a190-446e-bf6b-d97b7f8b1a70", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_scope", - ResourceName: "testing_test", - ResourceID: fmt.Sprintf("%s/52afd89f-f3c0-4c78-b896-432c0a07329b/d9935d01-5baa-4843-970a-9df33b60439f", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_resource_secret_test.go b/internal/connector/pingone/sso/resources/pingone_resource_secret_test.go deleted file mode 100644 index 5d4ef3c9..00000000 --- a/internal/connector/pingone/sso/resources/pingone_resource_secret_test.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestResourceSecretExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.ResourceSecret(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_resource_secret", - ResourceName: "Undeployed Test API Service_secret", - ResourceID: fmt.Sprintf("%s/a35fe5ea-084c-4245-80f1-85f9eaf4f063", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_secret", - ResourceName: "authorize-api-service_secret", - ResourceID: fmt.Sprintf("%s/3c6001a0-6110-4934-9d34-fa8c4a2894c2", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_secret", - ResourceName: "test_secret", - ResourceID: fmt.Sprintf("%s/4b9ef858-62ce-4bd0-9186-997b8527529d", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource_secret", - ResourceName: "testing_secret", - ResourceID: fmt.Sprintf("%s/52afd89f-f3c0-4c78-b896-432c0a07329b", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_resource_test.go b/internal/connector/pingone/sso/resources/pingone_resource_test.go deleted file mode 100644 index f5dac940..00000000 --- a/internal/connector/pingone/sso/resources/pingone_resource_test.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestResourceExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.Resource(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_resource", - ResourceName: "authorize-api-service", - ResourceID: fmt.Sprintf("%s/3c6001a0-6110-4934-9d34-fa8c4a2894c2", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource", - ResourceName: "test", - ResourceID: fmt.Sprintf("%s/4b9ef858-62ce-4bd0-9186-997b8527529d", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource", - ResourceName: "testing", - ResourceID: fmt.Sprintf("%s/52afd89f-f3c0-4c78-b896-432c0a07329b", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource", - ResourceName: "PingOne API", - ResourceID: fmt.Sprintf("%s/95ed3610-7668-4a17-8334-b3db5ff9a875", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource", - ResourceName: "openid", - ResourceID: fmt.Sprintf("%s/8c428665-3e68-4f3c-997d-16a97f8cbe80", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_resource", - ResourceName: "Undeployed Test API Service", - ResourceID: fmt.Sprintf("%s/a35fe5ea-084c-4245-80f1-85f9eaf4f063", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_schema_attribute_test.go b/internal/connector/pingone/sso/resources/pingone_schema_attribute_test.go deleted file mode 100644 index 142ca413..00000000 --- a/internal/connector/pingone/sso/resources/pingone_schema_attribute_test.go +++ /dev/null @@ -1,174 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestSchemaAttributeExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.SchemaAttribute(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_preferredLanguage", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/364bc187-e88f-4853-87f3-64aa13d9a099", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_timezone", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/4d3de681-a822-4633-bc42-8c67f9052fd3", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_lastSignOn", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/6b6992f5-78f6-4a22-97a1-69ba30c591d0", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_title", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/47cdeaa0-5cf0-4964-83b5-b3fe125c092e", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_type", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/acce5383-16ff-4973-8ded-2b19fd9146ed", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_locale", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/b9ff90eb-188e-40b1-9725-92b55e40f1eb", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_enabled", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/022607db-04b7-4d37-a034-798342d32060", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_identityProvider", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/b77ef54a-54c1-4636-83d2-b410ed23aeee", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_lifecycle", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/e3541156-0fe1-4177-aa69-dce02420d8cc", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_createdAt", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/d3221cc9-fb62-42e9-a14c-971a7c7a1e74", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_verifyStatus", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/23a02ffd-9250-401e-8aa5-f8eb71b72c6c", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_nickname", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/87efff27-cdb5-4829-9976-a80ebb4f8ee5", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_mfaEnabled", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/a49c17e2-ce8f-45e5-8e71-d51c8c4d140a", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_id", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/e4bb0b09-3f8d-485e-94ca-20e312471633", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_email", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/0473af5a-1294-4462-8a19-8567e5dccd9c", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_updatedAt", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/8fe405d2-c620-4267-805d-371c2092eb59", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_memberOfGroupIDs", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/d85f4528-54a8-49c7-a643-c098ad28b860", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_address", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/bc10ef33-b7cf-4efd-afc2-44bbd8f572a9", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_externalId", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/985359b0-a6a7-49e3-9079-be770e49b37f", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_photo", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/d991bc82-002d-4872-b544-9f2562452269", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_memberOfGroupNames", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/6a2aa3a6-9926-4070-8827-3bf84f7033fb", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_population", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/fb572f33-8944-4a35-846c-e548dbdeb49f", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_primaryPhone", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/f48f844b-3ba2-45ad-ba3c-de473a12ca4d", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_accountId", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/3658a298-8ce8-446d-ada5-cebb24678506", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_emailVerified", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/c4034a55-f6ae-406e-b3ad-5da3c66d77a2", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_mobilePhone", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/b4a939bf-f60a-41c3-9aad-1482ddf31d32", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_name", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/c8cac0ca-31c6-43d4-a2e6-63b07c936a43", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_account", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/eeed302f-8ca8-4993-aeb0-5d8d08587d8d", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_username", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/77d3f22e-00ca-49d1-98a1-fc0ee48d2542", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_schema_attribute", - ResourceName: "User_bypassMFA", - ResourceID: fmt.Sprintf("%s/ff3cb03d-4896-4d20-8612-f014c4048d01/355c50dc-0eb6-4c5b-ab36-2b3152e0534c", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_sign_on_policy_action.go b/internal/connector/pingone/sso/resources/pingone_sign_on_policy_action.go deleted file mode 100644 index e09ac19b..00000000 --- a/internal/connector/pingone/sso/resources/pingone_sign_on_policy_action.go +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneSignOnPolicyActionResource{} -) - -type PingOneSignOnPolicyActionResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneSignOnPolicyActionResource -func SignOnPolicyAction(clientInfo *connector.ClientInfo) *PingOneSignOnPolicyActionResource { - return &PingOneSignOnPolicyActionResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneSignOnPolicyActionResource) ResourceType() string { - return "pingone_sign_on_policy_action" -} - -func (r *PingOneSignOnPolicyActionResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - signOnPolicyData, err := r.getSignOnPolicyData() - if err != nil { - return nil, err - } - - for signOnPolicyId, signOnPolicyName := range signOnPolicyData { - signOnPolicyActionData, err := r.getSignOnPolicyActionData(signOnPolicyId) - if err != nil { - return nil, err - } - - for actionId, actionType := range signOnPolicyActionData { - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - "Sign-On Policy Action ID": actionId, - "Sign-On Policy Action Type": actionType, - "Sign-On Policy ID": signOnPolicyId, - "Sign-On Policy Name": signOnPolicyName, - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", signOnPolicyName, actionType), - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, signOnPolicyId, actionId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - } - - return &importBlocks, nil -} - -func (r *PingOneSignOnPolicyActionResource) getSignOnPolicyData() (map[string]string, error) { - signOnPolicyData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.SignOnPoliciesApi.ReadAllSignOnPolicies(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - signOnPolicies, err := pingone.GetManagementAPIObjectsFromIterator[management.SignOnPolicy](iter, "ReadAllSignOnPolicies", "GetSignOnPolicies", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, signOnPolicy := range signOnPolicies { - signOnPolicyId, signOnPolicyIdOk := signOnPolicy.GetIdOk() - signOnPolicyName, signOnPolicyNameOk := signOnPolicy.GetNameOk() - - if signOnPolicyIdOk && signOnPolicyNameOk { - signOnPolicyData[*signOnPolicyId] = *signOnPolicyName - } - } - - return signOnPolicyData, nil -} - -func (r *PingOneSignOnPolicyActionResource) getSignOnPolicyActionData(signOnPolicyId string) (map[string]string, error) { - signOnPolicyActionData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.SignOnPolicyActionsApi.ReadAllSignOnPolicyActions(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, signOnPolicyId).Execute() - signOnPolicyActions, err := pingone.GetManagementAPIObjectsFromIterator[management.SignOnPolicyAction](iter, "ReadAllSignOnPolicyActions", "GetActions", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, action := range signOnPolicyActions { - var ( - actionId *string - actionIdOk bool - actionType *management.EnumSignOnPolicyType - actionTypeOk bool - ) - - switch { - case action.SignOnPolicyActionAgreement != nil: - actionId, actionIdOk = action.SignOnPolicyActionAgreement.GetIdOk() - actionType, actionTypeOk = action.SignOnPolicyActionAgreement.GetTypeOk() - case action.SignOnPolicyActionCommon != nil: - actionId, actionIdOk = action.SignOnPolicyActionCommon.GetIdOk() - actionType, actionTypeOk = action.SignOnPolicyActionCommon.GetTypeOk() - case action.SignOnPolicyActionIDFirst != nil: - actionId, actionIdOk = action.SignOnPolicyActionIDFirst.GetIdOk() - actionType, actionTypeOk = action.SignOnPolicyActionIDFirst.GetTypeOk() - case action.SignOnPolicyActionIDP != nil: - actionId, actionIdOk = action.SignOnPolicyActionIDP.GetIdOk() - actionType, actionTypeOk = action.SignOnPolicyActionIDP.GetTypeOk() - case action.SignOnPolicyActionLogin != nil: - actionId, actionIdOk = action.SignOnPolicyActionLogin.GetIdOk() - actionType, actionTypeOk = action.SignOnPolicyActionLogin.GetTypeOk() - case action.SignOnPolicyActionMFA != nil: - actionId, actionIdOk = action.SignOnPolicyActionMFA.GetIdOk() - actionType, actionTypeOk = action.SignOnPolicyActionMFA.GetTypeOk() - case action.SignOnPolicyActionPingIDWinLoginPasswordless != nil: - actionId, actionIdOk = action.SignOnPolicyActionPingIDWinLoginPasswordless.GetIdOk() - actionType, actionTypeOk = action.SignOnPolicyActionPingIDWinLoginPasswordless.GetTypeOk() - default: - continue - } - - if actionIdOk && actionTypeOk { - signOnPolicyActionData[*actionId] = string(*actionType) - } - } - - return signOnPolicyActionData, nil -} diff --git a/internal/connector/pingone/sso/resources/pingone_sign_on_policy_action_test.go b/internal/connector/pingone/sso/resources/pingone_sign_on_policy_action_test.go deleted file mode 100644 index dd6abfbf..00000000 --- a/internal/connector/pingone/sso/resources/pingone_sign_on_policy_action_test.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestSignOnPolicyActionExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.SignOnPolicyAction(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_sign_on_policy_action", - ResourceName: "testing_LOGIN", - ResourceID: fmt.Sprintf("%s/0667e65d-fcdf-4049-b1b4-9d59392ee8bc/8d6fbf89-6913-403d-ab16-1470af9be22f", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_sign_on_policy_action", - ResourceName: "testing_AGREEMENT", - ResourceID: fmt.Sprintf("%s/0667e65d-fcdf-4049-b1b4-9d59392ee8bc/23a73045-e9a7-4557-83c7-8aa3b7c7fb2e", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_sign_on_policy_action", - ResourceName: "testing_IDENTITY_PROVIDER", - ResourceID: fmt.Sprintf("%s/0667e65d-fcdf-4049-b1b4-9d59392ee8bc/e975d90d-8355-45a2-94ba-3757734cc64b", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_sign_on_policy_action", - ResourceName: "test_LOGIN", - ResourceID: fmt.Sprintf("%s/50cff7e5-7c95-4d1d-9fce-c9cdc7d6f6a3/8114540e-8deb-408b-9307-fa74f00d2683", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_sign_on_policy_action", - ResourceName: "Single_Factor_LOGIN", - ResourceID: fmt.Sprintf("%s/b1fdc38d-ea0c-47b1-9d83-c48105bd6806/6cc634a8-a89f-4632-8e84-45b976a18473", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_sign_on_policy_action", - ResourceName: "multi_factor_MULTI_FACTOR_AUTHENTICATION", - ResourceID: fmt.Sprintf("%s/7c857f42-12ef-4ff0-96e8-4dfe6d84c425/f370ed1c-09b6-4f84-8a5e-8afd5aa63687", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_sign_on_policy_test.go b/internal/connector/pingone/sso/resources/pingone_sign_on_policy_test.go deleted file mode 100644 index dd4f0afe..00000000 --- a/internal/connector/pingone/sso/resources/pingone_sign_on_policy_test.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestSignOnPolicyExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.SignOnPolicy(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_sign_on_policy", - ResourceName: "testing", - ResourceID: fmt.Sprintf("%s/0667e65d-fcdf-4049-b1b4-9d59392ee8bc", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_sign_on_policy", - ResourceName: "test", - ResourceID: fmt.Sprintf("%s/50cff7e5-7c95-4d1d-9fce-c9cdc7d6f6a3", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_sign_on_policy", - ResourceName: "Single_Factor", - ResourceID: fmt.Sprintf("%s/b1fdc38d-ea0c-47b1-9d83-c48105bd6806", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_sign_on_policy", - ResourceName: "multi_factor", - ResourceID: fmt.Sprintf("%s/7c857f42-12ef-4ff0-96e8-4dfe6d84c425", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/sso/resources/pingone_population.go b/internal/connector/pingone/sso/resources/population.go similarity index 91% rename from internal/connector/pingone/sso/resources/pingone_population.go rename to internal/connector/pingone/sso/resources/population.go index b07c3216..0101f529 100644 --- a/internal/connector/pingone/sso/resources/pingone_population.go +++ b/internal/connector/pingone/sso/resources/population.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -45,9 +46,9 @@ func (r *PingOnePopulationResource) ExportAll() (*[]connector.ImportBlock, error for populationId, populationName := range populationData { commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Population ID": populationId, "Population Name": populationName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Resource Type": r.ResourceType(), } @@ -68,12 +69,12 @@ func (r *PingOnePopulationResource) getPopulationData() (map[string]string, erro populationData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.PopulationsApi.ReadAllPopulations(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - populations, err := pingone.GetManagementAPIObjectsFromIterator[management.Population](iter, "ReadAllPopulations", "GetPopulations", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Population](iter, "ReadAllPopulations", "GetPopulations", r.ResourceType()) if err != nil { return nil, err } - for _, population := range populations { + for _, population := range apiObjs { populationId, populationIdOk := population.GetIdOk() populationName, populationNameOk := population.GetNameOk() diff --git a/internal/connector/pingone/sso/resources/pingone_population_default.go b/internal/connector/pingone/sso/resources/population_default.go similarity index 92% rename from internal/connector/pingone/sso/resources/pingone_population_default.go rename to internal/connector/pingone/sso/resources/population_default.go index abefe263..72dcb635 100644 --- a/internal/connector/pingone/sso/resources/pingone_population_default.go +++ b/internal/connector/pingone/sso/resources/population_default.go @@ -63,12 +63,12 @@ func (r *PingOnePopulationDefaultResource) ExportAll() (*[]connector.ImportBlock func (r *PingOnePopulationDefaultResource) getDefaultPopulationName() (*string, error) { iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.PopulationsApi.ReadAllPopulations(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - populations, err := pingone.GetManagementAPIObjectsFromIterator[management.Population](iter, "ReadAllPopulations", "GetPopulations", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Population](iter, "ReadAllPopulations", "GetPopulations", r.ResourceType()) if err != nil { return nil, err } - for _, population := range populations { + for _, population := range apiObjs { populationDefault, populationDefaultOk := population.GetDefaultOk() if populationDefaultOk && *populationDefault { diff --git a/internal/connector/pingone/sso/resources/pingone_population_default_identity_provider.go b/internal/connector/pingone/sso/resources/population_default_identity_provider.go similarity index 59% rename from internal/connector/pingone/sso/resources/pingone_population_default_identity_provider.go rename to internal/connector/pingone/sso/resources/population_default_identity_provider.go index de7de74d..b3891144 100644 --- a/internal/connector/pingone/sso/resources/pingone_population_default_identity_provider.go +++ b/internal/connector/pingone/sso/resources/population_default_identity_provider.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -14,25 +15,25 @@ import ( // Verify that the resource satisfies the exportable resource interface var ( - _ connector.ExportableResource = &PingOnePopulationDefaultIdpResource{} + _ connector.ExportableResource = &PingOnePopulationDefaultIdentityProviderResource{} ) -type PingOnePopulationDefaultIdpResource struct { +type PingOnePopulationDefaultIdentityProviderResource struct { clientInfo *connector.ClientInfo } -// Utility method for creating a PingOnePopulationDefaultIdpResource -func PopulationDefaultIdp(clientInfo *connector.ClientInfo) *PingOnePopulationDefaultIdpResource { - return &PingOnePopulationDefaultIdpResource{ +// Utility method for creating a PingOnePopulationDefaultIdentityProviderResource +func PopulationDefaultIdentityProvider(clientInfo *connector.ClientInfo) *PingOnePopulationDefaultIdentityProviderResource { + return &PingOnePopulationDefaultIdentityProviderResource{ clientInfo: clientInfo, } } -func (r *PingOnePopulationDefaultIdpResource) ResourceType() string { +func (r *PingOnePopulationDefaultIdentityProviderResource) ResourceType() string { return "pingone_population_default_identity_provider" } -func (r *PingOnePopulationDefaultIdpResource) ExportAll() (*[]connector.ImportBlock, error) { +func (r *PingOnePopulationDefaultIdentityProviderResource) ExportAll() (*[]connector.ImportBlock, error) { l := logger.Get() l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) @@ -44,7 +45,7 @@ func (r *PingOnePopulationDefaultIdpResource) ExportAll() (*[]connector.ImportBl } for populationId, populationName := range populationData { - ok, err := r.checkPopulationDefaultIdp(populationId) + ok, err := r.checkPopulationDefaultIdentityProviderData(populationId) if err != nil { return nil, err } @@ -53,10 +54,10 @@ func (r *PingOnePopulationDefaultIdpResource) ExportAll() (*[]connector.ImportBl } commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Population ID": populationId, "Population Name": populationName, "Resource Type": r.ResourceType(), + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, } importBlock := connector.ImportBlock{ @@ -72,16 +73,16 @@ func (r *PingOnePopulationDefaultIdpResource) ExportAll() (*[]connector.ImportBl return &importBlocks, nil } -func (r *PingOnePopulationDefaultIdpResource) getPopulationData() (map[string]string, error) { +func (r *PingOnePopulationDefaultIdentityProviderResource) getPopulationData() (map[string]string, error) { populationData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.PopulationsApi.ReadAllPopulations(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - populations, err := pingone.GetManagementAPIObjectsFromIterator[management.Population](iter, "ReadAllPopulations", "GetPopulations", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Population](iter, "ReadAllPopulations", "GetPopulations", r.ResourceType()) if err != nil { return nil, err } - for _, population := range populations { + for _, population := range apiObjs { populationId, populationIdOk := population.GetIdOk() populationName, populationNameOk := population.GetNameOk() @@ -93,7 +94,7 @@ func (r *PingOnePopulationDefaultIdpResource) getPopulationData() (map[string]st return populationData, nil } -func (r *PingOnePopulationDefaultIdpResource) checkPopulationDefaultIdp(populationId string) (bool, error) { - _, resp, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.PopulationsApi.ReadOnePopulationDefaultIdp(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, populationId).Execute() - return common.CheckSingletonResource(resp, err, "ReadOnePopulationDefaultIdp", r.ResourceType()) +func (r *PingOnePopulationDefaultIdentityProviderResource) checkPopulationDefaultIdentityProviderData(populationId string) (bool, error) { + _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.PopulationsApi.ReadOnePopulationDefaultIdp(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, populationId).Execute() + return common.CheckSingletonResource(response, err, "ReadOnePopulationDefaultIdp", r.ResourceType()) } diff --git a/internal/connector/pingone/sso/resources/population_default_identity_provider_test.go b/internal/connector/pingone/sso/resources/population_default_identity_provider_test.go new file mode 100644 index 00000000..ec34f2c3 --- /dev/null +++ b/internal/connector/pingone/sso/resources/population_default_identity_provider_test.go @@ -0,0 +1,36 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_PopulationDefaultIdentityProvider(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.PopulationDefaultIdentityProvider(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + populationTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_default_identity_provider", populationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, populationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing populations are generated. Test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/population_default_test.go b/internal/connector/pingone/sso/resources/population_default_test.go new file mode 100644 index 00000000..5d835404 --- /dev/null +++ b/internal/connector/pingone/sso/resources/population_default_test.go @@ -0,0 +1,34 @@ +// Copyright © 2025 Ping Identity Corporation + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_PopulationDefault(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.PopulationDefault(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + populationTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_population_default", populationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: clientInfo.PingOneExportEnvironmentID, + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/population_test.go b/internal/connector/pingone/sso/resources/population_test.go new file mode 100644 index 00000000..0d08acc7 --- /dev/null +++ b/internal/connector/pingone/sso/resources/population_test.go @@ -0,0 +1,34 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_Population(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.Population(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing populations are generated. Test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/pingone_resource.go b/internal/connector/pingone/sso/resources/resource.go similarity index 82% rename from internal/connector/pingone/sso/resources/pingone_resource.go rename to internal/connector/pingone/sso/resources/resource.go index 37a088bd..8978e403 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource.go +++ b/internal/connector/pingone/sso/resources/resource.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -45,9 +46,9 @@ func (r *PingOneResourceResource) ExportAll() (*[]connector.ImportBlock, error) for resourceId, resourceName := range resourceData { commentData := map[string]string{ + "Resource ID": resourceId, + "Resource Name": resourceName, "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "PingOne Resource ID": resourceId, - "PingOne Resource Name": resourceName, "Resource Type": r.ResourceType(), } @@ -68,15 +69,15 @@ func (r *PingOneResourceResource) getResourceData() (map[string]string, error) { resourceData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.ReadAllResources(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - resourceInners, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", r.ResourceType()) if err != nil { return nil, err } - for _, resourceInner := range resourceInners { - if resourceInner.Resource != nil { - resourceId, resourceIdOk := resourceInner.Resource.GetIdOk() - resourceName, resourceNameOk := resourceInner.Resource.GetNameOk() + for _, innerObj := range apiObjs { + if innerObj.Resource != nil { + resourceId, resourceIdOk := innerObj.Resource.GetIdOk() + resourceName, resourceNameOk := innerObj.Resource.GetNameOk() if resourceIdOk && resourceNameOk { resourceData[*resourceId] = *resourceName diff --git a/internal/connector/pingone/sso/resources/pingone_resource_attribute.go b/internal/connector/pingone/sso/resources/resource_attribute.go similarity index 69% rename from internal/connector/pingone/sso/resources/pingone_resource_attribute.go rename to internal/connector/pingone/sso/resources/resource_attribute.go index d4a12e61..94960cfd 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource_attribute.go +++ b/internal/connector/pingone/sso/resources/resource_attribute.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -43,9 +44,9 @@ func (r *PingOneResourceAttributeResource) ExportAll() (*[]connector.ImportBlock return nil, err } - for resourceId, resourceNameAndType := range resourceData { - resourceName := resourceNameAndType[0] - resourceType := resourceNameAndType[1] + for resourceId, resourceInfo := range resourceData { + resourceName := resourceInfo[0] + resourceType := resourceInfo[1] resourceAttributeData, err := r.getResourceAttributeData(resourceId, resourceType) if err != nil { @@ -54,12 +55,12 @@ func (r *PingOneResourceAttributeResource) ExportAll() (*[]connector.ImportBlock for resourceAttributeId, resourceAttributeName := range resourceAttributeData { commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "PingOne Resource Attribute ID": resourceAttributeId, - "PingOne Resource Attribute Name": resourceAttributeName, - "PingOne Resource ID": resourceId, - "PingOne Resource Name": resourceName, - "Resource Type": r.ResourceType(), + "Resource ID": resourceId, + "Resource Name": resourceName, + "Resource Attribute ID": resourceAttributeId, + "Resource Attribute Name": resourceAttributeName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), } importBlock := connector.ImportBlock{ @@ -80,16 +81,16 @@ func (r *PingOneResourceAttributeResource) getResourceData() (map[string][]strin resourceData := make(map[string][]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.ReadAllResources(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - resourceInners, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", r.ResourceType()) if err != nil { return nil, err } - for _, resourceInner := range resourceInners { - if resourceInner.Resource != nil { - resourceId, resourceIdOk := resourceInner.Resource.GetIdOk() - resourceName, resourceNameOk := resourceInner.Resource.GetNameOk() - resourceType, resourceTypeOk := resourceInner.Resource.GetTypeOk() + for _, inner := range apiObjs { + if inner.Resource != nil { + resourceId, resourceIdOk := inner.Resource.GetIdOk() + resourceName, resourceNameOk := inner.Resource.GetNameOk() + resourceType, resourceTypeOk := inner.Resource.GetTypeOk() if resourceIdOk && resourceNameOk && resourceTypeOk { resourceData[*resourceId] = []string{*resourceName, string(*resourceType)} @@ -100,20 +101,20 @@ func (r *PingOneResourceAttributeResource) getResourceData() (map[string][]strin return resourceData, nil } -func (r *PingOneResourceAttributeResource) getResourceAttributeData(resourceId string, resourceType string) (map[string]string, error) { +func (r *PingOneResourceAttributeResource) getResourceAttributeData(resourceId, resourceType string) (map[string]string, error) { resourceAttributeData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ResourceAttributesApi.ReadAllResourceAttributes(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, resourceId).Execute() - attributeInners, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedAttributesInner](iter, "ReadAllResourceAttributes", "GetAttributes", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedAttributesInner](iter, "ReadAllResourceAttributes", "GetAttributes", r.ResourceType()) if err != nil { return nil, err } - for _, attributeInner := range attributeInners { - if attributeInner.ResourceAttribute != nil { - resourceAttributeId, resourceAttributeIdOk := attributeInner.ResourceAttribute.GetIdOk() - resourceAttributeName, resourceAttributeNameOk := attributeInner.ResourceAttribute.GetNameOk() - resourceAttributeType, resourceAttributeTypeOk := attributeInner.ResourceAttribute.GetTypeOk() + for _, inner := range apiObjs { + if inner.ResourceAttribute != nil { + resourceAttributeId, resourceAttributeIdOk := inner.ResourceAttribute.GetIdOk() + resourceAttributeName, resourceAttributeNameOk := inner.ResourceAttribute.GetNameOk() + resourceAttributeType, resourceAttributeTypeOk := inner.ResourceAttribute.GetTypeOk() if resourceAttributeIdOk && resourceAttributeNameOk && resourceAttributeTypeOk { // Any CORE attribute is required and cannot be overridden diff --git a/internal/connector/pingone/sso/resources/resource_attribute_test.go b/internal/connector/pingone/sso/resources/resource_attribute_test.go new file mode 100644 index 00000000..2a41967e --- /dev/null +++ b/internal/connector/pingone/sso/resources/resource_attribute_test.go @@ -0,0 +1,36 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_ResourceAttribute(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.ResourceAttribute(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + resourceTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", resourceTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, resourceTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing attributes are generated, test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/pingone_resource_scope.go b/internal/connector/pingone/sso/resources/resource_scope.go similarity index 71% rename from internal/connector/pingone/sso/resources/pingone_resource_scope.go rename to internal/connector/pingone/sso/resources/resource_scope.go index d1218cd0..d18e0c30 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource_scope.go +++ b/internal/connector/pingone/sso/resources/resource_scope.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -51,12 +52,12 @@ func (r *PingOneResourceScopeResource) ExportAll() (*[]connector.ImportBlock, er for resourceScopeId, resourceScopeName := range resourceScopeData { commentData := map[string]string{ - "Custom Resource ID": resourceId, - "Custom Resource Name": resourceName, - "Custom Resource Scope ID": resourceScopeId, - "Custom Resource Scope Name": resourceScopeName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), + "Resource ID": resourceId, + "Resource Name": resourceName, + "Resource Scope ID": resourceScopeId, + "Resource Scope Name": resourceScopeName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), } importBlock := connector.ImportBlock{ @@ -77,16 +78,16 @@ func (r *PingOneResourceScopeResource) getResourceData() (map[string]string, err resourceData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.ReadAllResources(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - resourceInners, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", r.ResourceType()) if err != nil { return nil, err } - for _, resourceInner := range resourceInners { - if resourceInner.Resource != nil { - resourceId, resourceIdOk := resourceInner.Resource.GetIdOk() - resourceName, resourceNameOk := resourceInner.Resource.GetNameOk() - resourceType, resourceTypeOk := resourceInner.Resource.GetTypeOk() + for _, inner := range apiObjs { + if inner.Resource != nil { + resourceId, resourceIdOk := inner.Resource.GetIdOk() + resourceName, resourceNameOk := inner.Resource.GetNameOk() + resourceType, resourceTypeOk := inner.Resource.GetTypeOk() if resourceIdOk && resourceNameOk && resourceTypeOk && *resourceType == management.ENUMRESOURCETYPE_CUSTOM { resourceData[*resourceId] = *resourceName @@ -101,16 +102,17 @@ func (r *PingOneResourceScopeResource) getResourceScopeData(resourceId string) ( resourceScopeData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ResourceScopesApi.ReadAllResourceScopes(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, resourceId).Execute() - resourceScopes, err := pingone.GetManagementAPIObjectsFromIterator[management.ResourceScope](iter, "ReadAllResourceScopes", "GetScopes", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.ResourceScope](iter, "ReadAllResourceScopes", "GetScopes", r.ResourceType()) if err != nil { return nil, err } - for _, scope := range resourceScopes { - scopeId, scopeIdOk := scope.GetIdOk() - scopeName, scopeNameOk := scope.GetNameOk() - if scopeIdOk && scopeNameOk { - resourceScopeData[*scopeId] = *scopeName + for _, resourceScope := range apiObjs { + resourceScopeId, resourceScopeIdOk := resourceScope.GetIdOk() + resourceScopeName, resourceScopeNameOk := resourceScope.GetNameOk() + + if resourceScopeIdOk && resourceScopeNameOk { + resourceScopeData[*resourceScopeId] = *resourceScopeName } } diff --git a/internal/connector/pingone/sso/resources/pingone_resource_scope_openid.go b/internal/connector/pingone/sso/resources/resource_scope_openid.go similarity index 78% rename from internal/connector/pingone/sso/resources/pingone_resource_scope_openid.go rename to internal/connector/pingone/sso/resources/resource_scope_openid.go index 4ec6cf56..6b4389ce 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource_scope_openid.go +++ b/internal/connector/pingone/sso/resources/resource_scope_openid.go @@ -76,16 +76,16 @@ func (r *PingOneResourceScopeOpenIdResource) getResourceData() (map[string]strin resourceData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.ReadAllResources(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - resourceInners, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", r.ResourceType()) if err != nil { return nil, err } - for _, resourceInner := range resourceInners { - if resourceInner.Resource != nil { - resourceId, resourceIdOk := resourceInner.Resource.GetIdOk() - resourceName, resourceNameOk := resourceInner.Resource.GetNameOk() - resourceType, resourceTypeOk := resourceInner.Resource.GetTypeOk() + for _, inner := range apiObjs { + if inner.Resource != nil { + resourceId, resourceIdOk := inner.Resource.GetIdOk() + resourceName, resourceNameOk := inner.Resource.GetNameOk() + resourceType, resourceTypeOk := inner.Resource.GetTypeOk() if resourceIdOk && resourceNameOk && resourceTypeOk && *resourceType == management.ENUMRESOURCETYPE_OPENID_CONNECT { resourceData[*resourceId] = *resourceName @@ -100,17 +100,17 @@ func (r *PingOneResourceScopeOpenIdResource) getResourceScopeData(resourceId str resourceScopeData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ResourceScopesApi.ReadAllResourceScopes(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, resourceId).Execute() - resourceScopes, err := pingone.GetManagementAPIObjectsFromIterator[management.ResourceScope](iter, "ReadAllResourceScopes", "GetScopes", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.ResourceScope](iter, "ReadAllResourceScopes", "GetScopes", r.ResourceType()) if err != nil { return nil, err } - for _, scopeOpenId := range resourceScopes { - scopeOpenIdId, scopeOpenIdIdOk := scopeOpenId.GetIdOk() - scopeOpenIdName, scopeOpenIdNameOk := scopeOpenId.GetNameOk() + for _, scope := range apiObjs { + scopeId, scopeIdOk := scope.GetIdOk() + scopeName, scopeNameOk := scope.GetNameOk() - if scopeOpenIdIdOk && scopeOpenIdNameOk { - resourceScopeData[*scopeOpenIdId] = *scopeOpenIdName + if scopeIdOk && scopeNameOk { + resourceScopeData[*scopeId] = *scopeName } } diff --git a/internal/connector/pingone/sso/resources/resource_scope_openid_test.go b/internal/connector/pingone/sso/resources/resource_scope_openid_test.go new file mode 100644 index 00000000..305005df --- /dev/null +++ b/internal/connector/pingone/sso/resources/resource_scope_openid_test.go @@ -0,0 +1,34 @@ +// Copyright © 2025 Ping Identity Corporation + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_ResourceScopeOpenId(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.ResourceScopeOpenId(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + // Defined the expected ImportBlocks for the resource + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", "openid", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing scopes on the openid resource are generated. Test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/pingone_resource_scope_pingone_api.go b/internal/connector/pingone/sso/resources/resource_scope_pingone_api.go similarity index 79% rename from internal/connector/pingone/sso/resources/pingone_resource_scope_pingone_api.go rename to internal/connector/pingone/sso/resources/resource_scope_pingone_api.go index 2882c031..cfe50d4d 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource_scope_pingone_api.go +++ b/internal/connector/pingone/sso/resources/resource_scope_pingone_api.go @@ -77,16 +77,16 @@ func (r *PingOneResourceScopePingOneApiResource) getResourceData() (map[string]s resourceData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.ReadAllResources(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - resourceInners, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", r.ResourceType()) if err != nil { return nil, err } - for _, resourceInner := range resourceInners { - if resourceInner.Resource != nil { - resourceId, resourceIdOk := resourceInner.Resource.GetIdOk() - resourceName, resourceNameOk := resourceInner.Resource.GetNameOk() - resourceType, resourceTypeOk := resourceInner.Resource.GetTypeOk() + for _, inner := range apiObjs { + if inner.Resource != nil { + resourceId, resourceIdOk := inner.Resource.GetIdOk() + resourceName, resourceNameOk := inner.Resource.GetNameOk() + resourceType, resourceTypeOk := inner.Resource.GetTypeOk() if resourceIdOk && resourceNameOk && resourceTypeOk && *resourceType == management.ENUMRESOURCETYPE_PINGONE_API { resourceData[*resourceId] = *resourceName @@ -101,23 +101,23 @@ func (r *PingOneResourceScopePingOneApiResource) getResourceScopeData(resourceId resourceScopeData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ResourceScopesApi.ReadAllResourceScopes(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, resourceId).Execute() - resourceScopes, err := pingone.GetManagementAPIObjectsFromIterator[management.ResourceScope](iter, "ReadAllResourceScopes", "GetScopes", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.ResourceScope](iter, "ReadAllResourceScopes", "GetScopes", r.ResourceType()) if err != nil { return nil, err } - for _, scopePingOneApi := range resourceScopes { - scopePingOneApiId, scopePingOneApiIdOk := scopePingOneApi.GetIdOk() - scopePingOneApiName, scopePingOneApiNameOk := scopePingOneApi.GetNameOk() + for _, scope := range apiObjs { + scopeId, scopeIdOk := scope.GetIdOk() + scopeName, scopeNameOk := scope.GetNameOk() - if scopePingOneApiIdOk && scopePingOneApiNameOk { + if scopeIdOk && scopeNameOk { // Make sure the scope name is in the form of one of the following four patterns // p1:read:user, p1:update:user, p1:read:user:{suffix}, or p1:update:user:{suffix} // as supported by https://registry.terraform.io/providers/pingidentity/pingone/latest/docs/resources/resource_scope_pingone_api re := regexp.MustCompile(`^p1:(read|update):user(|:.+)$`) - if re.MatchString(*scopePingOneApiName) { - resourceScopeData[*scopePingOneApiId] = *scopePingOneApiName + if re.MatchString(*scopeName) { + resourceScopeData[*scopeId] = *scopeName } } } diff --git a/internal/connector/pingone/sso/resources/resource_scope_pingone_api_test.go b/internal/connector/pingone/sso/resources/resource_scope_pingone_api_test.go new file mode 100644 index 00000000..4a78f8b1 --- /dev/null +++ b/internal/connector/pingone/sso/resources/resource_scope_pingone_api_test.go @@ -0,0 +1,34 @@ +// Copyright © 2025 Ping Identity Corporation + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_ResourceScopePingOneApi(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.ResourceScopePingOneApi(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + // Defined the expected ImportBlocks for the resource + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", "PingOne API", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing scopes on the pingone api resource are generated. Test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/resource_scope_test.go b/internal/connector/pingone/sso/resources/resource_scope_test.go new file mode 100644 index 00000000..312fe80c --- /dev/null +++ b/internal/connector/pingone/sso/resources/resource_scope_test.go @@ -0,0 +1,35 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_ResourceScope(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.ResourceScope(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + resourceTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", resourceTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, resourceTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/pingone_resource_secret.go b/internal/connector/pingone/sso/resources/resource_secret.go similarity index 78% rename from internal/connector/pingone/sso/resources/pingone_resource_secret.go rename to internal/connector/pingone/sso/resources/resource_secret.go index f71a8421..cafe7e33 100644 --- a/internal/connector/pingone/sso/resources/pingone_resource_secret.go +++ b/internal/connector/pingone/sso/resources/resource_secret.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -44,20 +45,19 @@ func (r *PingOneResourceSecretResource) ExportAll() (*[]connector.ImportBlock, e } for resourceId, resourceName := range resourceData { - resourceSecretOk, err := r.getResourceSecret(resourceId) + ok, err := r.checkResourceSecretData(resourceId) if err != nil { return nil, err } - - if !resourceSecretOk { + if !ok { continue } commentData := map[string]string{ "Resource ID": resourceId, "Resource Name": resourceName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Resource Type": r.ResourceType(), + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, } importBlock := connector.ImportBlock{ @@ -77,16 +77,16 @@ func (r *PingOneResourceSecretResource) getResourceData() (map[string]string, er resourceData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.ReadAllResources(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - resourceInners, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", r.ResourceType()) if err != nil { return nil, err } - for _, resourceInner := range resourceInners { - if resourceInner.Resource != nil { - resourceId, resourceIdOk := resourceInner.Resource.GetIdOk() - resourceName, resourceNameOk := resourceInner.Resource.GetNameOk() - resourceType, resourceTypeOk := resourceInner.Resource.GetTypeOk() + for _, inner := range apiObjs { + if inner.Resource != nil { + resourceId, resourceIdOk := inner.Resource.GetIdOk() + resourceName, resourceNameOk := inner.Resource.GetNameOk() + resourceType, resourceTypeOk := inner.Resource.GetTypeOk() if resourceIdOk && resourceNameOk && resourceTypeOk && *resourceType == management.ENUMRESOURCETYPE_CUSTOM { resourceData[*resourceId] = *resourceName @@ -97,7 +97,7 @@ func (r *PingOneResourceSecretResource) getResourceData() (map[string]string, er return resourceData, nil } -func (r *PingOneResourceSecretResource) getResourceSecret(resourceId string) (bool, error) { +func (r *PingOneResourceSecretResource) checkResourceSecretData(resourceId string) (bool, error) { _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.ResourceClientSecretApi.ReadResourceSecret(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, resourceId).Execute() - return common.HandleClientResponse(response, err, "ReadResourceSecret", r.ResourceType()) + return common.CheckSingletonResource(response, err, "ReadResourceSecret", r.ResourceType()) } diff --git a/internal/connector/pingone/sso/resources/resource_secret_test.go b/internal/connector/pingone/sso/resources/resource_secret_test.go new file mode 100644 index 00000000..a9013dfc --- /dev/null +++ b/internal/connector/pingone/sso/resources/resource_secret_test.go @@ -0,0 +1,35 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_ResourceSecret(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.ResourceSecret(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + resourceTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_secret", resourceTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, resourceTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/resource_test.go b/internal/connector/pingone/sso/resources/resource_test.go new file mode 100644 index 00000000..4a39b787 --- /dev/null +++ b/internal/connector/pingone/sso/resources/resource_test.go @@ -0,0 +1,34 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_Resource(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.Resource(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing resources are generated. Test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/pingone_schema_attribute.go b/internal/connector/pingone/sso/resources/schema_attribute.go similarity index 83% rename from internal/connector/pingone/sso/resources/pingone_schema_attribute.go rename to internal/connector/pingone/sso/resources/schema_attribute.go index 7a89aa76..a3d48ce0 100644 --- a/internal/connector/pingone/sso/resources/pingone_schema_attribute.go +++ b/internal/connector/pingone/sso/resources/schema_attribute.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -51,12 +52,10 @@ func (r *PingOneSchemaAttributeResource) ExportAll() (*[]connector.ImportBlock, for schemaAttributeId, schemaAttributeName := range schemaAttributeData { commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), "Schema Attribute ID": schemaAttributeId, "Schema Attribute Name": schemaAttributeName, - "Schema ID": schemaId, - "Schema Name": schemaName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), } importBlock := connector.ImportBlock{ @@ -77,12 +76,12 @@ func (r *PingOneSchemaAttributeResource) getSchemaData() (map[string]string, err schemaData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.SchemasApi.ReadAllSchemas(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - schemas, err := pingone.GetManagementAPIObjectsFromIterator[management.Schema](iter, "ReadAllSchemas", "GetSchemas", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Schema](iter, "ReadAllSchemas", "GetSchemas", r.ResourceType()) if err != nil { return nil, err } - for _, schema := range schemas { + for _, schema := range apiObjs { schemaId, schemaIdOk := schema.GetIdOk() schemaName, schemaNameOk := schema.GetNameOk() if schemaIdOk && schemaNameOk { @@ -97,15 +96,16 @@ func (r *PingOneSchemaAttributeResource) getSchemaAttributeData(schemaId string) schemaAttributeData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.SchemasApi.ReadAllSchemaAttributes(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, schemaId).Execute() - attributeInners, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedAttributesInner](iter, "ReadAllSchemaAttributes", "GetAttributes", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedAttributesInner](iter, "ReadAllSchemaAttributes", "GetAttributes", r.ResourceType()) if err != nil { return nil, err } - for _, attributeInner := range attributeInners { - if attributeInner.SchemaAttribute != nil { - schemaAttributeId, schemaAttributeIdOk := attributeInner.SchemaAttribute.GetIdOk() - schemaAttributeName, schemaAttributeNameOk := attributeInner.SchemaAttribute.GetNameOk() + for _, innerObj := range apiObjs { + if innerObj.SchemaAttribute != nil { + schemaAttributeId, schemaAttributeIdOk := innerObj.SchemaAttribute.GetIdOk() + schemaAttributeName, schemaAttributeNameOk := innerObj.SchemaAttribute.GetNameOk() + if schemaAttributeIdOk && schemaAttributeNameOk { schemaAttributeData[*schemaAttributeId] = *schemaAttributeName } diff --git a/internal/connector/pingone/sso/resources/schema_attribute_test.go b/internal/connector/pingone/sso/resources/schema_attribute_test.go new file mode 100644 index 00000000..3ce76d84 --- /dev/null +++ b/internal/connector/pingone/sso/resources/schema_attribute_test.go @@ -0,0 +1,34 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_SchemaAttribute(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.SchemaAttribute(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_SCHEMA_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_SCHEMA_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing attributes are generated. Test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/pingone_sign_on_policy.go b/internal/connector/pingone/sso/resources/sign_on_policy.go similarity index 88% rename from internal/connector/pingone/sso/resources/pingone_sign_on_policy.go rename to internal/connector/pingone/sso/resources/sign_on_policy.go index 64878250..115039bd 100644 --- a/internal/connector/pingone/sso/resources/pingone_sign_on_policy.go +++ b/internal/connector/pingone/sso/resources/sign_on_policy.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -45,10 +46,10 @@ func (r *PingOneSignOnPolicyResource) ExportAll() (*[]connector.ImportBlock, err for signOnPolicyId, signOnPolicyName := range signOnPolicyData { commentData := map[string]string{ + "Sign On Policy ID": signOnPolicyId, + "Sign On Policy Name": signOnPolicyName, "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Resource Type": r.ResourceType(), - "Sign-On Policy ID": signOnPolicyId, - "Sign-On Policy Name": signOnPolicyName, } importBlock := connector.ImportBlock{ @@ -68,12 +69,12 @@ func (r *PingOneSignOnPolicyResource) getSignOnPolicyData() (map[string]string, signOnPolicyData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.SignOnPoliciesApi.ReadAllSignOnPolicies(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - signOnPolicies, err := pingone.GetManagementAPIObjectsFromIterator[management.SignOnPolicy](iter, "ReadAllSignOnPolicies", "GetSignOnPolicies", r.ResourceType()) + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.SignOnPolicy](iter, "ReadAllSignOnPolicies", "GetSignOnPolicies", r.ResourceType()) if err != nil { return nil, err } - for _, signOnPolicy := range signOnPolicies { + for _, signOnPolicy := range apiObjs { signOnPolicyId, signOnPolicyIdOk := signOnPolicy.GetIdOk() signOnPolicyName, signOnPolicyNameOk := signOnPolicy.GetNameOk() diff --git a/internal/connector/pingone/sso/resources/sign_on_policy_action.go b/internal/connector/pingone/sso/resources/sign_on_policy_action.go new file mode 100644 index 00000000..34ed7fb4 --- /dev/null +++ b/internal/connector/pingone/sso/resources/sign_on_policy_action.go @@ -0,0 +1,148 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneSignOnPolicyActionResource{} +) + +type PingOneSignOnPolicyActionResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneSignOnPolicyActionResource +func SignOnPolicyAction(clientInfo *connector.ClientInfo) *PingOneSignOnPolicyActionResource { + return &PingOneSignOnPolicyActionResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneSignOnPolicyActionResource) ResourceType() string { + return "pingone_sign_on_policy_action" +} + +func (r *PingOneSignOnPolicyActionResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + signOnPolicyData, err := r.getPolicyData() + if err != nil { + return nil, err + } + + for signOnPolicyId, signOnPolicyName := range signOnPolicyData { + signOnPolicyActionData, err := r.getSignOnPolicyActionData(signOnPolicyId) + if err != nil { + return nil, err + } + + for signOnPolicysignOnPolicyActionId, signOnPolicyActionType := range signOnPolicyActionData { + commentData := map[string]string{ + "Sign On Policy Action ID": signOnPolicysignOnPolicyActionId, + "Sign On Policy Action Type": signOnPolicyActionType, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", signOnPolicyName, signOnPolicyActionType), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, signOnPolicyId, signOnPolicysignOnPolicyActionId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + } + + return &importBlocks, nil +} + +func (r *PingOneSignOnPolicyActionResource) getPolicyData() (map[string]string, error) { + signOnPolicyData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.SignOnPoliciesApi.ReadAllSignOnPolicies(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.SignOnPolicy](iter, "ReadAllSignOnPolicies", "GetSignOnPolicies", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, signOnPolicy := range apiObjs { + signOnPolicyId, signOnPolicyIdOk := signOnPolicy.GetIdOk() + signOnPolicyName, signOnPolicyNameOk := signOnPolicy.GetNameOk() + + if signOnPolicyIdOk && signOnPolicyNameOk { + signOnPolicyData[*signOnPolicyId] = *signOnPolicyName + } + } + + return signOnPolicyData, nil +} + +func (r *PingOneSignOnPolicyActionResource) getSignOnPolicyActionData(signOnPolicyId string) (map[string]string, error) { + signOnPolicyActionData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.SignOnPolicyActionsApi.ReadAllSignOnPolicyActions(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, signOnPolicyId).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.SignOnPolicyAction](iter, "ReadAllSignOnPolicyActions", "GetActions", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, inner := range apiObjs { + var ( + signOnPolicyActionId *string + signOnPolicyActionIdOk bool + signOnPolicyActionType *management.EnumSignOnPolicyType + signOnPolicyActionTypeOk bool + ) + + switch { + case inner.SignOnPolicyActionAgreement != nil: + signOnPolicyActionId, signOnPolicyActionIdOk = inner.SignOnPolicyActionAgreement.GetIdOk() + signOnPolicyActionType, signOnPolicyActionTypeOk = inner.SignOnPolicyActionAgreement.GetTypeOk() + case inner.SignOnPolicyActionCommon != nil: + signOnPolicyActionId, signOnPolicyActionIdOk = inner.SignOnPolicyActionCommon.GetIdOk() + signOnPolicyActionType, signOnPolicyActionTypeOk = inner.SignOnPolicyActionCommon.GetTypeOk() + case inner.SignOnPolicyActionIDFirst != nil: + signOnPolicyActionId, signOnPolicyActionIdOk = inner.SignOnPolicyActionIDFirst.GetIdOk() + signOnPolicyActionType, signOnPolicyActionTypeOk = inner.SignOnPolicyActionIDFirst.GetTypeOk() + case inner.SignOnPolicyActionIDP != nil: + signOnPolicyActionId, signOnPolicyActionIdOk = inner.SignOnPolicyActionIDP.GetIdOk() + signOnPolicyActionType, signOnPolicyActionTypeOk = inner.SignOnPolicyActionIDP.GetTypeOk() + case inner.SignOnPolicyActionLogin != nil: + signOnPolicyActionId, signOnPolicyActionIdOk = inner.SignOnPolicyActionLogin.GetIdOk() + signOnPolicyActionType, signOnPolicyActionTypeOk = inner.SignOnPolicyActionLogin.GetTypeOk() + case inner.SignOnPolicyActionMFA != nil: + signOnPolicyActionId, signOnPolicyActionIdOk = inner.SignOnPolicyActionMFA.GetIdOk() + signOnPolicyActionType, signOnPolicyActionTypeOk = inner.SignOnPolicyActionMFA.GetTypeOk() + case inner.SignOnPolicyActionPingIDWinLoginPasswordless != nil: + signOnPolicyActionId, signOnPolicyActionIdOk = inner.SignOnPolicyActionPingIDWinLoginPasswordless.GetIdOk() + signOnPolicyActionType, signOnPolicyActionTypeOk = inner.SignOnPolicyActionPingIDWinLoginPasswordless.GetTypeOk() + case inner.SignOnPolicyActionProgressiveProfiling != nil: + signOnPolicyActionId, signOnPolicyActionIdOk = inner.SignOnPolicyActionProgressiveProfiling.GetIdOk() + signOnPolicyActionType, signOnPolicyActionTypeOk = inner.SignOnPolicyActionProgressiveProfiling.GetTypeOk() + default: + continue + } + + if signOnPolicyActionIdOk && signOnPolicyActionTypeOk { + signOnPolicyActionData[*signOnPolicyActionId] = string(*signOnPolicyActionType) + } + } + + return signOnPolicyActionData, nil +} diff --git a/internal/connector/pingone/sso/resources/sign_on_policy_action_test.go b/internal/connector/pingone/sso/resources/sign_on_policy_action_test.go new file mode 100644 index 00000000..d9a6d04d --- /dev/null +++ b/internal/connector/pingone/sso/resources/sign_on_policy_action_test.go @@ -0,0 +1,36 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_SignOnPolicyAction(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.SignOnPolicyAction(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + signOnPolicyTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", signOnPolicyTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_TYPE]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, signOnPolicyTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing actions are generated, test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/resources/sign_on_policy_test.go b/internal/connector/pingone/sso/resources/sign_on_policy_test.go new file mode 100644 index 00000000..296d8b87 --- /dev/null +++ b/internal/connector/pingone/sso/resources/sign_on_policy_test.go @@ -0,0 +1,34 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" +) + +func Test_SignOnPolicy(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_testable_resources.SignOnPolicy(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing sign-on policies are generated. Test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_application.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_application.go index 840d11bd..96788447 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_application.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_application.go @@ -25,7 +25,7 @@ func AuthenticationApiApplication(t *testing.T, clientInfo *connector.ClientInfo } } -func createAuthenticationApiApplication(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createAuthenticationApiApplication(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -50,9 +50,9 @@ func createAuthenticationApiApplication(t *testing.T, clientInfo *connector.Clie t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go index 7147442f..d5faf6fb 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go @@ -28,7 +28,7 @@ func AuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.ClientIn } } -func createAuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createAuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -90,9 +90,9 @@ func createAuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.Cl t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: *resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policy_contract.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policy_contract.go index 3cf99c48..0fa88f12 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policy_contract.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policy_contract.go @@ -26,7 +26,7 @@ func AuthenticationPolicyContract(t *testing.T, clientInfo *connector.ClientInfo } } -func createAuthenticationPolicyContract(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createAuthenticationPolicyContract(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -55,9 +55,9 @@ func createAuthenticationPolicyContract(t *testing.T, clientInfo *connector.Clie t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: *resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_selector.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_selector.go index 0f2cef46..d802eaf5 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_selector.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_selector.go @@ -26,7 +26,7 @@ func AuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo) *tes } } -func createAuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createAuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -77,9 +77,9 @@ func createAuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider.go b/internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider.go index 2daae086..85054b18 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider.go @@ -26,7 +26,7 @@ func CaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo) *testutils_ } } -func createCaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createCaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -69,9 +69,9 @@ func createCaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo, resou t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/certificate_ca.go b/internal/testing/testutils_resource/pingfederate_testable_resources/certificate_ca.go index ead9c913..7a7e2810 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/certificate_ca.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/certificate_ca.go @@ -27,7 +27,7 @@ func CertificateCa(t *testing.T, clientInfo *connector.ClientInfo) *testutils_re } } -func createCertificateCa(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createCertificateCa(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -56,9 +56,9 @@ func createCertificateCa(t *testing.T, clientInfo *connector.ClientInfo, resourc t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_ISSUER_DN: *resource.IssuerDN, testutils_resource.ENUM_SERIAL_NUMBER: *resource.SerialNumber, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_ocsp_certificate.go b/internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_ocsp_certificate.go index df5bfb04..05ce6d71 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_ocsp_certificate.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_ocsp_certificate.go @@ -27,7 +27,7 @@ func CertificatesRevocationOcspCertificate(t *testing.T, clientInfo *connector.C } } -func createCertificatesRevocationOcspCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createCertificatesRevocationOcspCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -56,9 +56,9 @@ func createCertificatesRevocationOcspCertificate(t *testing.T, clientInfo *conne t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_ISSUER_DN: *resource.IssuerDN, testutils_resource.ENUM_SERIAL_NUMBER: *resource.SerialNumber, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/identity_store_provisioner.go b/internal/testing/testutils_resource/pingfederate_testable_resources/identity_store_provisioner.go index ec2c396a..5133117c 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/identity_store_provisioner.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/identity_store_provisioner.go @@ -25,7 +25,7 @@ func IdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientInfo) *t } } -func createIdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createIdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -66,9 +66,9 @@ func createIdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientIn t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_adapter.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_adapter.go index b5801b25..4fc2f251 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_adapter.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_adapter.go @@ -28,7 +28,7 @@ func IdpAdapter(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resou } } -func createIdpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createIdpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -99,9 +99,9 @@ func createIdpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceTy t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go index ca1e16ed..008696b3 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go @@ -29,7 +29,7 @@ func IdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo) *testutils_ } } -func createIdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createIdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 2 { @@ -104,9 +104,9 @@ func createIdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo, resou t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sts_request_parameters_contract.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sts_request_parameters_contract.go index 153d8d8a..c88370f6 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sts_request_parameters_contract.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sts_request_parameters_contract.go @@ -25,7 +25,7 @@ func IdpStsRequestParametersContract(t *testing.T, clientInfo *connector.ClientI } } -func createIdpStsRequestParametersContract(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createIdpStsRequestParametersContract(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -52,9 +52,9 @@ func createIdpStsRequestParametersContract(t *testing.T, clientInfo *connector.C t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go index 5ef9963c..0c065471 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go @@ -29,7 +29,7 @@ func IdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo) *test } } -func createIdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createIdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 2 { @@ -63,9 +63,9 @@ func createIdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_SOURCE_ID: resource.SourceId, testutils_resource.ENUM_TARGET_ID: resource.TargetId, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_token_processor.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_token_processor.go index 460fd1ea..6abd70c1 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_token_processor.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_token_processor.go @@ -28,7 +28,7 @@ func IdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo) *testutil } } -func createIdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createIdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -83,9 +83,9 @@ func createIdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo, res t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm.go b/internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm.go index 304f847f..cd44312d 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm.go @@ -26,7 +26,7 @@ func KerberosRealm(t *testing.T, clientInfo *connector.ClientInfo) *testutils_re } } -func createKerberosRealm(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createKerberosRealm(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -54,9 +54,9 @@ func createKerberosRealm(t *testing.T, clientInfo *connector.ClientInfo, resourc t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.KerberosRealmName, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect_additional_key_set.go b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect_additional_key_set.go index 43e9ce1e..cd94e2dc 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect_additional_key_set.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect_additional_key_set.go @@ -29,7 +29,7 @@ func KeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo *connec } } -func createKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 2 { @@ -65,9 +65,9 @@ func createKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo * t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key.go b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key.go index 4cb7fe4b..e3197176 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key.go @@ -26,7 +26,7 @@ func KeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo) *testuti } } -func createKeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createKeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -58,9 +58,9 @@ func createKeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo, re t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_ISSUER_DN: *resource.IssuerDN, testutils_resource.ENUM_SERIAL_NUMBER: *resource.SerialNumber, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key_rotation_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key_rotation_settings.go index 669e9378..e1cee70b 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key_rotation_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key_rotation_settings.go @@ -28,7 +28,7 @@ func KeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connector.Clie } } -func createKeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createKeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -55,9 +55,9 @@ func createKeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connecto } // Deletion of this resource is referenced by the keyPairId - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: keyPairId, }, } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/local_identity_profile.go b/internal/testing/testutils_resource/pingfederate_testable_resources/local_identity_profile.go index 9bb03d1a..9cefbe35 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/local_identity_profile.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/local_identity_profile.go @@ -28,7 +28,7 @@ func LocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo) *testu } } -func createLocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createLocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -56,9 +56,9 @@ func createLocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo, t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/metadata_url.go b/internal/testing/testutils_resource/pingfederate_testable_resources/metadata_url.go index ee708079..b69e5ddd 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/metadata_url.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/metadata_url.go @@ -26,7 +26,7 @@ func MetadataUrl(t *testing.T, clientInfo *connector.ClientInfo) *testutils_reso } } -func createMetadataUrl(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createMetadataUrl(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -51,9 +51,9 @@ func createMetadataUrl(t *testing.T, clientInfo *connector.ClientInfo, resourceT t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher.go b/internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher.go index 97253c61..a3a93e23 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher.go @@ -26,7 +26,7 @@ func NotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo) *test } } -func createNotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createNotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -65,9 +65,9 @@ func createNotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo, t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager.go index 102a173a..269c502e 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager.go @@ -28,7 +28,7 @@ func OauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInfo) *te } } -func createOauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -96,9 +96,9 @@ func createOauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInf t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go index 4b3d5095..de5dde3e 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go @@ -28,7 +28,7 @@ func OauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInfo) *te } } -func createOauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -65,9 +65,9 @@ func createOauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInf t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_CONTEXT_TYPE: resource.Context.Type, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_authentication_policy_contract_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_authentication_policy_contract_mapping.go index fd49b11d..fd5f1216 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_authentication_policy_contract_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_authentication_policy_contract_mapping.go @@ -27,7 +27,7 @@ func OauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connecto } } -func createOauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -66,9 +66,9 @@ func createOauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *co t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, }, } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_request_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_request_policy.go index 8df716e2..e8c03bbc 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_request_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_request_policy.go @@ -28,7 +28,7 @@ func OauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connector.Clie } } -func createOauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -90,9 +90,9 @@ func createOauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connecto t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client.go index d89a7d64..1d9dfc7f 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client.go @@ -25,7 +25,7 @@ func OauthClient(t *testing.T, clientInfo *connector.ClientInfo) *testutils_reso } } -func createOauthClient(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthClient(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -55,9 +55,9 @@ func createOauthClient(t *testing.T, clientInfo *connector.ClientInfo, resourceT t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.ClientId, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_registration_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_registration_policy.go index 2cb91710..1f4ac0c9 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_registration_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_registration_policy.go @@ -25,7 +25,7 @@ func OauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.ClientInf } } -func createOauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -52,9 +52,9 @@ func createOauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.Cli t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go index 4bb5d5dc..2b8ba42b 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go @@ -27,7 +27,7 @@ func OauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo) *tes } } -func createOauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -66,9 +66,9 @@ func createOauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, }, } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_issuer.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_issuer.go index 41b302fd..46eb3159 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_issuer.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_issuer.go @@ -26,7 +26,7 @@ func OauthIssuer(t *testing.T, clientInfo *connector.ClientInfo) *testutils_reso } } -func createOauthIssuer(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthIssuer(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -51,9 +51,9 @@ func createOauthIssuer(t *testing.T, clientInfo *connector.ClientInfo, resourceT t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go index 638fabd7..cf287d13 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go @@ -27,7 +27,7 @@ func OauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector.Clien } } -func createOauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -75,9 +75,9 @@ func createOauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, }, } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go index fbc039b4..f1e1ea0a 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go @@ -29,7 +29,7 @@ func OauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *connector } } -func createOauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 2 { @@ -63,9 +63,9 @@ func createOauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *con t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_SOURCE_ID: testProcessorPolicyId, testutils_resource.ENUM_TARGET_ID: testTokenGeneratorId, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go index dffed2c3..a2c82888 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go @@ -28,7 +28,7 @@ func OpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testut } } -func createOpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -73,9 +73,9 @@ func createOpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo, r t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go b/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go index 6f2e5e62..5dcadd04 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go @@ -28,7 +28,7 @@ func OutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo) *testu } } -func createOutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createOutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 2 { @@ -76,9 +76,9 @@ func createOutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo, t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, }, } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go b/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go index 9d7eb638..15a03b88 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go @@ -26,7 +26,7 @@ func PasswordCredentialValidator(t *testing.T, clientInfo *connector.ClientInfo) } } -func createPasswordCredentialValidator(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createPasswordCredentialValidator(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -83,9 +83,9 @@ func createPasswordCredentialValidator(t *testing.T, clientInfo *connector.Clien t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go b/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go index 2a61d037..a09d7a5e 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go @@ -29,7 +29,7 @@ func PingoneConnection(t *testing.T, clientInfo *connector.ClientInfo) *testutil } } -func createPingoneConnection(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createPingoneConnection(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -55,9 +55,9 @@ func createPingoneConnection(t *testing.T, clientInfo *connector.ClientInfo, res t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/secret_manager.go b/internal/testing/testutils_resource/pingfederate_testable_resources/secret_manager.go index 0097e194..af932e3d 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/secret_manager.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/secret_manager.go @@ -26,7 +26,7 @@ func SecretManager(t *testing.T, clientInfo *connector.ClientInfo) *testutils_re } } -func createSecretManager(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createSecretManager(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -61,9 +61,9 @@ func createSecretManager(t *testing.T, clientInfo *connector.ClientInfo, resourc t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings_issuer_certificate.go b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings_issuer_certificate.go index b3da1672..544e94a6 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings_issuer_certificate.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings_issuer_certificate.go @@ -27,7 +27,7 @@ func ServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clientInfo } } -func createServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -56,9 +56,9 @@ func createServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clien t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.CertView.Id, testutils_resource.ENUM_ISSUER_DN: *resource.CertView.IssuerDN, testutils_resource.ENUM_SERIAL_NUMBER: *resource.CertView.SerialNumber, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go index 0f1ae472..b48342c1 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go @@ -28,7 +28,7 @@ func SessionAuthenticationPolicy(t *testing.T, clientInfo *connector.ClientInfo) } } -func createSessionAuthenticationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createSessionAuthenticationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -58,9 +58,9 @@ func createSessionAuthenticationPolicy(t *testing.T, clientInfo *connector.Clien t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_TYPE: resource.AuthenticationSource.Type, testutils_resource.ENUM_SOURCE_REF_ID: resource.AuthenticationSource.SourceRef.Id, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_adapter.go b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_adapter.go index fd5066db..34b739bd 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_adapter.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_adapter.go @@ -26,7 +26,7 @@ func SpAdapter(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resour } } -func createSpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createSpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -65,9 +65,9 @@ func createSpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_authentication_policy_contract_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_authentication_policy_contract_mapping.go index b53f7ec3..b77d9c33 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_authentication_policy_contract_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_authentication_policy_contract_mapping.go @@ -29,7 +29,7 @@ func SpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connector.C } } -func createSpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createSpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 2 { @@ -63,9 +63,9 @@ func createSpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *conne t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_SOURCE_ID: resource.SourceId, testutils_resource.ENUM_TARGET_ID: resource.TargetId, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_idp_connection.go b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_idp_connection.go index 2b1da5e7..ec939034 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_idp_connection.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_idp_connection.go @@ -27,7 +27,7 @@ func SpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo) *testutils_ } } -func createSpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createSpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -84,9 +84,9 @@ func createSpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo, resou t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_token_generator.go b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_token_generator.go index 571993ef..7d624d01 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_token_generator.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_token_generator.go @@ -27,7 +27,7 @@ func SpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo) *testutils } } -func createSpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createSpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -90,9 +90,9 @@ func createSpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo, reso t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, }, } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go index 650672cf..1027c91c 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go @@ -29,7 +29,7 @@ func TokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *connector.C } } -func createTokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createTokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 2 { @@ -63,9 +63,9 @@ func createTokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *conne t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_SOURCE_ID: resource.SourceId, testutils_resource.ENUM_TARGET_ID: resource.TargetId, diff --git a/internal/testing/testutils_resource/pingone_testable_resources/agreement.go b/internal/testing/testutils_resource/pingone_testable_resources/agreement.go index 03e05977..c6aba705 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/agreement.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/agreement.go @@ -26,7 +26,7 @@ func Agreement(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resour } } -func createAgreement(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createAgreement(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -52,9 +52,11 @@ func createAgreement(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, @@ -67,9 +69,8 @@ func deleteAgreement(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp if len(ids) != 1 { t.Fatalf("Unexpected number of arguments provided to deleteAgreement(): %v", ids) } - id := ids[0] - request := clientInfo.PingOneApiClient.ManagementAPIClient.AgreementsResourcesApi.DeleteAgreement(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + request := clientInfo.PingOneApiClient.ManagementAPIClient.AgreementsResourcesApi.DeleteAgreement(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteAgreement", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization.go b/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization.go index cb63dec4..43990857 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization.go @@ -27,7 +27,7 @@ func AgreementLocalization(t *testing.T, clientInfo *connector.ClientInfo) *test } } -func createAgreementLocalization(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createAgreementLocalization(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -53,11 +53,12 @@ func createAgreementLocalization(t *testing.T, clientInfo *connector.ClientInfo, t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ agreementId, + *resource.Id, }, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_LOCALE: resource.Locale, }, @@ -70,10 +71,8 @@ func deleteAgreementLocalization(t *testing.T, clientInfo *connector.ClientInfo, if len(ids) != 2 { t.Fatalf("Unexpected number of arguments provided to deleteAgreementLocalization(): %v", ids) } - agreementId := ids[0] - agreementLocalizationId := ids[1] - request := clientInfo.PingOneApiClient.ManagementAPIClient.AgreementLanguagesResourcesApi.DeleteAgreementLanguage(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, agreementId, agreementLocalizationId) + request := clientInfo.PingOneApiClient.ManagementAPIClient.AgreementLanguagesResourcesApi.DeleteAgreementLanguage(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteAgreementLanguage", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go b/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go index 8420cd40..31d0e800 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go @@ -28,7 +28,7 @@ func AgreementLocalizationRevision(t *testing.T, clientInfo *connector.ClientInf } } -func createAgreementLocalizationRevision(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createAgreementLocalizationRevision(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 2 { @@ -62,12 +62,13 @@ func createAgreementLocalizationRevision(t *testing.T, clientInfo *connector.Cli t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ agreementId, agreementLocalizationId, + *resource.Id, }, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, }, } @@ -79,11 +80,8 @@ func deleteAgreementLocalizationRevision(t *testing.T, clientInfo *connector.Cli if len(ids) != 3 { t.Fatalf("Unexpected number of arguments provided to deleteAgreementLocalizationRevision(): %v", ids) } - agreementId := ids[0] - agreementLocalizationId := ids[1] - agreementLocalizationRevisionId := ids[2] - request := clientInfo.PingOneApiClient.ManagementAPIClient.AgreementRevisionsResourcesApi.DeleteAgreementLanguageRevision(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, agreementId, agreementLocalizationId, agreementLocalizationRevisionId) + request := clientInfo.PingOneApiClient.ManagementAPIClient.AgreementRevisionsResourcesApi.DeleteAgreementLanguageRevision(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1], ids[2]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteAgreementLanguageRevision", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/alert_channel.go b/internal/testing/testutils_resource/pingone_testable_resources/alert_channel.go index 97e32c82..cdcc0a81 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/alert_channel.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/alert_channel.go @@ -25,7 +25,7 @@ func AlertChannel(t *testing.T, clientInfo *connector.ClientInfo) *testutils_res } } -func createAlertChannel(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createAlertChannel(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -59,9 +59,11 @@ func createAlertChannel(t *testing.T, clientInfo *connector.ClientInfo, resource t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: *resource.AlertName, }, @@ -74,9 +76,8 @@ func deleteAlertChannel(t *testing.T, clientInfo *connector.ClientInfo, resource if len(ids) != 1 { t.Fatalf("Unexpected number of arguments provided to deleteAlertChannel(): %v", ids) } - id := ids[0] - request := clientInfo.PingOneApiClient.ManagementAPIClient.AlertingApi.DeleteAlertChannel(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + request := clientInfo.PingOneApiClient.ManagementAPIClient.AlertingApi.DeleteAlertChannel(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteAlertChannel", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_attribute_mapping.go b/internal/testing/testutils_resource/pingone_testable_resources/application_attribute_mapping.go new file mode 100644 index 00000000..b842b757 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/application_attribute_mapping.go @@ -0,0 +1,85 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func ApplicationAttributeMapping(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createApplicationAttributeMapping, + DeleteFunc: deleteApplicationAttributeMapping, + Dependencies: []*testutils_resource.TestableResource{ + ApplicationDeviceAuthorization(t, clientInfo), + }, + ExportableResource: resources.ApplicationAttributeMapping(clientInfo), + } +} + +func createApplicationAttributeMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Fatalf("Unexpected number of arguments provided to createApplicationAttributeMapping(): %v", strArgs) + } + applicationId := strArgs[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationAttributeMappingApi.CreateApplicationAttributeMapping(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, applicationId) + clientStruct := management.ApplicationAttributeMapping{ + Name: "email", + Value: "${user.email}", + Required: false, + } + + request = request.ApplicationAttributeMapping(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateApplicationAttributeMapping", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + applicationId, + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteApplicationAttributeMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Fatalf("Unexpected number of arguments provided to deleteApplicationAttributeMapping(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationAttributeMappingApi.DeleteApplicationAttributeMapping(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteApplicationAttributeMapping", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_device_authorization.go b/internal/testing/testutils_resource/pingone_testable_resources/application_device_authorization.go new file mode 100644 index 00000000..396d6e84 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/application_device_authorization.go @@ -0,0 +1,96 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/hashicorp/go-uuid" + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func ApplicationDeviceAuthorization(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createApplicationDeviceAuthorization, + DeleteFunc: deleteApplicationDeviceAuthorization, + Dependencies: nil, + ExportableResource: resources.Application(clientInfo), + } +} + +func createApplicationDeviceAuthorization(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createApplicationDeviceAuthorization(): %v", strArgs) + } + + // Give unique name to application to avoid collisions in dependency creations + applicationName, err := uuid.GenerateUUID() + if err != nil { + t.Fatalf("Failed to generate UUID for application name: %v", err) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.CreateApplication(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.CreateApplicationRequest{ + ApplicationOIDC: &management.ApplicationOIDC{ + Enabled: true, + GrantTypes: []management.EnumApplicationOIDCGrantType{ + management.ENUMAPPLICATIONOIDCGRANTTYPE_DEVICE_CODE, + management.ENUMAPPLICATIONOIDCGRANTTYPE_REFRESH_TOKEN, + }, + Name: applicationName, + Protocol: management.ENUMAPPLICATIONPROTOCOL_OPENID_CONNECT, + TokenEndpointAuthMethod: management.ENUMAPPLICATIONOIDCTOKENAUTHMETHOD_NONE, + Type: management.ENUMAPPLICATIONTYPE_CUSTOM_APP, + }, + } + + request = request.CreateApplicationRequest(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateApplication", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.ApplicationOIDC.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.ApplicationOIDC.Id, + testutils_resource.ENUM_NAME: resource.ApplicationOIDC.Name, + }, + } +} + +func deleteApplicationDeviceAuthorization(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteApplicationDeviceAuthorization(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.DeleteApplication(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteApplication", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_flow_policy_assignment.go b/internal/testing/testutils_resource/pingone_testable_resources/application_flow_policy_assignment.go new file mode 100644 index 00000000..23ffe741 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/application_flow_policy_assignment.go @@ -0,0 +1,107 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func ApplicationFlowPolicyAssignment(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createApplicationFlowPolicyAssignment, + DeleteFunc: deleteApplicationFlowPolicyAssignment, + Dependencies: []*testutils_resource.TestableResource{ + ApplicationDeviceAuthorization(t, clientInfo), + }, + ExportableResource: resources.ApplicationFlowPolicyAssignment(clientInfo), + } +} + +func createApplicationFlowPolicyAssignment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Fatalf("Unexpected number of arguments provided to createApplicationFlowPolicyAssignment(): %v", strArgs) + } + applicationId := strArgs[0] + + iter := clientInfo.PingOneApiClient.ManagementAPIClient.FlowPoliciesApi.ReadAllFlowPolicies(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID).Execute() + flowPolicies, err := pingone.GetManagementAPIObjectsFromIterator[management.FlowPolicy](iter, "ReadAllFlowPolicies", "GetFlowPolicies", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nError: %v", err) + } + + if len(flowPolicies) == 0 { + t.Fatalf("No flow policies found") + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationFlowPolicyAssignmentsApi.CreateFlowPolicyAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, applicationId) + clientStruct := management.FlowPolicyAssignment{ + Priority: 1, + FlowPolicy: management.FlowPolicyAssignmentFlowPolicy{ + Id: *flowPolicies[0].Id, + }, + } + + request = request.FlowPolicyAssignment(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateFlowPolicyAssignment", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + flowPolicy, response, err := clientInfo.PingOneApiClient.ManagementAPIClient.FlowPoliciesApi.ReadOneFlowPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, resource.FlowPolicy.Id).Execute() + + ok, err = common.HandleClientResponse(response, err, "ReadOneFlowPolicy", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + applicationId, + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: *flowPolicy.Name, + }, + } +} + +func deleteApplicationFlowPolicyAssignment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Fatalf("Unexpected number of arguments provided to deleteApplicationFlowPolicyAssignment(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationFlowPolicyAssignmentsApi.DeleteFlowPolicyAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteFlowPolicyAssignment", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_resource_grant.go b/internal/testing/testutils_resource/pingone_testable_resources/application_resource_grant.go new file mode 100644 index 00000000..e76331aa --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/application_resource_grant.go @@ -0,0 +1,116 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func ApplicationResourceGrant(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createApplicationResourceGrant, + DeleteFunc: deleteApplicationResourceGrant, + Dependencies: []*testutils_resource.TestableResource{ + ApplicationDeviceAuthorization(t, clientInfo), + Resource(t, clientInfo), + }, + ExportableResource: resources.ApplicationResourceGrant(clientInfo), + } +} + +func createApplicationResourceGrant(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 2 { + t.Fatalf("Unexpected number of arguments provided to createApplicationResourceGrant(): %v", strArgs) + } + applicationId := strArgs[0] + resourceId := strArgs[1] + + resReq := clientInfo.PingOneApiClient.ManagementAPIClient.ResourceScopesApi.CreateResourceScope(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, resourceId) + + resClientStruct := management.ResourceScope{ + Name: "testCustomScope", + } + resReq = resReq.ResourceScope(resClientStruct) + scope, response, err := resReq.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateResourceScope", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationResourceGrantsApi.CreateApplicationGrant(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, applicationId) + clientStruct := management.ApplicationResourceGrant{ + Resource: management.ApplicationResourceGrantResource{ + Id: resourceId, + }, + Scopes: []management.ApplicationResourceGrantScopesInner{ + { + Id: *scope.Id, + }, + }, + } + + request = request.ApplicationResourceGrant(clientStruct) + + resource, response, err := request.Execute() + ok, err = common.HandleClientResponse(response, err, "CreateApplicationGrant", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + resObj, resResponse, resErr := clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.ReadOneResource(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, resourceId).Execute() + ok, err = common.HandleClientResponse(resResponse, resErr, "ReadOneResource", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", resResponse.Status, resResponse.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", resResponse.Status, resResponse.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + applicationId, + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resObj.Name, + }, + } +} + +func deleteApplicationResourceGrant(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Fatalf("Unexpected number of arguments provided to deleteApplicationResourceGrant(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationResourceGrantsApi.DeleteApplicationGrant(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteApplicationGrant", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_role_assignment.go b/internal/testing/testutils_resource/pingone_testable_resources/application_role_assignment.go new file mode 100644 index 00000000..0cf85010 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/application_role_assignment.go @@ -0,0 +1,114 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func ApplicationRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createApplicationRoleAssignment, + DeleteFunc: deleteApplicationRoleAssignment, + Dependencies: []*testutils_resource.TestableResource{ + ApplicationWorker(t, clientInfo), + }, + ExportableResource: resources.ApplicationRoleAssignment(clientInfo), + } +} + +func createApplicationRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Fatalf("Unexpected number of arguments provided to createApplicationRoleAssignment(): %v", strArgs) + } + applicationId := strArgs[0] + + iter := clientInfo.PingOneApiClient.ManagementAPIClient.RolesApi.ReadAllRoles(clientInfo.PingOneContext).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedRolesInner](iter, "ReadAllRoles", "GetRoles", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nError: %v", err) + } + if len(apiObjs) == 0 { + t.Fatal("Failed to execute PingOne client function\n No built-in roles returned from ReadAllRoles()") + } + + var ( + roleId string + roleName string + ) + + for _, role := range apiObjs { + if role.Role != nil { + if role.Role.Name != nil && *role.Role.Name == management.ENUMROLENAME_APPLICATION_OWNER { + roleId = *role.Role.Id + roleName = string(*role.Role.Name) + break + } + } + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationRoleAssignmentsApi.CreateApplicationRoleAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, applicationId) + clientStruct := management.RoleAssignment{ + Role: management.RoleAssignmentRole{ + Id: roleId, + }, + Scope: management.RoleAssignmentScope{ + Id: clientInfo.PingOneExportEnvironmentID, + Type: management.ENUMROLEASSIGNMENTSCOPETYPE_ENVIRONMENT, + }, + } + + request = request.RoleAssignment(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateApplicationRoleAssignment", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + applicationId, + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: roleName, + }, + } +} + +func deleteApplicationRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Fatalf("Unexpected number of arguments provided to deleteApplicationRoleAssignment(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationRoleAssignmentsApi.DeleteApplicationRoleAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteApplicationRoleAssignment", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_secret.go b/internal/testing/testutils_resource/pingone_testable_resources/application_secret.go new file mode 100644 index 00000000..cbac1559 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/application_secret.go @@ -0,0 +1,26 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func ApplicationSecret(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: nil, + DeleteFunc: nil, + Dependencies: []*testutils_resource.TestableResource{ + ApplicationDeviceAuthorization(t, clientInfo), + }, + ExportableResource: resources.ApplicationSecret(clientInfo), + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_sign_on_policy_assignment.go b/internal/testing/testutils_resource/pingone_testable_resources/application_sign_on_policy_assignment.go new file mode 100644 index 00000000..647c0bd2 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/application_sign_on_policy_assignment.go @@ -0,0 +1,97 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func ApplicationSignOnPolicyAssignment(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createApplicationSignOnPolicyAssignment, + DeleteFunc: deleteApplicationSignOnPolicyAssignment, + Dependencies: []*testutils_resource.TestableResource{ + ApplicationDeviceAuthorization(t, clientInfo), + SignOnPolicy(t, clientInfo), + }, + ExportableResource: resources.ApplicationSignOnPolicyAssignment(clientInfo), + } +} + +func createApplicationSignOnPolicyAssignment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 2 { + t.Fatalf("Unexpected number of arguments provided to createApplicationSignOnPolicyAssignment(): %v", strArgs) + } + applicationId := strArgs[0] + policyId := strArgs[1] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationSignOnPolicyAssignmentsApi.CreateSignOnPolicyAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, applicationId) + clientStruct := management.SignOnPolicyAssignment{ + Priority: 1, + SignOnPolicy: management.SignOnPolicyActionCommonSignOnPolicy{ + Id: policyId, + }, + } + + request = request.SignOnPolicyAssignment(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateSignOnPolicyAssignment", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + signOnPolicy, response, err := clientInfo.PingOneApiClient.ManagementAPIClient.SignOnPoliciesApi.ReadOneSignOnPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, resource.SignOnPolicy.Id).Execute() + ok, err = common.HandleClientResponse(response, err, "ReadOneSignOnPolicy", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + applicationId, + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: signOnPolicy.Name, + }, + } +} + +func deleteApplicationSignOnPolicyAssignment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Fatalf("Unexpected number of arguments provided to deleteApplicationSignOnPolicyAssignment(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationSignOnPolicyAssignmentsApi.DeleteSignOnPolicyAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteSignOnPolicyAssignment", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_worker.go b/internal/testing/testutils_resource/pingone_testable_resources/application_worker.go new file mode 100644 index 00000000..188af13d --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/application_worker.go @@ -0,0 +1,98 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/hashicorp/go-uuid" + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func ApplicationWorker(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createApplicationWorker, + DeleteFunc: deleteApplicationWorker, + Dependencies: nil, + ExportableResource: resources.Application(clientInfo), + } +} + +func createApplicationWorker(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createApplicationWorker(): %v", strArgs) + } + + // Give unique name to application to avoid collisions in dependency creations + applicationName, err := uuid.GenerateUUID() + if err != nil { + t.Fatalf("Failed to generate UUID for application name: %v", err) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.CreateApplication(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.CreateApplicationRequest{ + ApplicationOIDC: &management.ApplicationOIDC{ + Enabled: true, + Name: applicationName, + Description: utils.Pointer("Test Worker Application"), + Type: management.ENUMAPPLICATIONTYPE_WORKER, + Protocol: management.ENUMAPPLICATIONPROTOCOL_OPENID_CONNECT, + GrantTypes: []management.EnumApplicationOIDCGrantType{ + management.ENUMAPPLICATIONOIDCGRANTTYPE_CLIENT_CREDENTIALS, + }, + AssignActorRoles: utils.Pointer(false), + TokenEndpointAuthMethod: management.ENUMAPPLICATIONOIDCTOKENAUTHMETHOD_CLIENT_SECRET_BASIC, + }, + } + + request = request.CreateApplicationRequest(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateApplication", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.ApplicationOIDC.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.ApplicationOIDC.Id, + testutils_resource.ENUM_NAME: resource.ApplicationOIDC.Name, + }, + } +} + +func deleteApplicationWorker(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteApplicationWorker(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.DeleteApplication(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteApplication", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/branding_theme.go b/internal/testing/testutils_resource/pingone_testable_resources/branding_theme.go index d4422d48..f74b5634 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/branding_theme.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/branding_theme.go @@ -27,7 +27,7 @@ func BrandingTheme(t *testing.T, clientInfo *connector.ClientInfo) *testutils_re } } -func createBrandingTheme(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createBrandingTheme(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -82,9 +82,11 @@ func createBrandingTheme(t *testing.T, clientInfo *connector.ClientInfo, resourc t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: *resource.Configuration.Name, }, @@ -97,9 +99,8 @@ func deleteBrandingTheme(t *testing.T, clientInfo *connector.ClientInfo, resourc if len(ids) != 1 { t.Fatalf("Unexpected number of arguments provided to deleteBrandingTheme(): %v", ids) } - id := ids[0] - request := clientInfo.PingOneApiClient.ManagementAPIClient.BrandingThemesApi.DeleteBrandingTheme(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + request := clientInfo.PingOneApiClient.ManagementAPIClient.BrandingThemesApi.DeleteBrandingTheme(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteBrandingTheme", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/certificate.go b/internal/testing/testutils_resource/pingone_testable_resources/certificate.go index 7b68aadc..66bf2228 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/certificate.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/certificate.go @@ -26,7 +26,7 @@ func Certificate(t *testing.T, clientInfo *connector.ClientInfo) *testutils_reso } } -func createCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -52,9 +52,11 @@ func createCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceT t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, @@ -67,9 +69,8 @@ func deleteCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceT if len(ids) != 1 { t.Fatalf("Unexpected number of arguments provided to deleteCertificate(): %v", ids) } - id := ids[0] - request := clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.DeleteCertificate(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + request := clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.DeleteCertificate(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteCertificate", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/custom_domain.go b/internal/testing/testutils_resource/pingone_testable_resources/custom_domain.go index 0df1ee51..46d5cc5d 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/custom_domain.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/custom_domain.go @@ -25,7 +25,7 @@ func CustomDomain(t *testing.T, clientInfo *connector.ClientInfo) *testutils_res } } -func createCustomDomain(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createCustomDomain(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -48,9 +48,11 @@ func createCustomDomain(t *testing.T, clientInfo *connector.ClientInfo, resource t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.DomainName, }, @@ -63,9 +65,8 @@ func deleteCustomDomain(t *testing.T, clientInfo *connector.ClientInfo, resource if len(ids) != 1 { t.Fatalf("Unexpected number of arguments provided to deleteCustomDomain(): %v", ids) } - id := ids[0] - request := clientInfo.PingOneApiClient.ManagementAPIClient.CustomDomainsApi.DeleteDomain(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + request := clientInfo.PingOneApiClient.ManagementAPIClient.CustomDomainsApi.DeleteDomain(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteDomain", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/device_auth_application.go b/internal/testing/testutils_resource/pingone_testable_resources/device_auth_application.go index b79f62d2..c39da007 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/device_auth_application.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/device_auth_application.go @@ -23,7 +23,7 @@ func DeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo) *test } } -func createDeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createDeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -62,9 +62,11 @@ func createDeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo, t.Fatalf("Failed to create test %s: %v", resourceType, err) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *appId, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *appId, }, } @@ -76,9 +78,8 @@ func deleteDeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo, if len(ids) != 1 { t.Fatalf("Unexpected number of arguments provided to deleteDeviceAuthApplication(): %v", ids) } - id := ids[0] - response, err := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.DeleteApplication(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id).Execute() + response, err := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.DeleteApplication(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]).Execute() ok, err := common.HandleClientResponse(response, err, "DeleteApplication", resourceType) if err != nil { t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/form.go b/internal/testing/testutils_resource/pingone_testable_resources/form.go index fc2d9ab2..58be4fa5 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/form.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/form.go @@ -26,7 +26,7 @@ func Form(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.Te } } -func createForm(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createForm(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -63,9 +63,11 @@ func createForm(t *testing.T, clientInfo *connector.ClientInfo, resourceType str t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, @@ -78,9 +80,8 @@ func deleteForm(t *testing.T, clientInfo *connector.ClientInfo, resourceType str if len(ids) != 1 { t.Fatalf("Unexpected number of arguments provided to deleteForm(): %v", ids) } - id := ids[0] - request := clientInfo.PingOneApiClient.ManagementAPIClient.FormManagementApi.DeleteForm(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + request := clientInfo.PingOneApiClient.ManagementAPIClient.FormManagementApi.DeleteForm(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteForm", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go b/internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go index 11a27127..cd952b9c 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go @@ -25,7 +25,7 @@ func FormsRecaptchaV2(t *testing.T, clientInfo *connector.ClientInfo) *testutils } } -func createFormsRecaptchaV2(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createFormsRecaptchaV2(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -49,9 +49,9 @@ func createFormsRecaptchaV2(t *testing.T, clientInfo *connector.ClientInfo, reso t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{}, + return testutils_resource.ResourceInfo{ + DeletionIds: []string{}, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{}, } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/gateway.go b/internal/testing/testutils_resource/pingone_testable_resources/gateway.go index 35f94a0c..6c9e79c6 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/gateway.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/gateway.go @@ -26,7 +26,7 @@ func Gateway(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource } } -func createGateway(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createGateway(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -54,9 +54,11 @@ func createGateway(t *testing.T, clientInfo *connector.ClientInfo, resourceType t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Gateway.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Gateway.Id, testutils_resource.ENUM_NAME: resource.Gateway.Name, }, @@ -69,9 +71,8 @@ func deleteGateway(t *testing.T, clientInfo *connector.ClientInfo, resourceType if len(ids) != 1 { t.Fatalf("Unexpected number of arguments provided to deleteGateway(): %v", ids) } - id := ids[0] - request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewaysApi.DeleteGateway(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewaysApi.DeleteGateway(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteGateway", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/gateway_credential.go b/internal/testing/testutils_resource/pingone_testable_resources/gateway_credential.go index 4b4cdfb0..059440fe 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/gateway_credential.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/gateway_credential.go @@ -26,7 +26,7 @@ func GatewayCredential(t *testing.T, clientInfo *connector.ClientInfo) *testutil } } -func createGatewayCredential(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createGatewayCredential(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -45,11 +45,12 @@ func createGatewayCredential(t *testing.T, clientInfo *connector.ClientInfo, res t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ gatewayId, + *resource.Id, }, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, }, } @@ -61,10 +62,8 @@ func deleteGatewayCredential(t *testing.T, clientInfo *connector.ClientInfo, res if len(ids) != 2 { t.Fatalf("Unexpected number of arguments provided to deleteGatewayCredential(): %v", ids) } - gatewayId := ids[0] - gatewayCredentialId := ids[1] - request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewayCredentialsApi.DeleteGatewayCredential(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, gatewayId, gatewayCredentialId) + request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewayCredentialsApi.DeleteGatewayCredential(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteGatewayCredential", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go b/internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go index 34efbdbb..5fcfb09b 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go @@ -28,7 +28,7 @@ func GatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo) *test } } -func createGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -82,11 +82,12 @@ func createGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ gatewayId, + *resource.Id, }, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: roleName, }, @@ -99,10 +100,8 @@ func deleteGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, if len(ids) != 2 { t.Fatalf("Unexpected number of arguments provided to deleteGatewayRoleAssignment(): %v", ids) } - gatewayId := ids[0] - gatewayRoleAssignmentId := ids[1] - request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewayRoleAssignmentsApi.DeleteGatewayRoleAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, gatewayId, gatewayRoleAssignmentId) + request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewayRoleAssignmentsApi.DeleteGatewayRoleAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteGatewayRoleAssignment", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/group.go b/internal/testing/testutils_resource/pingone_testable_resources/group.go new file mode 100644 index 00000000..fe9d3c7c --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/group.go @@ -0,0 +1,92 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/hashicorp/go-uuid" + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func Group(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createGroup, + DeleteFunc: deleteGroup, + Dependencies: nil, + ExportableResource: resources.Group(clientInfo), + } +} + +func createGroup(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createGroup(): %v", strArgs) + } + + // Make sure the group name is unique + groupName, err := uuid.GenerateUUID() + if err != nil { + t.Fatalf("Failed to generate UUID for group name: %v", err) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.GroupsApi.CreateGroup(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.Group{ + Name: groupName, + Description: utils.Pointer("This is a test group"), + CustomData: map[string]interface{}{ + "groupOwner": "Tom Jones", + "securityGroup": true, + }, + } + + request = request.Group(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateGroup", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteGroup(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteGroup(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.GroupsApi.DeleteGroup(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteGroup", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/group_nesting.go b/internal/testing/testutils_resource/pingone_testable_resources/group_nesting.go new file mode 100644 index 00000000..5b1b708a --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/group_nesting.go @@ -0,0 +1,94 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func GroupNesting(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createGroupNesting, + DeleteFunc: deleteGroupNesting, + Dependencies: []*testutils_resource.TestableResource{ + Group(t, clientInfo), + Group(t, clientInfo), + }, + ExportableResource: resources.GroupNesting(clientInfo), + } +} + +func createGroupNesting(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 2 { + t.Fatalf("Unexpected number of arguments provided to createGroupNesting(): %v", strArgs) + } + groupId := strArgs[0] + nestedGroupId := strArgs[1] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.GroupsApi.CreateGroupNesting(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, groupId) + clientStruct := management.GroupNesting{ + Id: nestedGroupId, + } + + request = request.GroupNesting(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateGroupNesting", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + group, response, err := clientInfo.PingOneApiClient.ManagementAPIClient.GroupsApi.ReadOneGroup(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, groupId).Execute() + ok, err = common.HandleClientResponse(response, err, "ReadOneGroup", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + groupId, + nestedGroupId, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + testutils_resource.ENUM_NAME: group.Name, + }, + } +} + +func deleteGroupNesting(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Fatalf("Unexpected number of arguments provided to deleteGroupNesting(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.GroupsApi.DeleteGroupNesting(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteGroupNesting", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/group_role_assignment.go b/internal/testing/testutils_resource/pingone_testable_resources/group_role_assignment.go new file mode 100644 index 00000000..2a12351a --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/group_role_assignment.go @@ -0,0 +1,114 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func GroupRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createGroupRoleAssignment, + DeleteFunc: deleteGroupRoleAssignment, + Dependencies: []*testutils_resource.TestableResource{ + Group(t, clientInfo), + }, + ExportableResource: resources.GroupRoleAssignment(clientInfo), + } +} + +func createGroupRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Fatalf("Unexpected number of arguments provided to createGroupRoleAssignment(): %v", strArgs) + } + groupId := strArgs[0] + + iter := clientInfo.PingOneApiClient.ManagementAPIClient.RolesApi.ReadAllRoles(clientInfo.PingOneContext).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedRolesInner](iter, "ReadAllRoles", "GetRoles", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nError: %v", err) + } + if len(apiObjs) == 0 { + t.Fatal("Failed to execute PingOne client function\n No built-in roles returned from ReadAllRoles()") + } + + var ( + roleId string + roleName string + ) + + for _, role := range apiObjs { + if role.Role != nil { + if role.Role.Name != nil && *role.Role.Name == management.ENUMROLENAME_APPLICATION_OWNER { + roleId = *role.Role.Id + roleName = string(*role.Role.Name) + break + } + } + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.GroupRoleAssignmentsApi.CreateGroupRoleAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, groupId) + clientStruct := management.RoleAssignment{ + Role: management.RoleAssignmentRole{ + Id: roleId, + }, + Scope: management.RoleAssignmentScope{ + Id: clientInfo.PingOneExportEnvironmentID, + Type: management.ENUMROLEASSIGNMENTSCOPETYPE_ENVIRONMENT, + }, + } + + request = request.RoleAssignment(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateGroupRoleAssignment", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + groupId, + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: roleName, + }, + } +} + +func deleteGroupRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Fatalf("Unexpected number of arguments provided to deleteGroupRoleAssignment(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.GroupRoleAssignmentsApi.DeleteGroupRoleAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteGroupRoleAssignment", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/identity_propagation_plan.go b/internal/testing/testutils_resource/pingone_testable_resources/identity_propagation_plan.go index c50b6374..42a04365 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/identity_propagation_plan.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/identity_propagation_plan.go @@ -25,7 +25,7 @@ func IdentityPropagationPlan(t *testing.T, clientInfo *connector.ClientInfo) *te } } -func createIdentityPropagationPlan(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createIdentityPropagationPlan(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -48,9 +48,11 @@ func createIdentityPropagationPlan(t *testing.T, clientInfo *connector.ClientInf t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, @@ -63,9 +65,8 @@ func deleteIdentityPropagationPlan(t *testing.T, clientInfo *connector.ClientInf if len(ids) != 1 { t.Fatalf("Unexpected number of arguments provided to deleteIdentityPropagationPlan(): %v", ids) } - id := ids[0] - request := clientInfo.PingOneApiClient.ManagementAPIClient.IdentityPropagationPlansApi.DeletePlan(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + request := clientInfo.PingOneApiClient.ManagementAPIClient.IdentityPropagationPlansApi.DeletePlan(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeletePlan", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/identity_provider.go b/internal/testing/testutils_resource/pingone_testable_resources/identity_provider.go new file mode 100644 index 00000000..725f6c87 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/identity_provider.go @@ -0,0 +1,95 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func IdentityProvider(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createIdentityProvider, + DeleteFunc: deleteIdentityProvider, + Dependencies: nil, + ExportableResource: resources.IdentityProvider(clientInfo), + } +} + +func createIdentityProvider(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createIdentityProvider(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.IdentityProvidersApi.CreateIdentityProvider(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.IdentityProvider{ + IdentityProviderOIDC: &management.IdentityProviderOIDC{ + AuthorizationEndpoint: "https://example.com/auth", + ClientId: "clientId", + ClientSecret: "clientSecret", + Description: utils.Pointer("Custom OpenID Connect Provider"), + DiscoveryEndpoint: utils.Pointer("https://example.com/.well-known/openid-configuration"), + Enabled: true, + Issuer: "https://example.com", + JwksEndpoint: "https://example.com/jwks", + Name: "OpenIDConnectIdP", + Scopes: []string{"openid", "email"}, + TokenEndpoint: "https://example.com/token", + TokenEndpointAuthMethod: management.ENUMIDENTITYPROVIDEROIDCTOKENAUTHMETHOD_CLIENT_SECRET_BASIC, + Type: management.ENUMIDENTITYPROVIDEREXT_OPENID_CONNECT, + UserInfoEndpoint: utils.Pointer("https://example.com/userinfo"), + }, + } + + request = request.IdentityProvider(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateIdentityProvider", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.IdentityProviderOIDC.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.IdentityProviderOIDC.Id, + testutils_resource.ENUM_NAME: resource.IdentityProviderOIDC.Name, + }, + } +} + +func deleteIdentityProvider(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteIdentityProvider(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.IdentityProvidersApi.DeleteIdentityProvider(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteIdentityProvider", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/identity_provider_attribute.go b/internal/testing/testutils_resource/pingone_testable_resources/identity_provider_attribute.go new file mode 100644 index 00000000..2e140ad1 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/identity_provider_attribute.go @@ -0,0 +1,86 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func IdentityProviderAttribute(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createIdentityProviderAttribute, + DeleteFunc: deleteIdentityProviderAttribute, + Dependencies: []*testutils_resource.TestableResource{ + IdentityProvider(t, clientInfo), + }, + ExportableResource: resources.IdentityProviderAttribute(clientInfo), + } +} + +func createIdentityProviderAttribute(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Fatalf("Unexpected number of arguments provided to createIdentityProviderAttribute(): %v", strArgs) + } + + providerId := strArgs[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.IdentityProviderAttributesApi.CreateIdentityProviderAttribute(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, providerId) + clientStruct := management.IdentityProviderAttribute{ + Name: "email", + Update: management.ENUMIDENTITYPROVIDERATTRIBUTEMAPPINGUPDATE_EMPTY_ONLY, + Value: "${providerAttributes.user.emailAddress}", + } + + request = request.IdentityProviderAttribute(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateIdentityProviderAttribute", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + providerId, + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteIdentityProviderAttribute(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Fatalf("Unexpected number of arguments provided to deleteIdentityProviderAttribute(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.IdentityProviderAttributesApi.DeleteIdentityProviderAttribute(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteIdentityProviderAttribute", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/key.go b/internal/testing/testutils_resource/pingone_testable_resources/key.go index 9fd5d246..34a70f2e 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/key.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/key.go @@ -27,7 +27,7 @@ func Key(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.Tes } } -func createKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -59,9 +59,11 @@ func createKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType stri t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, testutils_resource.ENUM_TYPE: string(resource.UsageType), @@ -75,9 +77,8 @@ func deleteKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType stri if len(ids) != 1 { t.Fatalf("Unexpected number of arguments provided to deleteKey(): %v", ids) } - id := ids[0] - request := clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.DeleteKey(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + request := clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.DeleteKey(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteKey", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/key_rotation_policy.go b/internal/testing/testutils_resource/pingone_testable_resources/key_rotation_policy.go index ec8f2b80..a0b8c2a0 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/key_rotation_policy.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/key_rotation_policy.go @@ -26,7 +26,7 @@ func KeyRotationPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutil } } -func createKeyRotationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createKeyRotationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -56,9 +56,11 @@ func createKeyRotationPolicy(t *testing.T, clientInfo *connector.ClientInfo, res t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, @@ -71,9 +73,8 @@ func deleteKeyRotationPolicy(t *testing.T, clientInfo *connector.ClientInfo, res if len(ids) != 1 { t.Fatalf("Unexpected number of arguments provided to deleteKeyRotationPolicy(): %v", ids) } - id := ids[0] - request := clientInfo.PingOneApiClient.ManagementAPIClient.KeyRotationPoliciesApi.DeleteKeyRotationPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + request := clientInfo.PingOneApiClient.ManagementAPIClient.KeyRotationPoliciesApi.DeleteKeyRotationPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteKeyRotationPolicy", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/language.go b/internal/testing/testutils_resource/pingone_testable_resources/language.go index fd6b7a12..31515a9a 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/language.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/language.go @@ -25,7 +25,7 @@ func Language(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resourc } } -func createLanguage(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createLanguage(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -66,9 +66,11 @@ func createLanguage(t *testing.T, clientInfo *connector.ClientInfo, resourceType t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: *resource.Name, }, @@ -81,9 +83,8 @@ func deleteLanguage(t *testing.T, clientInfo *connector.ClientInfo, resourceType if len(ids) != 1 { t.Fatalf("Unexpected number of arguments provided to deleteLanguage(): %v", ids) } - id := ids[0] - request := clientInfo.PingOneApiClient.ManagementAPIClient.LanguagesApi.DeleteLanguage(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + request := clientInfo.PingOneApiClient.ManagementAPIClient.LanguagesApi.DeleteLanguage(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteLanguage", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/notification_policy.go b/internal/testing/testutils_resource/pingone_testable_resources/notification_policy.go index e40c01a0..99e8c714 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/notification_policy.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/notification_policy.go @@ -26,7 +26,7 @@ func NotificationPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testuti } } -func createNotificationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createNotificationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -71,9 +71,11 @@ func createNotificationPolicy(t *testing.T, clientInfo *connector.ClientInfo, re t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, @@ -86,9 +88,8 @@ func deleteNotificationPolicy(t *testing.T, clientInfo *connector.ClientInfo, re if len(ids) != 1 { t.Fatalf("Unexpected number of arguments provided to deleteNotificationPolicy(): %v", ids) } - id := ids[0] - request := clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsPoliciesApi.DeleteNotificationsPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + request := clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsPoliciesApi.DeleteNotificationsPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteNotificationsPolicy", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go b/internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go index 6441b4e6..55e74d92 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go @@ -26,7 +26,7 @@ func NotificationTemplateContent(t *testing.T, clientInfo *connector.ClientInfo) } } -func createNotificationTemplateContent(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createNotificationTemplateContent(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -55,9 +55,11 @@ func createNotificationTemplateContent(t *testing.T, clientInfo *connector.Clien t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.TemplateContentSMS.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.TemplateContentSMS.Id, testutils_resource.ENUM_NAME: string(management.ENUMTEMPLATENAME_STRONG_AUTHENTICATION), testutils_resource.ENUM_LOCALE: resource.TemplateContentSMS.Locale, @@ -73,9 +75,8 @@ func deleteNotificationTemplateContent(t *testing.T, clientInfo *connector.Clien if len(ids) != 1 { t.Fatalf("Unexpected number of arguments provided to deleteNotificationTemplateContent(): %v", ids) } - id := ids[0] - request := clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsTemplatesApi.DeleteContent(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, management.ENUMTEMPLATENAME_STRONG_AUTHENTICATION, id) + request := clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsTemplatesApi.DeleteContent(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, management.ENUMTEMPLATENAME_STRONG_AUTHENTICATION, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteContent", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/password_policy.go b/internal/testing/testutils_resource/pingone_testable_resources/password_policy.go new file mode 100644 index 00000000..9a5ef2f3 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/password_policy.go @@ -0,0 +1,96 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func PasswordPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createPasswordPolicy, + DeleteFunc: deletePasswordPolicy, + Dependencies: nil, + ExportableResource: resources.PasswordPolicy(clientInfo), + } +} + +func createPasswordPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createPasswordPolicy(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.PasswordPoliciesApi.CreatePasswordPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.PasswordPolicy{ + Name: "PassphraseCustom1", + Description: utils.Pointer("A policy that encourages the use of passphrases"), + ExcludesProfileData: true, + NotSimilarToCurrent: true, + ExcludesCommonlyUsed: true, + MinComplexity: utils.Pointer(int32(7)), + MaxAgeDays: utils.Pointer(int32(182)), + MinAgeDays: utils.Pointer(int32(1)), + History: &management.PasswordPolicyHistory{ + Count: utils.Pointer(int32(8)), + RetentionDays: utils.Pointer(int32(365)), + }, + Lockout: &management.PasswordPolicyLockout{ + FailureCount: utils.Pointer(int32(3)), + DurationSeconds: utils.Pointer(int32(900)), + }, + Default: utils.Pointer(false), + } + + request = request.PasswordPolicy(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreatePasswordPolicy", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deletePasswordPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deletePasswordPolicy(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.PasswordPoliciesApi.DeletePasswordPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeletePasswordPolicy", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go b/internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go index f75cd760..72a0f9af 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go @@ -26,7 +26,7 @@ func PhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo) *test } } -func createPhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createPhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -105,9 +105,11 @@ func createPhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo, t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.NotificationsSettingsPhoneDeliverySettingsCustom.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.NotificationsSettingsPhoneDeliverySettingsCustom.Id, testutils_resource.ENUM_NAME: resource.NotificationsSettingsPhoneDeliverySettingsCustom.Name, }, @@ -120,9 +122,8 @@ func deletePhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo, if len(ids) != 1 { t.Fatalf("Unexpected number of arguments provided to deletePhoneDeliverySettings(): %v", ids) } - id := ids[0] - request := clientInfo.PingOneApiClient.ManagementAPIClient.PhoneDeliverySettingsApi.DeletePhoneDeliverySettings(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + request := clientInfo.PingOneApiClient.ManagementAPIClient.PhoneDeliverySettingsApi.DeletePhoneDeliverySettings(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeletePhoneDeliverySettings", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/population.go b/internal/testing/testutils_resource/pingone_testable_resources/population.go new file mode 100644 index 00000000..76af7f95 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/population.go @@ -0,0 +1,111 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func Population(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createPopulation, + DeleteFunc: deletePopulation, + Dependencies: []*testutils_resource.TestableResource{ + PasswordPolicy(t, clientInfo), + }, + ExportableResource: resources.Population(clientInfo), + } +} + +func createPopulation(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Fatalf("Unexpected number of arguments provided to createPopulation(): %v", strArgs) + } + passwordPolicyId := strArgs[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.PopulationsApi.CreatePopulation(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.Population{ + Name: "Test Population", + Description: utils.Pointer("This is a test population"), + Default: utils.Pointer(true), + PasswordPolicy: &management.PopulationPasswordPolicy{ + Id: passwordPolicyId, + }, + } + + request = request.Population(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreatePopulation", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deletePopulation(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deletePopulation(): %v", ids) + } + + getRequest := clientInfo.PingOneApiClient.ManagementAPIClient.PopulationsApi.ReadOnePopulation(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + populationClientStruct, response, err := getRequest.Execute() + ok, err := common.HandleClientResponse(response, err, "ReadOnePopulation", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + updateRequest := clientInfo.PingOneApiClient.ManagementAPIClient.PopulationsApi.UpdatePopulation(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + populationClientStruct.Default = utils.Pointer(false) + + updateRequest = updateRequest.Population(*populationClientStruct) + _, response, err = updateRequest.Execute() + ok, err = common.HandleClientResponse(response, err, "UpdatePopulation", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + deleteRequest := clientInfo.PingOneApiClient.ManagementAPIClient.PopulationsApi.DeletePopulation(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + + response, err = deleteRequest.Execute() + ok, err = common.HandleClientResponse(response, err, "DeletePopulation", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/population_default.go b/internal/testing/testutils_resource/pingone_testable_resources/population_default.go new file mode 100644 index 00000000..aec2117b --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/population_default.go @@ -0,0 +1,26 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func PopulationDefault(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: nil, + DeleteFunc: nil, + Dependencies: []*testutils_resource.TestableResource{ + Population(t, clientInfo), + }, + ExportableResource: resources.PopulationDefault(clientInfo), + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/population_default_identity_provider.go b/internal/testing/testutils_resource/pingone_testable_resources/population_default_identity_provider.go new file mode 100644 index 00000000..49b46e36 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/population_default_identity_provider.go @@ -0,0 +1,26 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func PopulationDefaultIdentityProvider(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: nil, + DeleteFunc: nil, + Dependencies: []*testutils_resource.TestableResource{ + Population(t, clientInfo), + }, + ExportableResource: resources.PopulationDefaultIdentityProvider(clientInfo), + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/resource.go b/internal/testing/testutils_resource/pingone_testable_resources/resource.go new file mode 100644 index 00000000..1b850678 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/resource.go @@ -0,0 +1,86 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func Resource(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createResource, + DeleteFunc: deleteResource, + Dependencies: nil, + ExportableResource: resources.Resource(clientInfo), + } +} + +func createResource(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createResource(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.CreateResource(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.Resource{ + Name: "Test Resource", + Description: utils.Pointer("This is a test resource"), + Audience: utils.Pointer("https://www.example.com"), + AccessTokenValiditySeconds: utils.Pointer(int32(7200)), + ApplicationPermissionsSettings: &management.ResourceApplicationPermissionsSettings{ + ClaimEnabled: utils.Pointer(true), + }, + } + + request = request.Resource(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateResource", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteResource(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteResource(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.DeleteResource(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteResource", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/resource_attribute.go b/internal/testing/testutils_resource/pingone_testable_resources/resource_attribute.go new file mode 100644 index 00000000..0a5b9a44 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/resource_attribute.go @@ -0,0 +1,84 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func ResourceAttribute(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createResourceAttribute, + DeleteFunc: deleteResourceAttribute, + Dependencies: []*testutils_resource.TestableResource{ + Resource(t, clientInfo), + }, + ExportableResource: resources.ResourceAttribute(clientInfo), + } +} + +func createResourceAttribute(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Fatalf("Unexpected number of arguments provided to createResourceAttribute(): %v", strArgs) + } + resourceId := strArgs[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ResourceAttributesApi.CreateResourceAttribute(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, resourceId) + clientStruct := management.ResourceAttribute{ + Name: "firstName", + Value: "${user.name.given}", + } + + request = request.ResourceAttribute(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateResourceAttribute", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + resourceId, + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteResourceAttribute(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Fatalf("Unexpected number of arguments provided to deleteResourceAttribute(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ResourceAttributesApi.DeleteResourceAttribute(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteResourceAttribute", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/resource_scope.go b/internal/testing/testutils_resource/pingone_testable_resources/resource_scope.go new file mode 100644 index 00000000..9a6bbce3 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/resource_scope.go @@ -0,0 +1,85 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func ResourceScope(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createResourceScope, + DeleteFunc: deleteResourceScope, + Dependencies: []*testutils_resource.TestableResource{ + Resource(t, clientInfo), + }, + ExportableResource: resources.ResourceScope(clientInfo), + } +} + +func createResourceScope(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Fatalf("Unexpected number of arguments provided to createResourceScope(): %v", strArgs) + } + resourceId := strArgs[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ResourceScopesApi.CreateResourceScope(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, resourceId) + clientStruct := management.ResourceScope{ + Name: "CustomScope", + Description: utils.Pointer("This is a custom scope"), + } + + request = request.ResourceScope(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateResourceScope", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + resourceId, + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteResourceScope(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Fatalf("Unexpected number of arguments provided to deleteResourceScope(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ResourceScopesApi.DeleteResourceScope(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteResourceScope", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_openid.go b/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_openid.go new file mode 100644 index 00000000..6cd9ce87 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_openid.go @@ -0,0 +1,95 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func ResourceScopeOpenId(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createResourceScopeOpenid, + DeleteFunc: deleteResourceScopeOpenid, + Dependencies: nil, + ExportableResource: resources.ResourceScopeOpenId(clientInfo), + } +} + +func createResourceScopeOpenid(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createResourceScopeOpenid(): %v", strArgs) + } + + iter := clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.ReadAllResources(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID).Execute() + generatedResources, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nError: %v", err) + } + + var resourceId string + for _, generatedResource := range generatedResources { + if generatedResource.Resource != nil && generatedResource.Resource.Name == "openid" && *generatedResource.Resource.Type == management.ENUMRESOURCETYPE_OPENID_CONNECT { + resourceId = *generatedResource.Resource.Id + break + } + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ResourceScopesApi.CreateResourceScope(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, resourceId) + clientStruct := management.ResourceScope{ + Name: "OpenIDScope", + } + + request = request.ResourceScope(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateResourceScope", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + resourceId, + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteResourceScopeOpenid(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Fatalf("Unexpected number of arguments provided to deleteResourceScopeOpenid(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ResourceScopesApi.DeleteResourceScope(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteResourceScope", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_pingone_api.go b/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_pingone_api.go new file mode 100644 index 00000000..2301bb00 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_pingone_api.go @@ -0,0 +1,101 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func ResourceScopePingOneApi(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createResourceScopePingoneApi, + DeleteFunc: deleteResourceScopePingoneApi, + Dependencies: nil, + ExportableResource: resources.ResourceScopePingOneApi(clientInfo), + } +} + +func createResourceScopePingoneApi(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createResourceScopePingoneApi(): %v", strArgs) + } + + iter := clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.ReadAllResources(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID).Execute() + generatedResources, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nError: %v", err) + } + + var resourceId string + for _, generatedResource := range generatedResources { + if generatedResource.Resource != nil && generatedResource.Resource.Name == "PingOne API" && *generatedResource.Resource.Type == management.ENUMRESOURCETYPE_PINGONE_API { + resourceId = *generatedResource.Resource.Id + break + } + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ResourceScopesApi.CreateResourceScope(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, resourceId) + clientStruct := management.ResourceScope{ + Name: "p1:update:user:email-only", + Description: utils.Pointer("Access control scope to limit update to email only"), + SchemaAttributes: []string{ + "name.family", + "name.given", + }, + } + + request = request.ResourceScope(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateResourceScope", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + resourceId, + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteResourceScopePingoneApi(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Fatalf("Unexpected number of arguments provided to deleteResourceScopePingoneApi(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ResourceScopesApi.DeleteResourceScope(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteResourceScope", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/resource_secret.go b/internal/testing/testutils_resource/pingone_testable_resources/resource_secret.go new file mode 100644 index 00000000..45029632 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/resource_secret.go @@ -0,0 +1,26 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func ResourceSecret(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: nil, + DeleteFunc: nil, + Dependencies: []*testutils_resource.TestableResource{ + Resource(t, clientInfo), + }, + ExportableResource: resources.ResourceSecret(clientInfo), + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/schema_attribute.go b/internal/testing/testutils_resource/pingone_testable_resources/schema_attribute.go new file mode 100644 index 00000000..503fe2c8 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/schema_attribute.go @@ -0,0 +1,114 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func SchemaAttribute(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createSchemaAttribute, + DeleteFunc: deleteSchemaAttribute, + Dependencies: nil, + ExportableResource: resources.SchemaAttribute(clientInfo), + } +} + +func createSchemaAttribute(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createSchemaAttribute(): %v", strArgs) + } + + iter := clientInfo.PingOneApiClient.ManagementAPIClient.SchemasApi.ReadAllSchemas(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Schema](iter, "ReadAllSchemas", "GetSchemas", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nError: %v", err) + } + + if len(apiObjs) == 0 { + t.Fatal("Failed to execute PingOne client function\n No built-in schemas returned from ReadAllSchemas()") + } + + schemaId := apiObjs[0].Id + schemaName := apiObjs[0].Name + + request := clientInfo.PingOneApiClient.ManagementAPIClient.SchemasApi.CreateAttribute(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, *schemaId) + clientStruct := management.SchemaAttribute{ + Name: "TestSchemaAttribute", + SchemaType: utils.Pointer(management.ENUMSCHEMAATTRIBUTESCHEMATYPE_CUSTOM), + Type: management.ENUMSCHEMAATTRIBUTETYPE_STRING, + Unique: utils.Pointer(false), + Enabled: false, + MultiValued: utils.Pointer(false), + RegexValidation: &management.SchemaAttributeRegexValidation{ + Pattern: "xs|XS|s|S|m|M|l|L|xl|XL|xxl|XXL", + Requirements: "Must be a T-shirt size from XS to XXL", + ValuesPatternShouldMatch: []string{ + "xs", + "XXL", + }, + ValuesPatternShouldNotMatch: []string{ + "xL", + "x", + }, + }, + } + + request = request.SchemaAttribute(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateAttribute", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *schemaId, + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + testutils_resource.ENUM_SCHEMA_ID: *schemaId, + testutils_resource.ENUM_SCHEMA_NAME: *schemaName, + }, + } +} + +func deleteSchemaAttribute(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Fatalf("Unexpected number of arguments provided to deleteSchemaAttribute(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.SchemasApi.DeleteAttribute(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteAttribute", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy.go b/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy.go new file mode 100644 index 00000000..59931301 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy.go @@ -0,0 +1,82 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func SignOnPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createSignOnPolicy, + DeleteFunc: deleteSignOnPolicy, + Dependencies: nil, + ExportableResource: resources.SignOnPolicy(clientInfo), + } +} + +func createSignOnPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Fatalf("Unexpected number of arguments provided to createSignOnPolicy(): %v", strArgs) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.SignOnPoliciesApi.CreateSignOnPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.SignOnPolicy{ + Name: "Simple_Login", + Default: utils.Pointer(false), + Description: utils.Pointer("A new basic sign-on policy."), + } + + request = request.SignOnPolicy(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateSignOnPolicy", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteSignOnPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Fatalf("Unexpected number of arguments provided to deleteSignOnPolicy(): %v", ids) + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.SignOnPoliciesApi.DeleteSignOnPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteSignOnPolicy", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy_action.go b/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy_action.go new file mode 100644 index 00000000..d182c3d0 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy_action.go @@ -0,0 +1,84 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func SignOnPolicyAction(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createSignOnPolicyAction, + DeleteFunc: nil, // The deletion of this resource is handled by the deletion of the SignOnPolicy resource + Dependencies: []*testutils_resource.TestableResource{ + SignOnPolicy(t, clientInfo), + }, + ExportableResource: resources.SignOnPolicyAction(clientInfo), + } +} + +func createSignOnPolicyAction(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Fatalf("Unexpected number of arguments provided to createSignOnPolicyAction(): %v", strArgs) + } + + policyId := strArgs[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.SignOnPolicyActionsApi.CreateSignOnPolicyAction(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, policyId) + clientStruct := management.SignOnPolicyAction{ + SignOnPolicyActionLogin: &management.SignOnPolicyActionLogin{ + Priority: 10, + Type: management.ENUMSIGNONPOLICYTYPE_LOGIN, + Condition: &management.SignOnPolicyActionCommonConditionOrOrInner{ + SignOnPolicyActionCommonConditionNot: &management.SignOnPolicyActionCommonConditionNot{ + Not: &management.SignOnPolicyActionCommonConditionAggregate{ + SignOnPolicyActionCommonConditionIPRange: &management.SignOnPolicyActionCommonConditionIPRange{ + IpRange: []string{ + "10.1.1.1/8", + "10.0.0.0/8", + }, + Contains: "${flow.request.http.remoteIp}", + }, + }, + }, + }, + Recovery: &management.SignOnPolicyActionLoginAllOfRecovery{ + Enabled: true, + }, + }, + } + + request = request.SignOnPolicyAction(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateSignOnPolicyAction", resourceType) + if err != nil { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + } + if !ok { + t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + policyId, + *resource.SignOnPolicyActionLogin.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.SignOnPolicyActionLogin.Id, + testutils_resource.ENUM_TYPE: string(resource.SignOnPolicyActionLogin.Type), + }, + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_address.go b/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_address.go index 6785e606..2287874c 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_address.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_address.go @@ -27,7 +27,7 @@ func TrustedEmailAddress(t *testing.T, clientInfo *connector.ClientInfo) *testut } } -func createTrustedEmailAddress(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createTrustedEmailAddress(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 1 { @@ -51,11 +51,12 @@ func createTrustedEmailAddress(t *testing.T, clientInfo *connector.ClientInfo, r t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ trustedEmailDomainId, + *resource.Id, }, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.EmailAddress, }, @@ -68,10 +69,8 @@ func deleteTrustedEmailAddress(t *testing.T, clientInfo *connector.ClientInfo, r if len(ids) != 2 { t.Fatalf("Unexpected number of arguments provided to deleteTrustedEmailAddress(): %v", ids) } - trustedEmailDomainId := ids[0] - TrustedEmailAddressId := ids[1] - request := clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailAddressesApi.DeleteTrustedEmailAddress(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, trustedEmailDomainId, TrustedEmailAddressId) + request := clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailAddressesApi.DeleteTrustedEmailAddress(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteTrustedEmailAddress", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_domain.go b/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_domain.go index d8e86bc2..d1f21057 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_domain.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_domain.go @@ -25,7 +25,7 @@ func TrustedEmailDomain(t *testing.T, clientInfo *connector.ClientInfo) *testuti } } -func createTrustedEmailDomain(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createTrustedEmailDomain(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -48,9 +48,11 @@ func createTrustedEmailDomain(t *testing.T, clientInfo *connector.ClientInfo, re t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.DomainName, }, @@ -63,9 +65,8 @@ func deleteTrustedEmailDomain(t *testing.T, clientInfo *connector.ClientInfo, re if len(ids) != 1 { t.Fatalf("Unexpected number of arguments provided to deleteTrustedEmailDomain(): %v", ids) } - id := ids[0] - request := clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailDomainsApi.DeleteTrustedEmailDomain(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + request := clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailDomainsApi.DeleteTrustedEmailDomain(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteTrustedEmailDomain", resourceType) diff --git a/internal/testing/testutils_resource/pingone_testable_resources/webhook.go b/internal/testing/testutils_resource/pingone_testable_resources/webhook.go index 5bf7c06a..5be9872d 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/webhook.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/webhook.go @@ -25,7 +25,7 @@ func Webhook(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource } } -func createWebhook(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceCreationInfo { +func createWebhook(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() if len(strArgs) != 0 { @@ -63,9 +63,11 @@ func createWebhook(t *testing.T, clientInfo *connector.ClientInfo, resourceType t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) } - return testutils_resource.ResourceCreationInfo{ - DepIds: []string{}, - SelfInfo: map[testutils_resource.ResourceCreationInfoType]string{ + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, }, @@ -78,9 +80,8 @@ func deleteWebhook(t *testing.T, clientInfo *connector.ClientInfo, resourceType if len(ids) != 1 { t.Fatalf("Unexpected number of arguments provided to deleteWebhook(): %v", ids) } - id := ids[0] - request := clientInfo.PingOneApiClient.ManagementAPIClient.SubscriptionsWebhooksApi.DeleteSubscription(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, id) + request := clientInfo.PingOneApiClient.ManagementAPIClient.SubscriptionsWebhooksApi.DeleteSubscription(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteSubscription", resourceType) diff --git a/internal/testing/testutils_resource/testutils_resource.go b/internal/testing/testutils_resource/testutils_resource.go index f42cc2f7..63abdfe2 100644 --- a/internal/testing/testutils_resource/testutils_resource.go +++ b/internal/testing/testutils_resource/testutils_resource.go @@ -30,6 +30,10 @@ const ( ENUM_TEMPLATE_VARIANT ResourceCreationInfoType = "ENUM_TEMPLATE_VARIANT" ENUM_TEMPLATE_DELIVERY_METHOD ResourceCreationInfoType = "ENUM_TEMPLATE_DELIVERY_METHOD" + // Schema Info for Schema Attribute resources + ENUM_SCHEMA_ID ResourceCreationInfoType = "ENUM_SCHEMA_ID" + ENUM_SCHEMA_NAME ResourceCreationInfoType = "ENUM_SCHEMA_NAME" + // Miscellaneous Info for resources that don't fit the above ENUM_TYPE ResourceCreationInfoType = "ENUM_TYPE" ENUM_CONTEXT_TYPE ResourceCreationInfoType = "ENUM_CONTEXT_TYPE" @@ -37,9 +41,9 @@ const ( ENUM_SOURCE_REF_ID ResourceCreationInfoType = "ENUM_SOURCE_REF_ID" ) -type ResourceCreationInfo struct { - SelfInfo map[ResourceCreationInfoType]string - DepIds []string +type ResourceInfo struct { + CreationInfo map[ResourceCreationInfoType]string + DeletionIds []string } // The TestableResource struct is used to create and delete resources in a test, without prior configuration needed @@ -59,10 +63,10 @@ type TestableResource struct { ClientInfo *connector.ClientInfo // Creation function for this TestableResources - CreateFunc func(*testing.T, *connector.ClientInfo, string, ...string) ResourceCreationInfo + CreateFunc func(*testing.T, *connector.ClientInfo, string, ...string) ResourceInfo // TestableResource information like ID, Name, etc. - CreationInfo ResourceCreationInfo + ResourceInfo ResourceInfo // Deletion function for this TestableResources DeleteFunc func(*testing.T, *connector.ClientInfo, string, ...string) @@ -74,7 +78,7 @@ type TestableResource struct { ExportableResource connector.ExportableResource } -func (tr *TestableResource) CreateResource(t *testing.T) ResourceCreationInfo { +func (tr *TestableResource) CreateResource(t *testing.T) { t.Helper() // Some resources like out_of_band_auth_plugins do not implement ExportableResource @@ -86,23 +90,18 @@ func (tr *TestableResource) CreateResource(t *testing.T) ResourceCreationInfo { createdDepIds := []string{} for _, dependency := range tr.Dependencies { // Recursively create dependencies - dependency.CreationInfo = dependency.CreateResource(t) - depId, ok := dependency.CreationInfo.SelfInfo[ENUM_ID] + dependency.CreateResource(t) + depId, ok := dependency.ResourceInfo.CreationInfo[ENUM_ID] if !ok { t.Fatalf("Failed to get ID from dependency: %v", dependency) } - if len(dependency.CreationInfo.DepIds) > 0 { - createdDepIds = append(createdDepIds, dependency.CreationInfo.DepIds...) - } createdDepIds = append(createdDepIds, depId) } if tr.CreateFunc != nil { - tr.CreationInfo = tr.CreateFunc(t, tr.ClientInfo, resourceType, createdDepIds...) + tr.ResourceInfo = tr.CreateFunc(t, tr.ClientInfo, resourceType, createdDepIds...) } - - return tr.CreationInfo } func (tr *TestableResource) DeleteResource(t *testing.T) { @@ -113,10 +112,8 @@ func (tr *TestableResource) DeleteResource(t *testing.T) { resourceType = tr.ExportableResource.ResourceType() } - ids := append(tr.CreationInfo.DepIds, tr.CreationInfo.SelfInfo[ENUM_ID]) - if tr.DeleteFunc != nil { - tr.DeleteFunc(t, tr.ClientInfo, resourceType, ids...) + tr.DeleteFunc(t, tr.ClientInfo, resourceType, tr.ResourceInfo.DeletionIds...) } for _, dependency := range tr.Dependencies { From b57f0de9adabad1e2dec6ba057893f59cbeda555 Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Tue, 25 Mar 2025 15:31:01 -0600 Subject: [PATCH 05/18] Fix testing fatal to error so deferred cleanup functions can run. Fix pingfederate deletion ids --- .../authentication_api_application.go | 25 +++++++++------ .../authentication_policies_fragment.go | 25 +++++++++------ .../authentication_policy_contract.go | 25 +++++++++------ .../authentication_selector.go | 25 +++++++++------ .../captcha_provider.go | 25 +++++++++------ .../certificate_ca.go | 25 +++++++++------ ...ertificates_revocation_ocsp_certificate.go | 25 +++++++++------ .../identity_store_provisioner.go | 25 +++++++++------ .../idp_adapter.go | 25 +++++++++------ .../idp_sp_connection.go | 25 +++++++++------ .../idp_sts_request_parameters_contract.go | 25 +++++++++------ .../idp_to_sp_adapter_mapping.go | 25 +++++++++------ .../idp_token_processor.go | 25 +++++++++------ .../kerberos_realm.go | 25 +++++++++------ ...oauth_openid_connect_additional_key_set.go | 25 +++++++++------ .../keypairs_signing_key.go | 25 +++++++++------ .../keypairs_signing_key_rotation_settings.go | 25 +++++++++------ .../local_identity_profile.go | 25 +++++++++------ .../metadata_url.go | 25 +++++++++------ .../notification_publisher.go | 25 +++++++++------ .../oauth_access_token_manager.go | 25 +++++++++------ .../oauth_access_token_mapping.go | 25 +++++++++------ ..._authentication_policy_contract_mapping.go | 25 +++++++++------ ...oauth_ciba_server_policy_request_policy.go | 25 +++++++++------ .../oauth_client.go | 25 +++++++++------ .../oauth_client_registration_policy.go | 25 +++++++++------ .../oauth_idp_adapter_mapping.go | 25 +++++++++------ .../oauth_issuer.go | 25 +++++++++------ .../oauth_token_exchange_processor_policy.go | 25 +++++++++------ ..._token_exchange_token_generator_mapping.go | 25 +++++++++------ .../openid_connect_policy.go | 25 +++++++++------ .../out_of_band_auth_plugins.go | 25 +++++++++------ .../password_credential_validator.go | 25 +++++++++------ .../pingone_connection.go | 25 +++++++++------ .../secret_manager.go | 25 +++++++++------ ...s_trust_sts_settings_issuer_certificate.go | 25 +++++++++------ .../session_authentication_policy.go | 25 +++++++++------ .../sp_adapter.go | 25 +++++++++------ ..._authentication_policy_contract_mapping.go | 25 +++++++++------ .../sp_idp_connection.go | 25 +++++++++------ .../sp_token_generator.go | 25 +++++++++------ ...en_processor_to_token_generator_mapping.go | 25 +++++++++------ .../pingone_testable_resources/agreement.go | 18 +++++++---- .../agreement_localization.go | 18 +++++++---- .../agreement_localization_revision.go | 32 +++++++++++-------- .../alert_channel.go | 18 +++++++---- .../application_attribute_mapping.go | 18 +++++++---- .../application_device_authorization.go | 21 ++++++++---- .../application_flow_policy_assignment.go | 30 +++++++++++------ .../application_resource_grant.go | 30 +++++++++++------ .../application_role_assignment.go | 21 ++++++++---- .../application_sign_on_policy_assignment.go | 24 +++++++++----- .../application_worker.go | 21 ++++++++---- .../branding_theme.go | 24 +++++++++----- .../pingone_testable_resources/certificate.go | 21 ++++++++---- .../custom_domain.go | 18 +++++++---- .../device_auth_application.go | 24 +++++++++----- .../pingone_testable_resources/form.go | 18 +++++++---- .../forms_recaptcha_v2.go | 15 ++++++--- .../pingone_testable_resources/gateway.go | 18 +++++++---- .../gateway_credential.go | 18 +++++++---- .../gateway_role_assignment.go | 21 ++++++++---- .../pingone_testable_resources/group.go | 21 ++++++++---- .../group_nesting.go | 24 +++++++++----- .../group_role_assignment.go | 21 ++++++++---- .../identity_propagation_plan.go | 18 +++++++---- .../identity_provider.go | 18 +++++++---- .../identity_provider_attribute.go | 18 +++++++---- .../pingone_testable_resources/key.go | 18 +++++++---- .../key_rotation_policy.go | 18 +++++++---- .../pingone_testable_resources/language.go | 24 +++++++++----- .../notification_policy.go | 18 +++++++---- .../notification_template_content.go | 18 +++++++---- .../password_policy.go | 18 +++++++---- .../phone_delivery_settings.go | 18 +++++++---- .../pingone_testable_resources/population.go | 30 +++++++++++------ .../pingone_testable_resources/resource.go | 18 +++++++---- .../resource_attribute.go | 18 +++++++---- .../resource_scope.go | 18 +++++++---- .../resource_scope_openid.go | 21 ++++++++---- .../resource_scope_pingone_api.go | 21 ++++++++---- .../schema_attribute.go | 21 ++++++++---- .../sign_on_policy.go | 18 +++++++---- .../sign_on_policy_action.go | 9 ++++-- .../trusted_email_address.go | 18 +++++++---- .../trusted_email_domain.go | 18 +++++++---- .../pingone_testable_resources/webhook.go | 18 +++++++---- 87 files changed, 1275 insertions(+), 683 deletions(-) diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_application.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_application.go index 96788447..13375cbe 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_application.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_application.go @@ -29,7 +29,8 @@ func createAuthenticationApiApplication(t *testing.T, clientInfo *connector.Clie t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createAuthenticationApiApplication(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createAuthenticationApiApplication(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.AuthenticationApiAPI.CreateApplication(clientInfo.PingFederateContext) @@ -44,14 +45,18 @@ func createAuthenticationApiApplication(t *testing.T, clientInfo *connector.Clie resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateApplication", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -63,18 +68,20 @@ func deleteAuthenticationApiApplication(t *testing.T, clientInfo *connector.Clie t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteAuthenticationApiApplication(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteAuthenticationApiApplication(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.AuthenticationApiAPI.DeleteApplication(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.AuthenticationApiAPI.DeleteApplication(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteApplication", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go index d5faf6fb..7db03a1e 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go @@ -32,7 +32,8 @@ func createAuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.Cl t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createAuthenticationPoliciesFragment(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createAuthenticationPoliciesFragment(): %v", strArgs) + return testutils_resource.ResourceInfo{} } idpAdapterId := strArgs[0] @@ -84,14 +85,18 @@ func createAuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.Cl resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateFragment", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: *resource.Name, @@ -103,18 +108,20 @@ func deleteAuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.Cl t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteAuthenticationPoliciesFragment(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteAuthenticationPoliciesFragment(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.AuthenticationPoliciesAPI.DeleteFragment(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.AuthenticationPoliciesAPI.DeleteFragment(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteFragment", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policy_contract.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policy_contract.go index 0fa88f12..66c37a78 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policy_contract.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policy_contract.go @@ -30,7 +30,8 @@ func createAuthenticationPolicyContract(t *testing.T, clientInfo *connector.Clie t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createAuthenticationPolicyContract(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createAuthenticationPolicyContract(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.AuthenticationPolicyContractsAPI.CreateAuthenticationPolicyContract(clientInfo.PingFederateContext) @@ -49,14 +50,18 @@ func createAuthenticationPolicyContract(t *testing.T, clientInfo *connector.Clie resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateAuthenticationPolicyContract", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: *resource.Name, @@ -68,18 +73,20 @@ func deleteAuthenticationPolicyContract(t *testing.T, clientInfo *connector.Clie t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteAuthenticationPolicyContract(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteAuthenticationPolicyContract(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.AuthenticationPolicyContractsAPI.DeleteAuthenticationPolicyContract(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.AuthenticationPolicyContractsAPI.DeleteAuthenticationPolicyContract(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteAuthenticationPolicyContract", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_selector.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_selector.go index d802eaf5..33a4379d 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_selector.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_selector.go @@ -30,7 +30,8 @@ func createAuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createAuthenticationSelector(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createAuthenticationSelector(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.AuthenticationSelectorsAPI.CreateAuthenticationSelector(clientInfo.PingFederateContext) @@ -71,14 +72,18 @@ func createAuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateAuthenticationSelector", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -90,18 +95,20 @@ func deleteAuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteAuthenticationSelector(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteAuthenticationSelector(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.AuthenticationSelectorsAPI.DeleteAuthenticationSelector(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.AuthenticationSelectorsAPI.DeleteAuthenticationSelector(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteAuthenticationSelector", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider.go b/internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider.go index 85054b18..33c77529 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider.go @@ -30,7 +30,8 @@ func createCaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo, resou t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createCaptchaProvider(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createCaptchaProvider(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.CaptchaProvidersAPI.CreateCaptchaProvider(clientInfo.PingFederateContext) @@ -63,14 +64,18 @@ func createCaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo, resou resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateCaptchaProvider", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -82,18 +87,20 @@ func deleteCaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo, resou t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteCaptchaProvider(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteCaptchaProvider(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.CaptchaProvidersAPI.DeleteCaptchaProvider(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.CaptchaProvidersAPI.DeleteCaptchaProvider(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteCaptchaProvider", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/certificate_ca.go b/internal/testing/testutils_resource/pingfederate_testable_resources/certificate_ca.go index 7a7e2810..74b4d090 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/certificate_ca.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/certificate_ca.go @@ -36,7 +36,8 @@ func createCertificateCa(t *testing.T, clientInfo *connector.ClientInfo, resourc filedata, err := testutils.CreateX509Certificate() if err != nil { - t.Fatalf("Failed to create test pem certificate %s: %v", resourceType, err) + t.Errorf("Failed to create test pem certificate %s: %v", resourceType, err) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.CertificatesCaAPI.ImportTrustedCA(clientInfo.PingFederateContext) @@ -50,14 +51,18 @@ func createCertificateCa(t *testing.T, clientInfo *connector.ClientInfo, resourc resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "ImportTrustedCA", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_ISSUER_DN: *resource.IssuerDN, @@ -70,18 +75,20 @@ func deleteCertificateCa(t *testing.T, clientInfo *connector.ClientInfo, resourc t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteCertificateCa(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteCertificateCa(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.CertificatesCaAPI.DeleteTrustedCA(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.CertificatesCaAPI.DeleteTrustedCA(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteTrustedCA", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_ocsp_certificate.go b/internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_ocsp_certificate.go index 05ce6d71..9dd2f7a9 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_ocsp_certificate.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_ocsp_certificate.go @@ -36,7 +36,8 @@ func createCertificatesRevocationOcspCertificate(t *testing.T, clientInfo *conne filedata, err := testutils.CreateX509Certificate() if err != nil { - t.Fatalf("Failed to create test pem certificate %s: %v", resourceType, err) + t.Errorf("Failed to create test pem certificate %s: %v", resourceType, err) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.CertificatesRevocationAPI.ImportOcspCertificate(clientInfo.PingFederateContext) @@ -50,14 +51,18 @@ func createCertificatesRevocationOcspCertificate(t *testing.T, clientInfo *conne resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "ImportOcspCertificate", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_ISSUER_DN: *resource.IssuerDN, @@ -70,18 +75,20 @@ func deleteCertificatesRevocationOcspCertificate(t *testing.T, clientInfo *conne t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteCertificatesRevocationOcspCertificate(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteCertificatesRevocationOcspCertificate(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.CertificatesRevocationAPI.DeleteOcspCertificateById(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.CertificatesRevocationAPI.DeleteOcspCertificateById(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteOcspCertificateById", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/identity_store_provisioner.go b/internal/testing/testutils_resource/pingfederate_testable_resources/identity_store_provisioner.go index 5133117c..38fe2c60 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/identity_store_provisioner.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/identity_store_provisioner.go @@ -29,7 +29,8 @@ func createIdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientIn t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createIdentityStoreProvisioner(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createIdentityStoreProvisioner(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.IdentityStoreProvisionersAPI.CreateIdentityStoreProvisioner(clientInfo.PingFederateContext) @@ -60,14 +61,18 @@ func createIdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientIn resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateIdentityStoreProvisioner", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -79,18 +84,20 @@ func deleteIdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientIn t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteIdentityStoreProvisioner(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteIdentityStoreProvisioner(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.IdentityStoreProvisionersAPI.DeleteIdentityStoreProvisioner(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.IdentityStoreProvisionersAPI.DeleteIdentityStoreProvisioner(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteIdentityStoreProvisioner", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_adapter.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_adapter.go index 4fc2f251..095a33c8 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_adapter.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_adapter.go @@ -32,7 +32,8 @@ func createIdpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceTy t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createIdpAdapter(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createIdpAdapter(): %v", strArgs) + return testutils_resource.ResourceInfo{} } pcvId := strArgs[0] @@ -93,14 +94,18 @@ func createIdpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceTy resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateIdpAdapter", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -112,18 +117,20 @@ func deleteIdpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceTy t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteIdpAdapter(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteIdpAdapter(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.IdpAdaptersAPI.DeleteIdpAdapter(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.IdpAdaptersAPI.DeleteIdpAdapter(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteIdpAdapter", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go index 008696b3..e336afbc 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go @@ -33,7 +33,8 @@ func createIdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo, resou t.Helper() if len(strArgs) != 2 { - t.Fatalf("Unexpected number of arguments provided to createIdpSpConnection(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createIdpSpConnection(): %v", strArgs) + return testutils_resource.ResourceInfo{} } signingKeyPairId := strArgs[0] idpTokenProcessorId := strArgs[1] @@ -98,14 +99,18 @@ func createIdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo, resou resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateSpConnection", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -117,18 +122,20 @@ func deleteIdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo, resou t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteIdpSpConnection(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteIdpSpConnection(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.IdpSpConnectionsAPI.DeleteSpConnection(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.IdpSpConnectionsAPI.DeleteSpConnection(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteSpConnection", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sts_request_parameters_contract.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sts_request_parameters_contract.go index c88370f6..2d0a00d8 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sts_request_parameters_contract.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sts_request_parameters_contract.go @@ -29,7 +29,8 @@ func createIdpStsRequestParametersContract(t *testing.T, clientInfo *connector.C t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createIdpStsRequestParametersContract(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createIdpStsRequestParametersContract(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.IdpStsRequestParametersContractsAPI.CreateStsRequestParamContract(clientInfo.PingFederateContext) @@ -46,14 +47,18 @@ func createIdpStsRequestParametersContract(t *testing.T, clientInfo *connector.C resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateStsRequestParamContract", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -65,18 +70,20 @@ func deleteIdpStsRequestParametersContract(t *testing.T, clientInfo *connector.C t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteIdpStsRequestParametersContract(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteIdpStsRequestParametersContract(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.IdpStsRequestParametersContractsAPI.DeleteStsRequestParamContractById(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.IdpStsRequestParametersContractsAPI.DeleteStsRequestParamContractById(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteStsRequestParamContractById", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go index 0c065471..5a343b4d 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go @@ -33,7 +33,8 @@ func createIdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, t.Helper() if len(strArgs) != 2 { - t.Fatalf("Unexpected number of arguments provided to createIdpToSpAdapterMapping(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createIdpToSpAdapterMapping(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testIdpAdapterId := strArgs[0] testSpAdapterId := strArgs[1] @@ -57,14 +58,18 @@ func createIdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateIdpToSpAdapterMapping", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_SOURCE_ID: resource.SourceId, @@ -77,18 +82,20 @@ func deleteIdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteIdpToSpAdapterMapping(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteIdpToSpAdapterMapping(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.IdpToSpAdapterMappingAPI.DeleteIdpToSpAdapterMappingsById(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.IdpToSpAdapterMappingAPI.DeleteIdpToSpAdapterMappingsById(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteIdpToSpAdapterMappingsById", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_token_processor.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_token_processor.go index 6abd70c1..2a04749f 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_token_processor.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_token_processor.go @@ -32,7 +32,8 @@ func createIdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo, res t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createIdpTokenProcessor(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createIdpTokenProcessor(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testPCVId := strArgs[0] @@ -77,14 +78,18 @@ func createIdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo, res resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateTokenProcessor", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -96,18 +101,20 @@ func deleteIdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo, res t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteIdpTokenProcessor(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteIdpTokenProcessor(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.IdpTokenProcessorsAPI.DeleteTokenProcessor(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.IdpTokenProcessorsAPI.DeleteTokenProcessor(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteTokenProcessor", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm.go b/internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm.go index cd44312d..6bbc4f04 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm.go @@ -30,7 +30,8 @@ func createKerberosRealm(t *testing.T, clientInfo *connector.ClientInfo, resourc t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createKerberosRealm(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createKerberosRealm(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.KerberosRealmsAPI.CreateKerberosRealm(clientInfo.PingFederateContext) @@ -48,14 +49,18 @@ func createKerberosRealm(t *testing.T, clientInfo *connector.ClientInfo, resourc resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateKerberosRealm", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.KerberosRealmName, @@ -67,18 +72,20 @@ func deleteKerberosRealm(t *testing.T, clientInfo *connector.ClientInfo, resourc t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteKerberosRealm(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteKerberosRealm(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.KerberosRealmsAPI.DeleteKerberosRealm(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.KerberosRealmsAPI.DeleteKerberosRealm(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteKerberosRealm", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect_additional_key_set.go b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect_additional_key_set.go index cd94e2dc..9d569822 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect_additional_key_set.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect_additional_key_set.go @@ -33,7 +33,8 @@ func createKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo * t.Helper() if len(strArgs) != 2 { - t.Fatalf("Unexpected number of arguments provided to createKeypairsOauthOpenidConnectAdditionalKeySet(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createKeypairsOauthOpenidConnectAdditionalKeySet(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testOauthIssuerId := strArgs[0] testKeyPairId := strArgs[1] @@ -59,14 +60,18 @@ func createKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo * resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateKeySet", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -78,18 +83,20 @@ func deleteKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo * t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteKeypairsOauthOpenidConnectAdditionalKeySet(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteKeypairsOauthOpenidConnectAdditionalKeySet(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.KeyPairsOauthOpenIdConnectAPI.DeleteKeySet(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.KeyPairsOauthOpenIdConnectAPI.DeleteKeySet(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteKeySet", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key.go b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key.go index e3197176..63478661 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key.go @@ -30,7 +30,8 @@ func createKeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo, re t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createIdpAdapter(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createIdpAdapter(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.KeyPairsSigningAPI.CreateSigningKeyPair(clientInfo.PingFederateContext) @@ -52,14 +53,18 @@ func createKeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo, re resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateKeyPair", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_ISSUER_DN: *resource.IssuerDN, @@ -72,18 +77,20 @@ func deleteKeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo, re t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteKeypairsSigningKey(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteKeypairsSigningKey(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.KeyPairsSigningAPI.DeleteSigningKeyPair(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.KeyPairsSigningAPI.DeleteSigningKeyPair(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteSigningKeyPair", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key_rotation_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key_rotation_settings.go index e1cee70b..cd12a0c5 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key_rotation_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key_rotation_settings.go @@ -32,7 +32,8 @@ func createKeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connecto t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createKeypairsSigningKeyRotationSettings(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createKeypairsSigningKeyRotationSettings(): %v", strArgs) + return testutils_resource.ResourceInfo{} } keyPairId := strArgs[0] @@ -48,15 +49,19 @@ func createKeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connecto _, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "UpdateRotationSettings", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } // Deletion of this resource is referenced by the keyPairId return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + keyPairId, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: keyPairId, }, @@ -67,18 +72,20 @@ func deleteKeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connecto t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteKeypairsSigningKeyRotationSettings(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteKeypairsSigningKeyRotationSettings(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.KeyPairsSigningAPI.DeleteKeyPairRotationSettings(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.KeyPairsSigningAPI.DeleteKeyPairRotationSettings(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteKeyPairRotationSettings", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/local_identity_profile.go b/internal/testing/testutils_resource/pingfederate_testable_resources/local_identity_profile.go index 9cefbe35..efab4e94 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/local_identity_profile.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/local_identity_profile.go @@ -32,7 +32,8 @@ func createLocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo, t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createLocalIdentityProfile(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createLocalIdentityProfile(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testApcId := strArgs[0] @@ -50,14 +51,18 @@ func createLocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo, resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateIdentityProfile", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -69,18 +74,20 @@ func deleteLocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo, t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteLocalIdentityProfile(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteLocalIdentityProfile(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.LocalIdentityIdentityProfilesAPI.DeleteIdentityProfile(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.LocalIdentityIdentityProfilesAPI.DeleteIdentityProfile(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteIdentityProfile", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/metadata_url.go b/internal/testing/testutils_resource/pingfederate_testable_resources/metadata_url.go index b69e5ddd..3b2b703c 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/metadata_url.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/metadata_url.go @@ -30,7 +30,8 @@ func createMetadataUrl(t *testing.T, clientInfo *connector.ClientInfo, resourceT t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createMetadataUrl(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createMetadataUrl(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.MetadataUrlsAPI.AddMetadataUrl(clientInfo.PingFederateContext) @@ -45,14 +46,18 @@ func createMetadataUrl(t *testing.T, clientInfo *connector.ClientInfo, resourceT resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "AddMetadataUrl", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -64,18 +69,20 @@ func deleteMetadataUrl(t *testing.T, clientInfo *connector.ClientInfo, resourceT t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteMetadataUrl(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteMetadataUrl(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.MetadataUrlsAPI.DeleteMetadataUrl(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.MetadataUrlsAPI.DeleteMetadataUrl(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteMetadataUrl", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher.go b/internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher.go index a3a93e23..5274e45d 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher.go @@ -30,7 +30,8 @@ func createNotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo, t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createNotificationPublisher(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createNotificationPublisher(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.NotificationPublishersAPI.CreateNotificationPublisher(clientInfo.PingFederateContext) @@ -59,14 +60,18 @@ func createNotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo, resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateNotificationPublisher", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -78,18 +83,20 @@ func deleteNotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo, t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteNotificationPublisher(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteNotificationPublisher(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.NotificationPublishersAPI.DeleteNotificationPublisher(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.NotificationPublishersAPI.DeleteNotificationPublisher(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteNotificationPublisher", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager.go index 269c502e..cc8191d1 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager.go @@ -32,7 +32,8 @@ func createOauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInf t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createOauthAccessTokenManager(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createOauthAccessTokenManager(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testKeyPairId := strArgs[0] @@ -90,14 +91,18 @@ func createOauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInf resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateTokenManager", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -109,18 +114,20 @@ func deleteOauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInf t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteOauthAccessTokenManager(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteOauthAccessTokenManager(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.OauthAccessTokenManagersAPI.DeleteTokenManager(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.OauthAccessTokenManagersAPI.DeleteTokenManager(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteTokenManager", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go index de5dde3e..206e9205 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go @@ -32,7 +32,8 @@ func createOauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInf t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createOauthAccessTokenMapping(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createOauthAccessTokenMapping(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testTokenManagerId := strArgs[0] @@ -59,14 +60,18 @@ func createOauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInf resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateMapping", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_CONTEXT_TYPE: resource.Context.Type, @@ -78,18 +83,20 @@ func deleteOauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInf t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteOauthAccessTokenMapping(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteOauthAccessTokenMapping(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.OauthAccessTokenMappingsAPI.DeleteMapping(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.OauthAccessTokenMappingsAPI.DeleteMapping(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteMapping", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_authentication_policy_contract_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_authentication_policy_contract_mapping.go index fd5f1216..758515f2 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_authentication_policy_contract_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_authentication_policy_contract_mapping.go @@ -31,7 +31,8 @@ func createOauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *co t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createOauthAuthenticationPolicyContractMapping(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createOauthAuthenticationPolicyContractMapping(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testApcId := strArgs[0] @@ -60,14 +61,18 @@ func createOauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *co resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateApcMapping", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, }, @@ -78,18 +83,20 @@ func deleteOauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *co t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteOauthAuthenticationPolicyContractMapping(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteOauthAuthenticationPolicyContractMapping(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.OauthAuthenticationPolicyContractMappingsAPI.DeleteApcMapping(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.OauthAuthenticationPolicyContractMappingsAPI.DeleteApcMapping(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteApcMapping", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_request_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_request_policy.go index e8c03bbc..5e9b6803 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_request_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_request_policy.go @@ -32,7 +32,8 @@ func createOauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connecto t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createOauthCibaServerPolicyRequestPolicy(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createOauthCibaServerPolicyRequestPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testAuthenticatorId := strArgs[0] @@ -84,14 +85,18 @@ func createOauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connecto resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateCibaServerPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -103,18 +108,20 @@ func deleteOauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connecto t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteOauthCibaServerPolicyRequestPolicy(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteOauthCibaServerPolicyRequestPolicy(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.OauthCibaServerPolicyAPI.DeleteCibaServerPolicy(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.OauthCibaServerPolicyAPI.DeleteCibaServerPolicy(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteCibaServerPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client.go index 1d9dfc7f..09ca9bd9 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client.go @@ -29,7 +29,8 @@ func createOauthClient(t *testing.T, clientInfo *connector.ClientInfo, resourceT t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createOauthClient(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createOauthClient(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.OauthClientsAPI.CreateOauthClient(clientInfo.PingFederateContext) @@ -49,14 +50,18 @@ func createOauthClient(t *testing.T, clientInfo *connector.ClientInfo, resourceT resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateOauthClient", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.ClientId, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.ClientId, testutils_resource.ENUM_NAME: resource.Name, @@ -68,18 +73,20 @@ func deleteOauthClient(t *testing.T, clientInfo *connector.ClientInfo, resourceT t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteOauthClient(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteOauthClient(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.OauthClientsAPI.DeleteOauthClient(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.OauthClientsAPI.DeleteOauthClient(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteOauthClient", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_registration_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_registration_policy.go index 1f4ac0c9..86a39379 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_registration_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_registration_policy.go @@ -29,7 +29,8 @@ func createOauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.Cli t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createOauthClientRegistrationPolicy(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createOauthClientRegistrationPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.OauthClientRegistrationPoliciesAPI.CreateDynamicClientRegistrationPolicy(clientInfo.PingFederateContext) @@ -46,14 +47,18 @@ func createOauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.Cli resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateDynamicClientRegistrationPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -65,18 +70,20 @@ func deleteOauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.Cli t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteOauthClientRegistrationPolicy(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteOauthClientRegistrationPolicy(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.OauthClientRegistrationPoliciesAPI.DeleteDynamicClientRegistrationPolicy(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.OauthClientRegistrationPoliciesAPI.DeleteDynamicClientRegistrationPolicy(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteDynamicClientRegistrationPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go index 2b8ba42b..4ea1087b 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go @@ -31,7 +31,8 @@ func createOauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createOauthIdpAdapterMapping(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createOauthIdpAdapterMapping(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testIdpAdapterId := strArgs[0] @@ -60,14 +61,18 @@ func createOauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateIdpAdapterMapping", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, }, @@ -78,18 +83,20 @@ func deleteOauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteOauthIdpAdapterMapping(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteOauthIdpAdapterMapping(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.OauthIdpAdapterMappingsAPI.DeleteIdpAdapterMapping(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.OauthIdpAdapterMappingsAPI.DeleteIdpAdapterMapping(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteIdpAdapterMapping", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_issuer.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_issuer.go index 46eb3159..6c668f83 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_issuer.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_issuer.go @@ -30,7 +30,8 @@ func createOauthIssuer(t *testing.T, clientInfo *connector.ClientInfo, resourceT t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createOauthIssuer(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createOauthIssuer(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.OauthIssuersAPI.AddOauthIssuer(clientInfo.PingFederateContext) @@ -45,14 +46,18 @@ func createOauthIssuer(t *testing.T, clientInfo *connector.ClientInfo, resourceT resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "AddOauthIssuer", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -64,18 +69,20 @@ func deleteOauthIssuer(t *testing.T, clientInfo *connector.ClientInfo, resourceT t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteOauthIssuer(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteOauthIssuer(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.OauthIssuersAPI.DeleteOauthIssuer(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.OauthIssuersAPI.DeleteOauthIssuer(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteOauthIssuer", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go index cf287d13..97877cd3 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go @@ -31,7 +31,8 @@ func createOauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createOauthTokenExchangeProcessorPolicy(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createOauthTokenExchangeProcessorPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testTokenProcessorId := strArgs[0] @@ -69,14 +70,18 @@ func createOauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateOauthTokenExchangeProcessorPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, }, @@ -87,18 +92,20 @@ func deleteOauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteOauthTokenExchangeProcessorPolicy(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteOauthTokenExchangeProcessorPolicy(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.OauthTokenExchangeProcessorAPI.DeleteOauthTokenExchangeProcessorPolicyy(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.OauthTokenExchangeProcessorAPI.DeleteOauthTokenExchangeProcessorPolicyy(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteOauthTokenExchangeProcessorPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go index f1e1ea0a..08ec8998 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go @@ -33,7 +33,8 @@ func createOauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *con t.Helper() if len(strArgs) != 2 { - t.Fatalf("Unexpected number of arguments provided to createOauthTokenExchangeTokenGeneratorMapping(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createOauthTokenExchangeTokenGeneratorMapping(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testProcessorPolicyId := strArgs[0] testTokenGeneratorId := strArgs[1] @@ -57,14 +58,18 @@ func createOauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *con resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateTokenGeneratorMapping", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_SOURCE_ID: testProcessorPolicyId, @@ -77,18 +82,20 @@ func deleteOauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *con t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteOauthTokenExchangeTokenGeneratorMapping(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteOauthTokenExchangeTokenGeneratorMapping(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.OauthTokenExchangeTokenGeneratorMappingsAPI.DeleteTokenGeneratorMappingById(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.OauthTokenExchangeTokenGeneratorMappingsAPI.DeleteTokenGeneratorMappingById(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteTokenGeneratorMappingById", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go index a2c82888..362c3852 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go @@ -32,7 +32,8 @@ func createOpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo, r t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createOpenidConnectPolicy(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createOpenidConnectPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testAccessTokenManagerId := strArgs[0] @@ -67,14 +68,18 @@ func createOpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo, r resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateOIDCPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -86,18 +91,20 @@ func deleteOpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo, r t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteOpenidConnectPolicy(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteOpenidConnectPolicy(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.OauthOpenIdConnectAPI.DeleteOIDCPolicy(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.OauthOpenIdConnectAPI.DeleteOIDCPolicy(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteOIDCPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go b/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go index 5dcadd04..86107df0 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go @@ -32,7 +32,8 @@ func createOutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo, t.Helper() if len(strArgs) != 2 { - t.Fatalf("Unexpected number of arguments provided to createOutOfBandAuthPlugins(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createOutOfBandAuthPlugins(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testPingOneConnectionId := strArgs[0] testDeviceAuthApplicationId := strArgs[1] @@ -70,14 +71,18 @@ func createOutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo, resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateOOBAuthenticator", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, }, @@ -88,18 +93,20 @@ func deleteOutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo, t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteOutOfBandAuthPlugins(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteOutOfBandAuthPlugins(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.OauthOutOfBandAuthPluginsAPI.DeleteOOBAuthenticator(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.OauthOutOfBandAuthPluginsAPI.DeleteOOBAuthenticator(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteOOBAuthenticator", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go b/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go index 15a03b88..7a2e33b5 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go @@ -30,7 +30,8 @@ func createPasswordCredentialValidator(t *testing.T, clientInfo *connector.Clien t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createPasswordCredentialValidator(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createPasswordCredentialValidator(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.PasswordCredentialValidatorsAPI.CreatePasswordCredentialValidator(clientInfo.PingFederateContext) @@ -77,14 +78,18 @@ func createPasswordCredentialValidator(t *testing.T, clientInfo *connector.Clien resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreatePasswordCredentialValidator", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -96,18 +101,20 @@ func deletePasswordCredentialValidator(t *testing.T, clientInfo *connector.Clien t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deletePasswordCredentialValidator(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deletePasswordCredentialValidator(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.PasswordCredentialValidatorsAPI.DeletePasswordCredentialValidator(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.PasswordCredentialValidatorsAPI.DeletePasswordCredentialValidator(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeletePasswordCredentialValidator", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go b/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go index a09d7a5e..001add39 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go @@ -33,7 +33,8 @@ func createPingoneConnection(t *testing.T, clientInfo *connector.ClientInfo, res t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createPingoneConnection(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createPingoneConnection(): %v", strArgs) + return testutils_resource.ResourceInfo{} } credential := strArgs[0] @@ -49,14 +50,18 @@ func createPingoneConnection(t *testing.T, clientInfo *connector.ClientInfo, res resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreatePingOneConnection", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -68,18 +73,20 @@ func deletePingoneConnection(t *testing.T, clientInfo *connector.ClientInfo, res t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deletePingoneConnection(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deletePingoneConnection(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.PingOneConnectionsAPI.DeletePingOneConnection(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.PingOneConnectionsAPI.DeletePingOneConnection(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeletePingOneConnection", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/secret_manager.go b/internal/testing/testutils_resource/pingfederate_testable_resources/secret_manager.go index af932e3d..4424b616 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/secret_manager.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/secret_manager.go @@ -30,7 +30,8 @@ func createSecretManager(t *testing.T, clientInfo *connector.ClientInfo, resourc t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createSecretManager(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createSecretManager(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.SecretManagersAPI.CreateSecretManager(clientInfo.PingFederateContext) @@ -55,14 +56,18 @@ func createSecretManager(t *testing.T, clientInfo *connector.ClientInfo, resourc resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateSecretManager", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -74,18 +79,20 @@ func deleteSecretManager(t *testing.T, clientInfo *connector.ClientInfo, resourc t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteSecretManager(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteSecretManager(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.SecretManagersAPI.DeleteSecretManager(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.SecretManagersAPI.DeleteSecretManager(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteSecretManager", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings_issuer_certificate.go b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings_issuer_certificate.go index 544e94a6..c512605f 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings_issuer_certificate.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings_issuer_certificate.go @@ -36,7 +36,8 @@ func createServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clien fileData, err := testutils.CreateX509Certificate() if err != nil { - t.Fatalf("Failed to create test %s: %v", resourceType, err) + t.Errorf("Failed to create test %s: %v", resourceType, err) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.ServerSettingsAPI.ImportCertificate(clientInfo.PingFederateContext) @@ -50,14 +51,18 @@ func createServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clien resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "ImportCertificate", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.CertView.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.CertView.Id, testutils_resource.ENUM_ISSUER_DN: *resource.CertView.IssuerDN, @@ -70,18 +75,20 @@ func deleteServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clien t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteServerSettingsWsTrustStsSettingsIssuerCertificate(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteServerSettingsWsTrustStsSettingsIssuerCertificate(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.ServerSettingsAPI.DeleteCertificate(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.ServerSettingsAPI.DeleteCertificate(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteCertificate", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go index b48342c1..bcbbc81d 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go @@ -32,7 +32,8 @@ func createSessionAuthenticationPolicy(t *testing.T, clientInfo *connector.Clien t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createSessionAuthenticationPolicy(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createSessionAuthenticationPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testIdpAdapterId := strArgs[0] @@ -52,14 +53,18 @@ func createSessionAuthenticationPolicy(t *testing.T, clientInfo *connector.Clien resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateSourcePolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_TYPE: resource.AuthenticationSource.Type, @@ -72,18 +77,20 @@ func deleteSessionAuthenticationPolicy(t *testing.T, clientInfo *connector.Clien t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteSessionAuthenticationPolicy(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteSessionAuthenticationPolicy(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.SessionAPI.DeleteSourcePolicy(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.SessionAPI.DeleteSourcePolicy(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteSourcePolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_adapter.go b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_adapter.go index 34b739bd..41c200e6 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_adapter.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_adapter.go @@ -30,7 +30,8 @@ func createSpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createSpAdapter(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createSpAdapter(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.SpAdaptersAPI.CreateSpAdapter(clientInfo.PingFederateContext) @@ -59,14 +60,18 @@ func createSpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateSpAdapter", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -78,18 +83,20 @@ func deleteSpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteSpAdapter(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteSpAdapter(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.SpAdaptersAPI.DeleteSpAdapter(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.SpAdaptersAPI.DeleteSpAdapter(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteSpAdapter", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_authentication_policy_contract_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_authentication_policy_contract_mapping.go index b77d9c33..c17f53ee 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_authentication_policy_contract_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_authentication_policy_contract_mapping.go @@ -33,7 +33,8 @@ func createSpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *conne t.Helper() if len(strArgs) != 2 { - t.Fatalf("Unexpected number of arguments provided to createSpAuthenticationPolicyContractMapping(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createSpAuthenticationPolicyContractMapping(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testAPCId := strArgs[0] testSPAdapterId := strArgs[1] @@ -57,14 +58,18 @@ func createSpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *conne resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateApcToSpAdapterMapping", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_SOURCE_ID: resource.SourceId, @@ -77,18 +82,20 @@ func deleteSpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *conne t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteSpAuthenticationPolicyContractMapping(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteSpAuthenticationPolicyContractMapping(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.SpAuthenticationPolicyContractMappingsAPI.DeleteApcToSpAdapterMappingById(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.SpAuthenticationPolicyContractMappingsAPI.DeleteApcToSpAdapterMappingById(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteApcToSpAdapterMappingById", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_idp_connection.go b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_idp_connection.go index ec939034..9d2657c6 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_idp_connection.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_idp_connection.go @@ -36,7 +36,8 @@ func createSpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo, resou filedata, err := testutils.CreateX509Certificate() if err != nil { - t.Fatalf("Failed to create test %s: %v", resourceType, err) + t.Errorf("Failed to create test %s: %v", resourceType, err) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingFederateApiClient.SpIdpConnectionsAPI.CreateConnection(clientInfo.PingFederateContext) @@ -78,14 +79,18 @@ func createSpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo, resou resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateConnection", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_NAME: resource.Name, @@ -97,18 +102,20 @@ func deleteSpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo, resou t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteSpIdpConnection(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteSpIdpConnection(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.SpIdpConnectionsAPI.DeleteConnection(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.SpIdpConnectionsAPI.DeleteConnection(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteConnection", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_token_generator.go b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_token_generator.go index 7d624d01..a5c33175 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_token_generator.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_token_generator.go @@ -31,7 +31,8 @@ func createSpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo, reso t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createSpTokenGenerator(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createSpTokenGenerator(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testSigningKeyPairId := strArgs[0] @@ -84,14 +85,18 @@ func createSpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo, reso resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateTokenGenerator", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: resource.Id, }, @@ -102,18 +107,20 @@ func deleteSpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo, reso t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteSpTokenGenerator(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteSpTokenGenerator(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.SpTokenGeneratorsAPI.DeleteTokenGenerator(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.SpTokenGeneratorsAPI.DeleteTokenGenerator(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteTokenGenerator", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go index 1027c91c..65e375ee 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go @@ -33,7 +33,8 @@ func createTokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *conne t.Helper() if len(strArgs) != 2 { - t.Fatalf("Unexpected number of arguments provided to createTokenProcessorToTokenGeneratorMapping(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createTokenProcessorToTokenGeneratorMapping(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testTokenProcessorId := strArgs[0] testTokenGeneratorId := strArgs[1] @@ -57,14 +58,18 @@ func createTokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *conne resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateTokenToTokenMapping", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ - DeletionIds: []string{}, + DeletionIds: []string{ + *resource.Id, + }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ testutils_resource.ENUM_ID: *resource.Id, testutils_resource.ENUM_SOURCE_ID: resource.SourceId, @@ -77,18 +82,20 @@ func deleteTokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *conne t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteTokenProcessorToTokenGeneratorMapping(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteTokenProcessorToTokenGeneratorMapping(): %v", ids) + return } - id := ids[0] - request := clientInfo.PingFederateApiClient.TokenProcessorToTokenGeneratorMappingsAPI.DeleteTokenToTokenMappingById(clientInfo.PingFederateContext, id) + request := clientInfo.PingFederateApiClient.TokenProcessorToTokenGeneratorMappingsAPI.DeleteTokenToTokenMappingById(clientInfo.PingFederateContext, ids[0]) response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteTokenToTokenMappingById", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/agreement.go b/internal/testing/testutils_resource/pingone_testable_resources/agreement.go index c6aba705..29e43d9b 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/agreement.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/agreement.go @@ -30,7 +30,8 @@ func createAgreement(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createAgreement(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createAgreement(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.AgreementsResourcesApi.CreateAgreement(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -46,10 +47,12 @@ func createAgreement(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateAgreement", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -67,7 +70,8 @@ func deleteAgreement(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteAgreement(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteAgreement(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.AgreementsResourcesApi.DeleteAgreement(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -75,9 +79,11 @@ func deleteAgreement(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteAgreement", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization.go b/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization.go index 43990857..11f4d9c3 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization.go @@ -31,7 +31,8 @@ func createAgreementLocalization(t *testing.T, clientInfo *connector.ClientInfo, t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createAgreementLocalization(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createAgreementLocalization(): %v", strArgs) + return testutils_resource.ResourceInfo{} } agreementId := strArgs[0] @@ -47,10 +48,12 @@ func createAgreementLocalization(t *testing.T, clientInfo *connector.ClientInfo, resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateAgreementLanguage", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -69,7 +72,8 @@ func deleteAgreementLocalization(t *testing.T, clientInfo *connector.ClientInfo, t.Helper() if len(ids) != 2 { - t.Fatalf("Unexpected number of arguments provided to deleteAgreementLocalization(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteAgreementLocalization(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.AgreementLanguagesResourcesApi.DeleteAgreementLanguage(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) @@ -77,9 +81,11 @@ func deleteAgreementLocalization(t *testing.T, clientInfo *connector.ClientInfo, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteAgreementLanguage", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go b/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go index 31d0e800..4a251b32 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go @@ -32,20 +32,21 @@ func createAgreementLocalizationRevision(t *testing.T, clientInfo *connector.Cli t.Helper() if len(strArgs) != 2 { - t.Fatalf("Unexpected number of arguments provided to createAgreementLocalizationRevision(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createAgreementLocalizationRevision(): %v", strArgs) + return testutils_resource.ResourceInfo{} } agreementId := strArgs[0] agreementLocalizationId := strArgs[1] + parsedTime, err := time.Parse(time.RFC3339, "2098-08-01T22:45:44.497Z") + if err != nil { + t.Errorf("Failed to parse time: %v", err) + return testutils_resource.ResourceInfo{} + } + request := clientInfo.PingOneApiClient.ManagementAPIClient.AgreementRevisionsResourcesApi.CreateAgreementLanguageRevision(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, agreementId, agreementLocalizationId) clientStruct := management.AgreementLanguageRevision{ - EffectiveAt: func() time.Time { - parsedTime, err := time.Parse(time.RFC3339, "2098-08-01T22:45:44.497Z") - if err != nil { - t.Fatalf("Failed to parse time: %v", err) - } - return parsedTime - }(), + EffectiveAt: parsedTime, RequireReconsent: false, Text: "Test, test, test", ContentType: "text/plain", @@ -56,10 +57,12 @@ func createAgreementLocalizationRevision(t *testing.T, clientInfo *connector.Cli resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateAgreementLanguageRevision", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -78,7 +81,8 @@ func deleteAgreementLocalizationRevision(t *testing.T, clientInfo *connector.Cli t.Helper() if len(ids) != 3 { - t.Fatalf("Unexpected number of arguments provided to deleteAgreementLocalizationRevision(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteAgreementLocalizationRevision(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.AgreementRevisionsResourcesApi.DeleteAgreementLanguageRevision(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1], ids[2]) @@ -86,9 +90,11 @@ func deleteAgreementLocalizationRevision(t *testing.T, clientInfo *connector.Cli response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteAgreementLanguageRevision", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/alert_channel.go b/internal/testing/testutils_resource/pingone_testable_resources/alert_channel.go index cdcc0a81..4042c7ef 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/alert_channel.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/alert_channel.go @@ -29,7 +29,8 @@ func createAlertChannel(t *testing.T, clientInfo *connector.ClientInfo, resource t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createAlertChannel(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createAlertChannel(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.AlertingApi.CreateAlertChannel(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -53,10 +54,12 @@ func createAlertChannel(t *testing.T, clientInfo *connector.ClientInfo, resource resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateAlertChannel", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -74,7 +77,8 @@ func deleteAlertChannel(t *testing.T, clientInfo *connector.ClientInfo, resource t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteAlertChannel(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteAlertChannel(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.AlertingApi.DeleteAlertChannel(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -82,9 +86,11 @@ func deleteAlertChannel(t *testing.T, clientInfo *connector.ClientInfo, resource response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteAlertChannel", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_attribute_mapping.go b/internal/testing/testutils_resource/pingone_testable_resources/application_attribute_mapping.go index b842b757..26aa5884 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/application_attribute_mapping.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/application_attribute_mapping.go @@ -31,7 +31,8 @@ func createApplicationAttributeMapping(t *testing.T, clientInfo *connector.Clien t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createApplicationAttributeMapping(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createApplicationAttributeMapping(): %v", strArgs) + return testutils_resource.ResourceInfo{} } applicationId := strArgs[0] @@ -47,10 +48,12 @@ func createApplicationAttributeMapping(t *testing.T, clientInfo *connector.Clien resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateApplicationAttributeMapping", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -69,7 +72,8 @@ func deleteApplicationAttributeMapping(t *testing.T, clientInfo *connector.Clien t.Helper() if len(ids) != 2 { - t.Fatalf("Unexpected number of arguments provided to deleteApplicationAttributeMapping(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteApplicationAttributeMapping(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationAttributeMappingApi.DeleteApplicationAttributeMapping(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) @@ -77,9 +81,11 @@ func deleteApplicationAttributeMapping(t *testing.T, clientInfo *connector.Clien response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteApplicationAttributeMapping", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_device_authorization.go b/internal/testing/testutils_resource/pingone_testable_resources/application_device_authorization.go index 396d6e84..d75d64c5 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/application_device_authorization.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/application_device_authorization.go @@ -30,13 +30,15 @@ func createApplicationDeviceAuthorization(t *testing.T, clientInfo *connector.Cl t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createApplicationDeviceAuthorization(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createApplicationDeviceAuthorization(): %v", strArgs) + return testutils_resource.ResourceInfo{} } // Give unique name to application to avoid collisions in dependency creations applicationName, err := uuid.GenerateUUID() if err != nil { - t.Fatalf("Failed to generate UUID for application name: %v", err) + t.Errorf("Failed to generate UUID for application name: %v", err) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.CreateApplication(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -59,10 +61,12 @@ func createApplicationDeviceAuthorization(t *testing.T, clientInfo *connector.Cl resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateApplication", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -80,7 +84,8 @@ func deleteApplicationDeviceAuthorization(t *testing.T, clientInfo *connector.Cl t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteApplicationDeviceAuthorization(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteApplicationDeviceAuthorization(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.DeleteApplication(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -88,9 +93,11 @@ func deleteApplicationDeviceAuthorization(t *testing.T, clientInfo *connector.Cl response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteApplication", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_flow_policy_assignment.go b/internal/testing/testutils_resource/pingone_testable_resources/application_flow_policy_assignment.go index 23ffe741..340e3591 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/application_flow_policy_assignment.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/application_flow_policy_assignment.go @@ -32,18 +32,21 @@ func createApplicationFlowPolicyAssignment(t *testing.T, clientInfo *connector.C t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createApplicationFlowPolicyAssignment(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createApplicationFlowPolicyAssignment(): %v", strArgs) + return testutils_resource.ResourceInfo{} } applicationId := strArgs[0] iter := clientInfo.PingOneApiClient.ManagementAPIClient.FlowPoliciesApi.ReadAllFlowPolicies(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID).Execute() flowPolicies, err := pingone.GetManagementAPIObjectsFromIterator[management.FlowPolicy](iter, "ReadAllFlowPolicies", "GetFlowPolicies", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nError: %v", err) + t.Errorf("Failed to execute PingOne client function\nError: %v", err) + return testutils_resource.ResourceInfo{} } if len(flowPolicies) == 0 { - t.Fatalf("No flow policies found") + t.Errorf("No flow policies found") + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationFlowPolicyAssignmentsApi.CreateFlowPolicyAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, applicationId) @@ -59,20 +62,24 @@ func createApplicationFlowPolicyAssignment(t *testing.T, clientInfo *connector.C resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateFlowPolicyAssignment", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } flowPolicy, response, err := clientInfo.PingOneApiClient.ManagementAPIClient.FlowPoliciesApi.ReadOneFlowPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, resource.FlowPolicy.Id).Execute() ok, err = common.HandleClientResponse(response, err, "ReadOneFlowPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -91,7 +98,8 @@ func deleteApplicationFlowPolicyAssignment(t *testing.T, clientInfo *connector.C t.Helper() if len(ids) != 2 { - t.Fatalf("Unexpected number of arguments provided to deleteApplicationFlowPolicyAssignment(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteApplicationFlowPolicyAssignment(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationFlowPolicyAssignmentsApi.DeleteFlowPolicyAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) @@ -99,9 +107,11 @@ func deleteApplicationFlowPolicyAssignment(t *testing.T, clientInfo *connector.C response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteFlowPolicyAssignment", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_resource_grant.go b/internal/testing/testutils_resource/pingone_testable_resources/application_resource_grant.go index e76331aa..14953081 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/application_resource_grant.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/application_resource_grant.go @@ -32,7 +32,8 @@ func createApplicationResourceGrant(t *testing.T, clientInfo *connector.ClientIn t.Helper() if len(strArgs) != 2 { - t.Fatalf("Unexpected number of arguments provided to createApplicationResourceGrant(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createApplicationResourceGrant(): %v", strArgs) + return testutils_resource.ResourceInfo{} } applicationId := strArgs[0] resourceId := strArgs[1] @@ -46,10 +47,12 @@ func createApplicationResourceGrant(t *testing.T, clientInfo *connector.ClientIn scope, response, err := resReq.Execute() ok, err := common.HandleClientResponse(response, err, "CreateResourceScope", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationResourceGrantsApi.CreateApplicationGrant(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, applicationId) @@ -69,19 +72,23 @@ func createApplicationResourceGrant(t *testing.T, clientInfo *connector.ClientIn resource, response, err := request.Execute() ok, err = common.HandleClientResponse(response, err, "CreateApplicationGrant", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } resObj, resResponse, resErr := clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.ReadOneResource(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, resourceId).Execute() ok, err = common.HandleClientResponse(resResponse, resErr, "ReadOneResource", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", resResponse.Status, resResponse.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", resResponse.Status, resResponse.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", resResponse.Status, resResponse.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", resResponse.Status, resResponse.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -100,7 +107,8 @@ func deleteApplicationResourceGrant(t *testing.T, clientInfo *connector.ClientIn t.Helper() if len(ids) != 2 { - t.Fatalf("Unexpected number of arguments provided to deleteApplicationResourceGrant(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteApplicationResourceGrant(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationResourceGrantsApi.DeleteApplicationGrant(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) @@ -108,9 +116,11 @@ func deleteApplicationResourceGrant(t *testing.T, clientInfo *connector.ClientIn response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteApplicationGrant", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_role_assignment.go b/internal/testing/testutils_resource/pingone_testable_resources/application_role_assignment.go index 0cf85010..810d4fe7 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/application_role_assignment.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/application_role_assignment.go @@ -32,14 +32,16 @@ func createApplicationRoleAssignment(t *testing.T, clientInfo *connector.ClientI t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createApplicationRoleAssignment(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createApplicationRoleAssignment(): %v", strArgs) + return testutils_resource.ResourceInfo{} } applicationId := strArgs[0] iter := clientInfo.PingOneApiClient.ManagementAPIClient.RolesApi.ReadAllRoles(clientInfo.PingOneContext).Execute() apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedRolesInner](iter, "ReadAllRoles", "GetRoles", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nError: %v", err) + t.Errorf("Failed to execute PingOne client function\nError: %v", err) + return testutils_resource.ResourceInfo{} } if len(apiObjs) == 0 { t.Fatal("Failed to execute PingOne client function\n No built-in roles returned from ReadAllRoles()") @@ -76,10 +78,12 @@ func createApplicationRoleAssignment(t *testing.T, clientInfo *connector.ClientI resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateApplicationRoleAssignment", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -98,7 +102,8 @@ func deleteApplicationRoleAssignment(t *testing.T, clientInfo *connector.ClientI t.Helper() if len(ids) != 2 { - t.Fatalf("Unexpected number of arguments provided to deleteApplicationRoleAssignment(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteApplicationRoleAssignment(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationRoleAssignmentsApi.DeleteApplicationRoleAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) @@ -106,9 +111,11 @@ func deleteApplicationRoleAssignment(t *testing.T, clientInfo *connector.ClientI response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteApplicationRoleAssignment", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_sign_on_policy_assignment.go b/internal/testing/testutils_resource/pingone_testable_resources/application_sign_on_policy_assignment.go index 647c0bd2..2a97d8df 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/application_sign_on_policy_assignment.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/application_sign_on_policy_assignment.go @@ -32,7 +32,8 @@ func createApplicationSignOnPolicyAssignment(t *testing.T, clientInfo *connector t.Helper() if len(strArgs) != 2 { - t.Fatalf("Unexpected number of arguments provided to createApplicationSignOnPolicyAssignment(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createApplicationSignOnPolicyAssignment(): %v", strArgs) + return testutils_resource.ResourceInfo{} } applicationId := strArgs[0] policyId := strArgs[1] @@ -50,19 +51,23 @@ func createApplicationSignOnPolicyAssignment(t *testing.T, clientInfo *connector resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateSignOnPolicyAssignment", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } signOnPolicy, response, err := clientInfo.PingOneApiClient.ManagementAPIClient.SignOnPoliciesApi.ReadOneSignOnPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, resource.SignOnPolicy.Id).Execute() ok, err = common.HandleClientResponse(response, err, "ReadOneSignOnPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -81,7 +86,8 @@ func deleteApplicationSignOnPolicyAssignment(t *testing.T, clientInfo *connector t.Helper() if len(ids) != 2 { - t.Fatalf("Unexpected number of arguments provided to deleteApplicationSignOnPolicyAssignment(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteApplicationSignOnPolicyAssignment(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationSignOnPolicyAssignmentsApi.DeleteSignOnPolicyAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) @@ -89,9 +95,11 @@ func deleteApplicationSignOnPolicyAssignment(t *testing.T, clientInfo *connector response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteSignOnPolicyAssignment", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_worker.go b/internal/testing/testutils_resource/pingone_testable_resources/application_worker.go index 188af13d..e6894af6 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/application_worker.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/application_worker.go @@ -31,13 +31,15 @@ func createApplicationWorker(t *testing.T, clientInfo *connector.ClientInfo, res t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createApplicationWorker(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createApplicationWorker(): %v", strArgs) + return testutils_resource.ResourceInfo{} } // Give unique name to application to avoid collisions in dependency creations applicationName, err := uuid.GenerateUUID() if err != nil { - t.Fatalf("Failed to generate UUID for application name: %v", err) + t.Errorf("Failed to generate UUID for application name: %v", err) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.CreateApplication(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -61,10 +63,12 @@ func createApplicationWorker(t *testing.T, clientInfo *connector.ClientInfo, res resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateApplication", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -82,7 +86,8 @@ func deleteApplicationWorker(t *testing.T, clientInfo *connector.ClientInfo, res t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteApplicationWorker(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteApplicationWorker(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.DeleteApplication(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -90,9 +95,11 @@ func deleteApplicationWorker(t *testing.T, clientInfo *connector.ClientInfo, res response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteApplication", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/branding_theme.go b/internal/testing/testutils_resource/pingone_testable_resources/branding_theme.go index f74b5634..596590cd 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/branding_theme.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/branding_theme.go @@ -31,19 +31,22 @@ func createBrandingTheme(t *testing.T, clientInfo *connector.ClientInfo, resourc t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createBrandingTheme(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createBrandingTheme(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.BrandingThemesApi.CreateBrandingTheme(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) newLogoId, err := uuid.GenerateUUID() if err != nil { - t.Fatalf("Failed to generate UUID: %v", err) + t.Errorf("Failed to generate UUID: %v", err) + return testutils_resource.ResourceInfo{} } newImageId, err := uuid.GenerateUUID() if err != nil { - t.Fatalf("Failed to generate UUID: %v", err) + t.Errorf("Failed to generate UUID: %v", err) + return testutils_resource.ResourceInfo{} } clientStruct := management.BrandingTheme{ @@ -76,10 +79,12 @@ func createBrandingTheme(t *testing.T, clientInfo *connector.ClientInfo, resourc resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateBrandingTheme", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -97,7 +102,8 @@ func deleteBrandingTheme(t *testing.T, clientInfo *connector.ClientInfo, resourc t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteBrandingTheme(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteBrandingTheme(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.BrandingThemesApi.DeleteBrandingTheme(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -105,9 +111,11 @@ func deleteBrandingTheme(t *testing.T, clientInfo *connector.ClientInfo, resourc response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteBrandingTheme", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/certificate.go b/internal/testing/testutils_resource/pingone_testable_resources/certificate.go index 66bf2228..cf48a93d 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/certificate.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/certificate.go @@ -30,14 +30,16 @@ func createCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceT t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createCertificate(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createCertificate(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.CreateCertificateFromFile(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) fileData, err := testutils.CreateX509Certificate() if err != nil { - t.Fatalf("Failed to create X509 certificate: %v", err) + t.Errorf("Failed to create X509 certificate: %v", err) + return testutils_resource.ResourceInfo{} } request = request.File(utils.Pointer([]byte(fileData))) @@ -46,10 +48,12 @@ func createCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceT resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateCertificateFromFile", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -67,7 +71,8 @@ func deleteCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceT t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteCertificate(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteCertificate(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.DeleteCertificate(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -75,9 +80,11 @@ func deleteCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceT response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteCertificate", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/custom_domain.go b/internal/testing/testutils_resource/pingone_testable_resources/custom_domain.go index 46d5cc5d..b83c78f0 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/custom_domain.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/custom_domain.go @@ -29,7 +29,8 @@ func createCustomDomain(t *testing.T, clientInfo *connector.ClientInfo, resource t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createCustomDomain(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createCustomDomain(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.CustomDomainsApi.CreateDomain(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -42,10 +43,12 @@ func createCustomDomain(t *testing.T, clientInfo *connector.ClientInfo, resource resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateDomain", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -63,7 +66,8 @@ func deleteCustomDomain(t *testing.T, clientInfo *connector.ClientInfo, resource t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteCustomDomain(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteCustomDomain(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.CustomDomainsApi.DeleteDomain(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -71,9 +75,11 @@ func deleteCustomDomain(t *testing.T, clientInfo *connector.ClientInfo, resource response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteDomain", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/device_auth_application.go b/internal/testing/testutils_resource/pingone_testable_resources/device_auth_application.go index c39da007..b5afd047 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/device_auth_application.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/device_auth_application.go @@ -27,7 +27,8 @@ func createDeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo, t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createPingOneDeviceAuthApplication(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createPingOneDeviceAuthApplication(): %v", strArgs) + return testutils_resource.ResourceInfo{} } result := management.CreateApplicationRequest{ @@ -47,19 +48,23 @@ func createDeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo, createApplication201Response, response, err := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.CreateApplication(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID).CreateApplicationRequest(result).Execute() ok, err := common.HandleClientResponse(response, err, "CreateApplication", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } if createApplication201Response == nil || createApplication201Response.ApplicationOIDC == nil { - t.Fatalf("Failed to create test %s: %v", resourceType, err) + t.Errorf("Failed to create test %s: %v", resourceType, err) + return testutils_resource.ResourceInfo{} } appId, appIdOk := createApplication201Response.ApplicationOIDC.GetIdOk() if !appIdOk { - t.Fatalf("Failed to create test %s: %v", resourceType, err) + t.Errorf("Failed to create test %s: %v", resourceType, err) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -76,15 +81,18 @@ func deleteDeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo, t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteDeviceAuthApplication(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteDeviceAuthApplication(): %v", ids) + return } response, err := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.DeleteApplication(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]).Execute() ok, err := common.HandleClientResponse(response, err, "DeleteApplication", resourceType) if err != nil { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/form.go b/internal/testing/testutils_resource/pingone_testable_resources/form.go index 58be4fa5..562c34ca 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/form.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/form.go @@ -30,7 +30,8 @@ func createForm(t *testing.T, clientInfo *connector.ClientInfo, resourceType str t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createForm(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createForm(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.FormManagementApi.CreateForm(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -57,10 +58,12 @@ func createForm(t *testing.T, clientInfo *connector.ClientInfo, resourceType str resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateForm", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -78,7 +81,8 @@ func deleteForm(t *testing.T, clientInfo *connector.ClientInfo, resourceType str t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteForm(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteForm(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.FormManagementApi.DeleteForm(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -86,9 +90,11 @@ func deleteForm(t *testing.T, clientInfo *connector.ClientInfo, resourceType str response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteForm", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go b/internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go index cd952b9c..6f9b904f 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go @@ -29,7 +29,8 @@ func createFormsRecaptchaV2(t *testing.T, clientInfo *connector.ClientInfo, reso t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createFormsRecaptchaV2(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createFormsRecaptchaV2(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.RecaptchaConfigurationApi.UpdateRecaptchaConfiguration(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -43,10 +44,12 @@ func createFormsRecaptchaV2(t *testing.T, clientInfo *connector.ClientInfo, reso _, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "UpdateRecaptchaConfiguration", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -63,9 +66,11 @@ func deleteFormsRecaptchaV2(t *testing.T, clientInfo *connector.ClientInfo, reso response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteRecaptchaConfiguration", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/gateway.go b/internal/testing/testutils_resource/pingone_testable_resources/gateway.go index 6c9e79c6..66abe2fb 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/gateway.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/gateway.go @@ -30,7 +30,8 @@ func createGateway(t *testing.T, clientInfo *connector.ClientInfo, resourceType t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createGateway(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createGateway(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewaysApi.CreateGateway(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -48,10 +49,12 @@ func createGateway(t *testing.T, clientInfo *connector.ClientInfo, resourceType resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateGateway", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -69,7 +72,8 @@ func deleteGateway(t *testing.T, clientInfo *connector.ClientInfo, resourceType t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteGateway(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteGateway(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewaysApi.DeleteGateway(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -77,9 +81,11 @@ func deleteGateway(t *testing.T, clientInfo *connector.ClientInfo, resourceType response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteGateway", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/gateway_credential.go b/internal/testing/testutils_resource/pingone_testable_resources/gateway_credential.go index 059440fe..9c2afc82 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/gateway_credential.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/gateway_credential.go @@ -30,7 +30,8 @@ func createGatewayCredential(t *testing.T, clientInfo *connector.ClientInfo, res t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createGatewayCredential(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createGatewayCredential(): %v", strArgs) + return testutils_resource.ResourceInfo{} } gatewayId := strArgs[0] @@ -39,10 +40,12 @@ func createGatewayCredential(t *testing.T, clientInfo *connector.ClientInfo, res resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateGatewayCredential", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -60,7 +63,8 @@ func deleteGatewayCredential(t *testing.T, clientInfo *connector.ClientInfo, res t.Helper() if len(ids) != 2 { - t.Fatalf("Unexpected number of arguments provided to deleteGatewayCredential(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteGatewayCredential(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewayCredentialsApi.DeleteGatewayCredential(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) @@ -68,9 +72,11 @@ func deleteGatewayCredential(t *testing.T, clientInfo *connector.ClientInfo, res response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteGatewayCredential", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go b/internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go index 5fcfb09b..98ccce26 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go @@ -32,14 +32,16 @@ func createGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createGatewayRoleAssignment(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createGatewayRoleAssignment(): %v", strArgs) + return testutils_resource.ResourceInfo{} } gatewayId := strArgs[0] iter := clientInfo.PingOneApiClient.ManagementAPIClient.RolesApi.ReadAllRoles(clientInfo.PingOneContext).Execute() apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedRolesInner](iter, "ReadAllRoles", "GetRoles", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nError: %v", err) + t.Errorf("Failed to execute PingOne client function\nError: %v", err) + return testutils_resource.ResourceInfo{} } if len(apiObjs) == 0 { t.Fatal("Failed to execute PingOne client function\n No built-in roles returned from ReadAllRoles()") @@ -76,10 +78,12 @@ func createGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateGatewayRoleAssignment", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -98,7 +102,8 @@ func deleteGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, t.Helper() if len(ids) != 2 { - t.Fatalf("Unexpected number of arguments provided to deleteGatewayRoleAssignment(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteGatewayRoleAssignment(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.GatewayRoleAssignmentsApi.DeleteGatewayRoleAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) @@ -106,9 +111,11 @@ func deleteGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteGatewayRoleAssignment", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/group.go b/internal/testing/testutils_resource/pingone_testable_resources/group.go index fe9d3c7c..7037cec2 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/group.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/group.go @@ -31,13 +31,15 @@ func createGroup(t *testing.T, clientInfo *connector.ClientInfo, resourceType st t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createGroup(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createGroup(): %v", strArgs) + return testutils_resource.ResourceInfo{} } // Make sure the group name is unique groupName, err := uuid.GenerateUUID() if err != nil { - t.Fatalf("Failed to generate UUID for group name: %v", err) + t.Errorf("Failed to generate UUID for group name: %v", err) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.GroupsApi.CreateGroup(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -55,10 +57,12 @@ func createGroup(t *testing.T, clientInfo *connector.ClientInfo, resourceType st resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateGroup", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -76,7 +80,8 @@ func deleteGroup(t *testing.T, clientInfo *connector.ClientInfo, resourceType st t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteGroup(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteGroup(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.GroupsApi.DeleteGroup(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -84,9 +89,11 @@ func deleteGroup(t *testing.T, clientInfo *connector.ClientInfo, resourceType st response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteGroup", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/group_nesting.go b/internal/testing/testutils_resource/pingone_testable_resources/group_nesting.go index 5b1b708a..7213bff3 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/group_nesting.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/group_nesting.go @@ -32,7 +32,8 @@ func createGroupNesting(t *testing.T, clientInfo *connector.ClientInfo, resource t.Helper() if len(strArgs) != 2 { - t.Fatalf("Unexpected number of arguments provided to createGroupNesting(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createGroupNesting(): %v", strArgs) + return testutils_resource.ResourceInfo{} } groupId := strArgs[0] nestedGroupId := strArgs[1] @@ -47,19 +48,23 @@ func createGroupNesting(t *testing.T, clientInfo *connector.ClientInfo, resource resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateGroupNesting", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } group, response, err := clientInfo.PingOneApiClient.ManagementAPIClient.GroupsApi.ReadOneGroup(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, groupId).Execute() ok, err = common.HandleClientResponse(response, err, "ReadOneGroup", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -78,7 +83,8 @@ func deleteGroupNesting(t *testing.T, clientInfo *connector.ClientInfo, resource t.Helper() if len(ids) != 2 { - t.Fatalf("Unexpected number of arguments provided to deleteGroupNesting(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteGroupNesting(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.GroupsApi.DeleteGroupNesting(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) @@ -86,9 +92,11 @@ func deleteGroupNesting(t *testing.T, clientInfo *connector.ClientInfo, resource response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteGroupNesting", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/group_role_assignment.go b/internal/testing/testutils_resource/pingone_testable_resources/group_role_assignment.go index 2a12351a..23cf8cd5 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/group_role_assignment.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/group_role_assignment.go @@ -32,14 +32,16 @@ func createGroupRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, r t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createGroupRoleAssignment(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createGroupRoleAssignment(): %v", strArgs) + return testutils_resource.ResourceInfo{} } groupId := strArgs[0] iter := clientInfo.PingOneApiClient.ManagementAPIClient.RolesApi.ReadAllRoles(clientInfo.PingOneContext).Execute() apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedRolesInner](iter, "ReadAllRoles", "GetRoles", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nError: %v", err) + t.Errorf("Failed to execute PingOne client function\nError: %v", err) + return testutils_resource.ResourceInfo{} } if len(apiObjs) == 0 { t.Fatal("Failed to execute PingOne client function\n No built-in roles returned from ReadAllRoles()") @@ -76,10 +78,12 @@ func createGroupRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, r resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateGroupRoleAssignment", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -98,7 +102,8 @@ func deleteGroupRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, r t.Helper() if len(ids) != 2 { - t.Fatalf("Unexpected number of arguments provided to deleteGroupRoleAssignment(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteGroupRoleAssignment(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.GroupRoleAssignmentsApi.DeleteGroupRoleAssignment(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) @@ -106,9 +111,11 @@ func deleteGroupRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, r response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteGroupRoleAssignment", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/identity_propagation_plan.go b/internal/testing/testutils_resource/pingone_testable_resources/identity_propagation_plan.go index 42a04365..d23e7029 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/identity_propagation_plan.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/identity_propagation_plan.go @@ -29,7 +29,8 @@ func createIdentityPropagationPlan(t *testing.T, clientInfo *connector.ClientInf t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createIdentityPropagationPlan(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createIdentityPropagationPlan(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.IdentityPropagationPlansApi.CreatePlan(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -42,10 +43,12 @@ func createIdentityPropagationPlan(t *testing.T, clientInfo *connector.ClientInf resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreatePlan", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -63,7 +66,8 @@ func deleteIdentityPropagationPlan(t *testing.T, clientInfo *connector.ClientInf t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteIdentityPropagationPlan(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteIdentityPropagationPlan(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.IdentityPropagationPlansApi.DeletePlan(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -71,9 +75,11 @@ func deleteIdentityPropagationPlan(t *testing.T, clientInfo *connector.ClientInf response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeletePlan", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/identity_provider.go b/internal/testing/testutils_resource/pingone_testable_resources/identity_provider.go index 725f6c87..96166c08 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/identity_provider.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/identity_provider.go @@ -30,7 +30,8 @@ func createIdentityProvider(t *testing.T, clientInfo *connector.ClientInfo, reso t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createIdentityProvider(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createIdentityProvider(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.IdentityProvidersApi.CreateIdentityProvider(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -58,10 +59,12 @@ func createIdentityProvider(t *testing.T, clientInfo *connector.ClientInfo, reso resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateIdentityProvider", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -79,7 +82,8 @@ func deleteIdentityProvider(t *testing.T, clientInfo *connector.ClientInfo, reso t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteIdentityProvider(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteIdentityProvider(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.IdentityProvidersApi.DeleteIdentityProvider(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -87,9 +91,11 @@ func deleteIdentityProvider(t *testing.T, clientInfo *connector.ClientInfo, reso response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteIdentityProvider", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/identity_provider_attribute.go b/internal/testing/testutils_resource/pingone_testable_resources/identity_provider_attribute.go index 2e140ad1..0ddb28ca 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/identity_provider_attribute.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/identity_provider_attribute.go @@ -31,7 +31,8 @@ func createIdentityProviderAttribute(t *testing.T, clientInfo *connector.ClientI t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createIdentityProviderAttribute(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createIdentityProviderAttribute(): %v", strArgs) + return testutils_resource.ResourceInfo{} } providerId := strArgs[0] @@ -48,10 +49,12 @@ func createIdentityProviderAttribute(t *testing.T, clientInfo *connector.ClientI resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateIdentityProviderAttribute", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -70,7 +73,8 @@ func deleteIdentityProviderAttribute(t *testing.T, clientInfo *connector.ClientI t.Helper() if len(ids) != 2 { - t.Fatalf("Unexpected number of arguments provided to deleteIdentityProviderAttribute(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteIdentityProviderAttribute(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.IdentityProviderAttributesApi.DeleteIdentityProviderAttribute(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) @@ -78,9 +82,11 @@ func deleteIdentityProviderAttribute(t *testing.T, clientInfo *connector.ClientI response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteIdentityProviderAttribute", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/key.go b/internal/testing/testutils_resource/pingone_testable_resources/key.go index 34a70f2e..f382a0b0 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/key.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/key.go @@ -31,7 +31,8 @@ func createKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType stri t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createKey(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createKey(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.CreateKey(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -53,10 +54,12 @@ func createKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType stri resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateKey", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -75,7 +78,8 @@ func deleteKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType stri t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteKey(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteKey(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.DeleteKey(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -83,9 +87,11 @@ func deleteKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType stri response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteKey", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/key_rotation_policy.go b/internal/testing/testutils_resource/pingone_testable_resources/key_rotation_policy.go index a0b8c2a0..d2b2014f 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/key_rotation_policy.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/key_rotation_policy.go @@ -30,7 +30,8 @@ func createKeyRotationPolicy(t *testing.T, clientInfo *connector.ClientInfo, res t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createKeyRotationPolicy(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createKeyRotationPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.KeyRotationPoliciesApi.CreateKeyRotationPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -50,10 +51,12 @@ func createKeyRotationPolicy(t *testing.T, clientInfo *connector.ClientInfo, res resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateKeyRotationPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -71,7 +74,8 @@ func deleteKeyRotationPolicy(t *testing.T, clientInfo *connector.ClientInfo, res t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteKeyRotationPolicy(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteKeyRotationPolicy(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.KeyRotationPoliciesApi.DeleteKeyRotationPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -79,9 +83,11 @@ func deleteKeyRotationPolicy(t *testing.T, clientInfo *connector.ClientInfo, res response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteKeyRotationPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/language.go b/internal/testing/testutils_resource/pingone_testable_resources/language.go index 31515a9a..ef40a74d 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/language.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/language.go @@ -29,7 +29,8 @@ func createLanguage(t *testing.T, clientInfo *connector.ClientInfo, resourceType t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createLanguage(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createLanguage(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.LanguagesApi.CreateLanguage(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -42,10 +43,12 @@ func createLanguage(t *testing.T, clientInfo *connector.ClientInfo, resourceType resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateLanguage", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } // Enable the language @@ -60,10 +63,12 @@ func createLanguage(t *testing.T, clientInfo *connector.ClientInfo, resourceType _, response, err = enableRequest.Execute() ok, err = common.HandleClientResponse(response, err, "UpdateLanguage", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -81,7 +86,8 @@ func deleteLanguage(t *testing.T, clientInfo *connector.ClientInfo, resourceType t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteLanguage(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteLanguage(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.LanguagesApi.DeleteLanguage(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -89,9 +95,11 @@ func deleteLanguage(t *testing.T, clientInfo *connector.ClientInfo, resourceType response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteLanguage", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/notification_policy.go b/internal/testing/testutils_resource/pingone_testable_resources/notification_policy.go index 99e8c714..85c60bba 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/notification_policy.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/notification_policy.go @@ -30,7 +30,8 @@ func createNotificationPolicy(t *testing.T, clientInfo *connector.ClientInfo, re t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createNotificationPolicy(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createNotificationPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsPoliciesApi.CreateNotificationsPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -65,10 +66,12 @@ func createNotificationPolicy(t *testing.T, clientInfo *connector.ClientInfo, re resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateNotificationsPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -86,7 +89,8 @@ func deleteNotificationPolicy(t *testing.T, clientInfo *connector.ClientInfo, re t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteNotificationPolicy(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteNotificationPolicy(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsPoliciesApi.DeleteNotificationsPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -94,9 +98,11 @@ func deleteNotificationPolicy(t *testing.T, clientInfo *connector.ClientInfo, re response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteNotificationsPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go b/internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go index 55e74d92..1df30872 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go @@ -30,7 +30,8 @@ func createNotificationTemplateContent(t *testing.T, clientInfo *connector.Clien t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createNotificationTemplateContent(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createNotificationTemplateContent(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsTemplatesApi.CreateContent(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, management.ENUMTEMPLATENAME_STRONG_AUTHENTICATION) @@ -49,10 +50,12 @@ func createNotificationTemplateContent(t *testing.T, clientInfo *connector.Clien resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateContent", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -73,7 +76,8 @@ func deleteNotificationTemplateContent(t *testing.T, clientInfo *connector.Clien t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteNotificationTemplateContent(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteNotificationTemplateContent(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsTemplatesApi.DeleteContent(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, management.ENUMTEMPLATENAME_STRONG_AUTHENTICATION, ids[0]) @@ -81,9 +85,11 @@ func deleteNotificationTemplateContent(t *testing.T, clientInfo *connector.Clien response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteContent", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/password_policy.go b/internal/testing/testutils_resource/pingone_testable_resources/password_policy.go index 9a5ef2f3..5e241897 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/password_policy.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/password_policy.go @@ -30,7 +30,8 @@ func createPasswordPolicy(t *testing.T, clientInfo *connector.ClientInfo, resour t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createPasswordPolicy(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createPasswordPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.PasswordPoliciesApi.CreatePasswordPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -59,10 +60,12 @@ func createPasswordPolicy(t *testing.T, clientInfo *connector.ClientInfo, resour resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreatePasswordPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -80,7 +83,8 @@ func deletePasswordPolicy(t *testing.T, clientInfo *connector.ClientInfo, resour t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deletePasswordPolicy(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deletePasswordPolicy(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.PasswordPoliciesApi.DeletePasswordPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -88,9 +92,11 @@ func deletePasswordPolicy(t *testing.T, clientInfo *connector.ClientInfo, resour response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeletePasswordPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go b/internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go index 72a0f9af..4765d4ff 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go @@ -30,7 +30,8 @@ func createPhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo, t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createPhoneDeliverySettings(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createPhoneDeliverySettings(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.PhoneDeliverySettingsApi.CreatePhoneDeliverySettings(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -99,10 +100,12 @@ func createPhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo, resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreatePhoneDeliverySettings", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -120,7 +123,8 @@ func deletePhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo, t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deletePhoneDeliverySettings(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deletePhoneDeliverySettings(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.PhoneDeliverySettingsApi.DeletePhoneDeliverySettings(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -128,9 +132,11 @@ func deletePhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeletePhoneDeliverySettings", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/population.go b/internal/testing/testutils_resource/pingone_testable_resources/population.go index 76af7f95..4c8b9570 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/population.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/population.go @@ -32,7 +32,8 @@ func createPopulation(t *testing.T, clientInfo *connector.ClientInfo, resourceTy t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createPopulation(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createPopulation(): %v", strArgs) + return testutils_resource.ResourceInfo{} } passwordPolicyId := strArgs[0] @@ -51,10 +52,12 @@ func createPopulation(t *testing.T, clientInfo *connector.ClientInfo, resourceTy resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreatePopulation", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -72,17 +75,20 @@ func deletePopulation(t *testing.T, clientInfo *connector.ClientInfo, resourceTy t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deletePopulation(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deletePopulation(): %v", ids) + return } getRequest := clientInfo.PingOneApiClient.ManagementAPIClient.PopulationsApi.ReadOnePopulation(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) populationClientStruct, response, err := getRequest.Execute() ok, err := common.HandleClientResponse(response, err, "ReadOnePopulation", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } updateRequest := clientInfo.PingOneApiClient.ManagementAPIClient.PopulationsApi.UpdatePopulation(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -92,10 +98,12 @@ func deletePopulation(t *testing.T, clientInfo *connector.ClientInfo, resourceTy _, response, err = updateRequest.Execute() ok, err = common.HandleClientResponse(response, err, "UpdatePopulation", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } deleteRequest := clientInfo.PingOneApiClient.ManagementAPIClient.PopulationsApi.DeletePopulation(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -103,9 +111,11 @@ func deletePopulation(t *testing.T, clientInfo *connector.ClientInfo, resourceTy response, err = deleteRequest.Execute() ok, err = common.HandleClientResponse(response, err, "DeletePopulation", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/resource.go b/internal/testing/testutils_resource/pingone_testable_resources/resource.go index 1b850678..e0b55658 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/resource.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/resource.go @@ -30,7 +30,8 @@ func createResource(t *testing.T, clientInfo *connector.ClientInfo, resourceType t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createResource(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createResource(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.CreateResource(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -49,10 +50,12 @@ func createResource(t *testing.T, clientInfo *connector.ClientInfo, resourceType resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateResource", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -70,7 +73,8 @@ func deleteResource(t *testing.T, clientInfo *connector.ClientInfo, resourceType t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteResource(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteResource(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.DeleteResource(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -78,9 +82,11 @@ func deleteResource(t *testing.T, clientInfo *connector.ClientInfo, resourceType response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteResource", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/resource_attribute.go b/internal/testing/testutils_resource/pingone_testable_resources/resource_attribute.go index 0a5b9a44..025ffaca 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/resource_attribute.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/resource_attribute.go @@ -31,7 +31,8 @@ func createResourceAttribute(t *testing.T, clientInfo *connector.ClientInfo, res t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createResourceAttribute(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createResourceAttribute(): %v", strArgs) + return testutils_resource.ResourceInfo{} } resourceId := strArgs[0] @@ -46,10 +47,12 @@ func createResourceAttribute(t *testing.T, clientInfo *connector.ClientInfo, res resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateResourceAttribute", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -68,7 +71,8 @@ func deleteResourceAttribute(t *testing.T, clientInfo *connector.ClientInfo, res t.Helper() if len(ids) != 2 { - t.Fatalf("Unexpected number of arguments provided to deleteResourceAttribute(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteResourceAttribute(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.ResourceAttributesApi.DeleteResourceAttribute(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) @@ -76,9 +80,11 @@ func deleteResourceAttribute(t *testing.T, clientInfo *connector.ClientInfo, res response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteResourceAttribute", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/resource_scope.go b/internal/testing/testutils_resource/pingone_testable_resources/resource_scope.go index 9a6bbce3..e04b5abc 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/resource_scope.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/resource_scope.go @@ -32,7 +32,8 @@ func createResourceScope(t *testing.T, clientInfo *connector.ClientInfo, resourc t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createResourceScope(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createResourceScope(): %v", strArgs) + return testutils_resource.ResourceInfo{} } resourceId := strArgs[0] @@ -47,10 +48,12 @@ func createResourceScope(t *testing.T, clientInfo *connector.ClientInfo, resourc resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateResourceScope", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -69,7 +72,8 @@ func deleteResourceScope(t *testing.T, clientInfo *connector.ClientInfo, resourc t.Helper() if len(ids) != 2 { - t.Fatalf("Unexpected number of arguments provided to deleteResourceScope(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteResourceScope(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.ResourceScopesApi.DeleteResourceScope(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) @@ -77,9 +81,11 @@ func deleteResourceScope(t *testing.T, clientInfo *connector.ClientInfo, resourc response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteResourceScope", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_openid.go b/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_openid.go index 6cd9ce87..7bd6a0ce 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_openid.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_openid.go @@ -30,13 +30,15 @@ func createResourceScopeOpenid(t *testing.T, clientInfo *connector.ClientInfo, r t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createResourceScopeOpenid(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createResourceScopeOpenid(): %v", strArgs) + return testutils_resource.ResourceInfo{} } iter := clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.ReadAllResources(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID).Execute() generatedResources, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nError: %v", err) + t.Errorf("Failed to execute PingOne client function\nError: %v", err) + return testutils_resource.ResourceInfo{} } var resourceId string @@ -57,10 +59,12 @@ func createResourceScopeOpenid(t *testing.T, clientInfo *connector.ClientInfo, r resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateResourceScope", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -79,7 +83,8 @@ func deleteResourceScopeOpenid(t *testing.T, clientInfo *connector.ClientInfo, r t.Helper() if len(ids) != 2 { - t.Fatalf("Unexpected number of arguments provided to deleteResourceScopeOpenid(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteResourceScopeOpenid(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.ResourceScopesApi.DeleteResourceScope(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) @@ -87,9 +92,11 @@ func deleteResourceScopeOpenid(t *testing.T, clientInfo *connector.ClientInfo, r response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteResourceScope", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_pingone_api.go b/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_pingone_api.go index 2301bb00..d5045ca5 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_pingone_api.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_pingone_api.go @@ -31,13 +31,15 @@ func createResourceScopePingoneApi(t *testing.T, clientInfo *connector.ClientInf t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createResourceScopePingoneApi(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createResourceScopePingoneApi(): %v", strArgs) + return testutils_resource.ResourceInfo{} } iter := clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.ReadAllResources(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID).Execute() generatedResources, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nError: %v", err) + t.Errorf("Failed to execute PingOne client function\nError: %v", err) + return testutils_resource.ResourceInfo{} } var resourceId string @@ -63,10 +65,12 @@ func createResourceScopePingoneApi(t *testing.T, clientInfo *connector.ClientInf resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateResourceScope", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -85,7 +89,8 @@ func deleteResourceScopePingoneApi(t *testing.T, clientInfo *connector.ClientInf t.Helper() if len(ids) != 2 { - t.Fatalf("Unexpected number of arguments provided to deleteResourceScopePingoneApi(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteResourceScopePingoneApi(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.ResourceScopesApi.DeleteResourceScope(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) @@ -93,9 +98,11 @@ func deleteResourceScopePingoneApi(t *testing.T, clientInfo *connector.ClientInf response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteResourceScope", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/schema_attribute.go b/internal/testing/testutils_resource/pingone_testable_resources/schema_attribute.go index 503fe2c8..c5161bae 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/schema_attribute.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/schema_attribute.go @@ -31,13 +31,15 @@ func createSchemaAttribute(t *testing.T, clientInfo *connector.ClientInfo, resou t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createSchemaAttribute(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createSchemaAttribute(): %v", strArgs) + return testutils_resource.ResourceInfo{} } iter := clientInfo.PingOneApiClient.ManagementAPIClient.SchemasApi.ReadAllSchemas(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID).Execute() apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Schema](iter, "ReadAllSchemas", "GetSchemas", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nError: %v", err) + t.Errorf("Failed to execute PingOne client function\nError: %v", err) + return testutils_resource.ResourceInfo{} } if len(apiObjs) == 0 { @@ -74,10 +76,12 @@ func createSchemaAttribute(t *testing.T, clientInfo *connector.ClientInfo, resou resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateAttribute", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -98,7 +102,8 @@ func deleteSchemaAttribute(t *testing.T, clientInfo *connector.ClientInfo, resou t.Helper() if len(ids) != 2 { - t.Fatalf("Unexpected number of arguments provided to deleteSchemaAttribute(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteSchemaAttribute(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.SchemasApi.DeleteAttribute(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) @@ -106,9 +111,11 @@ func deleteSchemaAttribute(t *testing.T, clientInfo *connector.ClientInfo, resou response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteAttribute", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy.go b/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy.go index 59931301..55ff6ff7 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy.go @@ -30,7 +30,8 @@ func createSignOnPolicy(t *testing.T, clientInfo *connector.ClientInfo, resource t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createSignOnPolicy(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createSignOnPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.SignOnPoliciesApi.CreateSignOnPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -45,10 +46,12 @@ func createSignOnPolicy(t *testing.T, clientInfo *connector.ClientInfo, resource resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateSignOnPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -66,7 +69,8 @@ func deleteSignOnPolicy(t *testing.T, clientInfo *connector.ClientInfo, resource t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteSignOnPolicy(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteSignOnPolicy(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.SignOnPoliciesApi.DeleteSignOnPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -74,9 +78,11 @@ func deleteSignOnPolicy(t *testing.T, clientInfo *connector.ClientInfo, resource response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteSignOnPolicy", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy_action.go b/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy_action.go index d182c3d0..e6fcf3a7 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy_action.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy_action.go @@ -31,7 +31,8 @@ func createSignOnPolicyAction(t *testing.T, clientInfo *connector.ClientInfo, re t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createSignOnPolicyAction(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createSignOnPolicyAction(): %v", strArgs) + return testutils_resource.ResourceInfo{} } policyId := strArgs[0] @@ -65,10 +66,12 @@ func createSignOnPolicyAction(t *testing.T, clientInfo *connector.ClientInfo, re resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateSignOnPolicyAction", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ diff --git a/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_address.go b/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_address.go index 2287874c..ac44663d 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_address.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_address.go @@ -31,7 +31,8 @@ func createTrustedEmailAddress(t *testing.T, clientInfo *connector.ClientInfo, r t.Helper() if len(strArgs) != 1 { - t.Fatalf("Unexpected number of arguments provided to createTrustedEmailAddress(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createTrustedEmailAddress(): %v", strArgs) + return testutils_resource.ResourceInfo{} } trustedEmailDomainId := strArgs[0] @@ -45,10 +46,12 @@ func createTrustedEmailAddress(t *testing.T, clientInfo *connector.ClientInfo, r resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateTrustedEmailAddress", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -67,7 +70,8 @@ func deleteTrustedEmailAddress(t *testing.T, clientInfo *connector.ClientInfo, r t.Helper() if len(ids) != 2 { - t.Fatalf("Unexpected number of arguments provided to deleteTrustedEmailAddress(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteTrustedEmailAddress(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailAddressesApi.DeleteTrustedEmailAddress(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) @@ -75,9 +79,11 @@ func deleteTrustedEmailAddress(t *testing.T, clientInfo *connector.ClientInfo, r response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteTrustedEmailAddress", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_domain.go b/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_domain.go index d1f21057..8c842843 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_domain.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_domain.go @@ -29,7 +29,8 @@ func createTrustedEmailDomain(t *testing.T, clientInfo *connector.ClientInfo, re t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createTrustedEmailDomain(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createTrustedEmailDomain(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailDomainsApi.CreateTrustedEmailDomain(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -42,10 +43,12 @@ func createTrustedEmailDomain(t *testing.T, clientInfo *connector.ClientInfo, re resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateTrustedEmailDomain", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -63,7 +66,8 @@ func deleteTrustedEmailDomain(t *testing.T, clientInfo *connector.ClientInfo, re t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteTrustedEmailDomain(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteTrustedEmailDomain(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.TrustedEmailDomainsApi.DeleteTrustedEmailDomain(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -71,9 +75,11 @@ func deleteTrustedEmailDomain(t *testing.T, clientInfo *connector.ClientInfo, re response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteTrustedEmailDomain", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_testable_resources/webhook.go b/internal/testing/testutils_resource/pingone_testable_resources/webhook.go index 5be9872d..1d6dc619 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/webhook.go +++ b/internal/testing/testutils_resource/pingone_testable_resources/webhook.go @@ -29,7 +29,8 @@ func createWebhook(t *testing.T, clientInfo *connector.ClientInfo, resourceType t.Helper() if len(strArgs) != 0 { - t.Fatalf("Unexpected number of arguments provided to createWebhook(): %v", strArgs) + t.Errorf("Unexpected number of arguments provided to createWebhook(): %v", strArgs) + return testutils_resource.ResourceInfo{} } request := clientInfo.PingOneApiClient.ManagementAPIClient.SubscriptionsWebhooksApi.CreateSubscription(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) @@ -57,10 +58,12 @@ func createWebhook(t *testing.T, clientInfo *connector.ClientInfo, resourceType resource, response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "CreateSubscription", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } return testutils_resource.ResourceInfo{ @@ -78,7 +81,8 @@ func deleteWebhook(t *testing.T, clientInfo *connector.ClientInfo, resourceType t.Helper() if len(ids) != 1 { - t.Fatalf("Unexpected number of arguments provided to deleteWebhook(): %v", ids) + t.Errorf("Unexpected number of arguments provided to deleteWebhook(): %v", ids) + return } request := clientInfo.PingOneApiClient.ManagementAPIClient.SubscriptionsWebhooksApi.DeleteSubscription(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) @@ -86,9 +90,11 @@ func deleteWebhook(t *testing.T, clientInfo *connector.ClientInfo, resourceType response, err := request.Execute() ok, err := common.HandleClientResponse(response, err, "DeleteSubscription", resourceType) if err != nil { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { - t.Fatalf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } From 3138827b065139589e1cbfcea66f2d8706c5d2d6 Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Tue, 25 Mar 2025 17:13:45 -0600 Subject: [PATCH 06/18] Add generated code for MFA and Protect resources as well as testable resources --- .../pingone/mfa/pingone_mfa_connector.go | 8 +- .../pingone/mfa/pingone_mfa_connector_test.go | 37 ++-- .../mfa_application_push_credential.go | 124 +++++++++++++ .../mfa_application_push_credential_test.go | 35 ++++ ..._device_policy.go => mfa_device_policy.go} | 45 ++--- .../mfa/resources/mfa_device_policy_test.go | 34 ++++ ...fa_fido2_policy.go => mfa_fido2_policy.go} | 45 ++--- .../mfa/resources/mfa_fido2_policy_test.go | 34 ++++ ...ingone_mfa_settings.go => mfa_settings.go} | 21 +-- .../mfa/resources/mfa_settings_test.go | 28 +++ ...pingone_mfa_application_push_credential.go | 123 ------------- ...ne_mfa_application_push_credential_test.go | 39 ---- .../pingone_mfa_device_policy_test.go | 34 ---- .../pingone_mfa_fido2_policy_test.go | 34 ---- .../resources/pingone_mfa_settings_test.go | 28 --- .../pingone_platform_connector_test.go | 62 +++---- .../resources/agreement_enable_test.go | 4 +- .../agreement_localization_enable_test.go | 4 +- .../agreement_localization_revision_test.go | 4 +- .../resources/agreement_localization_test.go | 4 +- .../platform/resources/agreement_test.go | 4 +- .../platform/resources/alert_channel_test.go | 4 +- .../resources/branding_settings_test.go | 4 +- .../resources/branding_theme_default_test.go | 4 +- .../platform/resources/branding_theme_test.go | 4 +- .../platform/resources/certificate_test.go | 4 +- .../platform/resources/custom_domain_test.go | 4 +- .../platform/resources/environment_test.go | 4 +- .../pingone/platform/resources/form_test.go | 4 +- .../resources/forms_recaptcha_v2_test.go | 4 +- .../resources/gateway_credential_test.go | 4 +- .../resources/gateway_role_assignment_test.go | 4 +- .../platform/resources/gateway_test.go | 4 +- .../identity_propagation_plan_test.go | 4 +- .../resources/key_rotation_policy_test.go | 4 +- .../pingone/platform/resources/key_test.go | 4 +- .../platform/resources/language_test.go | 4 +- .../resources/language_update_test.go | 4 +- .../resources/notification_policy_test.go | 4 +- .../notification_settings_email_test.go | 4 +- .../resources/notification_settings_test.go | 4 +- .../notification_template_content_test.go | 4 +- .../resources/phone_delivery_settings_test.go | 4 +- .../resources/system_application_test.go | 4 +- .../resources/trusted_email_address_test.go | 4 +- .../resources/trusted_email_domain_test.go | 4 +- .../platform/resources/webhook_test.go | 4 +- .../protect/pingone_protect_connector_test.go | 29 +-- .../resources/pingone_risk_policy_test.go | 34 ---- .../resources/pingone_risk_predictor.go | 153 ---------------- .../resources/pingone_risk_predictor_test.go | 89 ---------- ...{pingone_risk_policy.go => risk_policy.go} | 31 ++-- .../protect/resources/risk_policy_test.go | 34 ++++ .../protect/resources/risk_predictor.go | 154 ++++++++++++++++ .../protect/resources/risk_predictor_test.go | 34 ++++ .../pingone/sso/pingone_sso_connector_test.go | 52 +++--- .../application_attribute_mapping_test.go | 4 +- ...application_flow_policy_assignment_test.go | 4 +- .../application_resource_grant_test.go | 4 +- .../application_role_assignment_test.go | 4 +- .../sso/resources/application_secret_test.go | 4 +- ...lication_sign_on_policy_assignment_test.go | 4 +- .../pingone/sso/resources/application_test.go | 4 +- .../sso/resources/group_nesting_test.go | 4 +- .../resources/group_role_assignment_test.go | 4 +- .../pingone/sso/resources/group_test.go | 4 +- .../identity_provider_attribute_test.go | 4 +- .../sso/resources/identity_provider_test.go | 4 +- .../sso/resources/password_policy_test.go | 4 +- ...pulation_default_identity_provider_test.go | 4 +- .../sso/resources/population_default_test.go | 4 +- .../pingone/sso/resources/population_test.go | 4 +- .../sso/resources/resource_attribute_test.go | 4 +- .../resources/resource_scope_openid_test.go | 4 +- .../resource_scope_pingone_api_test.go | 4 +- .../sso/resources/resource_scope_test.go | 4 +- .../sso/resources/resource_secret_test.go | 4 +- .../pingone/sso/resources/resource_test.go | 4 +- .../sso/resources/schema_attribute_test.go | 4 +- .../resources/sign_on_policy_action_test.go | 4 +- .../sso/resources/sign_on_policy_test.go | 4 +- .../out_of_band_auth_plugins.go | 4 +- .../pingone_connection.go | 4 +- .../mfa_application_push_credential.go | 94 ++++++++++ .../mfa_device_policy.go | 167 ++++++++++++++++++ .../mfa_fido2_policy.go | 125 +++++++++++++ .../mfa_settings.go | 24 +++ .../agreement.go | 2 +- .../agreement_enable.go | 2 +- .../agreement_localization.go | 2 +- .../agreement_localization_enable.go | 2 +- .../agreement_localization_revision.go | 2 +- .../alert_channel.go | 2 +- .../branding_settings.go | 2 +- .../branding_theme.go | 2 +- .../branding_theme_default.go | 2 +- .../certificate.go | 2 +- .../custom_domain.go | 2 +- .../device_auth_application.go | 2 +- .../environment.go | 2 +- .../form.go | 2 +- .../forms_recaptcha_v2.go | 2 +- .../gateway.go | 2 +- .../gateway_credential.go | 2 +- .../gateway_role_assignment.go | 2 +- .../identity_propagation_plan.go | 2 +- .../key.go | 2 +- .../key_rotation_policy.go | 2 +- .../language.go | 2 +- .../language_update.go | 2 +- .../notification_policy.go | 2 +- .../notification_settings.go | 2 +- .../notification_settings_email.go | 2 +- .../notification_template_content.go | 2 +- .../phone_delivery_settings.go | 2 +- .../system_application.go | 2 +- .../trusted_email_address.go | 2 +- .../trusted_email_domain.go | 2 +- .../webhook.go | 2 +- .../risk_policy.go | 116 ++++++++++++ .../risk_predictor.go | 116 ++++++++++++ .../application_attribute_mapping.go | 2 +- .../application_device_authorization.go | 2 +- .../application_flow_policy_assignment.go | 2 +- .../application_native.go | 121 +++++++++++++ .../application_resource_grant.go | 2 +- .../application_role_assignment.go | 2 +- .../application_secret.go | 2 +- .../application_sign_on_policy_assignment.go | 2 +- .../application_worker.go | 2 +- .../group.go | 2 +- .../group_nesting.go | 2 +- .../group_role_assignment.go | 2 +- .../identity_provider.go | 2 +- .../identity_provider_attribute.go | 2 +- .../password_policy.go | 2 +- .../population.go | 2 +- .../population_default.go | 2 +- .../population_default_identity_provider.go | 2 +- .../resource.go | 2 +- .../resource_attribute.go | 2 +- .../resource_scope.go | 2 +- .../resource_scope_openid.go | 2 +- .../resource_scope_pingone_api.go | 2 +- .../resource_secret.go | 2 +- .../schema_attribute.go | 2 +- .../sign_on_policy.go | 2 +- .../sign_on_policy_action.go | 2 +- 148 files changed, 1585 insertions(+), 867 deletions(-) create mode 100644 internal/connector/pingone/mfa/resources/mfa_application_push_credential.go create mode 100644 internal/connector/pingone/mfa/resources/mfa_application_push_credential_test.go rename internal/connector/pingone/mfa/resources/{pingone_mfa_device_policy.go => mfa_device_policy.go} (50%) create mode 100644 internal/connector/pingone/mfa/resources/mfa_device_policy_test.go rename internal/connector/pingone/mfa/resources/{pingone_mfa_fido2_policy.go => mfa_fido2_policy.go} (51%) create mode 100644 internal/connector/pingone/mfa/resources/mfa_fido2_policy_test.go rename internal/connector/pingone/mfa/resources/{pingone_mfa_settings.go => mfa_settings.go} (73%) create mode 100644 internal/connector/pingone/mfa/resources/mfa_settings_test.go delete mode 100644 internal/connector/pingone/mfa/resources/pingone_mfa_application_push_credential.go delete mode 100644 internal/connector/pingone/mfa/resources/pingone_mfa_application_push_credential_test.go delete mode 100644 internal/connector/pingone/mfa/resources/pingone_mfa_device_policy_test.go delete mode 100644 internal/connector/pingone/mfa/resources/pingone_mfa_fido2_policy_test.go delete mode 100644 internal/connector/pingone/mfa/resources/pingone_mfa_settings_test.go delete mode 100644 internal/connector/pingone/protect/resources/pingone_risk_policy_test.go delete mode 100644 internal/connector/pingone/protect/resources/pingone_risk_predictor.go delete mode 100644 internal/connector/pingone/protect/resources/pingone_risk_predictor_test.go rename internal/connector/pingone/protect/resources/{pingone_risk_policy.go => risk_policy.go} (66%) create mode 100644 internal/connector/pingone/protect/resources/risk_policy_test.go create mode 100644 internal/connector/pingone/protect/resources/risk_predictor.go create mode 100644 internal/connector/pingone/protect/resources/risk_predictor_test.go create mode 100644 internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_application_push_credential.go create mode 100644 internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_device_policy.go create mode 100644 internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_fido2_policy.go create mode 100644 internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_settings.go rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/agreement.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/agreement_enable.go (94%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/agreement_localization.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/agreement_localization_enable.go (94%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/agreement_localization_revision.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/alert_channel.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/branding_settings.go (93%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/branding_theme.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/branding_theme_default.go (93%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/certificate.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/custom_domain.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/device_auth_application.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/environment.go (93%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/form.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/forms_recaptcha_v2.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/gateway.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/gateway_credential.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/gateway_role_assignment.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/identity_propagation_plan.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/key.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/key_rotation_policy.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/language.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/language_update.go (94%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/notification_policy.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/notification_settings.go (93%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/notification_settings_email.go (93%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/notification_template_content.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/phone_delivery_settings.go (99%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/system_application.go (93%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/trusted_email_address.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/trusted_email_domain.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_platform_testable_resources}/webhook.go (98%) create mode 100644 internal/testing/testutils_resource/pingone_protect_testable_resources/risk_policy.go create mode 100644 internal/testing/testutils_resource/pingone_protect_testable_resources/risk_predictor.go rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/application_attribute_mapping.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/application_device_authorization.go (99%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/application_flow_policy_assignment.go (99%) create mode 100644 internal/testing/testutils_resource/pingone_sso_testable_resources/application_native.go rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/application_resource_grant.go (99%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/application_role_assignment.go (99%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/application_secret.go (94%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/application_sign_on_policy_assignment.go (99%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/application_worker.go (99%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/group.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/group_nesting.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/group_role_assignment.go (99%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/identity_provider.go (99%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/identity_provider_attribute.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/password_policy.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/population.go (99%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/population_default.go (94%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/population_default_identity_provider.go (94%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/resource.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/resource_attribute.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/resource_scope.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/resource_scope_openid.go (99%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/resource_scope_pingone_api.go (99%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/resource_secret.go (94%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/schema_attribute.go (99%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/sign_on_policy.go (98%) rename internal/testing/testutils_resource/{pingone_testable_resources => pingone_sso_testable_resources}/sign_on_policy_action.go (98%) diff --git a/internal/connector/pingone/mfa/pingone_mfa_connector.go b/internal/connector/pingone/mfa/pingone_mfa_connector.go index 66f2ca2c..dcabc01c 100644 --- a/internal/connector/pingone/mfa/pingone_mfa_connector.go +++ b/internal/connector/pingone/mfa/pingone_mfa_connector.go @@ -44,10 +44,10 @@ func (c *PingOneMFAConnector) Export(format, outputDir string, overwriteExport b l.Debug().Msgf("Exporting all PingOne MFA Resources...") exportableResources := []connector.ExportableResource{ - resources.MFAApplicationPushCredential(&c.clientInfo), - resources.MFAFido2Policy(&c.clientInfo), - resources.MFADevicePolicy(&c.clientInfo), - resources.MFASettings(&c.clientInfo), + resources.MfaApplicationPushCredential(&c.clientInfo), + resources.MfaDevicePolicy(&c.clientInfo), + resources.MfaFido2Policy(&c.clientInfo), + resources.MfaSettings(&c.clientInfo), } return common.WriteFiles(exportableResources, format, outputDir, overwriteExport) diff --git a/internal/connector/pingone/mfa/pingone_mfa_connector_test.go b/internal/connector/pingone/mfa/pingone_mfa_connector_test.go index 1696e2b7..88ef958d 100644 --- a/internal/connector/pingone/mfa/pingone_mfa_connector_test.go +++ b/internal/connector/pingone/mfa/pingone_mfa_connector_test.go @@ -5,9 +5,9 @@ package mfa_test import ( "testing" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/mfa/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_mfa_testable_resources" "github.com/pingidentity/pingcli/internal/testing/testutils_terraform" ) @@ -17,37 +17,40 @@ func TestMFATerraformPlan(t *testing.T) { testutils_terraform.InitPingOneTerraform(t) testCases := []struct { - name string - resource connector.ExportableResource - ignoredErrors []string + name string + testableResource *testutils_resource.TestableResource + ignoredErrors []string }{ { - name: "MFAApplicationPushCredential", - resource: resources.MFAApplicationPushCredential(clientInfo), + name: "MFAApplicationPushCredential", + testableResource: pingone_mfa_testable_resources.MfaApplicationPushCredential(t, clientInfo), ignoredErrors: []string{ "Error: Invalid Attribute Combination", }, }, { - name: "MFAFido2Policy", - resource: resources.MFAFido2Policy(clientInfo), - ignoredErrors: nil, + name: "MFAFido2Policy", + testableResource: pingone_mfa_testable_resources.MfaFido2Policy(t, clientInfo), + ignoredErrors: nil, }, { - name: "MFADevicePolicy", - resource: resources.MFADevicePolicy(clientInfo), - ignoredErrors: nil, + name: "MFADevicePolicy", + testableResource: pingone_mfa_testable_resources.MfaDevicePolicy(t, clientInfo), + ignoredErrors: nil, }, { - name: "MFASettings", - resource: resources.MFASettings(clientInfo), - ignoredErrors: nil, + name: "MFASettings", + testableResource: pingone_mfa_testable_resources.MfaSettings(t, clientInfo), + ignoredErrors: nil, }, } for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { - testutils_terraform.ValidateTerraformPlan(t, tc.resource, tc.ignoredErrors) + tc.testableResource.CreateResource(t) + defer tc.testableResource.DeleteResource(t) + + testutils_terraform.ValidateTerraformPlan(t, tc.testableResource.ExportableResource, tc.ignoredErrors) }) } } diff --git a/internal/connector/pingone/mfa/resources/mfa_application_push_credential.go b/internal/connector/pingone/mfa/resources/mfa_application_push_credential.go new file mode 100644 index 00000000..cb550707 --- /dev/null +++ b/internal/connector/pingone/mfa/resources/mfa_application_push_credential.go @@ -0,0 +1,124 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/patrickcping/pingone-go-sdk-v2/mfa" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneMfaApplicationPushCredentialResource{} +) + +type PingOneMfaApplicationPushCredentialResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneMfaApplicationPushCredentialResource +func MfaApplicationPushCredential(clientInfo *connector.ClientInfo) *PingOneMfaApplicationPushCredentialResource { + return &PingOneMfaApplicationPushCredentialResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneMfaApplicationPushCredentialResource) ResourceType() string { + return "pingone_mfa_application_push_credential" +} + +func (r *PingOneMfaApplicationPushCredentialResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + applicationData, err := r.getApplicationData() + if err != nil { + return nil, err + } + + for applicationId, applicationName := range applicationData { + mfaApplicationPushCredentialData, err := r.getMfaApplicationPushCredentialData(applicationId) + if err != nil { + return nil, err + } + + for mfaApplicationPushCredentialId, mfaApplicationPushCredentialType := range mfaApplicationPushCredentialData { + commentData := map[string]string{ + "Application ID": applicationId, + "Application Name": applicationName, + "Mfa Application Push Credential ID": mfaApplicationPushCredentialId, + "Mfa Application Push Credential Type": mfaApplicationPushCredentialType, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", applicationName, mfaApplicationPushCredentialType), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, applicationId, mfaApplicationPushCredentialId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + } + + return &importBlocks, nil +} + +func (r *PingOneMfaApplicationPushCredentialResource) getApplicationData() (map[string]string, error) { + applicationData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.ReadAllApplications(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, inner := range apiObjs { + // MFa application push credentials are only for OIDC Native Apps + if inner.ApplicationOIDC != nil { + applicationId, applicationIdOk := inner.ApplicationOIDC.GetIdOk() + applicationName, applicationNameOk := inner.ApplicationOIDC.GetNameOk() + applicationType, applicationTypeOk := inner.ApplicationOIDC.GetTypeOk() + + if applicationIdOk && applicationNameOk && applicationTypeOk { + if *applicationType == management.ENUMAPPLICATIONTYPE_NATIVE_APP { + applicationData[*applicationId] = *applicationName + } + } + } + } + + return applicationData, nil +} + +func (r *PingOneMfaApplicationPushCredentialResource) getMfaApplicationPushCredentialData(applicationId string) (map[string]string, error) { + mfaApplicationPushCredentialData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.MFAAPIClient.ApplicationsApplicationMFAPushCredentialsApi.ReadAllMFAPushCredentials(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, applicationId).Execute() + apiObjs, err := pingone.GetMfaAPIObjectsFromIterator[mfa.MFAPushCredentialResponse](iter, "ReadAllMFAPushCredentials", "GetPushCredentials", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, mfaApplicationPushCredential := range apiObjs { + mfaApplicationPushCredentialId, mfaApplicationPushCredentialIdOk := mfaApplicationPushCredential.GetIdOk() + mfaApplicationPushCredentialType, mfaApplicationPushCredentialTypeOk := mfaApplicationPushCredential.GetTypeOk() + + if mfaApplicationPushCredentialIdOk && mfaApplicationPushCredentialTypeOk { + mfaApplicationPushCredentialData[*mfaApplicationPushCredentialId] = string(*mfaApplicationPushCredentialType) + } + } + + return mfaApplicationPushCredentialData, nil +} diff --git a/internal/connector/pingone/mfa/resources/mfa_application_push_credential_test.go b/internal/connector/pingone/mfa/resources/mfa_application_push_credential_test.go new file mode 100644 index 00000000..400006ba --- /dev/null +++ b/internal/connector/pingone/mfa/resources/mfa_application_push_credential_test.go @@ -0,0 +1,35 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_mfa_testable_resources" +) + +func Test_MfaApplicationPushCredential(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_mfa_testable_resources.MfaApplicationPushCredential(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + applicationTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", applicationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_TYPE]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, applicationTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/mfa/resources/pingone_mfa_device_policy.go b/internal/connector/pingone/mfa/resources/mfa_device_policy.go similarity index 50% rename from internal/connector/pingone/mfa/resources/pingone_mfa_device_policy.go rename to internal/connector/pingone/mfa/resources/mfa_device_policy.go index ef343d73..25c5a2a0 100644 --- a/internal/connector/pingone/mfa/resources/pingone_mfa_device_policy.go +++ b/internal/connector/pingone/mfa/resources/mfa_device_policy.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -14,47 +15,47 @@ import ( // Verify that the resource satisfies the exportable resource interface var ( - _ connector.ExportableResource = &PingOneMFADevicePolicyResource{} + _ connector.ExportableResource = &PingOneMfaDevicePolicyResource{} ) -type PingOneMFADevicePolicyResource struct { +type PingOneMfaDevicePolicyResource struct { clientInfo *connector.ClientInfo } -// Utility method for creating a PingOneMFADevicePolicyResource -func MFADevicePolicy(clientInfo *connector.ClientInfo) *PingOneMFADevicePolicyResource { - return &PingOneMFADevicePolicyResource{ +// Utility method for creating a PingOneMfaDevicePolicyResource +func MfaDevicePolicy(clientInfo *connector.ClientInfo) *PingOneMfaDevicePolicyResource { + return &PingOneMfaDevicePolicyResource{ clientInfo: clientInfo, } } -func (r *PingOneMFADevicePolicyResource) ResourceType() string { +func (r *PingOneMfaDevicePolicyResource) ResourceType() string { return "pingone_mfa_device_policy" } -func (r *PingOneMFADevicePolicyResource) ExportAll() (*[]connector.ImportBlock, error) { +func (r *PingOneMfaDevicePolicyResource) ExportAll() (*[]connector.ImportBlock, error) { l := logger.Get() l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) importBlocks := []connector.ImportBlock{} - deviceAuthPolicyData, err := r.getDeviceAuthPolicyData() + mfaDevicePolicyData, err := r.getMfaDevicePolicyData() if err != nil { return nil, err } - for devicePolicyId, devicePolicyName := range deviceAuthPolicyData { + for mfaDevicePolicyId, mfaDevicePolicyName := range mfaDevicePolicyData { commentData := map[string]string{ + "Mfa Device Policy ID": mfaDevicePolicyId, + "Mfa Device Policy Name": mfaDevicePolicyName, "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "MFA Device Policy ID": devicePolicyId, - "MFA Device Policy Name": devicePolicyName, "Resource Type": r.ResourceType(), } importBlock := connector.ImportBlock{ ResourceType: r.ResourceType(), - ResourceName: devicePolicyName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, devicePolicyId), + ResourceName: mfaDevicePolicyName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, mfaDevicePolicyId), CommentInformation: common.GenerateCommentInformation(commentData), } @@ -64,23 +65,23 @@ func (r *PingOneMFADevicePolicyResource) ExportAll() (*[]connector.ImportBlock, return &importBlocks, nil } -func (r *PingOneMFADevicePolicyResource) getDeviceAuthPolicyData() (map[string]string, error) { - deviceAuthPolicyData := make(map[string]string) +func (r *PingOneMfaDevicePolicyResource) getMfaDevicePolicyData() (map[string]string, error) { + mfaDevicePolicyData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.MFAAPIClient.DeviceAuthenticationPolicyApi.ReadDeviceAuthenticationPolicies(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - deviceAuthPolicies, err := pingone.GetMfaAPIObjectsFromIterator[mfa.DeviceAuthenticationPolicy](iter, "ReadDeviceAuthenticationPolicies", "GetDeviceAuthenticationPolicies", r.ResourceType()) + apiObjs, err := pingone.GetMfaAPIObjectsFromIterator[mfa.DeviceAuthenticationPolicy](iter, "ReadDeviceAuthenticationPolicies", "GetDeviceAuthenticationPolicies", r.ResourceType()) if err != nil { return nil, err } - for _, devicePolicy := range deviceAuthPolicies { - devicePolicyId, devicePolicyIdOk := devicePolicy.GetIdOk() - devicePolicyName, devicePolicyNameOk := devicePolicy.GetNameOk() + for _, mfaDevicePolicy := range apiObjs { + mfaDevicePolicyId, mfaDevicePolicyIdOk := mfaDevicePolicy.GetIdOk() + mfaDevicePolicyName, mfaDevicePolicyNameOk := mfaDevicePolicy.GetNameOk() - if devicePolicyIdOk && devicePolicyNameOk { - deviceAuthPolicyData[*devicePolicyId] = *devicePolicyName + if mfaDevicePolicyIdOk && mfaDevicePolicyNameOk { + mfaDevicePolicyData[*mfaDevicePolicyId] = *mfaDevicePolicyName } } - return deviceAuthPolicyData, nil + return mfaDevicePolicyData, nil } diff --git a/internal/connector/pingone/mfa/resources/mfa_device_policy_test.go b/internal/connector/pingone/mfa/resources/mfa_device_policy_test.go new file mode 100644 index 00000000..4f404473 --- /dev/null +++ b/internal/connector/pingone/mfa/resources/mfa_device_policy_test.go @@ -0,0 +1,34 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_mfa_testable_resources" +) + +func Test_MfaDevicePolicy(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_mfa_testable_resources.MfaDevicePolicy(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing MFA Device Policies are generated, test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/mfa/resources/pingone_mfa_fido2_policy.go b/internal/connector/pingone/mfa/resources/mfa_fido2_policy.go similarity index 51% rename from internal/connector/pingone/mfa/resources/pingone_mfa_fido2_policy.go rename to internal/connector/pingone/mfa/resources/mfa_fido2_policy.go index 8821a6c0..d2656615 100644 --- a/internal/connector/pingone/mfa/resources/pingone_mfa_fido2_policy.go +++ b/internal/connector/pingone/mfa/resources/mfa_fido2_policy.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -14,47 +15,47 @@ import ( // Verify that the resource satisfies the exportable resource interface var ( - _ connector.ExportableResource = &PingOneMFAFido2PolicyResource{} + _ connector.ExportableResource = &PingOneMfaFido2PolicyResource{} ) -type PingOneMFAFido2PolicyResource struct { +type PingOneMfaFido2PolicyResource struct { clientInfo *connector.ClientInfo } -// Utility method for creating a PingOneMFAFido2PolicyResource -func MFAFido2Policy(clientInfo *connector.ClientInfo) *PingOneMFAFido2PolicyResource { - return &PingOneMFAFido2PolicyResource{ +// Utility method for creating a PingOneMfaFido2PolicyResource +func MfaFido2Policy(clientInfo *connector.ClientInfo) *PingOneMfaFido2PolicyResource { + return &PingOneMfaFido2PolicyResource{ clientInfo: clientInfo, } } -func (r *PingOneMFAFido2PolicyResource) ResourceType() string { +func (r *PingOneMfaFido2PolicyResource) ResourceType() string { return "pingone_mfa_fido2_policy" } -func (r *PingOneMFAFido2PolicyResource) ExportAll() (*[]connector.ImportBlock, error) { +func (r *PingOneMfaFido2PolicyResource) ExportAll() (*[]connector.ImportBlock, error) { l := logger.Get() l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) importBlocks := []connector.ImportBlock{} - fido2PolicyData, err := r.getFido2PolicyData() + mfaFido2PolicyData, err := r.getMfaFido2PolicyData() if err != nil { return nil, err } - for fido2PolicyId, fido2PolicyName := range fido2PolicyData { + for mfaFido2PolicyId, mfaFido2PolicyName := range mfaFido2PolicyData { commentData := map[string]string{ + "Mfa Fido2 Policy ID": mfaFido2PolicyId, + "Mfa Fido2 Policy Name": mfaFido2PolicyName, "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "FIDO2 Policy ID": fido2PolicyId, - "FIDO2 Policy Name": fido2PolicyName, "Resource Type": r.ResourceType(), } importBlock := connector.ImportBlock{ ResourceType: r.ResourceType(), - ResourceName: fido2PolicyName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, fido2PolicyId), + ResourceName: mfaFido2PolicyName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, mfaFido2PolicyId), CommentInformation: common.GenerateCommentInformation(commentData), } @@ -64,23 +65,23 @@ func (r *PingOneMFAFido2PolicyResource) ExportAll() (*[]connector.ImportBlock, e return &importBlocks, nil } -func (r *PingOneMFAFido2PolicyResource) getFido2PolicyData() (map[string]string, error) { - fido2PolicyData := make(map[string]string) +func (r *PingOneMfaFido2PolicyResource) getMfaFido2PolicyData() (map[string]string, error) { + mfaFido2PolicyData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.MFAAPIClient.FIDO2PolicyApi.ReadFIDO2Policies(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - fido2Policies, err := pingone.GetMfaAPIObjectsFromIterator[mfa.FIDO2Policy](iter, "ReadFIDO2Policies", "GetFido2Policies", r.ResourceType()) + apiObjs, err := pingone.GetMfaAPIObjectsFromIterator[mfa.FIDO2Policy](iter, "ReadFIDO2Policies", "GetFido2Policies", r.ResourceType()) if err != nil { return nil, err } - for _, fido2Policy := range fido2Policies { - fido2PolicyId, fido2PolicyIdOk := fido2Policy.GetIdOk() - fido2PolicyName, fido2PolicyNameOk := fido2Policy.GetNameOk() + for _, mfaFido2Policy := range apiObjs { + mfaFido2PolicyId, mfaFido2PolicyIdOk := mfaFido2Policy.GetIdOk() + mfaFido2PolicyName, mfaFido2PolicyNameOk := mfaFido2Policy.GetNameOk() - if fido2PolicyIdOk && fido2PolicyNameOk { - fido2PolicyData[*fido2PolicyId] = *fido2PolicyName + if mfaFido2PolicyIdOk && mfaFido2PolicyNameOk { + mfaFido2PolicyData[*mfaFido2PolicyId] = *mfaFido2PolicyName } } - return fido2PolicyData, nil + return mfaFido2PolicyData, nil } diff --git a/internal/connector/pingone/mfa/resources/mfa_fido2_policy_test.go b/internal/connector/pingone/mfa/resources/mfa_fido2_policy_test.go new file mode 100644 index 00000000..e4b49105 --- /dev/null +++ b/internal/connector/pingone/mfa/resources/mfa_fido2_policy_test.go @@ -0,0 +1,34 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_mfa_testable_resources" +) + +func Test_MfaFido2Policy(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_mfa_testable_resources.MfaFido2Policy(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing MFA FIDO2 Policies are generated, test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/mfa/resources/pingone_mfa_settings.go b/internal/connector/pingone/mfa/resources/mfa_settings.go similarity index 73% rename from internal/connector/pingone/mfa/resources/pingone_mfa_settings.go rename to internal/connector/pingone/mfa/resources/mfa_settings.go index 27ab5f31..6f475a55 100644 --- a/internal/connector/pingone/mfa/resources/pingone_mfa_settings.go +++ b/internal/connector/pingone/mfa/resources/mfa_settings.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -10,31 +11,31 @@ import ( // Verify that the resource satisfies the exportable resource interface var ( - _ connector.ExportableResource = &PingOneMFASettingsResource{} + _ connector.ExportableResource = &PingOneMfaSettingsResource{} ) -type PingOneMFASettingsResource struct { +type PingOneMfaSettingsResource struct { clientInfo *connector.ClientInfo } -// Utility method for creating a PingOneMFASettingsResource -func MFASettings(clientInfo *connector.ClientInfo) *PingOneMFASettingsResource { - return &PingOneMFASettingsResource{ +// Utility method for creating a PingOneMfaSettingsResource +func MfaSettings(clientInfo *connector.ClientInfo) *PingOneMfaSettingsResource { + return &PingOneMfaSettingsResource{ clientInfo: clientInfo, } } -func (r *PingOneMFASettingsResource) ResourceType() string { +func (r *PingOneMfaSettingsResource) ResourceType() string { return "pingone_mfa_settings" } -func (r *PingOneMFASettingsResource) ExportAll() (*[]connector.ImportBlock, error) { +func (r *PingOneMfaSettingsResource) ExportAll() (*[]connector.ImportBlock, error) { l := logger.Get() l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) importBlocks := []connector.ImportBlock{} - ok, err := r.checkMFASettingsData() + ok, err := r.checkMfaSettingsData() if err != nil { return nil, err } @@ -43,8 +44,8 @@ func (r *PingOneMFASettingsResource) ExportAll() (*[]connector.ImportBlock, erro } commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Resource Type": r.ResourceType(), + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, } importBlock := connector.ImportBlock{ @@ -59,7 +60,7 @@ func (r *PingOneMFASettingsResource) ExportAll() (*[]connector.ImportBlock, erro return &importBlocks, nil } -func (r *PingOneMFASettingsResource) checkMFASettingsData() (bool, error) { +func (r *PingOneMfaSettingsResource) checkMfaSettingsData() (bool, error) { _, response, err := r.clientInfo.PingOneApiClient.MFAAPIClient.MFASettingsApi.ReadMFASettings(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() return common.CheckSingletonResource(response, err, "ReadMFASettings", r.ResourceType()) } diff --git a/internal/connector/pingone/mfa/resources/mfa_settings_test.go b/internal/connector/pingone/mfa/resources/mfa_settings_test.go new file mode 100644 index 00000000..0bd52442 --- /dev/null +++ b/internal/connector/pingone/mfa/resources/mfa_settings_test.go @@ -0,0 +1,28 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_mfa_testable_resources" +) + +func Test_MfaSettings(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_mfa_testable_resources.MfaSettings(t, clientInfo) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ExportableResource.ResourceType(), + ResourceID: clientInfo.PingOneExportEnvironmentID, + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/mfa/resources/pingone_mfa_application_push_credential.go b/internal/connector/pingone/mfa/resources/pingone_mfa_application_push_credential.go deleted file mode 100644 index 92746ce5..00000000 --- a/internal/connector/pingone/mfa/resources/pingone_mfa_application_push_credential.go +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/management" - "github.com/patrickcping/pingone-go-sdk-v2/mfa" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneMFAApplicationPushCredentialResource{} -) - -type PingOneMFAApplicationPushCredentialResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneMFAApplicationPushCredentialResource -func MFAApplicationPushCredential(clientInfo *connector.ClientInfo) *PingOneMFAApplicationPushCredentialResource { - return &PingOneMFAApplicationPushCredentialResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneMFAApplicationPushCredentialResource) ResourceType() string { - return "pingone_mfa_application_push_credential" -} - -func (r *PingOneMFAApplicationPushCredentialResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - applicationData, err := r.getOIDCApplicationData() - if err != nil { - return nil, err - } - - for appId, appName := range applicationData { - pushCredData, err := r.getPushCredentialData(appId) - if err != nil { - return nil, err - } - - for pushCredId, pushCredType := range pushCredData { - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "MFA Application Push Credential ID": pushCredId, - "MFA Application Push Credential Type": pushCredType, - "Native OIDC Application ID": appId, - "Native OIDC Application Name": appName, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", appName, pushCredType), - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, appId, pushCredId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - } - - return &importBlocks, nil -} - -func (r *PingOneMFAApplicationPushCredentialResource) getOIDCApplicationData() (map[string]string, error) { - applicationData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.ReadAllApplications(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - applications, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, application := range applications { - // MFa application push credentials are only for OIDC Native Apps - if application.ApplicationOIDC != nil { - applicationId, applicationIdOk := application.ApplicationOIDC.GetIdOk() - applicationName, applicationNameOk := application.ApplicationOIDC.GetNameOk() - applicationType, applicationTypeOk := application.ApplicationOIDC.GetTypeOk() - - if applicationIdOk && applicationNameOk && applicationTypeOk { - if *applicationType == management.ENUMAPPLICATIONTYPE_NATIVE_APP { - applicationData[*applicationId] = *applicationName - } - } - } - } - - return applicationData, nil -} - -func (r *PingOneMFAApplicationPushCredentialResource) getPushCredentialData(applicationId string) (map[string]string, error) { - mfaPushCredentialData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.MFAAPIClient.ApplicationsApplicationMFAPushCredentialsApi.ReadAllMFAPushCredentials(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, applicationId).Execute() - mfaPushCredentials, err := pingone.GetMfaAPIObjectsFromIterator[mfa.MFAPushCredentialResponse](iter, "ReadAllMFAPushCredentials", "GetPushCredentials", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, mfaPushCredential := range mfaPushCredentials { - mfaPushCredentialId, mfaPushCredentialIdOk := mfaPushCredential.GetIdOk() - mfaPushCredentialType, mfaPushCredentialTypeOk := mfaPushCredential.GetTypeOk() - - if mfaPushCredentialIdOk && mfaPushCredentialTypeOk { - mfaPushCredentialData[*mfaPushCredentialId] = string(*mfaPushCredentialType) - } - } - - return mfaPushCredentialData, nil -} diff --git a/internal/connector/pingone/mfa/resources/pingone_mfa_application_push_credential_test.go b/internal/connector/pingone/mfa/resources/pingone_mfa_application_push_credential_test.go deleted file mode 100644 index 88b53b69..00000000 --- a/internal/connector/pingone/mfa/resources/pingone_mfa_application_push_credential_test.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/mfa/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestMFAApplicationPushCredentialExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.MFAApplicationPushCredential(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_mfa_application_push_credential", - ResourceName: "Test MFA_APNS", - ResourceID: fmt.Sprintf("%s/11cfc8c7-ec0c-43ff-b49a-64f5e243f932/7847f8a4-f81e-4994-a095-b4d579deaf52", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_mfa_application_push_credential", - ResourceName: "Test MFA_FCM", - ResourceID: fmt.Sprintf("%s/11cfc8c7-ec0c-43ff-b49a-64f5e243f932/e22e0f8f-ed88-4bdd-a914-5a93202083d0", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_mfa_application_push_credential", - ResourceName: "Test MFA_HMS", - ResourceID: fmt.Sprintf("%s/11cfc8c7-ec0c-43ff-b49a-64f5e243f932/e609b3a8-b112-4062-8031-e9ff0d87c9e9", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/mfa/resources/pingone_mfa_device_policy_test.go b/internal/connector/pingone/mfa/resources/pingone_mfa_device_policy_test.go deleted file mode 100644 index 51ae685f..00000000 --- a/internal/connector/pingone/mfa/resources/pingone_mfa_device_policy_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/mfa/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestMFAPolicyExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.MFADevicePolicy(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_mfa_device_policy", - ResourceName: "Default MFA Policy", - ResourceID: fmt.Sprintf("%s/6adc6dfa-d883-08ed-37c5-ea8f61029ad9", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_mfa_device_policy", - ResourceName: "Test MFA Policy", - ResourceID: fmt.Sprintf("%s/5ae2227f-cb5b-47c3-bb40-440db09a98e6", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/mfa/resources/pingone_mfa_fido2_policy_test.go b/internal/connector/pingone/mfa/resources/pingone_mfa_fido2_policy_test.go deleted file mode 100644 index 457801d6..00000000 --- a/internal/connector/pingone/mfa/resources/pingone_mfa_fido2_policy_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/mfa/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestMFAFido2PolicyExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.MFAFido2Policy(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_mfa_fido2_policy", - ResourceName: "Passkeys", - ResourceID: fmt.Sprintf("%s/0f9c510a-df48-4d56-9e44-17ac0bc78961", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_mfa_fido2_policy", - ResourceName: "Security Keys", - ResourceID: fmt.Sprintf("%s/f8dc3094-cf9f-486f-9ca9-164e0856b0d8", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/mfa/resources/pingone_mfa_settings_test.go b/internal/connector/pingone/mfa/resources/pingone_mfa_settings_test.go deleted file mode 100644 index 7d213536..00000000 --- a/internal/connector/pingone/mfa/resources/pingone_mfa_settings_test.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/mfa/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestMFASettingsExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.MFASettings(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_mfa_settings", - ResourceName: "pingone_mfa_settings", - ResourceID: clientInfo.PingOneExportEnvironmentID, - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/platform/pingone_platform_connector_test.go b/internal/connector/pingone/platform/pingone_platform_connector_test.go index cd476cea..6ac20f18 100644 --- a/internal/connector/pingone/platform/pingone_platform_connector_test.go +++ b/internal/connector/pingone/platform/pingone_platform_connector_test.go @@ -7,7 +7,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" "github.com/pingidentity/pingcli/internal/testing/testutils_terraform" ) @@ -23,110 +23,110 @@ func TestPlatformTerraformPlan(t *testing.T) { }{ { name: "Agreement", - testableResource: pingone_testable_resources.Agreement(t, clientInfo), + testableResource: pingone_platform_testable_resources.Agreement(t, clientInfo), ignoredErrors: nil, }, { name: "AgreementEnable", - testableResource: pingone_testable_resources.AgreementEnable(t, clientInfo), + testableResource: pingone_platform_testable_resources.AgreementEnable(t, clientInfo), ignoredErrors: nil, }, { name: "AgreementLocalization", - testableResource: pingone_testable_resources.AgreementLocalization(t, clientInfo), + testableResource: pingone_platform_testable_resources.AgreementLocalization(t, clientInfo), ignoredErrors: []string{ "Error: Cannot find language by locale en-US", }, }, { name: "AgreementLocalizationEnable", - testableResource: pingone_testable_resources.AgreementLocalizationEnable(t, clientInfo), + testableResource: pingone_platform_testable_resources.AgreementLocalizationEnable(t, clientInfo), ignoredErrors: nil, }, { name: "AgreementLocalizationRevision", - testableResource: pingone_testable_resources.AgreementLocalizationRevision(t, clientInfo), + testableResource: pingone_platform_testable_resources.AgreementLocalizationRevision(t, clientInfo), ignoredErrors: nil, }, { name: "BrandingSettings", - testableResource: pingone_testable_resources.BrandingSettings(t, clientInfo), + testableResource: pingone_platform_testable_resources.BrandingSettings(t, clientInfo), ignoredErrors: nil, }, { name: "BrandingTheme", - testableResource: pingone_testable_resources.BrandingTheme(t, clientInfo), + testableResource: pingone_platform_testable_resources.BrandingTheme(t, clientInfo), ignoredErrors: []string{ "Error: Invalid Attribute Combination", }, }, { name: "BrandingThemeDefault", - testableResource: pingone_testable_resources.BrandingThemeDefault(t, clientInfo), + testableResource: pingone_platform_testable_resources.BrandingThemeDefault(t, clientInfo), ignoredErrors: nil, }, { name: "Certificate", - testableResource: pingone_testable_resources.Certificate(t, clientInfo), + testableResource: pingone_platform_testable_resources.Certificate(t, clientInfo), ignoredErrors: []string{ "Error: Invalid combination of arguments", }, }, { name: "CustomDomain", - testableResource: pingone_testable_resources.CustomDomain(t, clientInfo), + testableResource: pingone_platform_testable_resources.CustomDomain(t, clientInfo), ignoredErrors: nil, }, { name: "Environment", - testableResource: pingone_testable_resources.Environment(t, clientInfo), + testableResource: pingone_platform_testable_resources.Environment(t, clientInfo), ignoredErrors: nil, }, { name: "Form", - testableResource: pingone_testable_resources.Form(t, clientInfo), + testableResource: pingone_platform_testable_resources.Form(t, clientInfo), ignoredErrors: nil, }, { name: "FormsRecaptchaV2", - testableResource: pingone_testable_resources.FormsRecaptchaV2(t, clientInfo), + testableResource: pingone_platform_testable_resources.FormsRecaptchaV2(t, clientInfo), ignoredErrors: []string{ "Error: Missing Configuration for Required Attribute", }, }, { name: "Gateway", - testableResource: pingone_testable_resources.Gateway(t, clientInfo), + testableResource: pingone_platform_testable_resources.Gateway(t, clientInfo), ignoredErrors: nil, }, { name: "GatewayCredential", - testableResource: pingone_testable_resources.GatewayCredential(t, clientInfo), + testableResource: pingone_platform_testable_resources.GatewayCredential(t, clientInfo), ignoredErrors: nil, }, { name: "GatewayRoleAssignment", - testableResource: pingone_testable_resources.GatewayRoleAssignment(t, clientInfo), + testableResource: pingone_platform_testable_resources.GatewayRoleAssignment(t, clientInfo), ignoredErrors: nil, }, { name: "IdentityPropagationPlan", - testableResource: pingone_testable_resources.IdentityPropagationPlan(t, clientInfo), + testableResource: pingone_platform_testable_resources.IdentityPropagationPlan(t, clientInfo), ignoredErrors: nil, }, { name: "Key", - testableResource: pingone_testable_resources.Key(t, clientInfo), + testableResource: pingone_platform_testable_resources.Key(t, clientInfo), ignoredErrors: nil, }, { name: "KeyRotationPolicy", - testableResource: pingone_testable_resources.KeyRotationPolicy(t, clientInfo), + testableResource: pingone_platform_testable_resources.KeyRotationPolicy(t, clientInfo), ignoredErrors: nil, }, { name: "Language", - testableResource: pingone_testable_resources.Language(t, clientInfo), + testableResource: pingone_platform_testable_resources.Language(t, clientInfo), ignoredErrors: []string{ "Error: The language code `pt` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", "Error: The language code `fr` is reserved and cannot be imported into this provider. Please use `pingone_language_override` for system-defined languages instead.", @@ -149,57 +149,57 @@ func TestPlatformTerraformPlan(t *testing.T) { }, { name: "LanguageUpdate", - testableResource: pingone_testable_resources.LanguageUpdate(t, clientInfo), + testableResource: pingone_platform_testable_resources.LanguageUpdate(t, clientInfo), ignoredErrors: nil, }, { name: "NotificationPolicy", - testableResource: pingone_testable_resources.NotificationPolicy(t, clientInfo), + testableResource: pingone_platform_testable_resources.NotificationPolicy(t, clientInfo), ignoredErrors: nil, }, { name: "NotificationSettings", - testableResource: pingone_testable_resources.NotificationSettings(t, clientInfo), + testableResource: pingone_platform_testable_resources.NotificationSettings(t, clientInfo), ignoredErrors: nil, }, { name: "NotificationSettingsEmail", - testableResource: pingone_testable_resources.NotificationSettingsEmail(t, clientInfo), + testableResource: pingone_platform_testable_resources.NotificationSettingsEmail(t, clientInfo), ignoredErrors: []string{ "Error: Missing Configuration for Required Attribute", }, }, { name: "NotificationTemplateContent", - testableResource: pingone_testable_resources.NotificationTemplateContent(t, clientInfo), + testableResource: pingone_platform_testable_resources.NotificationTemplateContent(t, clientInfo), ignoredErrors: nil, }, { name: "PhoneDeliverySettings", - testableResource: pingone_testable_resources.PhoneDeliverySettings(t, clientInfo), + testableResource: pingone_platform_testable_resources.PhoneDeliverySettings(t, clientInfo), ignoredErrors: []string{ "Error: Missing required argument", }, }, { name: "SystemApplication", - testableResource: pingone_testable_resources.SystemApplication(t, clientInfo), + testableResource: pingone_platform_testable_resources.SystemApplication(t, clientInfo), ignoredErrors: nil, }, // TODO: Currently unable to create a trusted email address via API due to trust email domain verification requirement // { // name: "TrustedEmailAddress", - // testableResource: pingone_testable_resources.TrustedEmailAddress(t, clientInfo), + // testableResource: pingone_platform_testable_resources.TrustedEmailAddress(t, clientInfo), // ignoredErrors: nil, // }, { name: "TrustedEmailDomain", - testableResource: pingone_testable_resources.TrustedEmailDomain(t, clientInfo), + testableResource: pingone_platform_testable_resources.TrustedEmailDomain(t, clientInfo), ignoredErrors: nil, }, { name: "Webhook", - testableResource: pingone_testable_resources.Webhook(t, clientInfo), + testableResource: pingone_platform_testable_resources.Webhook(t, clientInfo), ignoredErrors: nil, }, } diff --git a/internal/connector/pingone/platform/resources/agreement_enable_test.go b/internal/connector/pingone/platform/resources/agreement_enable_test.go index e3daa3b0..66bdbd43 100644 --- a/internal/connector/pingone/platform/resources/agreement_enable_test.go +++ b/internal/connector/pingone/platform/resources/agreement_enable_test.go @@ -9,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_AgreementEnable(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.AgreementEnable(t, clientInfo) + tr := pingone_platform_testable_resources.AgreementEnable(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/agreement_localization_enable_test.go b/internal/connector/pingone/platform/resources/agreement_localization_enable_test.go index e7a29f19..d69a2617 100644 --- a/internal/connector/pingone/platform/resources/agreement_localization_enable_test.go +++ b/internal/connector/pingone/platform/resources/agreement_localization_enable_test.go @@ -9,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_AgreementLocalizationEnable(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.AgreementLocalizationEnable(t, clientInfo) + tr := pingone_platform_testable_resources.AgreementLocalizationEnable(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/agreement_localization_revision_test.go b/internal/connector/pingone/platform/resources/agreement_localization_revision_test.go index e76cd6d8..8fdffa9f 100644 --- a/internal/connector/pingone/platform/resources/agreement_localization_revision_test.go +++ b/internal/connector/pingone/platform/resources/agreement_localization_revision_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_AgreementLocalizationRevision(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.AgreementLocalizationRevision(t, clientInfo) + tr := pingone_platform_testable_resources.AgreementLocalizationRevision(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/agreement_localization_test.go b/internal/connector/pingone/platform/resources/agreement_localization_test.go index 5a4e239b..ec87aa57 100644 --- a/internal/connector/pingone/platform/resources/agreement_localization_test.go +++ b/internal/connector/pingone/platform/resources/agreement_localization_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_AgreementLocalization(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.AgreementLocalization(t, clientInfo) + tr := pingone_platform_testable_resources.AgreementLocalization(t, clientInfo) agreementTr := tr.Dependencies[0] tr.CreateResource(t) diff --git a/internal/connector/pingone/platform/resources/agreement_test.go b/internal/connector/pingone/platform/resources/agreement_test.go index 56c83b8e..13f320d7 100644 --- a/internal/connector/pingone/platform/resources/agreement_test.go +++ b/internal/connector/pingone/platform/resources/agreement_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_Agreement(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.Agreement(t, clientInfo) + tr := pingone_platform_testable_resources.Agreement(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/alert_channel_test.go b/internal/connector/pingone/platform/resources/alert_channel_test.go index cfa80160..9d97be5d 100644 --- a/internal/connector/pingone/platform/resources/alert_channel_test.go +++ b/internal/connector/pingone/platform/resources/alert_channel_test.go @@ -9,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func TestAlertChannelExport(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.AlertChannel(t, clientInfo) + tr := pingone_platform_testable_resources.AlertChannel(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/branding_settings_test.go b/internal/connector/pingone/platform/resources/branding_settings_test.go index 6e9cbf95..f6e79034 100644 --- a/internal/connector/pingone/platform/resources/branding_settings_test.go +++ b/internal/connector/pingone/platform/resources/branding_settings_test.go @@ -8,13 +8,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_BrandingSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.BrandingSettings(t, clientInfo) + tr := pingone_platform_testable_resources.BrandingSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { diff --git a/internal/connector/pingone/platform/resources/branding_theme_default_test.go b/internal/connector/pingone/platform/resources/branding_theme_default_test.go index c7c3b5d0..bf799a69 100644 --- a/internal/connector/pingone/platform/resources/branding_theme_default_test.go +++ b/internal/connector/pingone/platform/resources/branding_theme_default_test.go @@ -8,13 +8,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_BrandingThemeDefault(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.BrandingThemeDefault(t, clientInfo) + tr := pingone_platform_testable_resources.BrandingThemeDefault(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { diff --git a/internal/connector/pingone/platform/resources/branding_theme_test.go b/internal/connector/pingone/platform/resources/branding_theme_test.go index b9566ef8..c70220a0 100644 --- a/internal/connector/pingone/platform/resources/branding_theme_test.go +++ b/internal/connector/pingone/platform/resources/branding_theme_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_BrandingTheme(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.BrandingTheme(t, clientInfo) + tr := pingone_platform_testable_resources.BrandingTheme(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/certificate_test.go b/internal/connector/pingone/platform/resources/certificate_test.go index 67d485fc..aa8e925b 100644 --- a/internal/connector/pingone/platform/resources/certificate_test.go +++ b/internal/connector/pingone/platform/resources/certificate_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_Certificate(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.Certificate(t, clientInfo) + tr := pingone_platform_testable_resources.Certificate(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/custom_domain_test.go b/internal/connector/pingone/platform/resources/custom_domain_test.go index c03affc2..bc09e1ff 100644 --- a/internal/connector/pingone/platform/resources/custom_domain_test.go +++ b/internal/connector/pingone/platform/resources/custom_domain_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_CustomDomain(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.CustomDomain(t, clientInfo) + tr := pingone_platform_testable_resources.CustomDomain(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/environment_test.go b/internal/connector/pingone/platform/resources/environment_test.go index f29622a1..d7cd9d41 100644 --- a/internal/connector/pingone/platform/resources/environment_test.go +++ b/internal/connector/pingone/platform/resources/environment_test.go @@ -8,13 +8,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_Environment(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.Environment(t, clientInfo) + tr := pingone_platform_testable_resources.Environment(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { diff --git a/internal/connector/pingone/platform/resources/form_test.go b/internal/connector/pingone/platform/resources/form_test.go index 06bd6486..547dc76d 100644 --- a/internal/connector/pingone/platform/resources/form_test.go +++ b/internal/connector/pingone/platform/resources/form_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_Form(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.Form(t, clientInfo) + tr := pingone_platform_testable_resources.Form(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/forms_recaptcha_v2_test.go b/internal/connector/pingone/platform/resources/forms_recaptcha_v2_test.go index 48e8c7e2..a0c8e3d1 100644 --- a/internal/connector/pingone/platform/resources/forms_recaptcha_v2_test.go +++ b/internal/connector/pingone/platform/resources/forms_recaptcha_v2_test.go @@ -8,13 +8,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_FormsRecaptchaV2(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.FormsRecaptchaV2(t, clientInfo) + tr := pingone_platform_testable_resources.FormsRecaptchaV2(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/gateway_credential_test.go b/internal/connector/pingone/platform/resources/gateway_credential_test.go index 80672656..4a718346 100644 --- a/internal/connector/pingone/platform/resources/gateway_credential_test.go +++ b/internal/connector/pingone/platform/resources/gateway_credential_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_GatewayCredential(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.GatewayCredential(t, clientInfo) + tr := pingone_platform_testable_resources.GatewayCredential(t, clientInfo) gatewayTr := tr.Dependencies[0] tr.CreateResource(t) diff --git a/internal/connector/pingone/platform/resources/gateway_role_assignment_test.go b/internal/connector/pingone/platform/resources/gateway_role_assignment_test.go index 6d53e1db..55ba60ed 100644 --- a/internal/connector/pingone/platform/resources/gateway_role_assignment_test.go +++ b/internal/connector/pingone/platform/resources/gateway_role_assignment_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_GatewayRoleAssignment(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.GatewayRoleAssignment(t, clientInfo) + tr := pingone_platform_testable_resources.GatewayRoleAssignment(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/gateway_test.go b/internal/connector/pingone/platform/resources/gateway_test.go index 60cde453..ebd9eee5 100644 --- a/internal/connector/pingone/platform/resources/gateway_test.go +++ b/internal/connector/pingone/platform/resources/gateway_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_Gateway(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.Gateway(t, clientInfo) + tr := pingone_platform_testable_resources.Gateway(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/identity_propagation_plan_test.go b/internal/connector/pingone/platform/resources/identity_propagation_plan_test.go index be11c42c..22b11136 100644 --- a/internal/connector/pingone/platform/resources/identity_propagation_plan_test.go +++ b/internal/connector/pingone/platform/resources/identity_propagation_plan_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_IdentityPropagationPlan(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.IdentityPropagationPlan(t, clientInfo) + tr := pingone_platform_testable_resources.IdentityPropagationPlan(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/key_rotation_policy_test.go b/internal/connector/pingone/platform/resources/key_rotation_policy_test.go index b60b023f..94a90864 100644 --- a/internal/connector/pingone/platform/resources/key_rotation_policy_test.go +++ b/internal/connector/pingone/platform/resources/key_rotation_policy_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_KeyRotationPolicy(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.KeyRotationPolicy(t, clientInfo) + tr := pingone_platform_testable_resources.KeyRotationPolicy(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/key_test.go b/internal/connector/pingone/platform/resources/key_test.go index f411aa63..b53e76d9 100644 --- a/internal/connector/pingone/platform/resources/key_test.go +++ b/internal/connector/pingone/platform/resources/key_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_Key(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.Key(t, clientInfo) + tr := pingone_platform_testable_resources.Key(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/language_test.go b/internal/connector/pingone/platform/resources/language_test.go index 63058b35..a6d5d677 100644 --- a/internal/connector/pingone/platform/resources/language_test.go +++ b/internal/connector/pingone/platform/resources/language_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_Language(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.Language(t, clientInfo) + tr := pingone_platform_testable_resources.Language(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/language_update_test.go b/internal/connector/pingone/platform/resources/language_update_test.go index 536bddac..dd125ad6 100644 --- a/internal/connector/pingone/platform/resources/language_update_test.go +++ b/internal/connector/pingone/platform/resources/language_update_test.go @@ -9,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func TestLanguageUpdateExport(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.LanguageUpdate(t, clientInfo) + tr := pingone_platform_testable_resources.LanguageUpdate(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/notification_policy_test.go b/internal/connector/pingone/platform/resources/notification_policy_test.go index 412de7e8..ba390ecc 100644 --- a/internal/connector/pingone/platform/resources/notification_policy_test.go +++ b/internal/connector/pingone/platform/resources/notification_policy_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_NotificationPolicy(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.NotificationPolicy(t, clientInfo) + tr := pingone_platform_testable_resources.NotificationPolicy(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/notification_settings_email_test.go b/internal/connector/pingone/platform/resources/notification_settings_email_test.go index b60b395a..4354228c 100644 --- a/internal/connector/pingone/platform/resources/notification_settings_email_test.go +++ b/internal/connector/pingone/platform/resources/notification_settings_email_test.go @@ -8,13 +8,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_NotificationSettingsEmail(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.NotificationSettingsEmail(t, clientInfo) + tr := pingone_platform_testable_resources.NotificationSettingsEmail(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { diff --git a/internal/connector/pingone/platform/resources/notification_settings_test.go b/internal/connector/pingone/platform/resources/notification_settings_test.go index 189068cd..d7d4a3d5 100644 --- a/internal/connector/pingone/platform/resources/notification_settings_test.go +++ b/internal/connector/pingone/platform/resources/notification_settings_test.go @@ -8,13 +8,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_NotificationSettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.NotificationSettings(t, clientInfo) + tr := pingone_platform_testable_resources.NotificationSettings(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{ { diff --git a/internal/connector/pingone/platform/resources/notification_template_content_test.go b/internal/connector/pingone/platform/resources/notification_template_content_test.go index a27f543a..cc859a2f 100644 --- a/internal/connector/pingone/platform/resources/notification_template_content_test.go +++ b/internal/connector/pingone/platform/resources/notification_template_content_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_NotificationTemplateContent(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.NotificationTemplateContent(t, clientInfo) + tr := pingone_platform_testable_resources.NotificationTemplateContent(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/phone_delivery_settings_test.go b/internal/connector/pingone/platform/resources/phone_delivery_settings_test.go index 8817b6f3..064a4869 100644 --- a/internal/connector/pingone/platform/resources/phone_delivery_settings_test.go +++ b/internal/connector/pingone/platform/resources/phone_delivery_settings_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_PhoneDeliverySettings(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.PhoneDeliverySettings(t, clientInfo) + tr := pingone_platform_testable_resources.PhoneDeliverySettings(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/system_application_test.go b/internal/connector/pingone/platform/resources/system_application_test.go index 79048966..b3881c92 100644 --- a/internal/connector/pingone/platform/resources/system_application_test.go +++ b/internal/connector/pingone/platform/resources/system_application_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/connector/pingone" "github.com/pingidentity/pingcli/internal/testing/testutils" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func TestSystemApplicationExport(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.SystemApplication(t, clientInfo) + tr := pingone_platform_testable_resources.SystemApplication(t, clientInfo) expectedImportBlocks := []connector.ImportBlock{} diff --git a/internal/connector/pingone/platform/resources/trusted_email_address_test.go b/internal/connector/pingone/platform/resources/trusted_email_address_test.go index 72428226..dddc15ac 100644 --- a/internal/connector/pingone/platform/resources/trusted_email_address_test.go +++ b/internal/connector/pingone/platform/resources/trusted_email_address_test.go @@ -8,13 +8,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_TrustedEmailAddress(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.TrustedEmailAddress(t, clientInfo) + tr := pingone_platform_testable_resources.TrustedEmailAddress(t, clientInfo) // TODO: Currently unable to create a trusted email address via API due to trust email domain verification requirement // trustedEmailDomainTr := tr.Dependencies[0] diff --git a/internal/connector/pingone/platform/resources/trusted_email_domain_test.go b/internal/connector/pingone/platform/resources/trusted_email_domain_test.go index c43e282c..25fb3348 100644 --- a/internal/connector/pingone/platform/resources/trusted_email_domain_test.go +++ b/internal/connector/pingone/platform/resources/trusted_email_domain_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_TrustedEmailDomain(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.TrustedEmailDomain(t, clientInfo) + tr := pingone_platform_testable_resources.TrustedEmailDomain(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/platform/resources/webhook_test.go b/internal/connector/pingone/platform/resources/webhook_test.go index f9287a8b..5ed3e95e 100644 --- a/internal/connector/pingone/platform/resources/webhook_test.go +++ b/internal/connector/pingone/platform/resources/webhook_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" ) func Test_Webhook(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.Webhook(t, clientInfo) + tr := pingone_platform_testable_resources.Webhook(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/protect/pingone_protect_connector_test.go b/internal/connector/pingone/protect/pingone_protect_connector_test.go index 30e5f907..42c82369 100644 --- a/internal/connector/pingone/protect/pingone_protect_connector_test.go +++ b/internal/connector/pingone/protect/pingone_protect_connector_test.go @@ -5,9 +5,9 @@ package protect_test import ( "testing" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/protect/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_protect_testable_resources" "github.com/pingidentity/pingcli/internal/testing/testutils_terraform" ) @@ -17,25 +17,30 @@ func TestProtectTerraformPlan(t *testing.T) { testutils_terraform.InitPingOneTerraform(t) testCases := []struct { - name string - resource connector.ExportableResource - ignoredErrors []string + name string + testableResource *testutils_resource.TestableResource + ignoredErrors []string }{ { - name: "RiskPolicy", - resource: resources.RiskPolicy(clientInfo), - ignoredErrors: nil, + name: "RiskPolicy", + testableResource: pingone_protect_testable_resources.RiskPolicy(t, clientInfo), + ignoredErrors: []string{ + "Error: Invalid Attribute Combination", + }, }, { - name: "RiskPredictor", - resource: resources.RiskPredictor(clientInfo), - ignoredErrors: nil, + name: "RiskPredictor", + testableResource: pingone_protect_testable_resources.RiskPredictor(t, clientInfo), + ignoredErrors: nil, }, } for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { - testutils_terraform.ValidateTerraformPlan(t, tc.resource, tc.ignoredErrors) + tc.testableResource.CreateResource(t) + defer tc.testableResource.DeleteResource(t) + + testutils_terraform.ValidateTerraformPlan(t, tc.testableResource.ExportableResource, tc.ignoredErrors) }) } } diff --git a/internal/connector/pingone/protect/resources/pingone_risk_policy_test.go b/internal/connector/pingone/protect/resources/pingone_risk_policy_test.go deleted file mode 100644 index b91779c4..00000000 --- a/internal/connector/pingone/protect/resources/pingone_risk_policy_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/protect/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestRiskPolicyExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.RiskPolicy(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_risk_policy", - ResourceName: "Default Risk Policy", - ResourceID: fmt.Sprintf("%s/f277d6e2-e073-018c-1b78-8be4cd16d898", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_risk_policy", - ResourceName: "Test Risk Polict", - ResourceID: fmt.Sprintf("%s/9964b80b-3140-4d70-9ed5-ff29baf8438f", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/protect/resources/pingone_risk_predictor.go b/internal/connector/pingone/protect/resources/pingone_risk_predictor.go deleted file mode 100644 index e184c976..00000000 --- a/internal/connector/pingone/protect/resources/pingone_risk_predictor.go +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/risk" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingOneRiskPredictorResource{} -) - -type PingOneRiskPredictorResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingOneRiskPredictorResource -func RiskPredictor(clientInfo *connector.ClientInfo) *PingOneRiskPredictorResource { - return &PingOneRiskPredictorResource{ - clientInfo: clientInfo, - } -} - -func (r *PingOneRiskPredictorResource) ResourceType() string { - return "pingone_risk_predictor" -} - -func (r *PingOneRiskPredictorResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - riskPredictorData, err := r.getRiskPredictorData() - if err != nil { - return nil, err - } - - for riskPredictorId, riskPredictorInfo := range riskPredictorData { - riskPredictorName := riskPredictorInfo[0] - riskPredictorType := riskPredictorInfo[1] - - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - "Risk Predictor ID": riskPredictorId, - "Risk Predictor Name": riskPredictorName, - "Risk Predictor Type": riskPredictorType, - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", riskPredictorType, riskPredictorName), - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, riskPredictorId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingOneRiskPredictorResource) getRiskPredictorData() (map[string][]string, error) { - riskPredictorData := make(map[string][]string) - - iter := r.clientInfo.PingOneApiClient.RiskAPIClient.RiskAdvancedPredictorsApi.ReadAllRiskPredictors(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - riskPredictors, err := pingone.GetRiskAPIObjectsFromIterator[risk.RiskPredictor](iter, "ReadAllRiskPredictors", "GetRiskPredictors", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, riskPredictor := range riskPredictors { - var ( - riskPredictorId *string - riskPredictorIdOk bool - riskPredictorName *string - riskPredictorNameOk bool - riskPredictorType *risk.EnumPredictorType - riskPredictorTypeOk bool - ) - - switch { - case riskPredictor.RiskPredictorAdversaryInTheMiddle != nil: - riskPredictorId, riskPredictorIdOk = riskPredictor.RiskPredictorAdversaryInTheMiddle.GetIdOk() - riskPredictorName, riskPredictorNameOk = riskPredictor.RiskPredictorAdversaryInTheMiddle.GetNameOk() - riskPredictorType, riskPredictorTypeOk = riskPredictor.RiskPredictorAdversaryInTheMiddle.GetTypeOk() - case riskPredictor.RiskPredictorAnonymousNetwork != nil: - riskPredictorId, riskPredictorIdOk = riskPredictor.RiskPredictorAnonymousNetwork.GetIdOk() - riskPredictorName, riskPredictorNameOk = riskPredictor.RiskPredictorAnonymousNetwork.GetNameOk() - riskPredictorType, riskPredictorTypeOk = riskPredictor.RiskPredictorAnonymousNetwork.GetTypeOk() - case riskPredictor.RiskPredictorBotDetection != nil: - riskPredictorId, riskPredictorIdOk = riskPredictor.RiskPredictorBotDetection.GetIdOk() - riskPredictorName, riskPredictorNameOk = riskPredictor.RiskPredictorBotDetection.GetNameOk() - riskPredictorType, riskPredictorTypeOk = riskPredictor.RiskPredictorBotDetection.GetTypeOk() - case riskPredictor.RiskPredictorCommon != nil: - riskPredictorId, riskPredictorIdOk = riskPredictor.RiskPredictorCommon.GetIdOk() - riskPredictorName, riskPredictorNameOk = riskPredictor.RiskPredictorCommon.GetNameOk() - riskPredictorType, riskPredictorTypeOk = riskPredictor.RiskPredictorCommon.GetTypeOk() - case riskPredictor.RiskPredictorComposite != nil: - riskPredictorId, riskPredictorIdOk = riskPredictor.RiskPredictorComposite.GetIdOk() - riskPredictorName, riskPredictorNameOk = riskPredictor.RiskPredictorComposite.GetNameOk() - riskPredictorType, riskPredictorTypeOk = riskPredictor.RiskPredictorComposite.GetTypeOk() - case riskPredictor.RiskPredictorCustom != nil: - riskPredictorId, riskPredictorIdOk = riskPredictor.RiskPredictorCustom.GetIdOk() - riskPredictorName, riskPredictorNameOk = riskPredictor.RiskPredictorCustom.GetNameOk() - riskPredictorType, riskPredictorTypeOk = riskPredictor.RiskPredictorCustom.GetTypeOk() - case riskPredictor.RiskPredictorDevice != nil: - riskPredictorId, riskPredictorIdOk = riskPredictor.RiskPredictorDevice.GetIdOk() - riskPredictorName, riskPredictorNameOk = riskPredictor.RiskPredictorDevice.GetNameOk() - riskPredictorType, riskPredictorTypeOk = riskPredictor.RiskPredictorDevice.GetTypeOk() - case riskPredictor.RiskPredictorEmailReputation != nil: - riskPredictorId, riskPredictorIdOk = riskPredictor.RiskPredictorEmailReputation.GetIdOk() - riskPredictorName, riskPredictorNameOk = riskPredictor.RiskPredictorEmailReputation.GetNameOk() - riskPredictorType, riskPredictorTypeOk = riskPredictor.RiskPredictorEmailReputation.GetTypeOk() - case riskPredictor.RiskPredictorGeovelocity != nil: - riskPredictorId, riskPredictorIdOk = riskPredictor.RiskPredictorGeovelocity.GetIdOk() - riskPredictorName, riskPredictorNameOk = riskPredictor.RiskPredictorGeovelocity.GetNameOk() - riskPredictorType, riskPredictorTypeOk = riskPredictor.RiskPredictorGeovelocity.GetTypeOk() - case riskPredictor.RiskPredictorIPReputation != nil: - riskPredictorId, riskPredictorIdOk = riskPredictor.RiskPredictorIPReputation.GetIdOk() - riskPredictorName, riskPredictorNameOk = riskPredictor.RiskPredictorIPReputation.GetNameOk() - riskPredictorType, riskPredictorTypeOk = riskPredictor.RiskPredictorIPReputation.GetTypeOk() - case riskPredictor.RiskPredictorUserLocationAnomaly != nil: - riskPredictorId, riskPredictorIdOk = riskPredictor.RiskPredictorUserLocationAnomaly.GetIdOk() - riskPredictorName, riskPredictorNameOk = riskPredictor.RiskPredictorUserLocationAnomaly.GetNameOk() - riskPredictorType, riskPredictorTypeOk = riskPredictor.RiskPredictorUserLocationAnomaly.GetTypeOk() - case riskPredictor.RiskPredictorUserRiskBehavior != nil: - riskPredictorId, riskPredictorIdOk = riskPredictor.RiskPredictorUserRiskBehavior.GetIdOk() - riskPredictorName, riskPredictorNameOk = riskPredictor.RiskPredictorUserRiskBehavior.GetNameOk() - riskPredictorType, riskPredictorTypeOk = riskPredictor.RiskPredictorUserRiskBehavior.GetTypeOk() - case riskPredictor.RiskPredictorVelocity != nil: - riskPredictorId, riskPredictorIdOk = riskPredictor.RiskPredictorVelocity.GetIdOk() - riskPredictorName, riskPredictorNameOk = riskPredictor.RiskPredictorVelocity.GetNameOk() - riskPredictorType, riskPredictorTypeOk = riskPredictor.RiskPredictorVelocity.GetTypeOk() - default: - continue - } - - if riskPredictorIdOk && riskPredictorNameOk && riskPredictorTypeOk { - riskPredictorData[*riskPredictorId] = []string{*riskPredictorName, string(*riskPredictorType)} - } - } - - return riskPredictorData, nil -} diff --git a/internal/connector/pingone/protect/resources/pingone_risk_predictor_test.go b/internal/connector/pingone/protect/resources/pingone_risk_predictor_test.go deleted file mode 100644 index ddbfea14..00000000 --- a/internal/connector/pingone/protect/resources/pingone_risk_predictor_test.go +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/protect/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestRiskPredictorExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.RiskPredictor(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_risk_predictor", - ResourceName: "USER_RISK_BEHAVIOR_User Risk Behavior", - ResourceID: fmt.Sprintf("%s/b7a259a3-f762-03df-1c0c-4c558a94e783", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_risk_predictor", - ResourceName: "VELOCITY_IP Velocity", - ResourceID: fmt.Sprintf("%s/eaf75445-0fa4-07f9-31f6-806a6b513b59", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_risk_predictor", - ResourceName: "VELOCITY_User Velocity", - ResourceID: fmt.Sprintf("%s/ab6c4119-90c4-0f07-0708-bf7802182a70", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_risk_predictor", - ResourceName: "USER_RISK_BEHAVIOR_User-Based Risk Behavior", - ResourceID: fmt.Sprintf("%s/f6e64983-2ae1-0b02-2af4-73389ce879fa", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_risk_predictor", - ResourceName: "DEVICE_New Device", - ResourceID: fmt.Sprintf("%s/b5339087-4e8c-08da-0c51-c826d67ca317", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_risk_predictor", - ResourceName: "ANONYMOUS_NETWORK_Anonymous Network Detection", - ResourceID: fmt.Sprintf("%s/1bb86739-b74d-0882-1fbb-4da12fc3afc9", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_risk_predictor", - ResourceName: "IP_REPUTATION_IP Reputation", - ResourceID: fmt.Sprintf("%s/c2753cc6-21b0-0490-3526-de9082c47fac", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_risk_predictor", - ResourceName: "GEO_VELOCITY_Geovelocity Anomaly", - ResourceID: fmt.Sprintf("%s/13c1f49f-0f98-0870-2b3c-cf68549e9a4a", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_risk_predictor", - ResourceName: "USER_LOCATION_ANOMALY_User Location Anomaly", - ResourceID: fmt.Sprintf("%s/6c2a6e1f-f345-07a3-348e-8d820577338f", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_risk_predictor", - ResourceName: "BOT_Bot Detection", - ResourceID: fmt.Sprintf("%s/818db5ee-209f-0371-18cf-f440ecbe3982", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_risk_predictor", - ResourceName: "DEVICE_Suspicious Device", - ResourceID: fmt.Sprintf("%s/dd53d209-c3eb-0980-3acb-0d1d4ecc10d1", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_risk_predictor", - ResourceName: "ADVERSARY_IN_THE_MIDDLE_Adversary In The Middle", - ResourceID: fmt.Sprintf("%s/8e9a0b6f-61a8-06a1-2bdb-fc168000a55d", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_risk_predictor", - ResourceName: "EMAIL_REPUTATION_Email Reputation", - ResourceID: fmt.Sprintf("%s/0a59b68e-e772-0eed-213a-a351f275f418", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/protect/resources/pingone_risk_policy.go b/internal/connector/pingone/protect/resources/risk_policy.go similarity index 66% rename from internal/connector/pingone/protect/resources/pingone_risk_policy.go rename to internal/connector/pingone/protect/resources/risk_policy.go index 8c4b724e..61d47119 100644 --- a/internal/connector/pingone/protect/resources/pingone_risk_policy.go +++ b/internal/connector/pingone/protect/resources/risk_policy.go @@ -1,4 +1,5 @@ // Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator package resources @@ -38,23 +39,23 @@ func (r *PingOneRiskPolicyResource) ExportAll() (*[]connector.ImportBlock, error importBlocks := []connector.ImportBlock{} - riskPolicySetData, err := r.getRiskPolicySetData() + riskPolicyData, err := r.getRiskPolicyData() if err != nil { return nil, err } - for riskPolicySetId, riskPolicySetName := range riskPolicySetData { + for riskPolicyId, riskPolicyName := range riskPolicyData { commentData := map[string]string{ + "Risk Policy ID": riskPolicyId, + "Risk Policy Name": riskPolicyName, "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Resource Type": r.ResourceType(), - "Risk Policy ID": riskPolicySetId, - "Risk Policy Name": riskPolicySetName, } importBlock := connector.ImportBlock{ ResourceType: r.ResourceType(), - ResourceName: riskPolicySetName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, riskPolicySetId), + ResourceName: riskPolicyName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, riskPolicyId), CommentInformation: common.GenerateCommentInformation(commentData), } @@ -64,23 +65,23 @@ func (r *PingOneRiskPolicyResource) ExportAll() (*[]connector.ImportBlock, error return &importBlocks, nil } -func (r *PingOneRiskPolicyResource) getRiskPolicySetData() (map[string]string, error) { - riskPolicySetData := make(map[string]string) +func (r *PingOneRiskPolicyResource) getRiskPolicyData() (map[string]string, error) { + riskPolicyData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.RiskAPIClient.RiskPoliciesApi.ReadRiskPolicySets(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - riskPolicySets, err := pingone.GetRiskAPIObjectsFromIterator[risk.RiskPolicySet](iter, "ReadRiskPolicySets", "GetRiskPolicySets", r.ResourceType()) + apiObjs, err := pingone.GetRiskAPIObjectsFromIterator[risk.RiskPolicySet](iter, "ReadRiskPolicySets", "GetRiskPolicySets", r.ResourceType()) if err != nil { return nil, err } - for _, riskPolicySet := range riskPolicySets { - riskPolicySetName, riskPolicySetNameOk := riskPolicySet.GetNameOk() - riskPolicySetId, riskPolicySetIdOk := riskPolicySet.GetIdOk() + for _, riskPolicy := range apiObjs { + riskPolicyId, riskPolicyIdOk := riskPolicy.GetIdOk() + riskPolicyName, riskPolicyNameOk := riskPolicy.GetNameOk() - if riskPolicySetIdOk && riskPolicySetNameOk { - riskPolicySetData[*riskPolicySetId] = *riskPolicySetName + if riskPolicyIdOk && riskPolicyNameOk { + riskPolicyData[*riskPolicyId] = *riskPolicyName } } - return riskPolicySetData, nil + return riskPolicyData, nil } diff --git a/internal/connector/pingone/protect/resources/risk_policy_test.go b/internal/connector/pingone/protect/resources/risk_policy_test.go new file mode 100644 index 00000000..486b88bf --- /dev/null +++ b/internal/connector/pingone/protect/resources/risk_policy_test.go @@ -0,0 +1,34 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_protect_testable_resources" +) + +func Test_RiskPolicy(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_protect_testable_resources.RiskPolicy(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing risk policies are generated. test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/protect/resources/risk_predictor.go b/internal/connector/pingone/protect/resources/risk_predictor.go new file mode 100644 index 00000000..e53ac712 --- /dev/null +++ b/internal/connector/pingone/protect/resources/risk_predictor.go @@ -0,0 +1,154 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/risk" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneRiskPredictorResource{} +) + +type PingOneRiskPredictorResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneRiskPredictorResource +func RiskPredictor(clientInfo *connector.ClientInfo) *PingOneRiskPredictorResource { + return &PingOneRiskPredictorResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneRiskPredictorResource) ResourceType() string { + return "pingone_risk_predictor" +} + +func (r *PingOneRiskPredictorResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + riskPredictorData, err := r.getRiskPredictorData() + if err != nil { + return nil, err + } + + for riskPredictorId, riskPredictorInfo := range riskPredictorData { + riskPredictorName := riskPredictorInfo[0] + riskPredictorType := riskPredictorInfo[1] + + commentData := map[string]string{ + "Risk Predictor ID": riskPredictorId, + "Risk Predictor Name": riskPredictorName, + "Risk Predictor Type": riskPredictorType, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", riskPredictorType, riskPredictorName), + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, riskPredictorId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneRiskPredictorResource) getRiskPredictorData() (map[string][]string, error) { + riskPredictorData := make(map[string][]string) + + iter := r.clientInfo.PingOneApiClient.RiskAPIClient.RiskAdvancedPredictorsApi.ReadAllRiskPredictors(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetRiskAPIObjectsFromIterator[risk.RiskPredictor](iter, "ReadAllRiskPredictors", "GetRiskPredictors", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, inner := range apiObjs { + var ( + riskPredictorId *string + riskPredictorIdOk bool + riskPredictorName *string + riskPredictorNameOk bool + riskPredictorType *risk.EnumPredictorType + riskPredictorTypeOk bool + ) + + switch { + case inner.RiskPredictorAdversaryInTheMiddle != nil: + riskPredictorId, riskPredictorIdOk = inner.RiskPredictorAdversaryInTheMiddle.GetIdOk() + riskPredictorName, riskPredictorNameOk = inner.RiskPredictorAdversaryInTheMiddle.GetNameOk() + riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorAdversaryInTheMiddle.GetTypeOk() + case inner.RiskPredictorAnonymousNetwork != nil: + riskPredictorId, riskPredictorIdOk = inner.RiskPredictorAnonymousNetwork.GetIdOk() + riskPredictorName, riskPredictorNameOk = inner.RiskPredictorAnonymousNetwork.GetNameOk() + riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorAnonymousNetwork.GetTypeOk() + case inner.RiskPredictorBotDetection != nil: + riskPredictorId, riskPredictorIdOk = inner.RiskPredictorBotDetection.GetIdOk() + riskPredictorName, riskPredictorNameOk = inner.RiskPredictorBotDetection.GetNameOk() + riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorBotDetection.GetTypeOk() + case inner.RiskPredictorCommon != nil: + riskPredictorId, riskPredictorIdOk = inner.RiskPredictorCommon.GetIdOk() + riskPredictorName, riskPredictorNameOk = inner.RiskPredictorCommon.GetNameOk() + riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorCommon.GetTypeOk() + case inner.RiskPredictorComposite != nil: + riskPredictorId, riskPredictorIdOk = inner.RiskPredictorComposite.GetIdOk() + riskPredictorName, riskPredictorNameOk = inner.RiskPredictorComposite.GetNameOk() + riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorComposite.GetTypeOk() + case inner.RiskPredictorCustom != nil: + riskPredictorId, riskPredictorIdOk = inner.RiskPredictorCustom.GetIdOk() + riskPredictorName, riskPredictorNameOk = inner.RiskPredictorCustom.GetNameOk() + riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorCustom.GetTypeOk() + case inner.RiskPredictorDevice != nil: + riskPredictorId, riskPredictorIdOk = inner.RiskPredictorDevice.GetIdOk() + riskPredictorName, riskPredictorNameOk = inner.RiskPredictorDevice.GetNameOk() + riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorDevice.GetTypeOk() + case inner.RiskPredictorEmailReputation != nil: + riskPredictorId, riskPredictorIdOk = inner.RiskPredictorEmailReputation.GetIdOk() + riskPredictorName, riskPredictorNameOk = inner.RiskPredictorEmailReputation.GetNameOk() + riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorEmailReputation.GetTypeOk() + case inner.RiskPredictorGeovelocity != nil: + riskPredictorId, riskPredictorIdOk = inner.RiskPredictorGeovelocity.GetIdOk() + riskPredictorName, riskPredictorNameOk = inner.RiskPredictorGeovelocity.GetNameOk() + riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorGeovelocity.GetTypeOk() + case inner.RiskPredictorIPReputation != nil: + riskPredictorId, riskPredictorIdOk = inner.RiskPredictorIPReputation.GetIdOk() + riskPredictorName, riskPredictorNameOk = inner.RiskPredictorIPReputation.GetNameOk() + riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorIPReputation.GetTypeOk() + case inner.RiskPredictorUserLocationAnomaly != nil: + riskPredictorId, riskPredictorIdOk = inner.RiskPredictorUserLocationAnomaly.GetIdOk() + riskPredictorName, riskPredictorNameOk = inner.RiskPredictorUserLocationAnomaly.GetNameOk() + riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorUserLocationAnomaly.GetTypeOk() + case inner.RiskPredictorUserRiskBehavior != nil: + riskPredictorId, riskPredictorIdOk = inner.RiskPredictorUserRiskBehavior.GetIdOk() + riskPredictorName, riskPredictorNameOk = inner.RiskPredictorUserRiskBehavior.GetNameOk() + riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorUserRiskBehavior.GetTypeOk() + case inner.RiskPredictorVelocity != nil: + riskPredictorId, riskPredictorIdOk = inner.RiskPredictorVelocity.GetIdOk() + riskPredictorName, riskPredictorNameOk = inner.RiskPredictorVelocity.GetNameOk() + riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorVelocity.GetTypeOk() + default: + continue + } + + if riskPredictorIdOk && riskPredictorNameOk && riskPredictorTypeOk { + riskPredictorData[*riskPredictorId] = []string{*riskPredictorName, string(*riskPredictorType)} + } + } + + return riskPredictorData, nil +} diff --git a/internal/connector/pingone/protect/resources/risk_predictor_test.go b/internal/connector/pingone/protect/resources/risk_predictor_test.go new file mode 100644 index 00000000..25ad5521 --- /dev/null +++ b/internal/connector/pingone/protect/resources/risk_predictor_test.go @@ -0,0 +1,34 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_protect_testable_resources" +) + +func Test_RiskPredictor(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_protect_testable_resources.RiskPredictor(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_TYPE], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + // Existing risk predictors are generated. test subset. + testutils.ValidateImportBlockSubset(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/sso/pingone_sso_connector_test.go b/internal/connector/pingone/sso/pingone_sso_connector_test.go index 09d09f95..5bd598a3 100644 --- a/internal/connector/pingone/sso/pingone_sso_connector_test.go +++ b/internal/connector/pingone/sso/pingone_sso_connector_test.go @@ -7,7 +7,7 @@ import ( "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" "github.com/pingidentity/pingcli/internal/testing/testutils_terraform" ) @@ -23,133 +23,133 @@ func TestSSOTerraformPlan(t *testing.T) { }{ { name: "Application", - testableResource: pingone_testable_resources.ApplicationDeviceAuthorization(t, clientInfo), + testableResource: pingone_sso_testable_resources.ApplicationDeviceAuthorization(t, clientInfo), ignoredErrors: nil, }, { name: "ApplicationAttributeMapping", - testableResource: pingone_testable_resources.ApplicationAttributeMapping(t, clientInfo), + testableResource: pingone_sso_testable_resources.ApplicationAttributeMapping(t, clientInfo), ignoredErrors: nil, }, { name: "ApplicationFlowPolicyAssignment", - testableResource: pingone_testable_resources.ApplicationFlowPolicyAssignment(t, clientInfo), + testableResource: pingone_sso_testable_resources.ApplicationFlowPolicyAssignment(t, clientInfo), ignoredErrors: nil, }, { name: "ApplicationResourceGrant", - testableResource: pingone_testable_resources.ApplicationResourceGrant(t, clientInfo), + testableResource: pingone_sso_testable_resources.ApplicationResourceGrant(t, clientInfo), ignoredErrors: nil, }, { name: "ApplicationRoleAssignment", - testableResource: pingone_testable_resources.ApplicationRoleAssignment(t, clientInfo), + testableResource: pingone_sso_testable_resources.ApplicationRoleAssignment(t, clientInfo), ignoredErrors: nil, }, { name: "ApplicationSecret", - testableResource: pingone_testable_resources.ApplicationSecret(t, clientInfo), + testableResource: pingone_sso_testable_resources.ApplicationSecret(t, clientInfo), ignoredErrors: nil, }, { name: "ApplicationSignOnPolicyAssignment", - testableResource: pingone_testable_resources.ApplicationSignOnPolicyAssignment(t, clientInfo), + testableResource: pingone_sso_testable_resources.ApplicationSignOnPolicyAssignment(t, clientInfo), ignoredErrors: nil, }, { name: "Group", - testableResource: pingone_testable_resources.Group(t, clientInfo), + testableResource: pingone_sso_testable_resources.Group(t, clientInfo), ignoredErrors: nil, }, { name: "GroupNesting", - testableResource: pingone_testable_resources.GroupNesting(t, clientInfo), + testableResource: pingone_sso_testable_resources.GroupNesting(t, clientInfo), ignoredErrors: nil, }, { name: "GroupRoleAssignment", - testableResource: pingone_testable_resources.GroupRoleAssignment(t, clientInfo), + testableResource: pingone_sso_testable_resources.GroupRoleAssignment(t, clientInfo), ignoredErrors: nil, }, { name: "IdentityProvider", - testableResource: pingone_testable_resources.IdentityProvider(t, clientInfo), + testableResource: pingone_sso_testable_resources.IdentityProvider(t, clientInfo), ignoredErrors: []string{ "Error: Missing Configuration for Required Attribute", }, }, { name: "IdentityProviderAttribute", - testableResource: pingone_testable_resources.IdentityProviderAttribute(t, clientInfo), + testableResource: pingone_sso_testable_resources.IdentityProviderAttribute(t, clientInfo), ignoredErrors: nil, }, { name: "PasswordPolicy", - testableResource: pingone_testable_resources.PasswordPolicy(t, clientInfo), + testableResource: pingone_sso_testable_resources.PasswordPolicy(t, clientInfo), ignoredErrors: nil, }, { name: "Population", - testableResource: pingone_testable_resources.Population(t, clientInfo), + testableResource: pingone_sso_testable_resources.Population(t, clientInfo), ignoredErrors: nil, }, { name: "PopulationDefault", - testableResource: pingone_testable_resources.PopulationDefault(t, clientInfo), + testableResource: pingone_sso_testable_resources.PopulationDefault(t, clientInfo), ignoredErrors: nil, }, { name: "PopulationDefaultIdp", - testableResource: pingone_testable_resources.PopulationDefaultIdentityProvider(t, clientInfo), + testableResource: pingone_sso_testable_resources.PopulationDefaultIdentityProvider(t, clientInfo), ignoredErrors: nil, }, { name: "Resource", - testableResource: pingone_testable_resources.Resource(t, clientInfo), + testableResource: pingone_sso_testable_resources.Resource(t, clientInfo), ignoredErrors: nil, }, { name: "ResourceAttribute", - testableResource: pingone_testable_resources.ResourceAttribute(t, clientInfo), + testableResource: pingone_sso_testable_resources.ResourceAttribute(t, clientInfo), ignoredErrors: nil, }, { name: "ResourceScope", - testableResource: pingone_testable_resources.ResourceScope(t, clientInfo), + testableResource: pingone_sso_testable_resources.ResourceScope(t, clientInfo), ignoredErrors: nil, }, { name: "ResourceScopeOpenId", - testableResource: pingone_testable_resources.ResourceScopeOpenId(t, clientInfo), + testableResource: pingone_sso_testable_resources.ResourceScopeOpenId(t, clientInfo), ignoredErrors: nil, }, { name: "ResourceScopePingOneApi", - testableResource: pingone_testable_resources.ResourceScopePingOneApi(t, clientInfo), + testableResource: pingone_sso_testable_resources.ResourceScopePingOneApi(t, clientInfo), ignoredErrors: []string{ "Error: Invalid Attribute Value Match", }, }, { name: "ResourceSecret", - testableResource: pingone_testable_resources.ResourceSecret(t, clientInfo), + testableResource: pingone_sso_testable_resources.ResourceSecret(t, clientInfo), ignoredErrors: nil, }, { name: "SchemaAttribute", - testableResource: pingone_testable_resources.SchemaAttribute(t, clientInfo), + testableResource: pingone_sso_testable_resources.SchemaAttribute(t, clientInfo), ignoredErrors: []string{ "Error: Data Loss Protection", }, }, { name: "SignOnPolicy", - testableResource: pingone_testable_resources.SignOnPolicy(t, clientInfo), + testableResource: pingone_sso_testable_resources.SignOnPolicy(t, clientInfo), ignoredErrors: nil, }, { name: "SignOnPolicyAction", - testableResource: pingone_testable_resources.SignOnPolicyAction(t, clientInfo), + testableResource: pingone_sso_testable_resources.SignOnPolicyAction(t, clientInfo), ignoredErrors: []string{ "Error: Conflicting configuration arguments", }, diff --git a/internal/connector/pingone/sso/resources/application_attribute_mapping_test.go b/internal/connector/pingone/sso/resources/application_attribute_mapping_test.go index c08d32dc..7467aea3 100644 --- a/internal/connector/pingone/sso/resources/application_attribute_mapping_test.go +++ b/internal/connector/pingone/sso/resources/application_attribute_mapping_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_ApplicationAttributeMapping(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.ApplicationAttributeMapping(t, clientInfo) + tr := pingone_sso_testable_resources.ApplicationAttributeMapping(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/application_flow_policy_assignment_test.go b/internal/connector/pingone/sso/resources/application_flow_policy_assignment_test.go index 8d296577..2621257b 100644 --- a/internal/connector/pingone/sso/resources/application_flow_policy_assignment_test.go +++ b/internal/connector/pingone/sso/resources/application_flow_policy_assignment_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_ApplicationFlowPolicyAssignment(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.ApplicationFlowPolicyAssignment(t, clientInfo) + tr := pingone_sso_testable_resources.ApplicationFlowPolicyAssignment(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/application_resource_grant_test.go b/internal/connector/pingone/sso/resources/application_resource_grant_test.go index 64ee73f1..5e26bbdc 100644 --- a/internal/connector/pingone/sso/resources/application_resource_grant_test.go +++ b/internal/connector/pingone/sso/resources/application_resource_grant_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_ApplicationResourceGrant(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.ApplicationResourceGrant(t, clientInfo) + tr := pingone_sso_testable_resources.ApplicationResourceGrant(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/application_role_assignment_test.go b/internal/connector/pingone/sso/resources/application_role_assignment_test.go index 6b182266..2efec77c 100644 --- a/internal/connector/pingone/sso/resources/application_role_assignment_test.go +++ b/internal/connector/pingone/sso/resources/application_role_assignment_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_ApplicationRoleAssignment(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.ApplicationRoleAssignment(t, clientInfo) + tr := pingone_sso_testable_resources.ApplicationRoleAssignment(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/application_secret_test.go b/internal/connector/pingone/sso/resources/application_secret_test.go index d72cb4ec..30ef16c3 100644 --- a/internal/connector/pingone/sso/resources/application_secret_test.go +++ b/internal/connector/pingone/sso/resources/application_secret_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_ApplicationSecret(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.ApplicationSecret(t, clientInfo) + tr := pingone_sso_testable_resources.ApplicationSecret(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/application_sign_on_policy_assignment_test.go b/internal/connector/pingone/sso/resources/application_sign_on_policy_assignment_test.go index 8b0c617c..e7d0f9aa 100644 --- a/internal/connector/pingone/sso/resources/application_sign_on_policy_assignment_test.go +++ b/internal/connector/pingone/sso/resources/application_sign_on_policy_assignment_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_ApplicationSignOnPolicyAssignment(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.ApplicationSignOnPolicyAssignment(t, clientInfo) + tr := pingone_sso_testable_resources.ApplicationSignOnPolicyAssignment(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/application_test.go b/internal/connector/pingone/sso/resources/application_test.go index fe473b3f..fb084e71 100644 --- a/internal/connector/pingone/sso/resources/application_test.go +++ b/internal/connector/pingone/sso/resources/application_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_Application(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.ApplicationDeviceAuthorization(t, clientInfo) + tr := pingone_sso_testable_resources.ApplicationDeviceAuthorization(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/group_nesting_test.go b/internal/connector/pingone/sso/resources/group_nesting_test.go index 2cf19778..a9b45043 100644 --- a/internal/connector/pingone/sso/resources/group_nesting_test.go +++ b/internal/connector/pingone/sso/resources/group_nesting_test.go @@ -9,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_GroupNesting(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.GroupNesting(t, clientInfo) + tr := pingone_sso_testable_resources.GroupNesting(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/group_role_assignment_test.go b/internal/connector/pingone/sso/resources/group_role_assignment_test.go index ad53d3f0..418fb565 100644 --- a/internal/connector/pingone/sso/resources/group_role_assignment_test.go +++ b/internal/connector/pingone/sso/resources/group_role_assignment_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_GroupRoleAssignment(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.GroupRoleAssignment(t, clientInfo) + tr := pingone_sso_testable_resources.GroupRoleAssignment(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/group_test.go b/internal/connector/pingone/sso/resources/group_test.go index a0abce6c..eaae4596 100644 --- a/internal/connector/pingone/sso/resources/group_test.go +++ b/internal/connector/pingone/sso/resources/group_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_Group(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.Group(t, clientInfo) + tr := pingone_sso_testable_resources.Group(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/identity_provider_attribute_test.go b/internal/connector/pingone/sso/resources/identity_provider_attribute_test.go index 991b02c1..653bcc6f 100644 --- a/internal/connector/pingone/sso/resources/identity_provider_attribute_test.go +++ b/internal/connector/pingone/sso/resources/identity_provider_attribute_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_IdentityProviderAttribute(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.IdentityProviderAttribute(t, clientInfo) + tr := pingone_sso_testable_resources.IdentityProviderAttribute(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/identity_provider_test.go b/internal/connector/pingone/sso/resources/identity_provider_test.go index 6c35602f..5709f673 100644 --- a/internal/connector/pingone/sso/resources/identity_provider_test.go +++ b/internal/connector/pingone/sso/resources/identity_provider_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_IdentityProvider(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.IdentityProvider(t, clientInfo) + tr := pingone_sso_testable_resources.IdentityProvider(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/password_policy_test.go b/internal/connector/pingone/sso/resources/password_policy_test.go index 05f9b2d9..d534594f 100644 --- a/internal/connector/pingone/sso/resources/password_policy_test.go +++ b/internal/connector/pingone/sso/resources/password_policy_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_PasswordPolicy(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.PasswordPolicy(t, clientInfo) + tr := pingone_sso_testable_resources.PasswordPolicy(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/population_default_identity_provider_test.go b/internal/connector/pingone/sso/resources/population_default_identity_provider_test.go index ec34f2c3..b8325bc9 100644 --- a/internal/connector/pingone/sso/resources/population_default_identity_provider_test.go +++ b/internal/connector/pingone/sso/resources/population_default_identity_provider_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_PopulationDefaultIdentityProvider(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.PopulationDefaultIdentityProvider(t, clientInfo) + tr := pingone_sso_testable_resources.PopulationDefaultIdentityProvider(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/population_default_test.go b/internal/connector/pingone/sso/resources/population_default_test.go index 5d835404..606662c7 100644 --- a/internal/connector/pingone/sso/resources/population_default_test.go +++ b/internal/connector/pingone/sso/resources/population_default_test.go @@ -9,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_PopulationDefault(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.PopulationDefault(t, clientInfo) + tr := pingone_sso_testable_resources.PopulationDefault(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/population_test.go b/internal/connector/pingone/sso/resources/population_test.go index 0d08acc7..e9203090 100644 --- a/internal/connector/pingone/sso/resources/population_test.go +++ b/internal/connector/pingone/sso/resources/population_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_Population(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.Population(t, clientInfo) + tr := pingone_sso_testable_resources.Population(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/resource_attribute_test.go b/internal/connector/pingone/sso/resources/resource_attribute_test.go index 2a41967e..6f442af0 100644 --- a/internal/connector/pingone/sso/resources/resource_attribute_test.go +++ b/internal/connector/pingone/sso/resources/resource_attribute_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_ResourceAttribute(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.ResourceAttribute(t, clientInfo) + tr := pingone_sso_testable_resources.ResourceAttribute(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/resource_scope_openid_test.go b/internal/connector/pingone/sso/resources/resource_scope_openid_test.go index 305005df..b9d72aa4 100644 --- a/internal/connector/pingone/sso/resources/resource_scope_openid_test.go +++ b/internal/connector/pingone/sso/resources/resource_scope_openid_test.go @@ -9,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_ResourceScopeOpenId(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.ResourceScopeOpenId(t, clientInfo) + tr := pingone_sso_testable_resources.ResourceScopeOpenId(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/resource_scope_pingone_api_test.go b/internal/connector/pingone/sso/resources/resource_scope_pingone_api_test.go index 4a78f8b1..0a2975ee 100644 --- a/internal/connector/pingone/sso/resources/resource_scope_pingone_api_test.go +++ b/internal/connector/pingone/sso/resources/resource_scope_pingone_api_test.go @@ -9,13 +9,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_ResourceScopePingOneApi(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.ResourceScopePingOneApi(t, clientInfo) + tr := pingone_sso_testable_resources.ResourceScopePingOneApi(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/resource_scope_test.go b/internal/connector/pingone/sso/resources/resource_scope_test.go index 312fe80c..bf98dd0a 100644 --- a/internal/connector/pingone/sso/resources/resource_scope_test.go +++ b/internal/connector/pingone/sso/resources/resource_scope_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_ResourceScope(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.ResourceScope(t, clientInfo) + tr := pingone_sso_testable_resources.ResourceScope(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/resource_secret_test.go b/internal/connector/pingone/sso/resources/resource_secret_test.go index a9013dfc..00be8040 100644 --- a/internal/connector/pingone/sso/resources/resource_secret_test.go +++ b/internal/connector/pingone/sso/resources/resource_secret_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_ResourceSecret(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.ResourceSecret(t, clientInfo) + tr := pingone_sso_testable_resources.ResourceSecret(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/resource_test.go b/internal/connector/pingone/sso/resources/resource_test.go index 4a39b787..52df7cc4 100644 --- a/internal/connector/pingone/sso/resources/resource_test.go +++ b/internal/connector/pingone/sso/resources/resource_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_Resource(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.Resource(t, clientInfo) + tr := pingone_sso_testable_resources.Resource(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/schema_attribute_test.go b/internal/connector/pingone/sso/resources/schema_attribute_test.go index 3ce76d84..ddf049c9 100644 --- a/internal/connector/pingone/sso/resources/schema_attribute_test.go +++ b/internal/connector/pingone/sso/resources/schema_attribute_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_SchemaAttribute(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.SchemaAttribute(t, clientInfo) + tr := pingone_sso_testable_resources.SchemaAttribute(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/sign_on_policy_action_test.go b/internal/connector/pingone/sso/resources/sign_on_policy_action_test.go index d9a6d04d..cff6fb77 100644 --- a/internal/connector/pingone/sso/resources/sign_on_policy_action_test.go +++ b/internal/connector/pingone/sso/resources/sign_on_policy_action_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_SignOnPolicyAction(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.SignOnPolicyAction(t, clientInfo) + tr := pingone_sso_testable_resources.SignOnPolicyAction(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/connector/pingone/sso/resources/sign_on_policy_test.go b/internal/connector/pingone/sso/resources/sign_on_policy_test.go index 296d8b87..829e282b 100644 --- a/internal/connector/pingone/sso/resources/sign_on_policy_test.go +++ b/internal/connector/pingone/sso/resources/sign_on_policy_test.go @@ -10,13 +10,13 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" ) func Test_SignOnPolicy(t *testing.T) { clientInfo := testutils.GetClientInfo(t) - tr := pingone_testable_resources.SignOnPolicy(t, clientInfo) + tr := pingone_sso_testable_resources.SignOnPolicy(t, clientInfo) tr.CreateResource(t) defer tr.DeleteResource(t) diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go b/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go index 86107df0..6d673d9c 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go @@ -8,7 +8,7 @@ import ( "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/connector/common" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" "github.com/pingidentity/pingcli/internal/utils" client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) @@ -22,7 +22,7 @@ func OutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo) *testu DeleteFunc: deleteOutOfBandAuthPlugins, Dependencies: []*testutils_resource.TestableResource{ PingoneConnection(t, clientInfo), - pingone_testable_resources.DeviceAuthApplication(t, clientInfo), + pingone_sso_testable_resources.ApplicationDeviceAuthorization(t, clientInfo), }, ExportableResource: nil, } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go b/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go index 001add39..d7587266 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go @@ -10,7 +10,7 @@ import ( "github.com/pingidentity/pingcli/internal/connector/common" "github.com/pingidentity/pingcli/internal/connector/pingfederate/resources" "github.com/pingidentity/pingcli/internal/testing/testutils_resource" - "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_testable_resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_platform_testable_resources" "github.com/pingidentity/pingcli/internal/utils" client "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) @@ -23,7 +23,7 @@ func PingoneConnection(t *testing.T, clientInfo *connector.ClientInfo) *testutil CreateFunc: createPingoneConnection, DeleteFunc: deletePingoneConnection, Dependencies: []*testutils_resource.TestableResource{ - pingone_testable_resources.GatewayCredential(t, clientInfo), + pingone_platform_testable_resources.GatewayCredential(t, clientInfo), }, ExportableResource: resources.PingoneConnection(clientInfo), } diff --git a/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_application_push_credential.go b/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_application_push_credential.go new file mode 100644 index 00000000..fc274225 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_application_push_credential.go @@ -0,0 +1,94 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_mfa_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/mfa" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/mfa/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" +) + +func MfaApplicationPushCredential(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createMfaApplicationPushCredential, + DeleteFunc: deleteMfaApplicationPushCredential, + Dependencies: []*testutils_resource.TestableResource{ + pingone_sso_testable_resources.ApplicationNative(t, clientInfo), + }, + ExportableResource: resources.MfaApplicationPushCredential(clientInfo), + } +} + +func createMfaApplicationPushCredential(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Errorf("Unexpected number of arguments provided to createMfaApplicationPushCredential(): %v", strArgs) + return testutils_resource.ResourceInfo{} + } + applicationId := strArgs[0] + + request := clientInfo.PingOneApiClient.MFAAPIClient.ApplicationsApplicationMFAPushCredentialsApi.CreateMFAPushCredential(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, applicationId) + clientStruct := mfa.MFAPushCredentialRequest{ + MFAPushCredentialHMS: &mfa.MFAPushCredentialHMS{ + Type: mfa.ENUMMFAPUSHCREDENTIALATTRTYPE_HMS, + ClientId: "897389789432", + ClientSecret: "B23897498", + }, + } + + request = request.MFAPushCredentialRequest(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateMFAPushCredential", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + applicationId, + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_TYPE: string(*resource.Type), + }, + } +} + +func deleteMfaApplicationPushCredential(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Errorf("Unexpected number of arguments provided to deleteMfaApplicationPushCredential(): %v", ids) + return + } + + request := clientInfo.PingOneApiClient.MFAAPIClient.ApplicationsApplicationMFAPushCredentialsApi.DeleteMFAPushCredential(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteMFAPushCredential", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return + } +} diff --git a/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_device_policy.go b/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_device_policy.go new file mode 100644 index 00000000..1d9bc611 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_device_policy.go @@ -0,0 +1,167 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_mfa_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/mfa" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/mfa/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func MfaDevicePolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createMfaDevicePolicy, + DeleteFunc: deleteMfaDevicePolicy, + Dependencies: nil, + ExportableResource: resources.MfaDevicePolicy(clientInfo), + } +} + +func createMfaDevicePolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Errorf("Unexpected number of arguments provided to createMfaDevicePolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} + } + + request := clientInfo.PingOneApiClient.MFAAPIClient.DeviceAuthenticationPolicyApi.CreateDeviceAuthenticationPolicies(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := mfa.DeviceAuthenticationPolicyPost{ + DeviceAuthenticationPolicy: &mfa.DeviceAuthenticationPolicy{ + Name: "TestDeviceAuthPolicy", + Sms: mfa.DeviceAuthenticationPolicyOfflineDevice{ + Enabled: true, + Otp: mfa.DeviceAuthenticationPolicyOfflineDeviceOtp{ + Failure: mfa.DeviceAuthenticationPolicyOfflineDeviceOtpFailure{ + Count: 3, + CoolDown: mfa.DeviceAuthenticationPolicyOfflineDeviceOtpFailureCoolDown{ + Duration: 0, + TimeUnit: mfa.ENUMTIMEUNIT_MINUTES, + }, + }, + LifeTime: mfa.DeviceAuthenticationPolicyOfflineDeviceOtpLifeTime{ + Duration: 30, + TimeUnit: mfa.ENUMTIMEUNIT_MINUTES, + }, + OtpLength: utils.Pointer(int32(6)), + }, + }, + Email: mfa.DeviceAuthenticationPolicyOfflineDevice{ + Enabled: true, + Otp: mfa.DeviceAuthenticationPolicyOfflineDeviceOtp{ + Failure: mfa.DeviceAuthenticationPolicyOfflineDeviceOtpFailure{ + Count: 3, + CoolDown: mfa.DeviceAuthenticationPolicyOfflineDeviceOtpFailureCoolDown{ + Duration: 0, + TimeUnit: mfa.ENUMTIMEUNIT_MINUTES, + }, + }, + LifeTime: mfa.DeviceAuthenticationPolicyOfflineDeviceOtpLifeTime{ + Duration: 30, + TimeUnit: mfa.ENUMTIMEUNIT_MINUTES, + }, + OtpLength: utils.Pointer(int32(8)), + }, + }, + Mobile: mfa.DeviceAuthenticationPolicyMobile{ + Enabled: true, + Otp: mfa.DeviceAuthenticationPolicyMobileOtp{ + Failure: mfa.DeviceAuthenticationPolicyOfflineDeviceOtpFailure{ + Count: 3, + CoolDown: mfa.DeviceAuthenticationPolicyOfflineDeviceOtpFailureCoolDown{ + Duration: 2, + TimeUnit: mfa.ENUMTIMEUNIT_MINUTES, + }, + }, + }, + Applications: []mfa.DeviceAuthenticationPolicyMobileApplicationsInner{}, + }, + Totp: mfa.DeviceAuthenticationPolicyTotp{ + Enabled: true, + Otp: mfa.DeviceAuthenticationPolicyTotpOtp{ + Failure: mfa.DeviceAuthenticationPolicyOfflineDeviceOtpFailure{ + Count: 3, + CoolDown: mfa.DeviceAuthenticationPolicyOfflineDeviceOtpFailureCoolDown{ + Duration: 2, + TimeUnit: mfa.ENUMTIMEUNIT_MINUTES, + }, + }, + }, + }, + Voice: mfa.DeviceAuthenticationPolicyOfflineDevice{ + Enabled: true, + Otp: mfa.DeviceAuthenticationPolicyOfflineDeviceOtp{ + Failure: mfa.DeviceAuthenticationPolicyOfflineDeviceOtpFailure{ + Count: 3, + CoolDown: mfa.DeviceAuthenticationPolicyOfflineDeviceOtpFailureCoolDown{ + Duration: 0, + TimeUnit: mfa.ENUMTIMEUNIT_MINUTES, + }, + }, + LifeTime: mfa.DeviceAuthenticationPolicyOfflineDeviceOtpLifeTime{ + Duration: 30, + TimeUnit: mfa.ENUMTIMEUNIT_MINUTES, + }, + OtpLength: utils.Pointer(int32(6)), + }, + }, + NewDeviceNotification: utils.Pointer(mfa.ENUMMFADEVICEPOLICYNEWDEVICENOTIFICATION_SMS_THEN_EMAIL), + ForSignOnPolicy: false, + Default: false, + }, + } + + request = request.DeviceAuthenticationPolicyPost(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateDeviceAuthenticationPolicies", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.DeviceAuthenticationPolicy.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.DeviceAuthenticationPolicy.Id, + testutils_resource.ENUM_NAME: resource.DeviceAuthenticationPolicy.Name, + }, + } +} + +func deleteMfaDevicePolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Errorf("Unexpected number of arguments provided to deleteMfaDevicePolicy(): %v", ids) + return + } + + request := clientInfo.PingOneApiClient.MFAAPIClient.DeviceAuthenticationPolicyApi.DeleteDeviceAuthenticationPolicy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteDeviceAuthenticationPolicy", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return + } +} diff --git a/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_fido2_policy.go b/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_fido2_policy.go new file mode 100644 index 00000000..38fe3059 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_fido2_policy.go @@ -0,0 +1,125 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_mfa_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/mfa" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/mfa/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func MfaFido2Policy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createMfaFido2Policy, + DeleteFunc: deleteMfaFido2Policy, + Dependencies: nil, + ExportableResource: resources.MfaFido2Policy(clientInfo), + } +} + +func createMfaFido2Policy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Errorf("Unexpected number of arguments provided to createMfaFido2Policy(): %v", strArgs) + return testutils_resource.ResourceInfo{} + } + + request := clientInfo.PingOneApiClient.MFAAPIClient.FIDO2PolicyApi.CreateFIDO2Policy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := mfa.FIDO2Policy{ + Name: "TestFido2Policy", + Description: utils.Pointer("Test FIDO2 Policy"), + DeviceDisplayName: "Fido2 device", + DiscoverableCredentials: mfa.ENUMFIDO2POLICYDISCOVERABLECREDENTIALS_REQUIRED, + AuthenticatorAttachment: mfa.ENUMFIDO2POLICYAUTHENTICATORATTACHMENT_BOTH, + UserVerification: mfa.FIDO2PolicyUserVerification{ + EnforceDuringAuthentication: true, + Option: mfa.ENUMFIDO2POLICYUSERVERIFICATIONOPTION_REQUIRED, + }, + UserPresenceTimeout: &mfa.FIDO2PolicyUserPresenceTimeout{ + Duration: utils.Pointer(int32(4)), + TimeUnit: utils.Pointer(mfa.ENUMTIMEUNIT_MINUTES), + }, + BackupEligibility: mfa.FIDO2PolicyBackupEligibility{ + EnforceDuringAuthentication: true, + Allow: true, + }, + UserDisplayNameAttributes: mfa.FIDO2PolicyUserDisplayNameAttributes{ + Attributes: []mfa.FIDO2PolicyUserDisplayNameAttributesAttributesInner{ + { + Name: "username", + }, + { + Name: "email", + }, + }, + }, + AttestationRequirements: mfa.ENUMFIDO2POLICYATTESTATIONREQUIREMENTS_DIRECT, + MdsAuthenticatorsRequirements: mfa.FIDO2PolicyMdsAuthenticatorsRequirements{ + AllowedAuthenticators: nil, + Option: mfa.ENUMFIDO2POLICYMDSAUTHENTICATOROPTION_CERTIFIED, + EnforceDuringAuthentication: true, + }, + PublicKeyCredentialHints: []mfa.EnumFIDO2PublicKeyCredentialHint{ + mfa.ENUMFIDO2PUBLICKEYCREDENTIALHINT_SECURITY_KEY, + mfa.ENUMFIDO2PUBLICKEYCREDENTIALHINT_CLIENT_DEVICE, + mfa.ENUMFIDO2PUBLICKEYCREDENTIALHINT_HYBRID, + }, + RelyingPartyId: "relyingpartydomain.example.com", + Default: utils.Pointer(false), + } + + request = request.FIDO2Policy(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateFIDO2Policy", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteMfaFido2Policy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Errorf("Unexpected number of arguments provided to deleteMfaFido2Policy(): %v", ids) + return + } + + request := clientInfo.PingOneApiClient.MFAAPIClient.FIDO2PolicyApi.DeleteFIDO2Policy(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteFIDO2Policy", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return + } +} diff --git a/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_settings.go b/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_settings.go new file mode 100644 index 00000000..6b0475ac --- /dev/null +++ b/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_settings.go @@ -0,0 +1,24 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_mfa_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/pingone/mfa/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func MfaSettings(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: nil, + DeleteFunc: nil, + Dependencies: nil, + ExportableResource: resources.MfaSettings(clientInfo), + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/agreement.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/agreement.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/agreement.go index 29e43d9b..b6b49838 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/agreement.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/agreement_enable.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_enable.go similarity index 94% rename from internal/testing/testutils_resource/pingone_testable_resources/agreement_enable.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_enable.go index 42b93e6a..6105fba7 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/agreement_enable.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_enable.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_localization.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/agreement_localization.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_localization.go index 11f4d9c3..bc9a64f2 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_localization.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_enable.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_localization_enable.go similarity index 94% rename from internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_enable.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_localization_enable.go index 8b58161f..14669e83 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_enable.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_localization_enable.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_localization_revision.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_localization_revision.go index 4a251b32..a229ad40 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/agreement_localization_revision.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_localization_revision.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/alert_channel.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/alert_channel.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/alert_channel.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/alert_channel.go index 4042c7ef..9d1c1f42 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/alert_channel.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/alert_channel.go @@ -1,6 +1,6 @@ // Copyright © 2025 Ping Identity Corporation -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/branding_settings.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/branding_settings.go similarity index 93% rename from internal/testing/testutils_resource/pingone_testable_resources/branding_settings.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/branding_settings.go index 58b01302..74360c6f 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/branding_settings.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/branding_settings.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/branding_theme.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/branding_theme.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/branding_theme.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/branding_theme.go index 596590cd..242d13c4 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/branding_theme.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/branding_theme.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/branding_theme_default.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/branding_theme_default.go similarity index 93% rename from internal/testing/testutils_resource/pingone_testable_resources/branding_theme_default.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/branding_theme_default.go index e5faa2b7..62373c05 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/branding_theme_default.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/branding_theme_default.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/certificate.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/certificate.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/certificate.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/certificate.go index cf48a93d..0f789ac1 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/certificate.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/certificate.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/custom_domain.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/custom_domain.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/custom_domain.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/custom_domain.go index b83c78f0..2da58a47 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/custom_domain.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/custom_domain.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/device_auth_application.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/device_auth_application.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/device_auth_application.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/device_auth_application.go index b5afd047..59fc81bf 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/device_auth_application.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/device_auth_application.go @@ -1,6 +1,6 @@ // Copyright © 2025 Ping Identity Corporation -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/environment.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/environment.go similarity index 93% rename from internal/testing/testutils_resource/pingone_testable_resources/environment.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/environment.go index 30dbf5b4..ced1f17d 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/environment.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/environment.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/form.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/form.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/form.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/form.go index 562c34ca..ac6d2cd6 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/form.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/form.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/forms_recaptcha_v2.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/forms_recaptcha_v2.go index 6f9b904f..f5354a8f 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/forms_recaptcha_v2.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/forms_recaptcha_v2.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/gateway.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/gateway.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/gateway.go index 66abe2fb..c81beca5 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/gateway.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/gateway_credential.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_credential.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/gateway_credential.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_credential.go index 9c2afc82..18c29c6f 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/gateway_credential.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_credential.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_role_assignment.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_role_assignment.go index 98ccce26..825136be 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/gateway_role_assignment.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_role_assignment.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/identity_propagation_plan.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/identity_propagation_plan.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/identity_propagation_plan.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/identity_propagation_plan.go index d23e7029..fa10d488 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/identity_propagation_plan.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/identity_propagation_plan.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/key.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/key.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/key.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/key.go index f382a0b0..697082fa 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/key.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/key.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "math/big" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/key_rotation_policy.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/key_rotation_policy.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/key_rotation_policy.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/key_rotation_policy.go index d2b2014f..d4f8ef36 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/key_rotation_policy.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/key_rotation_policy.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/language.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/language.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/language.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/language.go index ef40a74d..026ecc85 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/language.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/language.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/language_update.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/language_update.go similarity index 94% rename from internal/testing/testutils_resource/pingone_testable_resources/language_update.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/language_update.go index 627e8fad..fd803501 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/language_update.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/language_update.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/notification_policy.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/notification_policy.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/notification_policy.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/notification_policy.go index 85c60bba..fc5656ca 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/notification_policy.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/notification_policy.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/notification_settings.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/notification_settings.go similarity index 93% rename from internal/testing/testutils_resource/pingone_testable_resources/notification_settings.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/notification_settings.go index 580ba95f..c2b31187 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/notification_settings.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/notification_settings.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/notification_settings_email.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/notification_settings_email.go similarity index 93% rename from internal/testing/testutils_resource/pingone_testable_resources/notification_settings_email.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/notification_settings_email.go index d545e97a..9f9e6031 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/notification_settings_email.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/notification_settings_email.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/notification_template_content.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/notification_template_content.go index 1df30872..b4e81329 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/notification_template_content.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/notification_template_content.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/phone_delivery_settings.go similarity index 99% rename from internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/phone_delivery_settings.go index 4765d4ff..0af0b102 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/phone_delivery_settings.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/phone_delivery_settings.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/system_application.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/system_application.go similarity index 93% rename from internal/testing/testutils_resource/pingone_testable_resources/system_application.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/system_application.go index 9bffec1e..95c7d99c 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/system_application.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/system_application.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_address.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/trusted_email_address.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/trusted_email_address.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/trusted_email_address.go index ac44663d..89b01780 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_address.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/trusted_email_address.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_domain.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/trusted_email_domain.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/trusted_email_domain.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/trusted_email_domain.go index 8c842843..80ca1f8d 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/trusted_email_domain.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/trusted_email_domain.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/webhook.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/webhook.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/webhook.go rename to internal/testing/testutils_resource/pingone_platform_testable_resources/webhook.go index 1d6dc619..23a61599 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/webhook.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/webhook.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_platform_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_protect_testable_resources/risk_policy.go b/internal/testing/testutils_resource/pingone_protect_testable_resources/risk_policy.go new file mode 100644 index 00000000..cd333c52 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_protect_testable_resources/risk_policy.go @@ -0,0 +1,116 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_protect_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/risk" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/protect/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func RiskPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createRiskPolicy, + DeleteFunc: deleteRiskPolicy, + Dependencies: nil, + ExportableResource: resources.RiskPolicy(clientInfo), + } +} + +func createRiskPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Errorf("Unexpected number of arguments provided to createRiskPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} + } + + request := clientInfo.PingOneApiClient.RiskAPIClient.RiskPoliciesApi.CreateRiskPolicySet(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := risk.RiskPolicySet{ + Name: "Score-based policy", + Default: utils.Pointer(false), + DefaultResult: &risk.RiskPolicySetDefaultResult{ + Level: risk.ENUMRISKPOLICYRESULTLEVEL_LOW, + }, + RiskPolicies: []risk.RiskPolicy{ + { + Name: "ANONYMOUS_NETWORK_DETECTION", + Result: risk.RiskPolicyResult{ + Level: risk.ENUMRISKLEVEL_HIGH, + }, + Condition: risk.RiskPolicyCondition{ + Value: utils.Pointer("${details.anonymousNetworkDetected}"), + Equals: &risk.RiskPolicyConditionEquals{ + Bool: utils.Pointer(true), + }, + }, + }, + { + Name: "GEOVELOCITY_ANOMALY", + Result: risk.RiskPolicyResult{ + Level: risk.ENUMRISKLEVEL_MEDIUM, + }, + Condition: risk.RiskPolicyCondition{ + Value: utils.Pointer("${details.impossibleTravel}"), + Equals: &risk.RiskPolicyConditionEquals{ + Bool: utils.Pointer(true), + }, + }, + }, + }, + } + + request = request.RiskPolicySet(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateRiskPolicySet", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteRiskPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Errorf("Unexpected number of arguments provided to deleteRiskPolicy(): %v", ids) + return + } + + request := clientInfo.PingOneApiClient.RiskAPIClient.RiskPoliciesApi.DeleteRiskPolicySet(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteRiskPolicySet", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return + } +} diff --git a/internal/testing/testutils_resource/pingone_protect_testable_resources/risk_predictor.go b/internal/testing/testutils_resource/pingone_protect_testable_resources/risk_predictor.go new file mode 100644 index 00000000..58603b9f --- /dev/null +++ b/internal/testing/testutils_resource/pingone_protect_testable_resources/risk_predictor.go @@ -0,0 +1,116 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_protect_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/risk" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/protect/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func RiskPredictor(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createRiskPredictor, + DeleteFunc: deleteRiskPredictor, + Dependencies: nil, + ExportableResource: resources.RiskPredictor(clientInfo), + } +} + +func createRiskPredictor(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Errorf("Unexpected number of arguments provided to createRiskPredictor(): %v", strArgs) + return testutils_resource.ResourceInfo{} + } + + request := clientInfo.PingOneApiClient.RiskAPIClient.RiskAdvancedPredictorsApi.CreateRiskPredictor(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := risk.RiskPredictor{ + RiskPredictorCustom: &risk.RiskPredictorCustom{ + Name: "Device country - custom", + CompactName: "deviceCountryCustom", + Map: risk.RiskPredictorCustomAllOfMap{ + High: &risk.RiskPredictorCustomItem{ + RiskPredictorCustomItemList: &risk.RiskPredictorCustomItemList{ + List: []string{ + "Iran", + "Syria", + }, + Contains: "${details.country}", + }, + }, + Medium: &risk.RiskPredictorCustomItem{ + RiskPredictorCustomItemList: &risk.RiskPredictorCustomItemList{ + List: []string{ + "Ethiopia", + "Russia", + }, + Contains: "${details.country}", + }, + }, + }, + Type: risk.ENUMPREDICTORTYPE_MAP, + Default: &risk.RiskPredictorCommonDefault{ + Result: &risk.RiskPredictorCommonDefaultResult{ + Level: utils.Pointer(risk.ENUMRISKLEVEL_MEDIUM), + }, + }, + }, + } + + request = request.RiskPredictor(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateRiskPredictor", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.RiskPredictorCustom.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.RiskPredictorCustom.Id, + testutils_resource.ENUM_NAME: resource.RiskPredictorCustom.Name, + testutils_resource.ENUM_TYPE: string(resource.RiskPredictorCustom.Type), + }, + } +} + +func deleteRiskPredictor(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Errorf("Unexpected number of arguments provided to deleteRiskPredictor(): %v", ids) + return + } + + request := clientInfo.PingOneApiClient.RiskAPIClient.RiskAdvancedPredictorsApi.DeleteRiskAdvancedPredictor(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteRiskAdvancedPredictor", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_attribute_mapping.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_attribute_mapping.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/application_attribute_mapping.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/application_attribute_mapping.go index 26aa5884..8f852d06 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/application_attribute_mapping.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_attribute_mapping.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_device_authorization.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_device_authorization.go similarity index 99% rename from internal/testing/testutils_resource/pingone_testable_resources/application_device_authorization.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/application_device_authorization.go index d75d64c5..816dc2cc 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/application_device_authorization.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_device_authorization.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_flow_policy_assignment.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_flow_policy_assignment.go similarity index 99% rename from internal/testing/testutils_resource/pingone_testable_resources/application_flow_policy_assignment.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/application_flow_policy_assignment.go index 340e3591..90d49435 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/application_flow_policy_assignment.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_flow_policy_assignment.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/application_native.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_native.go new file mode 100644 index 00000000..97908d12 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_native.go @@ -0,0 +1,121 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_sso_testable_resources + +import ( + "testing" + + "github.com/hashicorp/go-uuid" + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/sso/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func ApplicationNative(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createApplicationNative, + DeleteFunc: deleteApplicationNative, + Dependencies: nil, + ExportableResource: resources.Application(clientInfo), + } +} + +func createApplicationNative(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Errorf("Unexpected number of arguments provided to createApplicationNative(): %v", strArgs) + return testutils_resource.ResourceInfo{} + } + + // Give unique name to application to avoid collisions in dependency creations + applicationName, err := uuid.GenerateUUID() + if err != nil { + t.Errorf("Failed to generate UUID for application name: %v", err) + return testutils_resource.ResourceInfo{} + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.CreateApplication(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := management.CreateApplicationRequest{ + ApplicationOIDC: &management.ApplicationOIDC{ + Enabled: true, + Name: applicationName, + Description: utils.Pointer("Test Native OIDC Application"), + Type: management.ENUMAPPLICATIONTYPE_NATIVE_APP, + Protocol: management.ENUMAPPLICATIONPROTOCOL_OPENID_CONNECT, + HomePageUrl: utils.Pointer("https://example.com/homePage"), + LoginPageUrl: utils.Pointer("https://example.com/loginPage"), + GrantTypes: []management.EnumApplicationOIDCGrantType{ + management.ENUMAPPLICATIONOIDCGRANTTYPE_AUTHORIZATION_CODE, + management.ENUMAPPLICATIONOIDCGRANTTYPE_IMPLICIT, + }, + PostLogoutRedirectUris: []string{ + "https://example.com/logout", + }, + RedirectUris: []string{ + "https://example.com", + }, + ResponseTypes: []management.EnumApplicationOIDCResponseType{ + management.ENUMAPPLICATIONOIDCRESPONSETYPE_CODE, + management.ENUMAPPLICATIONOIDCRESPONSETYPE_TOKEN, + management.ENUMAPPLICATIONOIDCRESPONSETYPE_ID_TOKEN, + }, + TokenEndpointAuthMethod: management.ENUMAPPLICATIONOIDCTOKENAUTHMETHOD_NONE, + PkceEnforcement: utils.Pointer(management.ENUMAPPLICATIONOIDCPKCEOPTION_REQUIRED), + RefreshTokenDuration: utils.Pointer(int32(86400)), + RefreshTokenRollingDuration: utils.Pointer(int32(86400)), + }, + } + + request = request.CreateApplicationRequest(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateApplication", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.ApplicationOIDC.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.ApplicationOIDC.Id, + testutils_resource.ENUM_NAME: resource.ApplicationOIDC.Name, + }, + } +} + +func deleteApplicationNative(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Errorf("Unexpected number of arguments provided to deleteApplicationNative(): %v", ids) + return + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.DeleteApplication(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteApplication", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return + } +} diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_resource_grant.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_resource_grant.go similarity index 99% rename from internal/testing/testutils_resource/pingone_testable_resources/application_resource_grant.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/application_resource_grant.go index 14953081..c03ce03d 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/application_resource_grant.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_resource_grant.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_role_assignment.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_role_assignment.go similarity index 99% rename from internal/testing/testutils_resource/pingone_testable_resources/application_role_assignment.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/application_role_assignment.go index 810d4fe7..57dcb8cb 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/application_role_assignment.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_role_assignment.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_secret.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_secret.go similarity index 94% rename from internal/testing/testutils_resource/pingone_testable_resources/application_secret.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/application_secret.go index cbac1559..865b9f86 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/application_secret.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_secret.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_sign_on_policy_assignment.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_sign_on_policy_assignment.go similarity index 99% rename from internal/testing/testutils_resource/pingone_testable_resources/application_sign_on_policy_assignment.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/application_sign_on_policy_assignment.go index 2a97d8df..40fd6111 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/application_sign_on_policy_assignment.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_sign_on_policy_assignment.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/application_worker.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_worker.go similarity index 99% rename from internal/testing/testutils_resource/pingone_testable_resources/application_worker.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/application_worker.go index e6894af6..482744a8 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/application_worker.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_worker.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/group.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/group.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/group.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/group.go index 7037cec2..c126166b 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/group.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/group.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/group_nesting.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/group_nesting.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/group_nesting.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/group_nesting.go index 7213bff3..3248bdf8 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/group_nesting.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/group_nesting.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/group_role_assignment.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/group_role_assignment.go similarity index 99% rename from internal/testing/testutils_resource/pingone_testable_resources/group_role_assignment.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/group_role_assignment.go index 23cf8cd5..94551ad0 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/group_role_assignment.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/group_role_assignment.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/identity_provider.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/identity_provider.go similarity index 99% rename from internal/testing/testutils_resource/pingone_testable_resources/identity_provider.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/identity_provider.go index 96166c08..b18e5900 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/identity_provider.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/identity_provider.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/identity_provider_attribute.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/identity_provider_attribute.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/identity_provider_attribute.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/identity_provider_attribute.go index 0ddb28ca..2fa67a1d 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/identity_provider_attribute.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/identity_provider_attribute.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/password_policy.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/password_policy.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/password_policy.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/password_policy.go index 5e241897..8b9ec478 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/password_policy.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/password_policy.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/population.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/population.go similarity index 99% rename from internal/testing/testutils_resource/pingone_testable_resources/population.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/population.go index 4c8b9570..c127d774 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/population.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/population.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/population_default.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/population_default.go similarity index 94% rename from internal/testing/testutils_resource/pingone_testable_resources/population_default.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/population_default.go index aec2117b..bdf283ea 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/population_default.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/population_default.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/population_default_identity_provider.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/population_default_identity_provider.go similarity index 94% rename from internal/testing/testutils_resource/pingone_testable_resources/population_default_identity_provider.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/population_default_identity_provider.go index 49b46e36..65d94d20 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/population_default_identity_provider.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/population_default_identity_provider.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/resource.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/resource.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/resource.go index e0b55658..567f71f9 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/resource.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/resource_attribute.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_attribute.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/resource_attribute.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/resource_attribute.go index 025ffaca..b1ae52a6 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/resource_attribute.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_attribute.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/resource_scope.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/resource_scope.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope.go index e04b5abc..bc3d4adf 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/resource_scope.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_openid.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope_openid.go similarity index 99% rename from internal/testing/testutils_resource/pingone_testable_resources/resource_scope_openid.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope_openid.go index 7bd6a0ce..dd6aee94 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_openid.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope_openid.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_pingone_api.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope_pingone_api.go similarity index 99% rename from internal/testing/testutils_resource/pingone_testable_resources/resource_scope_pingone_api.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope_pingone_api.go index d5045ca5..143289ed 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/resource_scope_pingone_api.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope_pingone_api.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/resource_secret.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_secret.go similarity index 94% rename from internal/testing/testutils_resource/pingone_testable_resources/resource_secret.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/resource_secret.go index 45029632..371d72fe 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/resource_secret.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_secret.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/schema_attribute.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/schema_attribute.go similarity index 99% rename from internal/testing/testutils_resource/pingone_testable_resources/schema_attribute.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/schema_attribute.go index c5161bae..3070589f 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/schema_attribute.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/schema_attribute.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/sign_on_policy.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/sign_on_policy.go index 55ff6ff7..db3fce75 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/sign_on_policy.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" diff --git a/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy_action.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/sign_on_policy_action.go similarity index 98% rename from internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy_action.go rename to internal/testing/testutils_resource/pingone_sso_testable_resources/sign_on_policy_action.go index e6fcf3a7..7a08547b 100644 --- a/internal/testing/testutils_resource/pingone_testable_resources/sign_on_policy_action.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/sign_on_policy_action.go @@ -1,7 +1,7 @@ // Copyright © 2025 Ping Identity Corporation // Code generated by ping-cli-generator -package pingone_testable_resources +package pingone_sso_testable_resources import ( "testing" From 3196afa40ff4289f6f96055ab34ddf3978fd3fca Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Thu, 27 Mar 2025 09:17:12 -0600 Subject: [PATCH 07/18] Add PingOne Authorize code generation and testable resources --- .../authorize/pingone_authorize_connector.go | 8 +- .../pingone_authorize_connector_test.go | 62 +++++--- ...on_resource.go => application_resource.go} | 72 +++++---- .../application_resource_permission.go | 141 ++++++++++++++++++ .../application_resource_permission_test.go | 35 +++++ .../resources/application_resource_test.go | 35 +++++ .../resources/authorize_api_service.go | 87 +++++++++++ .../authorize_api_service_deployment.go | 116 ++++++++++++++ .../authorize_api_service_deployment_test.go | 35 +++++ .../authorize_api_service_operation.go | 117 +++++++++++++++ .../authorize_api_service_operation_test.go | 35 +++++ .../resources/authorize_api_service_test.go | 33 ++++ .../resources/authorize_application_role.go | 87 +++++++++++ ... authorize_application_role_permission.go} | 57 +++---- ...horize_application_role_permission_test.go | 35 +++++ .../authorize_application_role_test.go | 33 ++++ .../resources/authorize_decision_endpoint.go | 87 +++++++++++ .../authorize_decision_endpoint_test.go | 36 +++++ ...pingone_application_resource_permission.go | 135 ----------------- ...ne_application_resource_permission_test.go | 34 ----- .../pingone_application_resource_test.go | 29 ---- .../pingone_authorize_api_service.go | 86 ----------- ...ingone_authorize_api_service_deployment.go | 114 -------------- ...e_authorize_api_service_deployment_test.go | 29 ---- ...pingone_authorize_api_service_operation.go | 116 -------------- ...ne_authorize_api_service_operation_test.go | 29 ---- .../pingone_authorize_api_service_test.go | 34 ----- .../pingone_authorize_application_role.go | 86 ----------- ...horize_application_role_permission_test.go | 34 ----- ...pingone_authorize_application_role_test.go | 29 ---- .../pingone_authorize_decision_endpoint.go | 86 ----------- ...ingone_authorize_decision_endpoint_test.go | 49 ------ .../application_resource.go | 90 +++++++++++ .../application_resource_permission.go | 92 ++++++++++++ .../authorize_api_service.go | 99 ++++++++++++ .../authorize_api_service_deployment.go | 57 +++++++ .../authorize_api_service_operation.go | 99 ++++++++++++ .../authorize_application_role.go | 87 +++++++++++ .../authorize_application_role_permission.go | 91 +++++++++++ .../authorize_decision_endpoint.go | 87 +++++++++++ 40 files changed, 1722 insertions(+), 981 deletions(-) rename internal/connector/pingone/authorize/resources/{pingone_application_resource.go => application_resource.go} (64%) create mode 100644 internal/connector/pingone/authorize/resources/application_resource_permission.go create mode 100644 internal/connector/pingone/authorize/resources/application_resource_permission_test.go create mode 100644 internal/connector/pingone/authorize/resources/application_resource_test.go create mode 100644 internal/connector/pingone/authorize/resources/authorize_api_service.go create mode 100644 internal/connector/pingone/authorize/resources/authorize_api_service_deployment.go create mode 100644 internal/connector/pingone/authorize/resources/authorize_api_service_deployment_test.go create mode 100644 internal/connector/pingone/authorize/resources/authorize_api_service_operation.go create mode 100644 internal/connector/pingone/authorize/resources/authorize_api_service_operation_test.go create mode 100644 internal/connector/pingone/authorize/resources/authorize_api_service_test.go create mode 100644 internal/connector/pingone/authorize/resources/authorize_application_role.go rename internal/connector/pingone/authorize/resources/{pingone_authorize_application_role_permission.go => authorize_application_role_permission.go} (67%) create mode 100644 internal/connector/pingone/authorize/resources/authorize_application_role_permission_test.go create mode 100644 internal/connector/pingone/authorize/resources/authorize_application_role_test.go create mode 100644 internal/connector/pingone/authorize/resources/authorize_decision_endpoint.go create mode 100644 internal/connector/pingone/authorize/resources/authorize_decision_endpoint_test.go delete mode 100644 internal/connector/pingone/authorize/resources/pingone_application_resource_permission.go delete mode 100644 internal/connector/pingone/authorize/resources/pingone_application_resource_permission_test.go delete mode 100644 internal/connector/pingone/authorize/resources/pingone_application_resource_test.go delete mode 100644 internal/connector/pingone/authorize/resources/pingone_authorize_api_service.go delete mode 100644 internal/connector/pingone/authorize/resources/pingone_authorize_api_service_deployment.go delete mode 100644 internal/connector/pingone/authorize/resources/pingone_authorize_api_service_deployment_test.go delete mode 100644 internal/connector/pingone/authorize/resources/pingone_authorize_api_service_operation.go delete mode 100644 internal/connector/pingone/authorize/resources/pingone_authorize_api_service_operation_test.go delete mode 100644 internal/connector/pingone/authorize/resources/pingone_authorize_api_service_test.go delete mode 100644 internal/connector/pingone/authorize/resources/pingone_authorize_application_role.go delete mode 100644 internal/connector/pingone/authorize/resources/pingone_authorize_application_role_permission_test.go delete mode 100644 internal/connector/pingone/authorize/resources/pingone_authorize_application_role_test.go delete mode 100644 internal/connector/pingone/authorize/resources/pingone_authorize_decision_endpoint.go delete mode 100644 internal/connector/pingone/authorize/resources/pingone_authorize_decision_endpoint_test.go create mode 100644 internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource.go create mode 100644 internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource_permission.go create mode 100644 internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service.go create mode 100644 internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_deployment.go create mode 100644 internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_operation.go create mode 100644 internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role.go create mode 100644 internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role_permission.go create mode 100644 internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_decision_endpoint.go diff --git a/internal/connector/pingone/authorize/pingone_authorize_connector.go b/internal/connector/pingone/authorize/pingone_authorize_connector.go index bddf4d5a..1490d1b6 100644 --- a/internal/connector/pingone/authorize/pingone_authorize_connector.go +++ b/internal/connector/pingone/authorize/pingone_authorize_connector.go @@ -44,11 +44,11 @@ func (c *PingoneAuthorizeConnector) Export(format, outputDir string, overwriteEx l.Debug().Msgf("Exporting all PingOne Authorize Resources...") exportableResources := []connector.ExportableResource{ - resources.AuthorizeAPIService(&c.clientInfo), - resources.AuthorizeAPIServiceDeployment(&c.clientInfo), - resources.AuthorizeAPIServiceOperation(&c.clientInfo), + resources.AuthorizeApiService(&c.clientInfo), + resources.AuthorizeApiServiceDeployment(&c.clientInfo), + resources.AuthorizeApiServiceOperation(&c.clientInfo), resources.ApplicationResource(&c.clientInfo), - resources.AuthorizeApplicationResourcePermission(&c.clientInfo), + resources.ApplicationResourcePermission(&c.clientInfo), resources.AuthorizeApplicationRole(&c.clientInfo), resources.AuthorizeApplicationRolePermission(&c.clientInfo), resources.AuthorizeDecisionEndpoint(&c.clientInfo), diff --git a/internal/connector/pingone/authorize/pingone_authorize_connector_test.go b/internal/connector/pingone/authorize/pingone_authorize_connector_test.go index cde98b5a..0d4f3635 100644 --- a/internal/connector/pingone/authorize/pingone_authorize_connector_test.go +++ b/internal/connector/pingone/authorize/pingone_authorize_connector_test.go @@ -5,9 +5,9 @@ package authorize_test import ( "testing" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/authorize/resources" "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_authorize_testable_resources" "github.com/pingidentity/pingcli/internal/testing/testutils_terraform" ) @@ -17,45 +17,59 @@ func TestAuthorizeTerraformPlan(t *testing.T) { testutils_terraform.InitPingOneTerraform(t) testCases := []struct { - name string - resource connector.ExportableResource - ignoredErrors []string + name string + testableResource *testutils_resource.TestableResource + ignoredErrors []string }{ { - name: "AuthorizeAPIService", - resource: resources.AuthorizeAPIService(clientInfo), - ignoredErrors: nil, + name: "ApplicationResource", + testableResource: pingone_authorize_testable_resources.ApplicationResource(t, clientInfo), + ignoredErrors: nil, }, { - name: "AuthorizeAPIServiceDeployment", - resource: resources.AuthorizeAPIServiceDeployment(clientInfo), - ignoredErrors: nil, + name: "ApplicationResourcePermission", + testableResource: pingone_authorize_testable_resources.ApplicationResourcePermission(t, clientInfo), + ignoredErrors: nil, }, { - name: "AuthorizeAPIServiceOperation", - resource: resources.AuthorizeAPIServiceOperation(clientInfo), - ignoredErrors: nil, + name: "AuthorizeAPIService", + testableResource: pingone_authorize_testable_resources.AuthorizeApiService(t, clientInfo), + ignoredErrors: nil, }, { - name: "AuthorizeApplicationRole", - resource: resources.AuthorizeApplicationRole(clientInfo), - ignoredErrors: nil, + name: "AuthorizeAPIServiceDeployment", + testableResource: pingone_authorize_testable_resources.AuthorizeApiServiceDeployment(t, clientInfo), + ignoredErrors: nil, }, { - name: "AuthorizeApplicationRolePermission", - resource: resources.AuthorizeApplicationRolePermission(clientInfo), - ignoredErrors: nil, + name: "AuthorizeAPIServiceOperation", + testableResource: pingone_authorize_testable_resources.AuthorizeApiServiceOperation(t, clientInfo), + ignoredErrors: nil, }, { - name: "AuthorizeDecisionEndpoint", - resource: resources.AuthorizeDecisionEndpoint(clientInfo), - ignoredErrors: nil, + name: "AuthorizeApplicationRole", + testableResource: pingone_authorize_testable_resources.AuthorizeApplicationRole(t, clientInfo), + ignoredErrors: nil, }, + { + name: "AuthorizeApplicationRolePermission", + testableResource: pingone_authorize_testable_resources.AuthorizeApplicationRolePermission(t, clientInfo), + ignoredErrors: nil, + }, + // TODO: Remove after completion of TRIAGE-26607 + // { + // name: "AuthorizeDecisionEndpoint", + // testableResource: pingone_authorize_testable_resources.AuthorizeDecisionEndpoint(t, clientInfo), + // ignoredErrors: nil, + // }, } for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { - testutils_terraform.ValidateTerraformPlan(t, tc.resource, tc.ignoredErrors) + tc.testableResource.CreateResource(t) + defer tc.testableResource.DeleteResource(t) + + testutils_terraform.ValidateTerraformPlan(t, tc.testableResource.ExportableResource, tc.ignoredErrors) }) } } diff --git a/internal/connector/pingone/authorize/resources/pingone_application_resource.go b/internal/connector/pingone/authorize/resources/application_resource.go similarity index 64% rename from internal/connector/pingone/authorize/resources/pingone_application_resource.go rename to internal/connector/pingone/authorize/resources/application_resource.go index a7d6f38f..9c0b80e5 100644 --- a/internal/connector/pingone/authorize/resources/pingone_application_resource.go +++ b/internal/connector/pingone/authorize/resources/application_resource.go @@ -32,12 +32,6 @@ func (r *PingOneApplicationResourceResource) ResourceType() string { return "pingone_application_resource" } -type applicationResourceObj struct { - applicationResourceName string - resourceId string - resourceName string -} - func (r *PingOneApplicationResourceResource) ExportAll() (*[]connector.ImportBlock, error) { l := logger.Get() l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) @@ -49,20 +43,32 @@ func (r *PingOneApplicationResourceResource) ExportAll() (*[]connector.ImportBlo return nil, err } - for applicationResourceId, applicationResourceObj := range applicationResourceData { + for applicationResourceId, applicationResourceInfo := range applicationResourceData { + applicationResourceName := applicationResourceInfo[0] + resourceId := applicationResourceInfo[1] + + resourceName, resourceNameOk, err := r.getResourceName(resourceId) + if err != nil { + return nil, err + } + + if !resourceNameOk { + continue + } + commentData := map[string]string{ - "PingOne Resource ID": applicationResourceObj.resourceId, - "PingOne Resource Name": applicationResourceObj.resourceName, + "PingOne Resource ID": resourceId, + "PingOne Resource Name": *resourceName, "Application Resource ID": applicationResourceId, - "Application Resource Name": applicationResourceObj.applicationResourceName, + "Application Resource Name": applicationResourceName, "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Resource Type": r.ResourceType(), } importBlock := connector.ImportBlock{ ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", applicationResourceObj.resourceName, applicationResourceObj.applicationResourceName), - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, applicationResourceObj.resourceId, applicationResourceId), + ResourceName: fmt.Sprintf("%s_%s", *resourceName, applicationResourceName), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, resourceId, applicationResourceId), CommentInformation: common.GenerateCommentInformation(commentData), } @@ -72,8 +78,8 @@ func (r *PingOneApplicationResourceResource) ExportAll() (*[]connector.ImportBlo return &importBlocks, nil } -func (r *PingOneApplicationResourceResource) getApplicationResourceData() (map[string]applicationResourceObj, error) { - applicationResourceData := make(map[string]applicationResourceObj) +func (r *PingOneApplicationResourceResource) getApplicationResourceData() (map[string][]string, error) { + applicationResourceData := make(map[string][]string) iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.ApplicationResourcesApi.ReadApplicationResources(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() applicationResources, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.ApplicationResource](iter, "ReadApplicationResources", "GetResources", r.ResourceType()) @@ -88,23 +94,31 @@ func (r *PingOneApplicationResourceResource) getApplicationResourceData() (map[s if applicationResourceIdOk && applicationResourceNameOk && resourceIdOk { - resourceObj, httpResponse, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.ReadOneResource(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, *resourceId).Execute() - ok, err := common.HandleClientResponse(httpResponse, err, "ReadOneResource", r.ResourceType()) - if err != nil { - return nil, err - } - // A warning was given when handling the client response. Return nil apiObjects to skip export of resource - if !ok { - return nil, nil - } - - applicationResourceData[*applicationResourceId] = applicationResourceObj{ - applicationResourceName: *applicationResourceName, - resourceId: *resourceId, - resourceName: resourceObj.GetName(), - } + applicationResourceData[*applicationResourceId] = []string{*applicationResourceName, *resourceId} } } return applicationResourceData, nil } + +func (r *PingOneApplicationResourceResource) getResourceName(resourceId string) (*string, bool, error) { + apiObj, httpResponse, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.ResourcesApi.ReadOneResource(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, resourceId).Execute() + ok, err := common.HandleClientResponse(httpResponse, err, "ReadOneResource", r.ResourceType()) + if err != nil { + return nil, false, err + } + if !ok { + return nil, false, nil + } + + if apiObj == nil { + return nil, false, nil + } + + resourceName, resourceNameOk := apiObj.GetNameOk() + if !resourceNameOk { + return nil, false, nil + } + + return resourceName, true, nil +} diff --git a/internal/connector/pingone/authorize/resources/application_resource_permission.go b/internal/connector/pingone/authorize/resources/application_resource_permission.go new file mode 100644 index 00000000..fd194d70 --- /dev/null +++ b/internal/connector/pingone/authorize/resources/application_resource_permission.go @@ -0,0 +1,141 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/authorize" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" + "github.com/pingidentity/pingcli/internal/utils" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneApplicationResourcePermissionResource{} +) + +type PingOneApplicationResourcePermissionResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneApplicationResourcePermissionResource +func ApplicationResourcePermission(clientInfo *connector.ClientInfo) *PingOneApplicationResourcePermissionResource { + return &PingOneApplicationResourcePermissionResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneApplicationResourcePermissionResource) ResourceType() string { + return "pingone_application_resource_permission" +} + +func (r *PingOneApplicationResourcePermissionResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + applicationResourceData, err := r.getApplicationResourceData() + if err != nil { + return nil, err + } + + for applicationResourceId, applicationResourceName := range applicationResourceData { + applicationResourcePermissionData, err := r.getApplicationResourcePermissionData(applicationResourceId) + if err != nil { + return nil, err + } + + for applicationResourcePermissionId, applicationResourcePermissionKey := range applicationResourcePermissionData { + commentData := map[string]string{ + "Application Resource ID": applicationResourceId, + "Application Resource Name": applicationResourceName, + "Application Resource Permission ID": applicationResourcePermissionId, + "Application Resource Permission Key": applicationResourcePermissionKey, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", applicationResourceName, applicationResourcePermissionKey), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, applicationResourceId, applicationResourcePermissionId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + } + + return &importBlocks, nil +} + +func (r *PingOneApplicationResourcePermissionResource) getApplicationResourceData() (map[string]string, error) { + applicationResourceData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.ApplicationResourcesApi.ReadApplicationResources(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.ApplicationResource](iter, "ReadApplicationResources", "GetResources", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, applicationResource := range apiObjs { + applicationResourceId, applicationResourceIdOk := applicationResource.GetIdOk() + applicationResourceName, applicationResourceNameOk := applicationResource.GetNameOk() + + if applicationResourceIdOk && applicationResourceNameOk { + applicationResourceData[*applicationResourceId] = *applicationResourceName + } + } + + return applicationResourceData, nil +} + +func (r *PingOneApplicationResourcePermissionResource) getApplicationResourcePermissionData(applicationResourceId string) (map[string]string, error) { + applicationResourcePermissionData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.ApplicationResourcePermissionsApi.ReadApplicationPermissions(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, applicationResourceId).Execute() + apiObjs, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.EntityArrayEmbeddedPermissionsInner](iter, "ReadApplicationPermissions", "GetPermissions", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, innerObj := range apiObjs { + var ( + applicationResourcePermissionId *string + applicationResourcePermissionIdOk bool + + applicationResourcePermissionKey *string + applicationResourcePermissionKeyOk bool + ) + + switch { + case innerObj.ApplicationResourcePermission != nil: + applicationResourcePermissionId, applicationResourcePermissionIdOk = innerObj.ApplicationResourcePermission.GetIdOk() + applicationResourcePermissionAction, applicationResourcePermissionActionOk := innerObj.ApplicationResourcePermission.GetActionOk() + applicationResourcePermissionResource, applicationResourcePermissionResourceOk := innerObj.ApplicationResourcePermission.GetResourceOk() + + if applicationResourcePermissionIdOk && applicationResourcePermissionActionOk && applicationResourcePermissionResourceOk { + applicationResourcePermissionResourceName, applicationResourcePermissionResourceNameOk := applicationResourcePermissionResource.GetNameOk() + + if applicationResourcePermissionResourceNameOk { + applicationResourcePermissionKey, applicationResourcePermissionKeyOk = utils.Pointer(fmt.Sprintf("%s:%s", *applicationResourcePermissionResourceName, *applicationResourcePermissionAction)), true + } + } + case innerObj.ApplicationRolePermission != nil: + applicationResourcePermissionId, applicationResourcePermissionIdOk = innerObj.ApplicationRolePermission.GetIdOk() + applicationResourcePermissionKey, applicationResourcePermissionKeyOk = innerObj.ApplicationRolePermission.GetKeyOk() + } + + if applicationResourcePermissionIdOk && applicationResourcePermissionKeyOk { + applicationResourcePermissionData[*applicationResourcePermissionId] = *applicationResourcePermissionKey + } + } + + return applicationResourcePermissionData, nil +} diff --git a/internal/connector/pingone/authorize/resources/application_resource_permission_test.go b/internal/connector/pingone/authorize/resources/application_resource_permission_test.go new file mode 100644 index 00000000..11f8afbe --- /dev/null +++ b/internal/connector/pingone/authorize/resources/application_resource_permission_test.go @@ -0,0 +1,35 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_authorize_testable_resources" +) + +func Test_ApplicationResourcePermission(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_authorize_testable_resources.ApplicationResourcePermission(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + applicationResourceTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", applicationResourceTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, applicationResourceTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/authorize/resources/application_resource_test.go b/internal/connector/pingone/authorize/resources/application_resource_test.go new file mode 100644 index 00000000..ef859af4 --- /dev/null +++ b/internal/connector/pingone/authorize/resources/application_resource_test.go @@ -0,0 +1,35 @@ +// Copyright © 2025 Ping Identity Corporation + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_authorize_testable_resources" +) + +func Test_ApplicationResource(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_authorize_testable_resources.ApplicationResource(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + resourceTr := tr.Dependencies[0] + + // Defined the expected ImportBlocks for the resource + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", resourceTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, resourceTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/authorize/resources/authorize_api_service.go b/internal/connector/pingone/authorize/resources/authorize_api_service.go new file mode 100644 index 00000000..f06553f5 --- /dev/null +++ b/internal/connector/pingone/authorize/resources/authorize_api_service.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/authorize" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneAuthorizeApiServiceResource{} +) + +type PingOneAuthorizeApiServiceResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneAuthorizeApiServiceResource +func AuthorizeApiService(clientInfo *connector.ClientInfo) *PingOneAuthorizeApiServiceResource { + return &PingOneAuthorizeApiServiceResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneAuthorizeApiServiceResource) ResourceType() string { + return "pingone_authorize_api_service" +} + +func (r *PingOneAuthorizeApiServiceResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + authorizeApiServiceData, err := r.getAuthorizeApiServiceData() + if err != nil { + return nil, err + } + + for authorizeApiServiceId, authorizeApiServiceName := range authorizeApiServiceData { + commentData := map[string]string{ + "Authorize Api Service ID": authorizeApiServiceId, + "Authorize Api Service Name": authorizeApiServiceName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: authorizeApiServiceName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, authorizeApiServiceId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneAuthorizeApiServiceResource) getAuthorizeApiServiceData() (map[string]string, error) { + authorizeApiServiceData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.APIServersApi.ReadAllAPIServers(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.APIServer](iter, "ReadAllAPIServers", "GetApiServers", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, authorizeApiService := range apiObjs { + authorizeApiServiceId, authorizeApiServiceIdOk := authorizeApiService.GetIdOk() + authorizeApiServiceName, authorizeApiServiceNameOk := authorizeApiService.GetNameOk() + + if authorizeApiServiceIdOk && authorizeApiServiceNameOk { + authorizeApiServiceData[*authorizeApiServiceId] = *authorizeApiServiceName + } + } + + return authorizeApiServiceData, nil +} diff --git a/internal/connector/pingone/authorize/resources/authorize_api_service_deployment.go b/internal/connector/pingone/authorize/resources/authorize_api_service_deployment.go new file mode 100644 index 00000000..c16f1970 --- /dev/null +++ b/internal/connector/pingone/authorize/resources/authorize_api_service_deployment.go @@ -0,0 +1,116 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/authorize" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneAuthorizeApiServiceDeploymentResource{} +) + +type PingOneAuthorizeApiServiceDeploymentResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneAuthorizeApiServiceDeploymentResource +func AuthorizeApiServiceDeployment(clientInfo *connector.ClientInfo) *PingOneAuthorizeApiServiceDeploymentResource { + return &PingOneAuthorizeApiServiceDeploymentResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneAuthorizeApiServiceDeploymentResource) ResourceType() string { + return "pingone_authorize_api_service_deployment" +} + +func (r *PingOneAuthorizeApiServiceDeploymentResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + apiServiceData, err := r.getAPIServiceData() + if err != nil { + return nil, err + } + + for apiServiceId, apiServiceName := range apiServiceData { + ok, err := r.checkAuthorizeApiServiceDeploymentData(apiServiceId) + if err != nil { + return nil, err + } + if !ok { + continue + } + + commentData := map[string]string{ + "API Service ID": apiServiceId, + "API Service Name": apiServiceName, + "Resource Type": r.ResourceType(), + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: fmt.Sprintf("%s_deployment", apiServiceName), + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, apiServiceId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneAuthorizeApiServiceDeploymentResource) getAPIServiceData() (map[string]string, error) { + apiServiceData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.APIServersApi.ReadAllAPIServers(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.APIServer](iter, "ReadAllAPIServers", "GetApiServers", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, apiService := range apiObjs { + apiServiceId, apiServiceIdOk := apiService.GetIdOk() + apiServiceName, apiServiceNameOk := apiService.GetNameOk() + + if apiServiceIdOk && apiServiceNameOk { + apiServiceData[*apiServiceId] = *apiServiceName + } + } + + return apiServiceData, nil +} + +func (r *PingOneAuthorizeApiServiceDeploymentResource) checkAuthorizeApiServiceDeploymentData(apiServerId string) (bool, error) { + apiObj, response, err := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.APIServerDeploymentApi.ReadDeploymentStatus(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, apiServerId).Execute() + ok, err := common.CheckSingletonResource(response, err, "ReadDeploymentStatus", r.ResourceType()) + if err != nil { + return false, err + } + if !ok { + return false, nil + } + + status, statusOk := apiObj.GetStatusOk() + if statusOk { + statusCode, statusCodeOk := status.GetCodeOk() + if statusCodeOk && statusCode != nil && *statusCode != "DEPLOYMENT_UNINITIALIZED" { + return true, nil + } + } + + return false, nil +} diff --git a/internal/connector/pingone/authorize/resources/authorize_api_service_deployment_test.go b/internal/connector/pingone/authorize/resources/authorize_api_service_deployment_test.go new file mode 100644 index 00000000..87eae675 --- /dev/null +++ b/internal/connector/pingone/authorize/resources/authorize_api_service_deployment_test.go @@ -0,0 +1,35 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_authorize_testable_resources" +) + +func Test_AuthorizeApiServiceDeployment(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_authorize_testable_resources.AuthorizeApiServiceDeployment(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + apiServiceTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_deployment", apiServiceTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, apiServiceTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/authorize/resources/authorize_api_service_operation.go b/internal/connector/pingone/authorize/resources/authorize_api_service_operation.go new file mode 100644 index 00000000..b5a3d57d --- /dev/null +++ b/internal/connector/pingone/authorize/resources/authorize_api_service_operation.go @@ -0,0 +1,117 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/authorize" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneAuthorizeApiServiceOperationResource{} +) + +type PingOneAuthorizeApiServiceOperationResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneAuthorizeApiServiceOperationResource +func AuthorizeApiServiceOperation(clientInfo *connector.ClientInfo) *PingOneAuthorizeApiServiceOperationResource { + return &PingOneAuthorizeApiServiceOperationResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneAuthorizeApiServiceOperationResource) ResourceType() string { + return "pingone_authorize_api_service_operation" +} + +func (r *PingOneAuthorizeApiServiceOperationResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + apiServerData, err := r.getApiServerData() + if err != nil { + return nil, err + } + + for apiServerId, apiServerName := range apiServerData { + authorizeApiServiceOperationData, err := r.getAuthorizeApiServiceOperationData(apiServerId) + if err != nil { + return nil, err + } + + for authorizeApiServiceOperationId, authorizeApiServiceOperationName := range authorizeApiServiceOperationData { + commentData := map[string]string{ + "Authorize Api Server ID": apiServerId, + "Authorize Api Server Name": apiServerName, + "Authorize Api Server Operation ID": authorizeApiServiceOperationId, + "Authorize Api Server Operation Name": authorizeApiServiceOperationName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", apiServerName, authorizeApiServiceOperationName), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, apiServerId, authorizeApiServiceOperationId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + } + + return &importBlocks, nil +} + +func (r *PingOneAuthorizeApiServiceOperationResource) getApiServerData() (map[string]string, error) { + apiServerData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.APIServersApi.ReadAllAPIServers(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.APIServer](iter, "ReadAllAPIServers", "GetApiServers", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, apiServer := range apiObjs { + apiServerId, apiServerIdOk := apiServer.GetIdOk() + apiServerName, apiServerNameOk := apiServer.GetNameOk() + + if apiServerIdOk && apiServerNameOk { + apiServerData[*apiServerId] = *apiServerName + } + } + + return apiServerData, nil +} + +func (r *PingOneAuthorizeApiServiceOperationResource) getAuthorizeApiServiceOperationData(apiServerId string) (map[string]string, error) { + authorizeApiServiceOperationData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.APIServerOperationsApi.ReadAllAPIServerOperations(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, apiServerId).Execute() + apiObjs, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.APIServerOperation](iter, "ReadAllAPIServerOperations", "GetOperations", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, authorizeApiServiceOperation := range apiObjs { + authorizeApiServiceOperationId, authorizeApiServiceOperationIdOk := authorizeApiServiceOperation.GetIdOk() + authorizeApiServiceOperationName, authorizeApiServiceOperationNameOk := authorizeApiServiceOperation.GetNameOk() + + if authorizeApiServiceOperationIdOk && authorizeApiServiceOperationNameOk { + authorizeApiServiceOperationData[*authorizeApiServiceOperationId] = *authorizeApiServiceOperationName + } + } + + return authorizeApiServiceOperationData, nil +} diff --git a/internal/connector/pingone/authorize/resources/authorize_api_service_operation_test.go b/internal/connector/pingone/authorize/resources/authorize_api_service_operation_test.go new file mode 100644 index 00000000..5877a98c --- /dev/null +++ b/internal/connector/pingone/authorize/resources/authorize_api_service_operation_test.go @@ -0,0 +1,35 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_authorize_testable_resources" +) + +func Test_AuthorizeApiServiceOperation(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_authorize_testable_resources.AuthorizeApiServiceOperation(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + apiServiceTr := tr.Dependencies[0] + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", apiServiceTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, apiServiceTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/authorize/resources/authorize_api_service_test.go b/internal/connector/pingone/authorize/resources/authorize_api_service_test.go new file mode 100644 index 00000000..350bbf06 --- /dev/null +++ b/internal/connector/pingone/authorize/resources/authorize_api_service_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_authorize_testable_resources" +) + +func Test_AuthorizeApiService(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_authorize_testable_resources.AuthorizeApiService(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/authorize/resources/authorize_application_role.go b/internal/connector/pingone/authorize/resources/authorize_application_role.go new file mode 100644 index 00000000..b591237b --- /dev/null +++ b/internal/connector/pingone/authorize/resources/authorize_application_role.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/authorize" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneAuthorizeApplicationRoleResource{} +) + +type PingOneAuthorizeApplicationRoleResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneAuthorizeApplicationRoleResource +func AuthorizeApplicationRole(clientInfo *connector.ClientInfo) *PingOneAuthorizeApplicationRoleResource { + return &PingOneAuthorizeApplicationRoleResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneAuthorizeApplicationRoleResource) ResourceType() string { + return "pingone_authorize_application_role" +} + +func (r *PingOneAuthorizeApplicationRoleResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + authorizeApplicationRoleData, err := r.getAuthorizeApplicationRoleData() + if err != nil { + return nil, err + } + + for authorizeApplicationRoleId, authorizeApplicationRoleName := range authorizeApplicationRoleData { + commentData := map[string]string{ + "Authorize Application Role ID": authorizeApplicationRoleId, + "Authorize Application Role Name": authorizeApplicationRoleName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: authorizeApplicationRoleName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, authorizeApplicationRoleId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneAuthorizeApplicationRoleResource) getAuthorizeApplicationRoleData() (map[string]string, error) { + authorizeApplicationRoleData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.ApplicationRolesApi.ReadApplicationRoles(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.ApplicationRole](iter, "ReadApplicationRoles", "GetRoles", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, authorizeApplicationRole := range apiObjs { + authorizeApplicationRoleId, authorizeApplicationRoleIdOk := authorizeApplicationRole.GetIdOk() + authorizeApplicationRoleName, authorizeApplicationRoleNameOk := authorizeApplicationRole.GetNameOk() + + if authorizeApplicationRoleIdOk && authorizeApplicationRoleNameOk { + authorizeApplicationRoleData[*authorizeApplicationRoleId] = *authorizeApplicationRoleName + } + } + + return authorizeApplicationRoleData, nil +} diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_permission.go b/internal/connector/pingone/authorize/resources/authorize_application_role_permission.go similarity index 67% rename from internal/connector/pingone/authorize/resources/pingone_authorize_application_role_permission.go rename to internal/connector/pingone/authorize/resources/authorize_application_role_permission.go index a2d1a8c9..28c982bf 100644 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_permission.go +++ b/internal/connector/pingone/authorize/resources/authorize_application_role_permission.go @@ -28,6 +28,10 @@ func AuthorizeApplicationRolePermission(clientInfo *connector.ClientInfo) *Pingo } } +func (r *PingoneAuthorizeApplicationRolePermissionResource) ResourceType() string { + return "pingone_authorize_application_role_permission" +} + func (r *PingoneAuthorizeApplicationRolePermissionResource) ExportAll() (*[]connector.ImportBlock, error) { l := logger.Get() l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) @@ -39,26 +43,26 @@ func (r *PingoneAuthorizeApplicationRolePermissionResource) ExportAll() (*[]conn return nil, err } - for appRoleId, appRoleName := range applicationRoleData { - appRolePermissionData, err := r.getApplicationRolePermissionData(appRoleId) + for applicationRoleId, applicationRoleName := range applicationRoleData { + appRolePermissionData, err := r.getApplicationRolePermissionData(applicationRoleId) if err != nil { return nil, err } - for appRolePermissionId, appRolePermissionKey := range appRolePermissionData { + for applicationRolePermissionId, applicationRolePermissionKey := range appRolePermissionData { commentData := map[string]string{ - "Application Role ID": appRoleId, - "Application Role Name": appRoleName, - "Application Role Permission ID": appRolePermissionId, - "Application Role Permission Key": appRolePermissionKey, + "Application Role ID": applicationRoleId, + "Application Role Name": applicationRoleName, + "Application Role Permission ID": applicationRolePermissionId, + "Application Role Permission Key": applicationRolePermissionKey, "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Resource Type": r.ResourceType(), } importBlock := connector.ImportBlock{ ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", appRoleName, appRolePermissionKey), - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, appRoleId, appRolePermissionId), + ResourceName: fmt.Sprintf("%s_%s", applicationRoleName, applicationRolePermissionKey), + ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, applicationRoleId, applicationRolePermissionId), CommentInformation: common.GenerateCommentInformation(commentData), } @@ -73,12 +77,12 @@ func (r *PingoneAuthorizeApplicationRolePermissionResource) getApplicationRoleDa applicationRoleData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.ApplicationRolesApi.ReadApplicationRoles(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - applicationRoles, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.ApplicationRole](iter, "ReadApplicationRoles", "GetRoles", r.ResourceType()) + apiObjs, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.ApplicationRole](iter, "ReadApplicationRoles", "GetRoles", r.ResourceType()) if err != nil { return nil, err } - for _, applicationRole := range applicationRoles { + for _, applicationRole := range apiObjs { applicationRoleId, applicationRoleIdOk := applicationRole.GetIdOk() applicationRoleName, applicationRoleNameOk := applicationRole.GetNameOk() @@ -94,36 +98,21 @@ func (r *PingoneAuthorizeApplicationRolePermissionResource) getApplicationRolePe applicationRolePermissionData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.ApplicationRolePermissionsApi.ReadApplicationRolePermissions(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, appRoleId).Execute() - applicationRolePermissions, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.EntityArrayEmbeddedPermissionsInner](iter, "ReadApplicationRolePermissions", "GetPermissions", r.ResourceType()) + apiObjs, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.EntityArrayEmbeddedPermissionsInner](iter, "ReadApplicationRolePermissions", "GetPermissions", r.ResourceType()) if err != nil { return nil, err } - for _, applicationRolePermission := range applicationRolePermissions { - - var ( - applicationRolePermissionId *string - applicationRolePermissionIdOk bool - applicationRolePermissionKey *string - applicationRolePermissionKeyOk bool - ) - - switch t := applicationRolePermission.GetActualInstance().(type) { - case *authorize.ApplicationRolePermission: - applicationRolePermissionId, applicationRolePermissionIdOk = t.GetIdOk() - applicationRolePermissionKey, applicationRolePermissionKeyOk = t.GetKeyOk() - default: - continue - } + for _, innerObj := range apiObjs { + if innerObj.ApplicationRolePermission != nil { + applicationRolePermissionId, applicationRolePermissionIdOk := innerObj.ApplicationRolePermission.GetIdOk() + applicationRolePermissionKey, applicationRolePermissionKeyOk := innerObj.ApplicationRolePermission.GetKeyOk() - if applicationRolePermissionIdOk && applicationRolePermissionKeyOk { - applicationRolePermissionData[*applicationRolePermissionId] = *applicationRolePermissionKey + if applicationRolePermissionIdOk && applicationRolePermissionKeyOk { + applicationRolePermissionData[*applicationRolePermissionId] = *applicationRolePermissionKey + } } } return applicationRolePermissionData, nil } - -func (r *PingoneAuthorizeApplicationRolePermissionResource) ResourceType() string { - return "pingone_authorize_application_role_permission" -} diff --git a/internal/connector/pingone/authorize/resources/authorize_application_role_permission_test.go b/internal/connector/pingone/authorize/resources/authorize_application_role_permission_test.go new file mode 100644 index 00000000..c49d256f --- /dev/null +++ b/internal/connector/pingone/authorize/resources/authorize_application_role_permission_test.go @@ -0,0 +1,35 @@ +// Copyright © 2025 Ping Identity Corporation + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_authorize_testable_resources" +) + +func Test_AuthorizeApplicationRolePermission(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_authorize_testable_resources.AuthorizeApplicationRolePermission(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + applicationRoleTr := tr.Dependencies[0] + + // Defined the expected ImportBlocks for the resource + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: fmt.Sprintf("%s_%s", applicationRoleTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, applicationRoleTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/authorize/resources/authorize_application_role_test.go b/internal/connector/pingone/authorize/resources/authorize_application_role_test.go new file mode 100644 index 00000000..5c294835 --- /dev/null +++ b/internal/connector/pingone/authorize/resources/authorize_application_role_test.go @@ -0,0 +1,33 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_authorize_testable_resources" +) + +func Test_AuthorizeApplicationRole(t *testing.T) { + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_authorize_testable_resources.AuthorizeApplicationRole(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/authorize/resources/authorize_decision_endpoint.go b/internal/connector/pingone/authorize/resources/authorize_decision_endpoint.go new file mode 100644 index 00000000..697e7c0f --- /dev/null +++ b/internal/connector/pingone/authorize/resources/authorize_decision_endpoint.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources + +import ( + "fmt" + + "github.com/patrickcping/pingone-go-sdk-v2/authorize" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone" + "github.com/pingidentity/pingcli/internal/logger" +) + +// Verify that the resource satisfies the exportable resource interface +var ( + _ connector.ExportableResource = &PingOneAuthorizeDecisionEndpointResource{} +) + +type PingOneAuthorizeDecisionEndpointResource struct { + clientInfo *connector.ClientInfo +} + +// Utility method for creating a PingOneAuthorizeDecisionEndpointResource +func AuthorizeDecisionEndpoint(clientInfo *connector.ClientInfo) *PingOneAuthorizeDecisionEndpointResource { + return &PingOneAuthorizeDecisionEndpointResource{ + clientInfo: clientInfo, + } +} + +func (r *PingOneAuthorizeDecisionEndpointResource) ResourceType() string { + return "pingone_authorize_decision_endpoint" +} + +func (r *PingOneAuthorizeDecisionEndpointResource) ExportAll() (*[]connector.ImportBlock, error) { + l := logger.Get() + l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) + + importBlocks := []connector.ImportBlock{} + + authorizeDecisionEndpointData, err := r.getAuthorizeDecisionEndpointData() + if err != nil { + return nil, err + } + + for authorizeDecisionEndpointId, authorizeDecisionEndpointName := range authorizeDecisionEndpointData { + commentData := map[string]string{ + "Authorize Decision Endpoint ID": authorizeDecisionEndpointId, + "Authorize Decision Endpoint Name": authorizeDecisionEndpointName, + "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, + "Resource Type": r.ResourceType(), + } + + importBlock := connector.ImportBlock{ + ResourceType: r.ResourceType(), + ResourceName: authorizeDecisionEndpointName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, authorizeDecisionEndpointId), + CommentInformation: common.GenerateCommentInformation(commentData), + } + + importBlocks = append(importBlocks, importBlock) + } + + return &importBlocks, nil +} + +func (r *PingOneAuthorizeDecisionEndpointResource) getAuthorizeDecisionEndpointData() (map[string]string, error) { + authorizeDecisionEndpointData := make(map[string]string) + + iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.PolicyDecisionManagementApi.ReadAllDecisionEndpoints(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + apiObjs, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.DecisionEndpoint](iter, "ReadAllDecisionEndpoints", "GetDecisionEndpoints", r.ResourceType()) + if err != nil { + return nil, err + } + + for _, authorizeDecisionEndpoint := range apiObjs { + authorizeDecisionEndpointId, authorizeDecisionEndpointIdOk := authorizeDecisionEndpoint.GetIdOk() + authorizeDecisionEndpointName, authorizeDecisionEndpointNameOk := authorizeDecisionEndpoint.GetNameOk() + + if authorizeDecisionEndpointIdOk && authorizeDecisionEndpointNameOk { + authorizeDecisionEndpointData[*authorizeDecisionEndpointId] = *authorizeDecisionEndpointName + } + } + + return authorizeDecisionEndpointData, nil +} diff --git a/internal/connector/pingone/authorize/resources/authorize_decision_endpoint_test.go b/internal/connector/pingone/authorize/resources/authorize_decision_endpoint_test.go new file mode 100644 index 00000000..481b343c --- /dev/null +++ b/internal/connector/pingone/authorize/resources/authorize_decision_endpoint_test.go @@ -0,0 +1,36 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package resources_test + +import ( + "fmt" + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/testing/testutils" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_authorize_testable_resources" +) + +func Test_AuthorizeDecisionEndpoint(t *testing.T) { + // TODO: Remove after completion of TRIAGE-26607 + t.SkipNow() + + clientInfo := testutils.GetClientInfo(t) + + tr := pingone_authorize_testable_resources.AuthorizeDecisionEndpoint(t, clientInfo) + + tr.CreateResource(t) + defer tr.DeleteResource(t) + + expectedImportBlocks := []connector.ImportBlock{ + { + ResourceType: tr.ExportableResource.ResourceType(), + ResourceName: tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], + ResourceID: fmt.Sprintf("%s/%s", clientInfo.PingOneExportEnvironmentID, tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + }, + } + + testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) +} diff --git a/internal/connector/pingone/authorize/resources/pingone_application_resource_permission.go b/internal/connector/pingone/authorize/resources/pingone_application_resource_permission.go deleted file mode 100644 index cb00f4f8..00000000 --- a/internal/connector/pingone/authorize/resources/pingone_application_resource_permission.go +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/authorize" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingoneAuthorizeApplicationResourcePermissionResource{} -) - -type PingoneAuthorizeApplicationResourcePermissionResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingoneAuthorizeApplicationResourcePermissionResource -func AuthorizeApplicationResourcePermission(clientInfo *connector.ClientInfo) *PingoneAuthorizeApplicationResourcePermissionResource { - return &PingoneAuthorizeApplicationResourcePermissionResource{ - clientInfo: clientInfo, - } -} - -func (r *PingoneAuthorizeApplicationResourcePermissionResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - applicationResourceData, err := r.getApplicationResourceData() - if err != nil { - return nil, err - } - - for appResourceId, appResourceName := range applicationResourceData { - appResourcePermissionData, err := r.getApplicationResourcePermissionData(appResourceId) - if err != nil { - return nil, err - } - - for appResourcePermissionId, appResourcePermissionKey := range appResourcePermissionData { - commentData := map[string]string{ - "Application Resource ID": appResourceId, - "Application Resource Name": appResourceName, - "Application Resource Permission ID": appResourcePermissionId, - "Application Resource Permission Key": appResourcePermissionKey, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: appResourcePermissionKey, - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, appResourceId, appResourcePermissionId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - } - - return &importBlocks, nil -} - -func (r *PingoneAuthorizeApplicationResourcePermissionResource) getApplicationResourceData() (map[string]string, error) { - applicationResourceData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.ApplicationResourcesApi.ReadApplicationResources(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - applicationResources, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.ApplicationResource](iter, "ReadApplicationResources", "GetResources", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, applicationResource := range applicationResources { - applicationResourceId, applicationResourceIdOk := applicationResource.GetIdOk() - applicationResourceName, applicationResourceNameOk := applicationResource.GetNameOk() - - if applicationResourceIdOk && applicationResourceNameOk { - applicationResourceData[*applicationResourceId] = *applicationResourceName - } - } - - return applicationResourceData, nil -} - -func (r *PingoneAuthorizeApplicationResourcePermissionResource) getApplicationResourcePermissionData(appResourceId string) (map[string]string, error) { - applicationResourcePermissionData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.ApplicationResourcePermissionsApi.ReadApplicationPermissions(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, appResourceId).Execute() - applicationResourcePermissions, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.EntityArrayEmbeddedPermissionsInner](iter, "ReadApplicationPermissions", "GetPermissions", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, applicationResourcePermission := range applicationResourcePermissions { - - var ( - applicationResourcePermissionId *string - applicationResourcePermissionIdOk bool - applicationResourcePermissionKey *string - applicationResourcePermissionKeyOk bool - ) - - switch t := applicationResourcePermission.GetActualInstance().(type) { - case *authorize.ApplicationResourcePermission: - applicationResourcePermissionId, applicationResourcePermissionIdOk = t.GetIdOk() - case *authorize.ApplicationRolePermission: - applicationResourcePermissionId, applicationResourcePermissionIdOk = t.GetIdOk() - applicationResourcePermissionKey, applicationResourcePermissionKeyOk = t.GetKeyOk() - default: - continue - } - - if applicationResourcePermissionIdOk && applicationResourcePermissionKeyOk { - applicationResourcePermissionData[*applicationResourcePermissionId] = *applicationResourcePermissionKey - } - - if applicationResourcePermissionIdOk && !applicationResourcePermissionKeyOk { - applicationResourcePermissionData[*applicationResourcePermissionId] = *applicationResourcePermissionId - } - } - - return applicationResourcePermissionData, nil -} - -func (r *PingoneAuthorizeApplicationResourcePermissionResource) ResourceType() string { - return "pingone_application_resource_permission" -} diff --git a/internal/connector/pingone/authorize/resources/pingone_application_resource_permission_test.go b/internal/connector/pingone/authorize/resources/pingone_application_resource_permission_test.go deleted file mode 100644 index 50f23c40..00000000 --- a/internal/connector/pingone/authorize/resources/pingone_application_resource_permission_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/authorize/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestAuthorizeApplicationResourcePermissionExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.AuthorizeApplicationResourcePermission(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_application_resource_permission", - ResourceName: "test-permission1:action1", - ResourceID: fmt.Sprintf("%s/62b8a221-a530-44f4-ad02-cdb0d3b1395f/080dd732-99ea-4730-a8a6-8da88a232131", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_application_resource_permission", - ResourceName: "test-permission1:action2", - ResourceID: fmt.Sprintf("%s/62b8a221-a530-44f4-ad02-cdb0d3b1395f/05717cf9-3ce4-443a-8154-1986fe984780", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/authorize/resources/pingone_application_resource_test.go b/internal/connector/pingone/authorize/resources/pingone_application_resource_test.go deleted file mode 100644 index b092f748..00000000 --- a/internal/connector/pingone/authorize/resources/pingone_application_resource_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/authorize/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestApplicationResourceExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.ApplicationResource(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_application_resource", - ResourceName: "authorize-api-service_test-permission1", - ResourceID: fmt.Sprintf("%s/3c6001a0-6110-4934-9d34-fa8c4a2894c2/62b8a221-a530-44f4-ad02-cdb0d3b1395f", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service.go b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service.go deleted file mode 100644 index f1dbf6e6..00000000 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/authorize" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingoneAuthorizeAPIServiceResource{} -) - -type PingoneAuthorizeAPIServiceResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingoneAuthorizeAPIServiceResource -func AuthorizeAPIService(clientInfo *connector.ClientInfo) *PingoneAuthorizeAPIServiceResource { - return &PingoneAuthorizeAPIServiceResource{ - clientInfo: clientInfo, - } -} - -func (r *PingoneAuthorizeAPIServiceResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - APIServerData, err := r.getAPIServerData() - if err != nil { - return nil, err - } - - for apiServerId, apiServerName := range APIServerData { - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "API Server ID": apiServerId, - "API Server Name": apiServerName, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: apiServerName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, apiServerId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingoneAuthorizeAPIServiceResource) getAPIServerData() (map[string]string, error) { - apiServerData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.APIServersApi.ReadAllAPIServers(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - apiServers, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.APIServer](iter, "ReadAllAPIServers", "GetApiServers", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, apiServer := range apiServers { - apiServerId, apiServerIdOk := apiServer.GetIdOk() - apiServerName, apiServerNameOk := apiServer.GetNameOk() - - if apiServerIdOk && apiServerNameOk { - apiServerData[*apiServerId] = *apiServerName - } - } - - return apiServerData, nil -} - -func (r *PingoneAuthorizeAPIServiceResource) ResourceType() string { - return "pingone_authorize_api_service" -} diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_deployment.go b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_deployment.go deleted file mode 100644 index 4685246b..00000000 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_deployment.go +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/authorize" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingoneAuthorizeAPIServiceDeploymentResource{} -) - -type PingoneAuthorizeAPIServiceDeploymentResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingoneAuthorizeAPIServiceDeploymentResource -func AuthorizeAPIServiceDeployment(clientInfo *connector.ClientInfo) *PingoneAuthorizeAPIServiceDeploymentResource { - return &PingoneAuthorizeAPIServiceDeploymentResource{ - clientInfo: clientInfo, - } -} - -func (r *PingoneAuthorizeAPIServiceDeploymentResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - apiServiceData, err := r.getAPIServiceData() - if err != nil { - return nil, err - } - - for apiServiceId, apiServiceName := range apiServiceData { - apiServiceDeployed, err := r.getAPIServiceDeployed(apiServiceId) - if err != nil { - return nil, err - } - - if apiServiceDeployed { - commentData := map[string]string{ - "API Service ID": apiServiceId, - "API Service Name": apiServiceName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: apiServiceName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, apiServiceId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - } - - return &importBlocks, nil -} - -func (r *PingoneAuthorizeAPIServiceDeploymentResource) getAPIServiceData() (map[string]string, error) { - apiServiceData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.APIServersApi.ReadAllAPIServers(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - apiServices, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.APIServer](iter, "ReadAllAPIServers", "GetApiServers", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, apiService := range apiServices { - apiServiceId, apiServiceIdOk := apiService.GetIdOk() - apiServiceName, apiServiceNameOk := apiService.GetNameOk() - - if apiServiceIdOk && apiServiceNameOk { - apiServiceData[*apiServiceId] = *apiServiceName - } - } - - return apiServiceData, nil -} - -func (r *PingoneAuthorizeAPIServiceDeploymentResource) getAPIServiceDeployed(apiServiceId string) (bool, error) { - - apiServerDeployment, httpResponse, err := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.APIServerDeploymentApi.ReadDeploymentStatus(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, apiServiceId).Execute() - ok, err := common.HandleClientResponse(httpResponse, err, "ReadDeploymentStatus", r.ResourceType()) - if err != nil { - return false, err - } - // A warning was given when handling the client response. Return nil apiObjects to skip export of resource - if !ok { - return false, nil - } - - if status, ok := apiServerDeployment.GetStatusOk(); ok { - if statusCode, ok := status.GetCodeOk(); ok && statusCode != nil && *statusCode != "DEPLOYMENT_UNINITIALIZED" { - return true, nil - } - } - - return false, nil -} - -func (r *PingoneAuthorizeAPIServiceDeploymentResource) ResourceType() string { - return "pingone_authorize_api_service_deployment" -} diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_deployment_test.go b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_deployment_test.go deleted file mode 100644 index a4e3cd14..00000000 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_deployment_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/authorize/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestAuthorizeAPIServiceDeploymentExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.AuthorizeAPIServiceDeployment(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_authorize_api_service_deployment", - ResourceName: "Test API Service", - ResourceID: fmt.Sprintf("%s/cee5d5a9-49aa-478d-816e-ec47a2b5aede", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_operation.go b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_operation.go deleted file mode 100644 index afe40b31..00000000 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_operation.go +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/authorize" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingoneAuthorizeAPIServiceOperationResource{} -) - -type PingoneAuthorizeAPIServiceOperationResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingoneAuthorizeAPIServiceOperationResource -func AuthorizeAPIServiceOperation(clientInfo *connector.ClientInfo) *PingoneAuthorizeAPIServiceOperationResource { - return &PingoneAuthorizeAPIServiceOperationResource{ - clientInfo: clientInfo, - } -} - -func (r *PingoneAuthorizeAPIServiceOperationResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - apiServiceData, err := r.getAPIServiceData() - if err != nil { - return nil, err - } - - for apiServiceId, apiServiceName := range apiServiceData { - apiServiceOperationData, err := r.getAPIServiceOperationData(apiServiceId) - if err != nil { - return nil, err - } - - for apiServiceOperationId, apiServiceOperationName := range apiServiceOperationData { - commentData := map[string]string{ - "API Service ID": apiServiceId, - "API Service Name": apiServiceName, - "API Service Operation ID": apiServiceOperationId, - "API Service Operation Name": apiServiceOperationName, - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: fmt.Sprintf("%s_%s", apiServiceName, apiServiceOperationName), - ResourceID: fmt.Sprintf("%s/%s/%s", r.clientInfo.PingOneExportEnvironmentID, apiServiceId, apiServiceOperationId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - } - - return &importBlocks, nil -} - -func (r *PingoneAuthorizeAPIServiceOperationResource) getAPIServiceData() (map[string]string, error) { - apiServiceData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.APIServersApi.ReadAllAPIServers(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - apiServices, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.APIServer](iter, "ReadAllAPIServers", "GetApiServers", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, apiService := range apiServices { - apiServiceId, apiServiceIdOk := apiService.GetIdOk() - apiServiceName, apiServiceNameOk := apiService.GetNameOk() - - if apiServiceIdOk && apiServiceNameOk { - apiServiceData[*apiServiceId] = *apiServiceName - } - } - - return apiServiceData, nil -} - -func (r *PingoneAuthorizeAPIServiceOperationResource) getAPIServiceOperationData(apiServiceId string) (map[string]string, error) { - apiServiceOperationData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.APIServerOperationsApi.ReadAllAPIServerOperations(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, apiServiceId).Execute() - apiServiceOperations, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.APIServerOperation](iter, "ReadAllAPIServerOperations", "GetOperations", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, apiServiceOperation := range apiServiceOperations { - apiServiceOperationId, apiServiceOperationIdOk := apiServiceOperation.GetIdOk() - apiServiceOperationName, apiServiceOperationNameOk := apiServiceOperation.GetNameOk() - - if apiServiceOperationIdOk && apiServiceOperationNameOk { - apiServiceOperationData[*apiServiceOperationId] = *apiServiceOperationName - } - } - - return apiServiceOperationData, nil -} - -func (r *PingoneAuthorizeAPIServiceOperationResource) ResourceType() string { - return "pingone_authorize_api_service_operation" -} diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_operation_test.go b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_operation_test.go deleted file mode 100644 index 1c399a23..00000000 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_operation_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/authorize/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestAuthorizeAPIServiceOperationExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.AuthorizeAPIServiceOperation(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_authorize_api_service_operation", - ResourceName: "Test API Service_My Path", - ResourceID: fmt.Sprintf("%s/cee5d5a9-49aa-478d-816e-ec47a2b5aede/07fc42c1-d998-40bd-bb64-143911924608", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_test.go b/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_test.go deleted file mode 100644 index 12a6db5c..00000000 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_api_service_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/authorize/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestAuthorizeAPIServiceExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.AuthorizeAPIService(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_authorize_api_service", - ResourceName: "Test API Service", - ResourceID: fmt.Sprintf("%s/cee5d5a9-49aa-478d-816e-ec47a2b5aede", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_authorize_api_service", - ResourceName: "Undeployed Test API Service", - ResourceID: fmt.Sprintf("%s/5558f5ab-46b2-40ef-ac78-9a32a07e31c3", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_application_role.go b/internal/connector/pingone/authorize/resources/pingone_authorize_application_role.go deleted file mode 100644 index 34b7664b..00000000 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_application_role.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/authorize" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingoneAuthorizeApplicationRoleResource{} -) - -type PingoneAuthorizeApplicationRoleResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingoneAuthorizeApplicationRoleResource -func AuthorizeApplicationRole(clientInfo *connector.ClientInfo) *PingoneAuthorizeApplicationRoleResource { - return &PingoneAuthorizeApplicationRoleResource{ - clientInfo: clientInfo, - } -} - -func (r *PingoneAuthorizeApplicationRoleResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - ApplicationRoleData, err := r.getApplicationRoleData() - if err != nil { - return nil, err - } - - for applicationRoleId, applicationRoleName := range ApplicationRoleData { - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Application Role ID": applicationRoleId, - "Application Role Name": applicationRoleName, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: applicationRoleName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, applicationRoleId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingoneAuthorizeApplicationRoleResource) getApplicationRoleData() (map[string]string, error) { - applicationRoleData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.ApplicationRolesApi.ReadApplicationRoles(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - applicationRoles, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.ApplicationRole](iter, "ReadApplicationRoles", "GetRoles", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, applicationRole := range applicationRoles { - applicationRoleId, applicationRoleIdOk := applicationRole.GetIdOk() - applicationRoleName, applicationRoleNameOk := applicationRole.GetNameOk() - - if applicationRoleIdOk && applicationRoleNameOk { - applicationRoleData[*applicationRoleId] = *applicationRoleName - } - } - - return applicationRoleData, nil -} - -func (r *PingoneAuthorizeApplicationRoleResource) ResourceType() string { - return "pingone_authorize_application_role" -} diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_permission_test.go b/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_permission_test.go deleted file mode 100644 index bfeba178..00000000 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_permission_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/authorize/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestAuthorizeApplicationRolePermissionExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.AuthorizeApplicationRolePermission(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_authorize_application_role_permission", - ResourceName: "test-role_test-permission1:action1", - ResourceID: fmt.Sprintf("%s/f45cbcc7-2406-470b-93bc-ff477da0b8f7/080dd732-99ea-4730-a8a6-8da88a232131", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_authorize_application_role_permission", - ResourceName: "test-role_test-permission1:action2", - ResourceID: fmt.Sprintf("%s/f45cbcc7-2406-470b-93bc-ff477da0b8f7/05717cf9-3ce4-443a-8154-1986fe984780", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_test.go b/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_test.go deleted file mode 100644 index 9013ba19..00000000 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_application_role_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/authorize/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestAuthorizeApplicationRoleExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.AuthorizeApplicationRole(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_authorize_application_role", - ResourceName: "test-role", - ResourceID: fmt.Sprintf("%s/f45cbcc7-2406-470b-93bc-ff477da0b8f7", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_decision_endpoint.go b/internal/connector/pingone/authorize/resources/pingone_authorize_decision_endpoint.go deleted file mode 100644 index 40297d2f..00000000 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_decision_endpoint.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources - -import ( - "fmt" - - "github.com/patrickcping/pingone-go-sdk-v2/authorize" - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/common" - "github.com/pingidentity/pingcli/internal/connector/pingone" - "github.com/pingidentity/pingcli/internal/logger" -) - -// Verify that the resource satisfies the exportable resource interface -var ( - _ connector.ExportableResource = &PingoneAuthorizeDecisionEndpointResource{} -) - -type PingoneAuthorizeDecisionEndpointResource struct { - clientInfo *connector.ClientInfo -} - -// Utility method for creating a PingoneAuthorizeDecisionEndpointResource -func AuthorizeDecisionEndpoint(clientInfo *connector.ClientInfo) *PingoneAuthorizeDecisionEndpointResource { - return &PingoneAuthorizeDecisionEndpointResource{ - clientInfo: clientInfo, - } -} - -func (r *PingoneAuthorizeDecisionEndpointResource) ExportAll() (*[]connector.ImportBlock, error) { - l := logger.Get() - l.Debug().Msgf("Exporting all '%s' Resources...", r.ResourceType()) - - importBlocks := []connector.ImportBlock{} - - DecisionEndpointData, err := r.getDecisionEndpointData() - if err != nil { - return nil, err - } - - for decisionEndpointId, decisionEndpointName := range DecisionEndpointData { - commentData := map[string]string{ - "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, - "Decision Endpoint ID": decisionEndpointId, - "Decision Endpoint Name": decisionEndpointName, - "Resource Type": r.ResourceType(), - } - - importBlock := connector.ImportBlock{ - ResourceType: r.ResourceType(), - ResourceName: decisionEndpointName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, decisionEndpointId), - CommentInformation: common.GenerateCommentInformation(commentData), - } - - importBlocks = append(importBlocks, importBlock) - } - - return &importBlocks, nil -} - -func (r *PingoneAuthorizeDecisionEndpointResource) getDecisionEndpointData() (map[string]string, error) { - decisionEndpointData := make(map[string]string) - - iter := r.clientInfo.PingOneApiClient.AuthorizeAPIClient.PolicyDecisionManagementApi.ReadAllDecisionEndpoints(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() - decisionEndpoints, err := pingone.GetAuthorizeAPIObjectsFromIterator[authorize.DecisionEndpoint](iter, "ReadAllDecisionEndpoints", "GetDecisionEndpoints", r.ResourceType()) - if err != nil { - return nil, err - } - - for _, decisionEndpoint := range decisionEndpoints { - decisionEndpointId, decisionEndpointIdOk := decisionEndpoint.GetIdOk() - decisionEndpointName, decisionEndpointNameOk := decisionEndpoint.GetNameOk() - - if decisionEndpointIdOk && decisionEndpointNameOk { - decisionEndpointData[*decisionEndpointId] = *decisionEndpointName - } - } - - return decisionEndpointData, nil -} - -func (r *PingoneAuthorizeDecisionEndpointResource) ResourceType() string { - return "pingone_authorize_decision_endpoint" -} diff --git a/internal/connector/pingone/authorize/resources/pingone_authorize_decision_endpoint_test.go b/internal/connector/pingone/authorize/resources/pingone_authorize_decision_endpoint_test.go deleted file mode 100644 index f78308e0..00000000 --- a/internal/connector/pingone/authorize/resources/pingone_authorize_decision_endpoint_test.go +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright © 2025 Ping Identity Corporation - -package resources_test - -import ( - "fmt" - "testing" - - "github.com/pingidentity/pingcli/internal/connector" - "github.com/pingidentity/pingcli/internal/connector/pingone/authorize/resources" - "github.com/pingidentity/pingcli/internal/testing/testutils" -) - -func TestAuthorizeDecisionEndpointExport(t *testing.T) { - // Get initialized apiClient and resource - clientInfo := testutils.GetClientInfo(t) - resource := resources.AuthorizeDecisionEndpoint(clientInfo) - - // Defined the expected ImportBlocks for the resource - expectedImportBlocks := []connector.ImportBlock{ - { - ResourceType: "pingone_authorize_decision_endpoint", - ResourceName: "DEV", - ResourceID: fmt.Sprintf("%s/f8660b46-b96e-457c-8d8f-8ee455e4baa3", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_authorize_decision_endpoint", - ResourceName: "PROD", - ResourceID: fmt.Sprintf("%s/07a4f450-d99f-439f-834a-46b8332a3e31", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_authorize_decision_endpoint", - ResourceName: "TEST", - ResourceID: fmt.Sprintf("%s/3368886d-7d57-4aa8-a8f6-7d24dffa4b3c", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_authorize_decision_endpoint", - ResourceName: "CLI", - ResourceID: fmt.Sprintf("%s/6f4cf36d-fdc1-445c-a1df-37c8e3305eaf", clientInfo.PingOneExportEnvironmentID), - }, - { - ResourceType: "pingone_authorize_decision_endpoint", - ResourceName: "Test API Service", - ResourceID: fmt.Sprintf("%s/20c01743-084f-4129-b304-42ce6a5edf4f", clientInfo.PingOneExportEnvironmentID), - }, - } - - testutils.ValidateImportBlocks(t, resource, &expectedImportBlocks) -} diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource.go new file mode 100644 index 00000000..f0ef202f --- /dev/null +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource.go @@ -0,0 +1,90 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_authorize_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/management" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/authorize/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" +) + +func ApplicationResource(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createApplicationResource, + DeleteFunc: deleteApplicationResource, + Dependencies: []*testutils_resource.TestableResource{ + pingone_sso_testable_resources.Resource(t, clientInfo), + }, + ExportableResource: resources.ApplicationResource(clientInfo), + } +} + +func createApplicationResource(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Errorf("Unexpected number of arguments provided to createApplicationResource(): %v", strArgs) + return testutils_resource.ResourceInfo{} + } + resourceId := strArgs[0] + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationResourcesApi.CreateApplicationResource(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, resourceId) + clientStruct := management.ResourceApplicationResource{ + Name: "Accounts", + } + + request = request.ResourceApplicationResource(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateApplicationResource", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + resourceId, + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteApplicationResource(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Errorf("Unexpected number of arguments provided to deleteApplicationResource(): %v", ids) + return + } + + request := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationResourcesApi.DeleteApplicationResource(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteApplicationResource", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return + } +} diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource_permission.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource_permission.go new file mode 100644 index 00000000..f0165cd4 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource_permission.go @@ -0,0 +1,92 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_authorize_testable_resources + +import ( + "fmt" + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/authorize" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/authorize/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func ApplicationResourcePermission(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createApplicationResourcePermission, + DeleteFunc: deleteApplicationResourcePermission, + Dependencies: []*testutils_resource.TestableResource{ + ApplicationResource(t, clientInfo), + }, + ExportableResource: resources.ApplicationResourcePermission(clientInfo), + } +} + +func createApplicationResourcePermission(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Errorf("Unexpected number of arguments provided to createApplicationResourcePermission(): %v", strArgs) + return testutils_resource.ResourceInfo{} + } + applicationResourceId := strArgs[0] + + request := clientInfo.PingOneApiClient.AuthorizeAPIClient.ApplicationResourcePermissionsApi.CreateApplicationPermission(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, applicationResourceId) + clientStruct := authorize.ApplicationResourcePermission{ + Action: "write", + Description: utils.Pointer("Update documents"), + } + + request = request.ApplicationResourcePermission(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateApplicationPermission", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + applicationResourceId, + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: fmt.Sprintf("%s:%s", *resource.Resource.Name, resource.Action), + }, + } +} + +func deleteApplicationResourcePermission(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Errorf("Unexpected number of arguments provided to deleteApplicationResourcePermission(): %v", ids) + return + } + + request := clientInfo.PingOneApiClient.AuthorizeAPIClient.ApplicationResourcePermissionsApi.DeleteApplicationPermission(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteApplicationPermission", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return + } +} diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service.go new file mode 100644 index 00000000..1551abec --- /dev/null +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service.go @@ -0,0 +1,99 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_authorize_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/authorize" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/authorize/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource/pingone_sso_testable_resources" +) + +func AuthorizeApiService(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createAuthorizeApiService, + DeleteFunc: deleteAuthorizeApiService, + Dependencies: []*testutils_resource.TestableResource{ + pingone_sso_testable_resources.Resource(t, clientInfo), + }, + ExportableResource: resources.AuthorizeApiService(clientInfo), + } +} + +func createAuthorizeApiService(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Errorf("Unexpected number of arguments provided to createAuthorizeApiService(): %v", strArgs) + return testutils_resource.ResourceInfo{} + } + resourceId := strArgs[0] + + request := clientInfo.PingOneApiClient.AuthorizeAPIClient.APIServersApi.CreateAPIServer(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := authorize.APIServer{ + Name: "Banking API-Advanced", + BaseUrls: []string{ + "https://api.example.com/advbanking/v1", + "https://example-api.cdn/advbanking/v1", + }, + AuthorizationServer: authorize.APIServerAuthorizationServer{ + Resource: &authorize.APIServerAuthorizationServerResource{ + Id: resourceId, + }, + Type: authorize.ENUMAPISERVERAUTHORIZATIONSERVERTYPE_PINGONE_SSO, + }, + } + + request = request.APIServer(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateAPIServer", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteAuthorizeApiService(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Errorf("Unexpected number of arguments provided to deleteAuthorizeApiService(): %v", ids) + return + } + + request := clientInfo.PingOneApiClient.AuthorizeAPIClient.APIServersApi.DeleteAPIServer(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteAPIServer", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return + } +} diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_deployment.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_deployment.go new file mode 100644 index 00000000..82b96f75 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_deployment.go @@ -0,0 +1,57 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_authorize_testable_resources + +import ( + "testing" + + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/authorize/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func AuthorizeApiServiceDeployment(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createAuthorizeApiServiceDeployment, + DeleteFunc: nil, + Dependencies: []*testutils_resource.TestableResource{ + AuthorizeApiService(t, clientInfo), + }, + ExportableResource: resources.AuthorizeApiServiceDeployment(clientInfo), + } +} + +func createAuthorizeApiServiceDeployment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Errorf("Unexpected number of arguments provided to createAuthorizeApiServiceDeployment(): %v", strArgs) + return testutils_resource.ResourceInfo{} + } + authorizeApiServiceId := strArgs[0] + + request := clientInfo.PingOneApiClient.AuthorizeAPIClient.APIServerDeploymentApi.DeployAPIServer(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, authorizeApiServiceId) + request = request.ContentType("application/vnd.pingidentity.apiserver.deploy+json") + + _, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateApplicationPermission", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} + } + if !ok { + if response != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } else { + t.Errorf("Failed to execute PingOne client function") + } + return testutils_resource.ResourceInfo{} + } + + return testutils_resource.ResourceInfo{} +} diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_operation.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_operation.go new file mode 100644 index 00000000..4e4c1a48 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_operation.go @@ -0,0 +1,99 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_authorize_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/authorize" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/authorize/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func AuthorizeApiServiceOperation(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createAuthorizeApiServiceOperation, + DeleteFunc: deleteAuthorizeApiServiceOperation, + Dependencies: []*testutils_resource.TestableResource{ + AuthorizeApiService(t, clientInfo), + }, + ExportableResource: resources.AuthorizeApiServiceOperation(clientInfo), + } +} + +func createAuthorizeApiServiceOperation(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 1 { + t.Errorf("Unexpected number of arguments provided to createAuthorizeApiServiceOperation(): %v", strArgs) + return testutils_resource.ResourceInfo{} + } + apiServerId := strArgs[0] + + request := clientInfo.PingOneApiClient.AuthorizeAPIClient.APIServerOperationsApi.CreateAPIServerOperation(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, apiServerId) + clientStruct := authorize.APIServerOperation{ + Name: "AccountsPayable", + Paths: []authorize.APIServerOperationPathsInner{ + { + Type: authorize.ENUMAPISERVEROPERATIONPATHPATTERNTYPE_EXACT, + Pattern: "/accountsPayable", + }, + }, + Methods: []authorize.EnumAPIServerOperationMethod{ + authorize.ENUMAPISERVEROPERATIONMETHOD_POST, + authorize.ENUMAPISERVEROPERATIONMETHOD_PUT, + }, + } + + request = request.APIServerOperation(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateAPIServerOperation", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + apiServerId, + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteAuthorizeApiServiceOperation(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Errorf("Unexpected number of arguments provided to deleteAuthorizeApiServiceOperation(): %v", ids) + return + } + + request := clientInfo.PingOneApiClient.AuthorizeAPIClient.APIServerOperationsApi.DeleteAPIServerOperation(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteAPIServerOperation", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return + } +} diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role.go new file mode 100644 index 00000000..bce0a00e --- /dev/null +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_authorize_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/authorize" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/authorize/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" + "github.com/pingidentity/pingcli/internal/utils" +) + +func AuthorizeApplicationRole(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createAuthorizeApplicationRole, + DeleteFunc: deleteAuthorizeApplicationRole, + Dependencies: nil, + ExportableResource: resources.AuthorizeApplicationRole(clientInfo), + } +} + +func createAuthorizeApplicationRole(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Errorf("Unexpected number of arguments provided to createAuthorizeApplicationRole(): %v", strArgs) + return testutils_resource.ResourceInfo{} + } + + request := clientInfo.PingOneApiClient.AuthorizeAPIClient.ApplicationRolesApi.CreateApplicationRoles(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := authorize.ApplicationRole{ + Name: "CEO", + Description: utils.Pointer("The CEO"), + } + + request = request.ApplicationRole(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateApplicationRoles", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteAuthorizeApplicationRole(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Errorf("Unexpected number of arguments provided to deleteAuthorizeApplicationRole(): %v", ids) + return + } + + request := clientInfo.PingOneApiClient.AuthorizeAPIClient.ApplicationRolesApi.DeleteApplicationRole(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteApplicationRole", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return + } +} diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role_permission.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role_permission.go new file mode 100644 index 00000000..4ccbbc2d --- /dev/null +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role_permission.go @@ -0,0 +1,91 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_authorize_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/authorize" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/authorize/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func AuthorizeApplicationRolePermission(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createAuthorizeApplicationRolePermission, + DeleteFunc: deleteAuthorizeApplicationRolePermission, + Dependencies: []*testutils_resource.TestableResource{ + AuthorizeApplicationRole(t, clientInfo), + ApplicationResourcePermission(t, clientInfo), + }, + ExportableResource: resources.AuthorizeApplicationRolePermission(clientInfo), + } +} + +func createAuthorizeApplicationRolePermission(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 2 { + t.Errorf("Unexpected number of arguments provided to createAuthorizeApplicationRolePermission(): %v", strArgs) + return testutils_resource.ResourceInfo{} + } + applicationRoleId := strArgs[0] + applicationResourcePermissionId := strArgs[1] + + request := clientInfo.PingOneApiClient.AuthorizeAPIClient.ApplicationRolePermissionsApi.CreateApplicationRolePermission(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, applicationRoleId) + clientStruct := authorize.ApplicationRolePermission{ + Id: applicationResourcePermissionId, + } + + request = request.ApplicationRolePermission(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateApplicationRolePermission", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + applicationRoleId, + resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: resource.Id, + testutils_resource.ENUM_NAME: *resource.Key, + }, + } +} + +func deleteAuthorizeApplicationRolePermission(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 2 { + t.Errorf("Unexpected number of arguments provided to deleteAuthorizeApplicationRolePermission(): %v", ids) + return + } + + request := clientInfo.PingOneApiClient.AuthorizeAPIClient.ApplicationRolePermissionsApi.DeleteApplicationRolePermission(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0], ids[1]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteApplicationRolePermission", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return + } +} diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_decision_endpoint.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_decision_endpoint.go new file mode 100644 index 00000000..fd8477e3 --- /dev/null +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_decision_endpoint.go @@ -0,0 +1,87 @@ +// Copyright © 2025 Ping Identity Corporation +// Code generated by ping-cli-generator + +package pingone_authorize_testable_resources + +import ( + "testing" + + "github.com/patrickcping/pingone-go-sdk-v2/authorize" + "github.com/pingidentity/pingcli/internal/connector" + "github.com/pingidentity/pingcli/internal/connector/common" + "github.com/pingidentity/pingcli/internal/connector/pingone/authorize/resources" + "github.com/pingidentity/pingcli/internal/testing/testutils_resource" +) + +func AuthorizeDecisionEndpoint(t *testing.T, clientInfo *connector.ClientInfo) *testutils_resource.TestableResource { + t.Helper() + + return &testutils_resource.TestableResource{ + ClientInfo: clientInfo, + CreateFunc: createAuthorizeDecisionEndpoint, + DeleteFunc: deleteAuthorizeDecisionEndpoint, + Dependencies: nil, + ExportableResource: resources.AuthorizeDecisionEndpoint(clientInfo), + } +} + +func createAuthorizeDecisionEndpoint(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { + t.Helper() + + if len(strArgs) != 0 { + t.Errorf("Unexpected number of arguments provided to createAuthorizeDecisionEndpoint(): %v", strArgs) + return testutils_resource.ResourceInfo{} + } + + request := clientInfo.PingOneApiClient.AuthorizeAPIClient.PolicyDecisionManagementApi.CreateDecisionEndpoint(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID) + clientStruct := authorize.DecisionEndpoint{ + Name: "Test Endpoint", + Description: "Endpoint for use in tests", + RecordRecentRequests: true, + } + + request = request.DecisionEndpoint(clientStruct) + + resource, response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "CreateDecisionEndpoint", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} + } + + return testutils_resource.ResourceInfo{ + DeletionIds: []string{ + *resource.Id, + }, + CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ + testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_NAME: resource.Name, + }, + } +} + +func deleteAuthorizeDecisionEndpoint(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, ids ...string) { + t.Helper() + + if len(ids) != 1 { + t.Errorf("Unexpected number of arguments provided to deleteAuthorizeDecisionEndpoint(): %v", ids) + return + } + + request := clientInfo.PingOneApiClient.AuthorizeAPIClient.PolicyDecisionManagementApi.DeleteDecisionEndpoint(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, ids[0]) + + response, err := request.Execute() + ok, err := common.HandleClientResponse(response, err, "DeleteDecisionEndpoint", resourceType) + if err != nil { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return + } + if !ok { + t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return + } +} From 5c12eb0eb4a1b662f7bbb6f4e7f45bd4b1d047f7 Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Thu, 27 Mar 2025 09:54:05 -0600 Subject: [PATCH 08/18] Use developer independent testing env vars --- .../workflows/code-analysis-lint-test.yaml | 30 +++++----------- Makefile | 20 +++++++---- internal/testing/testutils/utils.go | 21 +++++------ .../testutils_terraform/terraform_utils.go | 36 ++++++++++--------- .../testing/testutils_viper/viper_utils.go | 21 +++++------ 5 files changed, 59 insertions(+), 69 deletions(-) diff --git a/.github/workflows/code-analysis-lint-test.yaml b/.github/workflows/code-analysis-lint-test.yaml index c50e2f36..a49193bf 100644 --- a/.github/workflows/code-analysis-lint-test.yaml +++ b/.github/workflows/code-analysis-lint-test.yaml @@ -123,30 +123,16 @@ jobs: needs: [build] runs-on: ubuntu-latest env: - PINGCLI_PINGONE_WORKER_CLIENT_ID: ${{ secrets.PINGCLI_PINGONE_WORKER_CLIENT_ID }} - PINGCLI_PINGONE_WORKER_CLIENT_SECRET: ${{ secrets.PINGCLI_PINGONE_WORKER_CLIENT_SECRET }} - PINGCLI_PINGONE_REGION_CODE: ${{ secrets.PINGCLI_PINGONE_REGION_CODE }} - PINGCLI_PINGONE_WORKER_ENVIRONMENT_ID: ${{ secrets.PINGCLI_PINGONE_WORKER_ENVIRONMENT_ID }} - PINGCLI_PINGONE_EXPORT_ENVIRONMENT_ID: ${{ secrets.PINGCLI_PINGONE_EXPORT_ENVIRONMENT_ID }} - PINGONE_CLIENT_ID: ${{ secrets.PINGONE_CLIENT_ID }} - PINGONE_CLIENT_SECRET: ${{ secrets.PINGONE_CLIENT_SECRET }} - PINGONE_ENVIRONMENT_ID: ${{ secrets.PINGONE_ENVIRONMENT_ID }} - PINGONE_REGION_CODE: ${{ secrets.PINGONE_REGION_CODE }} PINGCLI_LOG_LEVEL: ${{ vars.PINGCLI_LOG_LEVEL }} PINGCLI_LOG_PATH: ${{ vars.PINGCLI_LOG_PATH }} - PINGCLI_PINGONE_PROVIDER_VERSION: ${{ vars.PINGCLI_PINGONE_PROVIDER_VERSION }} - PINGCLI_PINGFEDERATE_ADMIN_API_PATH: ${{ secrets.PINGCLI_PINGFEDERATE_ADMIN_API_PATH }} - PINGCLI_PINGFEDERATE_CLIENT_ID: ${{ secrets.PINGCLI_PINGFEDERATE_CLIENT_ID }} - PINGCLI_PINGFEDERATE_CLIENT_SECRET: ${{ secrets.PINGCLI_PINGFEDERATE_CLIENT_SECRET }} - PINGCLI_PINGFEDERATE_HTTPS_HOST: ${{ secrets.PINGCLI_PINGFEDERATE_HTTPS_HOST }} - PINGCLI_PINGFEDERATE_PASSWORD: ${{ secrets.PINGCLI_PINGFEDERATE_PASSWORD }} - PINGCLI_PINGFEDERATE_SCOPES: ${{ secrets.PINGCLI_PINGFEDERATE_SCOPES }} - PINGCLI_PINGFEDERATE_TOKEN_URL: ${{ secrets.PINGCLI_PINGFEDERATE_TOKEN_URL }} - PINGCLI_PINGFEDERATE_USERNAME: ${{ secrets.PINGCLI_PINGFEDERATE_USERNAME }} - PINGCLI_PINGFEDERATE_PROVIDER_VERSION: ${{ vars.PINGCLI_PINGFEDERATE_PROVIDER_VERSION }} - PING_IDENTITY_DEVOPS_USER: ${{ secrets.PING_IDENTITY_DEVOPS_USER }} - PING_IDENTITY_DEVOPS_KEY: ${{ secrets.PING_IDENTITY_DEVOPS_KEY }} - PING_IDENTITY_ACCEPT_EULA: ${{ vars.PING_IDENTITY_ACCEPT_EULA }} + TEST_PING_IDENTITY_ACCEPT_EULA: ${{ vars.TEST_PING_IDENTITY_ACCEPT_EULA }} + TEST_PING_IDENTITY_DEVOPS_USER: ${{ secrets.TEST_PING_IDENTITY_DEVOPS_USER }} + TEST_PING_IDENTITY_DEVOPS_KEY: ${{ secrets.TEST_PING_IDENTITY_DEVOPS_KEY }} + TEST_PINGONE_ENVIRONMENT_ID: ${{ secrets.TEST_PINGONE_ENVIRONMENT_ID }} + TEST_PINGONE_CLIENT_ID: ${{ secrets.TEST_PINGONE_CLIENT_ID }} + TEST_PINGONE_CLIENT_SECRET: ${{ secrets.TEST_PINGONE_CLIENT_SECRET }} + TEST_PINGONE_REGION_CODE: ${{ secrets.TEST_PINGONE_REGION_CODE }} + steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 diff --git a/Makefile b/Makefile index 3db5c84b..19aae216 100644 --- a/Makefile +++ b/Makefile @@ -39,7 +39,15 @@ vet: exit 1; \ fi -test: --test-cmd --test-internal-commands --test-internal-configuration --test-internal-connector --test-internal-customtypes --test-internal-input --test-internal-profiles +test: --checktestenvvars --test-cmd --test-internal-commands --test-internal-configuration --test-internal-connector --test-internal-customtypes --test-internal-input --test-internal-profiles + +--checktestenvvars: + @echo -n "Checking for required environment variables to run pingcli tests..." + @test -n "$$TEST_PINGONE_ENVIRONMENT_ID" || { echo " FAILED"; echo "TEST_PINGONE_ENVIRONMENT_ID environment variable is not set.\n\nCreate/Specify an unconfigured PingOne environment to test PingCLI with. The following services are required: PingOne SSO, PingOne MFA, PingOne Protect, PingOne DaVinci, PingOne Authorize, and PingFederate"; exit 1; } + @test -n "$$TEST_PINGONE_REGION_CODE" || { echo " FAILED"; echo "TEST_PINGONE_REGION_CODE environment variable is not set.\n\nCreate/Specify an unconfigured PingOne environment to test PingCLI with. The following services are required: PingOne SSO, PingOne MFA, PingOne Protect, PingOne DaVinci, PingOne Authorize, and PingFederate"; exit 1; } + @test -n "$$TEST_PINGONE_WORKER_CLIENT_ID" || { echo " FAILED"; echo "TEST_PINGONE_WORKER_CLIENT_ID environment variable is not set.\n\nCreate/Specify a worker applicaiton in the unconfigured PingOne environment with all admin roles to test PingCLI with"; exit 1; } + @test -n "$$TEST_PINGONE_WORKER_CLIENT_SECRET" || { echo " FAILED"; echo "TEST_PINGONE_WORKER_CLIENT_SECRET environment variable is not set.\n\nCreate/Specify a worker applicaiton in an unconfigured PingOne environment with all admin roles to test PingCLI with"; exit 1; } + @echo " SUCCESS" --test-cmd: @echo "Running tests for cmd..." @@ -102,13 +110,13 @@ golangcilint: exit 1; \ fi -starttestcontainer: --checkneededpfenvvars --checkdocker --dockerrunpf --waitforpfhealthy +starttestcontainer: --checkpfcontainerenvvars --checkdocker --dockerrunpf --waitforpfhealthy ---checkneededpfenvvars: +--checkpfcontainerenvvars: @echo -n "Checking for required environment variables to run PingFederate container..." - @test -n "$$PING_IDENTITY_DEVOPS_USER" || { echo " FAILED"; echo "PING_IDENTITY_DEVOPS_USER environment variable is not set.\n\nNot Registered? Register for the DevOps Program at https://devops.pingidentity.com/how-to/devopsRegistration/."; exit 1; } - @test -n "$$PING_IDENTITY_DEVOPS_KEY" || { echo " FAILED"; echo "PING_IDENTITY_DEVOPS_KEY environment variable is not set.\n\nNot Registered? Register for the DevOps Program at https://devops.pingidentity.com/how-to/devopsRegistration/."; exit 1; } - @test "YES" = "$$PING_IDENTITY_ACCEPT_EULA" || { echo " FAILED"; echo "You must accept the EULA to use the PingFederate container. Set PING_IDENTITY_ACCEPT_EULA=YES to continue."; exit 1; } + @test -n "$$TEST_PING_IDENTITY_DEVOPS_USER" || { echo " FAILED"; echo "TEST_PING_IDENTITY_DEVOPS_USER environment variable is not set.\n\nNot Registered? Register for the DevOps Program at https://devops.pingidentity.com/how-to/devopsRegistration/."; exit 1; } + @test -n "$$TEST_PING_IDENTITY_DEVOPS_KEY" || { echo " FAILED"; echo "TEST_PING_IDENTITY_DEVOPS_KEY environment variable is not set.\n\nNot Registered? Register for the DevOps Program at https://devops.pingidentity.com/how-to/devopsRegistration/."; exit 1; } + @test "YES" = "$$TEST_PING_IDENTITY_ACCEPT_EULA" || { echo " FAILED"; echo "You must accept the EULA to use the PingFederate container. Set TEST_PING_IDENTITY_ACCEPT_EULA=YES to continue."; exit 1; } @echo " SUCCESS" --checkdocker: diff --git a/internal/testing/testutils/utils.go b/internal/testing/testutils/utils.go index 32f29bd7..0c811954 100644 --- a/internal/testing/testutils/utils.go +++ b/internal/testing/testutils/utils.go @@ -23,7 +23,6 @@ import ( "github.com/patrickcping/pingone-go-sdk-v2/management" "github.com/patrickcping/pingone-go-sdk-v2/pingone" "github.com/pingidentity/pingcli/internal/configuration" - "github.com/pingidentity/pingcli/internal/configuration/options" "github.com/pingidentity/pingcli/internal/connector" pingfederateGoClient "github.com/pingidentity/pingfederate-go-client/v1220/configurationapi" ) @@ -50,14 +49,10 @@ func GetClientInfo(t *testing.T) *connector.ClientInfo { func initPingFederateClientInfo(t *testing.T, clientInfo *connector.ClientInfo) { t.Helper() - httpsHost := os.Getenv(options.PingFederateHTTPSHostOption.EnvVar) - adminApiPath := os.Getenv(options.PingFederateAdminAPIPathOption.EnvVar) - pfUsername := os.Getenv(options.PingFederateBasicAuthUsernameOption.EnvVar) - pfPassword := os.Getenv(options.PingFederateBasicAuthPasswordOption.EnvVar) - - if httpsHost == "" || adminApiPath == "" || pfUsername == "" || pfPassword == "" { - t.Fatalf("Unable to retrieve env var value for one or more of httpsHost, adminApiPath, pfUsername, pfPassword.") - } + httpsHost := "https://localhost:9999" + adminApiPath := "/pf-admin-api/v1" + pfUsername := "Administrator" + pfPassword := "2FederateM0re" pfClientConfig := pingfederateGoClient.NewConfiguration() pfClientConfig.DefaultHeader["X-Xsrf-Header"] = "PingFederate" @@ -84,10 +79,10 @@ func initPingOneClientInfo(t *testing.T, clientInfo *connector.ClientInfo) { // Grab environment vars for initializing the API client. // These are set in GitHub Actions. - clientID := os.Getenv(options.PingOneAuthenticationWorkerClientIDOption.EnvVar) - clientSecret := os.Getenv(options.PingOneAuthenticationWorkerClientSecretOption.EnvVar) - environmentId := os.Getenv(options.PlatformExportPingOneEnvironmentIDOption.EnvVar) - regionCode := os.Getenv(options.PingOneRegionCodeOption.EnvVar) + clientID := os.Getenv("TEST_PINGONE_CLIENT_ID") + clientSecret := os.Getenv("TEST_PINGONE_CLIENT_SECRET") + environmentId := os.Getenv("TEST_PINGONE_ENVIRONMENT_ID") + regionCode := os.Getenv("TEST_PINGONE_REGION_CODE") sdkRegionCode := management.EnumRegionCode(regionCode) if clientID == "" || clientSecret == "" || environmentId == "" || regionCode == "" { diff --git a/internal/testing/testutils_terraform/terraform_utils.go b/internal/testing/testutils_terraform/terraform_utils.go index 6c3ca05c..53f4c037 100644 --- a/internal/testing/testutils_terraform/terraform_utils.go +++ b/internal/testing/testutils_terraform/terraform_utils.go @@ -13,7 +13,6 @@ import ( "strings" "testing" - "github.com/pingidentity/pingcli/internal/configuration/options" "github.com/pingidentity/pingcli/internal/connector" "github.com/pingidentity/pingcli/internal/connector/common" "github.com/pingidentity/pingcli/internal/customtypes" @@ -157,13 +156,23 @@ func InitPingOneTerraform(t *testing.T) { required_providers { pingone = { source = "pingidentity/pingone" - version = "%s" + version = "1.6.0" } } } -provider "pingone" {} -`, os.Getenv("PINGCLI_PINGONE_PROVIDER_VERSION")) +provider "pingone" { + client_id = "%s" + client_secret = "%s" + environment_id = "%s" + region_code = "%s" +} +`, + os.Getenv("TEST_PINGONE_CLIENT_ID"), + os.Getenv("TEST_PINGONE_CLIENT_SECRET"), + os.Getenv("TEST_PINGONE_ENVIRONMENT_ID"), + os.Getenv("TEST_PINGONE_REGION_CODE"), + ) // Write main.tf to testing directory mainTFFilepath := filepath.Join(exportDir, "main.tf") @@ -192,30 +201,25 @@ func InitPingFederateTerraform(t *testing.T) { // Check if terraform is installed checkTerraformInstallPath(t) - mainTFFileContents := fmt.Sprintf(`terraform { + mainTFFileContents := `terraform { required_providers { pingfederate = { source = "pingidentity/pingfederate" - version = "%s" + version = "1.4.3" } } } provider "pingfederate" { - username = "%s" - password = "%s" - https_host = "%s" - admin_api_path = "%s" + username = "Administrator" + password = "2FederateM0re" + https_host = "https://localhost:9999" + admin_api_path = "/pf-admin-api/v1" product_version = "12.2" insecure_trust_all_tls = true x_bypass_external_validation_header = true } -`, - os.Getenv("PINGCLI_PINGFEDERATE_PROVIDER_VERSION"), - os.Getenv(options.PingFederateBasicAuthUsernameOption.EnvVar), - os.Getenv(options.PingFederateBasicAuthPasswordOption.EnvVar), - os.Getenv(options.PingFederateHTTPSHostOption.EnvVar), - os.Getenv(options.PingFederateAdminAPIPathOption.EnvVar)) +` // Write main.tf to testing directory mainTFFilepath := filepath.Join(exportDir, "main.tf") diff --git a/internal/testing/testutils_viper/viper_utils.go b/internal/testing/testutils_viper/viper_utils.go index e61db85e..0e46748b 100644 --- a/internal/testing/testutils_viper/viper_utils.go +++ b/internal/testing/testutils_viper/viper_utils.go @@ -36,13 +36,13 @@ default: clientsecret: %s environmentid: %s pingfederate: - adminapipath: %s + adminapipath: /pf-admin-api/v1 authentication: type: basicauth basicauth: - username: %s - password: %s - httpshost: %s + username: Administrator + password: 2FederateM0re + httpshost: https://localhost:9999 insecureTrustAllTLS: true xBypassExternalValidationHeader: true production: @@ -110,12 +110,9 @@ func InitVipersCustomFile(t *testing.T, fileContents string) { func getDefaultConfigFileContents() string { return fmt.Sprintf(defaultConfigFileContentsPattern, outputDirectoryReplacement, - os.Getenv(options.PingOneRegionCodeOption.EnvVar), - os.Getenv(options.PingOneAuthenticationWorkerClientIDOption.EnvVar), - os.Getenv(options.PingOneAuthenticationWorkerClientSecretOption.EnvVar), - os.Getenv(options.PingOneAuthenticationWorkerEnvironmentIDOption.EnvVar), - os.Getenv(options.PingFederateAdminAPIPathOption.EnvVar), - os.Getenv(options.PingFederateBasicAuthUsernameOption.EnvVar), - os.Getenv(options.PingFederateBasicAuthPasswordOption.EnvVar), - os.Getenv(options.PingFederateHTTPSHostOption.EnvVar)) + os.Getenv("TEST_PINGONE_REGION_CODE"), + os.Getenv("TEST_PINGONE_CLIENT_ID"), + os.Getenv("TEST_PINGONE_CLIENT_SECRET"), + os.Getenv("TEST_PINGONE_ENVIRONMENT_ID"), + ) } From 32976a4bd06e12f770ee60e2ada554c960aced46 Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Thu, 27 Mar 2025 12:49:19 -0600 Subject: [PATCH 09/18] Update testing to be developer independent --- .../workflows/code-analysis-lint-test.yaml | 4 +- .golangci.yml | 9 +-- Makefile | 21 ++++--- cmd/config/unset_test.go | 12 ++-- cmd/platform/export_test.go | 56 +++++++++---------- cmd/request/request_test.go | 14 ++++- .../commands/platform/export_internal_test.go | 10 +++- internal/commands/request/request_internal.go | 16 +++++- .../commands/request/request_internal_test.go | 7 ++- internal/connector/common/common_utils.go | 10 +++- internal/connector/common/resources_common.go | 11 +++- .../resources/gateway_credential_test.go | 4 +- .../notification_template_content.go | 11 +++- .../sso/resources/application_secret.go | 10 +++- .../sso/resources/population_default.go | 17 ++++-- internal/profiles/viper.go | 2 +- internal/testing/testutils/utils.go | 16 +++--- .../authentication_api_settings.go | 2 +- .../authentication_policies_fragment.go | 4 +- .../idp_sp_connection.go | 4 +- .../idp_to_sp_adapter_mapping.go | 6 +- .../oauth_access_token_mapping.go | 4 +- .../oauth_idp_adapter_mapping.go | 4 +- .../oauth_token_exchange_processor_policy.go | 4 +- ..._token_exchange_token_generator_mapping.go | 6 +- .../openid_connect_policy.go | 4 +- .../pingone_connection.go | 4 +- .../session_authentication_policy.go | 4 +- ...en_processor_to_token_generator_mapping.go | 6 +- .../application_resource_permission.go | 4 +- .../authorize_api_service_deployment.go | 4 +- .../authorize_api_service_operation.go | 4 +- .../authorize_application_role_permission.go | 4 +- .../gateway_credential.go | 3 +- .../testutils_resource/testutils_resource.go | 34 ++++++++--- .../testutils_terraform/terraform_utils.go | 4 +- .../testing/testutils_viper/viper_utils.go | 4 +- 37 files changed, 213 insertions(+), 130 deletions(-) diff --git a/.github/workflows/code-analysis-lint-test.yaml b/.github/workflows/code-analysis-lint-test.yaml index a49193bf..d63f5638 100644 --- a/.github/workflows/code-analysis-lint-test.yaml +++ b/.github/workflows/code-analysis-lint-test.yaml @@ -129,8 +129,8 @@ jobs: TEST_PING_IDENTITY_DEVOPS_USER: ${{ secrets.TEST_PING_IDENTITY_DEVOPS_USER }} TEST_PING_IDENTITY_DEVOPS_KEY: ${{ secrets.TEST_PING_IDENTITY_DEVOPS_KEY }} TEST_PINGONE_ENVIRONMENT_ID: ${{ secrets.TEST_PINGONE_ENVIRONMENT_ID }} - TEST_PINGONE_CLIENT_ID: ${{ secrets.TEST_PINGONE_CLIENT_ID }} - TEST_PINGONE_CLIENT_SECRET: ${{ secrets.TEST_PINGONE_CLIENT_SECRET }} + TEST_PINGONE_WORKER_CLIENT_ID: ${{ secrets.TEST_PINGONE_WORKER_CLIENT_ID }} + TEST_PINGONE_WORKER_CLIENT_SECRET: ${{ secrets.TEST_PINGONE_WORKER_CLIENT_SECRET }} TEST_PINGONE_REGION_CODE: ${{ secrets.TEST_PINGONE_REGION_CODE }} steps: diff --git a/.golangci.yml b/.golangci.yml index f41f34c1..8f5f4073 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,8 +1,3 @@ -# Options for analysis running. -run: - timeout: 30m - -# Use all default linters + those defined here +version: "2" linters: - enable: - - gosec + enable-all: true diff --git a/Makefile b/Makefile index 19aae216..a1bf1ceb 100644 --- a/Makefile +++ b/Makefile @@ -69,11 +69,19 @@ test: --checktestenvvars --test-cmd --test-internal-commands --test-internal-con @# Test the resources within each connector first @go test -count=1 ./internal/connector/pingfederate/resources - @go test -count=1 ./internal/connector/pingone/.../resources + @go test -count=1 ./internal/connector/pingone/authorize/resources + @go test -count=1 ./internal/connector/pingone/mfa/resources + @go test -count=1 ./internal/connector/pingone/platform/resources + @go test -count=1 ./internal/connector/pingone/protect/resources + @go test -count=1 ./internal/connector/pingone/sso/resources @# Test the connectors itegration terraform plan tests @go test -count=1 ./internal/connector/pingfederate - @go test -count=1 ./internal/connector/pingone/*/ + @go test -count=1 ./internal/connector/pingone/authorize + @go test -count=1 ./internal/connector/pingone/mfa + @go test -count=1 ./internal/connector/pingone/platform + @go test -count=1 ./internal/connector/pingone/protect + @go test -count=1 ./internal/connector/pingone/sso --test-internal-customtypes: @echo "Running tests for internal/customtypes..." @@ -101,14 +109,9 @@ importfmtlint: fi golangcilint: - @echo -n "Running 'golangci-lint' to check for code quality issues..." + @echo -n "Running 'golangci-lint' to check for code quality issues... " @# Clear the cache for every run, so that the linter outputs the same results as the GH Actions workflow - @if golangci-lint cache clear && golangci-lint run --timeout 5m ./...; then \ - echo " SUCCESS"; \ - else \ - echo " FAILED"; \ - exit 1; \ - fi + @golangci-lint cache clean && golangci-lint run --timeout 5m ./... starttestcontainer: --checkpfcontainerenvvars --checkdocker --dockerrunpf --waitforpfhealthy diff --git a/cmd/config/unset_test.go b/cmd/config/unset_test.go index 776e7b86..9345c81b 100644 --- a/cmd/config/unset_test.go +++ b/cmd/config/unset_test.go @@ -3,13 +3,13 @@ package config_test import ( - "os" "testing" "github.com/pingidentity/pingcli/internal/configuration/options" "github.com/pingidentity/pingcli/internal/profiles" "github.com/pingidentity/pingcli/internal/testing/testutils" "github.com/pingidentity/pingcli/internal/testing/testutils_cobra" + "github.com/pingidentity/pingcli/internal/testing/testutils_viper" ) // Test Config Unset Command Executes without issue @@ -41,15 +41,19 @@ func TestConfigUnsetCmd_InvalidKey(t *testing.T) { // Test Config Unset Command for key 'pingone.worker.clientId' updates viper configuration func TestConfigUnsetCmd_CheckViperConfig(t *testing.T) { + testutils_viper.InitVipers(t) + + mainViper := profiles.GetMainConfig().ViperInstance() viperKey := options.PingOneAuthenticationWorkerClientIDOption.ViperKey - viperOldValue := os.Getenv(options.PingOneAuthenticationWorkerClientIDOption.EnvVar) + profileViperKey := "default." + viperKey + + viperOldValue := mainViper.GetString(profileViperKey) err := testutils_cobra.ExecutePingcli(t, "config", "unset", viperKey) testutils.CheckExpectedError(t, err, nil) - mainViper := profiles.GetMainConfig().ViperInstance() - profileViperKey := "default." + viperKey viperNewValue := mainViper.GetString(profileViperKey) + if viperOldValue == viperNewValue { t.Errorf("Expected viper configuration value to be updated. Old: %s, New: %s", viperOldValue, viperNewValue) } diff --git a/cmd/platform/export_test.go b/cmd/platform/export_test.go index cbb4f443..1306d81b 100644 --- a/cmd/platform/export_test.go +++ b/cmd/platform/export_test.go @@ -164,10 +164,10 @@ func TestPlatformExportCmd_PingOneWorkerEnvironmentIdFlag(t *testing.T) { "--"+options.PlatformExportOutputDirectoryOption.CobraParamName, outputDir, "--"+options.PlatformExportOverwriteOption.CobraParamName, "--"+options.PlatformExportServiceOption.CobraParamName, customtypes.ENUM_EXPORT_SERVICE_PINGONE_PROTECT, - "--"+options.PingOneAuthenticationWorkerEnvironmentIDOption.CobraParamName, os.Getenv(options.PingOneAuthenticationWorkerEnvironmentIDOption.EnvVar), - "--"+options.PingOneAuthenticationWorkerClientIDOption.CobraParamName, os.Getenv(options.PingOneAuthenticationWorkerClientIDOption.EnvVar), - "--"+options.PingOneAuthenticationWorkerClientSecretOption.CobraParamName, os.Getenv(options.PingOneAuthenticationWorkerClientSecretOption.EnvVar), - "--"+options.PingOneRegionCodeOption.CobraParamName, os.Getenv(options.PingOneRegionCodeOption.EnvVar)) + "--"+options.PingOneAuthenticationWorkerEnvironmentIDOption.CobraParamName, os.Getenv("TEST_PINGONE_ENVIRONMENT_ID"), + "--"+options.PingOneAuthenticationWorkerClientIDOption.CobraParamName, os.Getenv("TEST_PINGONE_WORKER_CLIENT_ID"), + "--"+options.PingOneAuthenticationWorkerClientSecretOption.CobraParamName, os.Getenv("TEST_PINGONE_WORKER_CLIENT_SECRET"), + "--"+options.PingOneRegionCodeOption.CobraParamName, os.Getenv("TEST_PINGONE_REGION_CODE")) testutils.CheckExpectedError(t, err, nil) } @@ -175,7 +175,7 @@ func TestPlatformExportCmd_PingOneWorkerEnvironmentIdFlag(t *testing.T) { func TestPlatformExportCmd_PingOneWorkerEnvironmentIdFlagRequiredTogether(t *testing.T) { expectedErrorPattern := `^if any flags in the group \[pingone-worker-environment-id pingone-worker-client-id pingone-worker-client-secret pingone-region-code] are set they must all be set; missing \[pingone-region-code pingone-worker-client-id pingone-worker-client-secret]$` err := testutils_cobra.ExecutePingcli(t, "platform", "export", - "--"+options.PingOneAuthenticationWorkerEnvironmentIDOption.CobraParamName, os.Getenv(options.PingOneAuthenticationWorkerEnvironmentIDOption.EnvVar)) + "--"+options.PingOneAuthenticationWorkerEnvironmentIDOption.CobraParamName, os.Getenv("TEST_PINGONE_ENVIRONMENT_ID")) testutils.CheckExpectedError(t, err, &expectedErrorPattern) } @@ -187,8 +187,8 @@ func TestPlatformExportCmd_PingFederateBasicAuthFlags(t *testing.T) { "--"+options.PlatformExportOutputDirectoryOption.CobraParamName, outputDir, "--"+options.PlatformExportOverwriteOption.CobraParamName, "--"+options.PlatformExportServiceOption.CobraParamName, customtypes.ENUM_EXPORT_SERVICE_PINGFEDERATE, - "--"+options.PingFederateBasicAuthUsernameOption.CobraParamName, os.Getenv(options.PingFederateBasicAuthUsernameOption.EnvVar), - "--"+options.PingFederateBasicAuthPasswordOption.CobraParamName, os.Getenv(options.PingFederateBasicAuthPasswordOption.EnvVar), + "--"+options.PingFederateBasicAuthUsernameOption.CobraParamName, "Administrator", + "--"+options.PingFederateBasicAuthPasswordOption.CobraParamName, "2FederateM0re", "--"+options.PingFederateAuthenticationTypeOption.CobraParamName, customtypes.ENUM_PINGFEDERATE_AUTHENTICATION_TYPE_BASIC, ) testutils.CheckExpectedError(t, err, nil) @@ -198,7 +198,7 @@ func TestPlatformExportCmd_PingFederateBasicAuthFlags(t *testing.T) { func TestPlatformExportCmd_PingFederateBasicAuthFlagsRequiredTogether(t *testing.T) { expectedErrorPattern := `^if any flags in the group \[pingfederate-username pingfederate-password] are set they must all be set; missing \[pingfederate-password]$` err := testutils_cobra.ExecutePingcli(t, "platform", "export", - "--"+options.PingFederateBasicAuthUsernameOption.CobraParamName, os.Getenv(options.PingFederateBasicAuthUsernameOption.EnvVar)) + "--"+options.PingFederateBasicAuthUsernameOption.CobraParamName, "Administrator") testutils.CheckExpectedError(t, err, &expectedErrorPattern) } @@ -211,10 +211,10 @@ func TestPlatformExportCmd_PingOneClientCredentialFlagsInvalid(t *testing.T) { "--"+options.PlatformExportOutputDirectoryOption.CobraParamName, outputDir, "--"+options.PlatformExportOverwriteOption.CobraParamName, "--"+options.PlatformExportServiceOption.CobraParamName, customtypes.ENUM_EXPORT_SERVICE_PINGONE_PROTECT, - "--"+options.PingOneAuthenticationWorkerEnvironmentIDOption.CobraParamName, os.Getenv(options.PingOneAuthenticationWorkerEnvironmentIDOption.EnvVar), - "--"+options.PingOneAuthenticationWorkerClientIDOption.CobraParamName, os.Getenv(options.PingOneAuthenticationWorkerClientIDOption.EnvVar), + "--"+options.PingOneAuthenticationWorkerEnvironmentIDOption.CobraParamName, os.Getenv("TEST_PINGONE_ENVIRONMENT_ID"), + "--"+options.PingOneAuthenticationWorkerClientIDOption.CobraParamName, os.Getenv("TEST_PINGONE_WORKER_CLIENT_ID"), "--"+options.PingOneAuthenticationWorkerClientSecretOption.CobraParamName, "invalid", - "--"+options.PingOneRegionCodeOption.CobraParamName, os.Getenv(options.PingOneRegionCodeOption.EnvVar), + "--"+options.PingOneRegionCodeOption.CobraParamName, os.Getenv("TEST_PINGONE_REGION_CODE"), ) testutils.CheckExpectedError(t, err, &expectedErrorPattern) } @@ -228,7 +228,7 @@ func TestPlatformExportCmd_PingFederateBasicAuthFlagsInvalid(t *testing.T) { "--"+options.PlatformExportOutputDirectoryOption.CobraParamName, outputDir, "--"+options.PlatformExportOverwriteOption.CobraParamName, "--"+options.PlatformExportServiceOption.CobraParamName, customtypes.ENUM_EXPORT_SERVICE_PINGFEDERATE, - "--"+options.PingFederateBasicAuthUsernameOption.CobraParamName, os.Getenv(options.PingFederateBasicAuthUsernameOption.EnvVar), + "--"+options.PingFederateBasicAuthUsernameOption.CobraParamName, "Administrator", "--"+options.PingFederateBasicAuthPasswordOption.CobraParamName, "invalid", "--"+options.PingFederateAuthenticationTypeOption.CobraParamName, customtypes.ENUM_PINGFEDERATE_AUTHENTICATION_TYPE_BASIC, ) @@ -239,7 +239,7 @@ func TestPlatformExportCmd_PingFederateBasicAuthFlagsInvalid(t *testing.T) { func TestPlatformExportCmd_PingFederateClientCredentialsAuthFlagsRequiredTogether(t *testing.T) { expectedErrorPattern := `^if any flags in the group \[pingfederate-client-id pingfederate-client-secret pingfederate-token-url] are set they must all be set; missing \[pingfederate-client-secret pingfederate-token-url]$` err := testutils_cobra.ExecutePingcli(t, "platform", "export", - "--"+options.PingFederateClientCredentialsAuthClientIDOption.CobraParamName, os.Getenv(options.PingFederateClientCredentialsAuthClientIDOption.EnvVar)) + "--"+options.PingFederateClientCredentialsAuthClientIDOption.CobraParamName, "test") testutils.CheckExpectedError(t, err, &expectedErrorPattern) } @@ -252,10 +252,10 @@ func TestPlatformExportCmd_PingFederateClientCredentialsAuthFlagsInvalid(t *test "--"+options.PlatformExportOutputDirectoryOption.CobraParamName, outputDir, "--"+options.PlatformExportOverwriteOption.CobraParamName, "--"+options.PlatformExportServiceOption.CobraParamName, customtypes.ENUM_EXPORT_SERVICE_PINGFEDERATE, - "--"+options.PingFederateClientCredentialsAuthClientIDOption.CobraParamName, os.Getenv(options.PingFederateClientCredentialsAuthClientIDOption.EnvVar), + "--"+options.PingFederateClientCredentialsAuthClientIDOption.CobraParamName, "test", "--"+options.PingFederateClientCredentialsAuthClientSecretOption.CobraParamName, "invalid", - "--"+options.PingFederateClientCredentialsAuthTokenURLOption.CobraParamName, os.Getenv(options.PingFederateClientCredentialsAuthTokenURLOption.EnvVar), - "--"+options.PingFederateClientCredentialsAuthScopesOption.CobraParamName, os.Getenv(options.PingFederateClientCredentialsAuthScopesOption.EnvVar), + "--"+options.PingFederateClientCredentialsAuthTokenURLOption.CobraParamName, "https://localhost:9031/as/token.oauth2", + "--"+options.PingFederateClientCredentialsAuthScopesOption.CobraParamName, "email", "--"+options.PingFederateAuthenticationTypeOption.CobraParamName, customtypes.ENUM_PINGFEDERATE_AUTHENTICATION_TYPE_CLIENT_CREDENTIALS, ) testutils.CheckExpectedError(t, err, &expectedErrorPattern) @@ -270,8 +270,8 @@ func TestPlatformExportCmd_PingFederateClientCredentialsAuthFlagsInvalidTokenURL "--"+options.PlatformExportOutputDirectoryOption.CobraParamName, outputDir, "--"+options.PlatformExportOverwriteOption.CobraParamName, "--"+options.PlatformExportServiceOption.CobraParamName, customtypes.ENUM_EXPORT_SERVICE_PINGFEDERATE, - "--"+options.PingFederateClientCredentialsAuthClientIDOption.CobraParamName, os.Getenv(options.PingFederateClientCredentialsAuthClientIDOption.EnvVar), - "--"+options.PingFederateClientCredentialsAuthClientSecretOption.CobraParamName, os.Getenv(options.PingFederateClientCredentialsAuthClientSecretOption.EnvVar), + "--"+options.PingFederateClientCredentialsAuthClientIDOption.CobraParamName, "test", + "--"+options.PingFederateClientCredentialsAuthClientSecretOption.CobraParamName, "2FederateM0re!", "--"+options.PingFederateClientCredentialsAuthTokenURLOption.CobraParamName, "https://localhost:9031/as/invalid", "--"+options.PingFederateAuthenticationTypeOption.CobraParamName, customtypes.ENUM_PINGFEDERATE_AUTHENTICATION_TYPE_CLIENT_CREDENTIALS, ) @@ -287,8 +287,8 @@ func TestPlatformExportCmd_PingFederateXBypassHeaderFlag(t *testing.T) { "--"+options.PlatformExportOverwriteOption.CobraParamName, "--"+options.PlatformExportServiceOption.CobraParamName, customtypes.ENUM_EXPORT_SERVICE_PINGFEDERATE, "--"+options.PingFederateXBypassExternalValidationHeaderOption.CobraParamName, - "--"+options.PingFederateBasicAuthUsernameOption.CobraParamName, os.Getenv(options.PingFederateBasicAuthUsernameOption.EnvVar), - "--"+options.PingFederateBasicAuthPasswordOption.CobraParamName, os.Getenv(options.PingFederateBasicAuthPasswordOption.EnvVar), + "--"+options.PingFederateBasicAuthUsernameOption.CobraParamName, "Administrator", + "--"+options.PingFederateBasicAuthPasswordOption.CobraParamName, "2FederateM0re", "--"+options.PingFederateAuthenticationTypeOption.CobraParamName, customtypes.ENUM_PINGFEDERATE_AUTHENTICATION_TYPE_BASIC, ) testutils.CheckExpectedError(t, err, nil) @@ -303,8 +303,8 @@ func TestPlatformExportCmd_PingFederateTrustAllTLSFlag(t *testing.T) { "--"+options.PlatformExportOverwriteOption.CobraParamName, "--"+options.PlatformExportServiceOption.CobraParamName, customtypes.ENUM_EXPORT_SERVICE_PINGFEDERATE, "--"+options.PingFederateInsecureTrustAllTLSOption.CobraParamName, - "--"+options.PingFederateBasicAuthUsernameOption.CobraParamName, os.Getenv(options.PingFederateBasicAuthUsernameOption.EnvVar), - "--"+options.PingFederateBasicAuthPasswordOption.CobraParamName, os.Getenv(options.PingFederateBasicAuthPasswordOption.EnvVar), + "--"+options.PingFederateBasicAuthUsernameOption.CobraParamName, "Administrator", + "--"+options.PingFederateBasicAuthPasswordOption.CobraParamName, "2FederateM0re", "--"+options.PingFederateAuthenticationTypeOption.CobraParamName, customtypes.ENUM_PINGFEDERATE_AUTHENTICATION_TYPE_BASIC, ) testutils.CheckExpectedError(t, err, nil) @@ -320,8 +320,8 @@ func TestPlatformExportCmd_PingFederateTrustAllTLSFlagFalse(t *testing.T) { "--"+options.PlatformExportOverwriteOption.CobraParamName, "--"+options.PlatformExportServiceOption.CobraParamName, customtypes.ENUM_EXPORT_SERVICE_PINGFEDERATE, "--"+options.PingFederateInsecureTrustAllTLSOption.CobraParamName+"=false", - "--"+options.PingFederateBasicAuthUsernameOption.CobraParamName, os.Getenv(options.PingFederateBasicAuthUsernameOption.EnvVar), - "--"+options.PingFederateBasicAuthPasswordOption.CobraParamName, os.Getenv(options.PingFederateBasicAuthPasswordOption.EnvVar), + "--"+options.PingFederateBasicAuthUsernameOption.CobraParamName, "Administrator", + "--"+options.PingFederateBasicAuthPasswordOption.CobraParamName, "2FederateM0re", "--"+options.PingFederateAuthenticationTypeOption.CobraParamName, customtypes.ENUM_PINGFEDERATE_AUTHENTICATION_TYPE_BASIC, ) testutils.CheckExpectedError(t, err, &expectedErrorPattern) @@ -339,8 +339,8 @@ func TestPlatformExportCmd_PingFederateCaCertificatePemFiles(t *testing.T) { "--"+options.PlatformExportServiceOption.CobraParamName, customtypes.ENUM_EXPORT_SERVICE_PINGFEDERATE, "--"+options.PingFederateInsecureTrustAllTLSOption.CobraParamName+"=true", "--"+options.PingFederateCACertificatePemFilesOption.CobraParamName, "testdata/ssl-server-crt.pem", - "--"+options.PingFederateBasicAuthUsernameOption.CobraParamName, os.Getenv(options.PingFederateBasicAuthUsernameOption.EnvVar), - "--"+options.PingFederateBasicAuthPasswordOption.CobraParamName, os.Getenv(options.PingFederateBasicAuthPasswordOption.EnvVar), + "--"+options.PingFederateBasicAuthUsernameOption.CobraParamName, "Administrator", + "--"+options.PingFederateBasicAuthPasswordOption.CobraParamName, "2FederateM0re", "--"+options.PingFederateAuthenticationTypeOption.CobraParamName, customtypes.ENUM_PINGFEDERATE_AUTHENTICATION_TYPE_BASIC, ) testutils.CheckExpectedError(t, err, nil) @@ -352,8 +352,8 @@ func TestPlatformExportCmd_PingFederateCaCertificatePemFilesInvalid(t *testing.T err := testutils_cobra.ExecutePingcli(t, "platform", "export", "--"+options.PlatformExportServiceOption.CobraParamName, customtypes.ENUM_EXPORT_SERVICE_PINGFEDERATE, "--"+options.PingFederateCACertificatePemFilesOption.CobraParamName, "invalid/crt.pem", - "--"+options.PingFederateBasicAuthUsernameOption.CobraParamName, os.Getenv(options.PingFederateBasicAuthUsernameOption.EnvVar), - "--"+options.PingFederateBasicAuthPasswordOption.CobraParamName, os.Getenv(options.PingFederateBasicAuthPasswordOption.EnvVar), + "--"+options.PingFederateBasicAuthUsernameOption.CobraParamName, "Administrator", + "--"+options.PingFederateBasicAuthPasswordOption.CobraParamName, "2FederateM0re", "--"+options.PingFederateAuthenticationTypeOption.CobraParamName, customtypes.ENUM_PINGFEDERATE_AUTHENTICATION_TYPE_BASIC, ) testutils.CheckExpectedError(t, err, &expectedErrorPattern) diff --git a/cmd/request/request_test.go b/cmd/request/request_test.go index 1b1964ac..12ad14b0 100644 --- a/cmd/request/request_test.go +++ b/cmd/request/request_test.go @@ -22,18 +22,26 @@ func TestRequestCmd_Execute(t *testing.T) { if err != nil { t.Fatalf("Failed to create pipe: %v", err) } - defer pipeReader.Close() + defer func() { + err := pipeReader.Close() + if err != nil { + t.Fatalf("Failed to close pipe: %v", err) + } + }() os.Stdout = pipeWriter err = testutils_cobra.ExecutePingcli(t, "request", "--service", "pingone", "--http-method", "GET", - fmt.Sprintf("environments/%s/populations", os.Getenv(options.PingOneAuthenticationWorkerEnvironmentIDOption.EnvVar)), + fmt.Sprintf("environments/%s/populations", os.Getenv("TEST_PINGONE_ENVIRONMENT_ID")), ) testutils.CheckExpectedError(t, err, nil) os.Stdout = originalStdout - pipeWriter.Close() + err = pipeWriter.Close() + if err != nil { + t.Fatalf("Failed to close pipe: %v", err) + } pipeReaderOut, err := io.ReadAll(pipeReader) if err != nil { diff --git a/internal/commands/platform/export_internal_test.go b/internal/commands/platform/export_internal_test.go index a8381ba5..9043cdbf 100644 --- a/internal/commands/platform/export_internal_test.go +++ b/internal/commands/platform/export_internal_test.go @@ -177,7 +177,10 @@ func TestCreateOrValidateOutputDirExistentDirWithFile(t *testing.T) { if err != nil { t.Fatalf("os.Create() error = %v", err) } - file.Close() + err = file.Close() + if err != nil { + t.Fatalf("file.Close() error = %v", err) + } _, err = createOrValidateOutputDir(outputDir, true) testutils.CheckExpectedError(t, err, nil) @@ -194,7 +197,10 @@ func TestCreateOrValidateOutputDirExistentDirWithFileNoOverwrite(t *testing.T) { if err != nil { t.Fatalf("os.Create() error = %v", err) } - file.Close() + err = file.Close() + if err != nil { + t.Fatalf("file.Close() error = %v", err) + } expectedErrorPattern := `^output directory '.*' is not empty\. Use --overwrite to overwrite existing export data$` _, err = createOrValidateOutputDir(outputDir, false) diff --git a/internal/commands/request/request_internal.go b/internal/commands/request/request_internal.go index 1f707e0b..fc7280fb 100644 --- a/internal/commands/request/request_internal.go +++ b/internal/commands/request/request_internal.go @@ -5,6 +5,7 @@ package request_internal import ( "encoding/base64" "encoding/json" + "errors" "fmt" "io" "net/http" @@ -96,7 +97,12 @@ func runInternalPingOneRequest(uri string) (err error) { return err } - defer res.Body.Close() + defer func() { + cErr := res.Body.Close() + if cErr != nil { + err = errors.Join(err, cErr) + } + }() body, err := io.ReadAll(res.Body) if err != nil { @@ -234,7 +240,13 @@ func pingoneAuth() (accessToken string, err error) { return "", err } - defer res.Body.Close() + defer func() { + cErr := res.Body.Close() + if cErr != nil { + err = errors.Join(err, cErr) + } + }() + responseBodyBytes, err := io.ReadAll(res.Body) if err != nil { return "", err diff --git a/internal/commands/request/request_internal_test.go b/internal/commands/request/request_internal_test.go index 14397ea8..50b953cd 100644 --- a/internal/commands/request/request_internal_test.go +++ b/internal/commands/request/request_internal_test.go @@ -53,9 +53,12 @@ func Test_RunInternalRequestWithFail(t *testing.T) { func Test_RunInternalRequest_EmptyService(t *testing.T) { testutils_viper.InitVipers(t) - os.Unsetenv(options.RequestServiceOption.EnvVar) + err := os.Unsetenv(options.RequestServiceOption.EnvVar) + if err != nil { + t.Fatalf("failed to unset environment variable: %v", err) + } - err := RunInternalRequest("environments") + err = RunInternalRequest("environments") expectedErrorPattern := "failed to send custom request: service is required" testutils.CheckExpectedError(t, err, &expectedErrorPattern) } diff --git a/internal/connector/common/common_utils.go b/internal/connector/common/common_utils.go index 68570da7..95e93bf0 100644 --- a/internal/connector/common/common_utils.go +++ b/internal/connector/common/common_utils.go @@ -3,6 +3,7 @@ package common import ( + "errors" "fmt" "os" "path/filepath" @@ -16,7 +17,7 @@ import ( "github.com/pingidentity/pingcli/internal/logger" ) -func WriteFiles(exportableResources []connector.ExportableResource, format, outputDir string, overwriteExport bool) error { +func WriteFiles(exportableResources []connector.ExportableResource, format, outputDir string, overwriteExport bool) (err error) { l := logger.Get() // Parse the HCL import block template @@ -59,7 +60,12 @@ func WriteFiles(exportableResources []connector.ExportableResource, format, outp if err != nil { return fmt.Errorf("failed to create export file %q. err: %s", outputFilePath, err.Error()) } - defer outputFile.Close() + defer func() { + cErr := outputFile.Close() + if cErr != nil { + err = errors.Join(err, cErr) + } + }() err = writeHeader(format, outputFilePath, outputFile) if err != nil { diff --git a/internal/connector/common/resources_common.go b/internal/connector/common/resources_common.go index 370024e8..0ddcad4f 100644 --- a/internal/connector/common/resources_common.go +++ b/internal/connector/common/resources_common.go @@ -3,6 +3,7 @@ package common import ( + "errors" "fmt" "maps" "net/http" @@ -37,7 +38,7 @@ func CheckSingletonResource(response *http.Response, err error, apiFuncName, res return true, nil } -func HandleClientResponse(response *http.Response, err error, apiFunctionName string, resourceType string) (bool, error) { +func HandleClientResponse(response *http.Response, err error, apiFunctionName string, resourceType string) (b bool, rErr error) { if err != nil { // Only warn the user on client error and skip export of resource output.Warn("API client error.", map[string]interface{}{ @@ -52,7 +53,13 @@ func HandleClientResponse(response *http.Response, err error, apiFunctionName st if response == nil { return false, fmt.Errorf("%s Request for resource '%s' was not successful. Response is nil", apiFunctionName, resourceType) } - defer response.Body.Close() + + defer func() { + cErr := response.Body.Close() + if cErr != nil { + rErr = errors.Join(rErr, cErr) + } + }() // When the client returns forbidden, warn user and skip export of resource if response.StatusCode == 403 { diff --git a/internal/connector/pingone/platform/resources/gateway_credential_test.go b/internal/connector/pingone/platform/resources/gateway_credential_test.go index 4a718346..af61bff3 100644 --- a/internal/connector/pingone/platform/resources/gateway_credential_test.go +++ b/internal/connector/pingone/platform/resources/gateway_credential_test.go @@ -25,8 +25,8 @@ func Test_GatewayCredential(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), - ResourceName: fmt.Sprintf("%s_credential_%s", gatewayTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), - ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, gatewayTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID]), + ResourceName: fmt.Sprintf("%s_credential_%s", gatewayTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_NAME], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_CREDENTIAL]), + ResourceID: fmt.Sprintf("%s/%s/%s", clientInfo.PingOneExportEnvironmentID, gatewayTr.ResourceInfo.CreationInfo[testutils_resource.ENUM_ID], tr.ResourceInfo.CreationInfo[testutils_resource.ENUM_CREDENTIAL]), }, } diff --git a/internal/connector/pingone/platform/resources/notification_template_content.go b/internal/connector/pingone/platform/resources/notification_template_content.go index ae93cd09..175b818d 100644 --- a/internal/connector/pingone/platform/resources/notification_template_content.go +++ b/internal/connector/pingone/platform/resources/notification_template_content.go @@ -4,6 +4,7 @@ package resources import ( + "errors" "fmt" "io" "strings" @@ -125,7 +126,7 @@ func (r *PingOneNotificationTemplateContentResource) getEnabledLocales() (map[st return enabledLocales, nil } -func (r *PingOneNotificationTemplateContentResource) getTemplateNames() ([]management.EnumTemplateName, error) { +func (r *PingOneNotificationTemplateContentResource) getTemplateNames() (arr []management.EnumTemplateName, err error) { templateNames := []management.EnumTemplateName{} for _, templateName := range management.AllowedEnumTemplateNameEnumValues { @@ -134,7 +135,13 @@ func (r *PingOneNotificationTemplateContentResource) getTemplateNames() ([]manag // the response code for the templates related to that service is // 400 Bad Request - "CONSTRAINT_VIOLATION" if err != nil && response.StatusCode == 400 && response.Status == "400 Bad Request" { - defer response.Body.Close() + defer func() { + cErr := response.Body.Close() + if cErr != nil { + err = errors.Join(err, cErr) + } + }() + body, err := io.ReadAll(response.Body) if err != nil { return nil, err diff --git a/internal/connector/pingone/sso/resources/application_secret.go b/internal/connector/pingone/sso/resources/application_secret.go index edeae4a4..31d8a36c 100644 --- a/internal/connector/pingone/sso/resources/application_secret.go +++ b/internal/connector/pingone/sso/resources/application_secret.go @@ -4,6 +4,7 @@ package resources import ( + "errors" "fmt" "github.com/patrickcping/pingone-go-sdk-v2/management" @@ -114,11 +115,16 @@ func (r *PingOneApplicationSecretResource) getApplicationData() (map[string]stri return applicationData, nil } -func (r *PingOneApplicationSecretResource) checkApplicationSecretData(applicationId string) (bool, error) { +func (r *PingOneApplicationSecretResource) checkApplicationSecretData(applicationId string) (b bool, err error) { // The platform enforces that worker apps cannot read their own secret // Make sure we can read the secret before adding it to the import blocks _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationSecretApi.ReadApplicationSecret(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, applicationId).Execute() - defer response.Body.Close() + defer func() { + cErr := response.Body.Close() + if cErr != nil { + err = errors.Join(err, cErr) + } + }() // If the appId is the same as the worker ID, make sure the API response is a 403 and ignore the error if applicationId == r.clientInfo.PingOneApiClientId { diff --git a/internal/connector/pingone/sso/resources/population_default.go b/internal/connector/pingone/sso/resources/population_default.go index 72dcb635..1bf85d65 100644 --- a/internal/connector/pingone/sso/resources/population_default.go +++ b/internal/connector/pingone/sso/resources/population_default.go @@ -10,6 +10,7 @@ import ( "github.com/pingidentity/pingcli/internal/connector/common" "github.com/pingidentity/pingcli/internal/connector/pingone" "github.com/pingidentity/pingcli/internal/logger" + "github.com/pingidentity/pingcli/internal/output" ) // Verify that the resource satisfies the exportable resource interface @@ -38,11 +39,15 @@ func (r *PingOnePopulationDefaultResource) ExportAll() (*[]connector.ImportBlock importBlocks := []connector.ImportBlock{} - defaultPopulationName, err := r.getDefaultPopulationName() + defaultPopulationName, defaultPopulationNameOk, err := r.getDefaultPopulationName() if err != nil { return nil, err } + if !defaultPopulationNameOk { + return &importBlocks, nil + } + commentData := map[string]string{ "Default Population Name": *defaultPopulationName, "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, @@ -61,11 +66,11 @@ func (r *PingOnePopulationDefaultResource) ExportAll() (*[]connector.ImportBlock return &importBlocks, nil } -func (r *PingOnePopulationDefaultResource) getDefaultPopulationName() (*string, error) { +func (r *PingOnePopulationDefaultResource) getDefaultPopulationName() (*string, bool, error) { iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.PopulationsApi.ReadAllPopulations(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Population](iter, "ReadAllPopulations", "GetPopulations", r.ResourceType()) if err != nil { - return nil, err + return nil, false, err } for _, population := range apiObjs { @@ -75,10 +80,12 @@ func (r *PingOnePopulationDefaultResource) getDefaultPopulationName() (*string, populationName, populationNameOk := population.GetNameOk() if populationNameOk { - return populationName, nil + return populationName, true, nil } } } - return nil, fmt.Errorf("unable to find the name of the default population") + output.Warn("Unable to export the default population. No default population found.", nil) + + return nil, false, nil } diff --git a/internal/profiles/viper.go b/internal/profiles/viper.go index f2cecc7d..5592e457 100644 --- a/internal/profiles/viper.go +++ b/internal/profiles/viper.go @@ -342,7 +342,7 @@ func (m MainConfig) DefaultMissingViperKeys() (err error) { } err = m.SaveProfile(pName, subViper) if err != nil { - return fmt.Errorf("Failed to save profile '%s': %v", pName, err) + return fmt.Errorf("failed to save profile '%s': %v", pName, err) } } diff --git a/internal/testing/testutils/utils.go b/internal/testing/testutils/utils.go index 0c811954..b0f8e871 100644 --- a/internal/testing/testutils/utils.go +++ b/internal/testing/testutils/utils.go @@ -11,6 +11,7 @@ import ( "crypto/x509" "crypto/x509/pkix" "encoding/pem" + "errors" "fmt" "math/big" "net/http" @@ -79,8 +80,8 @@ func initPingOneClientInfo(t *testing.T, clientInfo *connector.ClientInfo) { // Grab environment vars for initializing the API client. // These are set in GitHub Actions. - clientID := os.Getenv("TEST_PINGONE_CLIENT_ID") - clientSecret := os.Getenv("TEST_PINGONE_CLIENT_SECRET") + clientID := os.Getenv("TEST_PINGONE_WORKER_CLIENT_ID") + clientSecret := os.Getenv("TEST_PINGONE_WORKER_CLIENT_SECRET") environmentId := os.Getenv("TEST_PINGONE_ENVIRONMENT_ID") regionCode := os.Getenv("TEST_PINGONE_REGION_CODE") sdkRegionCode := management.EnumRegionCode(regionCode) @@ -265,17 +266,16 @@ func WriteStringToPipe(str string, t *testing.T) (reader *os.File) { t.Fatal(err) } - defer writer.Close() - if _, err := writer.WriteString(str); err != nil { - reader.Close() - t.Fatal(err) + rcErr := reader.Close() + wcErr := writer.Close() + t.Fatal(errors.Join(err, rcErr, wcErr)) } // Close the writer to simulate EOF if err = writer.Close(); err != nil { - reader.Close() - t.Fatal(err) + cErr := reader.Close() + t.Fatal(errors.Join(err, cErr)) } return reader diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_settings.go index 205c2278..01f203e9 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_settings.go @@ -19,6 +19,6 @@ func AuthenticationApiSettings(t *testing.T, clientInfo *connector.ClientInfo) * CreateFunc: nil, DeleteFunc: nil, Dependencies: nil, - ExportableResource: resources.AuthenticationApiApplication(clientInfo), + ExportableResource: resources.AuthenticationApiSettings(clientInfo), } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go index 7db03a1e..321c20e7 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go @@ -31,11 +31,11 @@ func AuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.ClientIn func createAuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createAuthenticationPoliciesFragment(): %v", strArgs) return testutils_resource.ResourceInfo{} } - idpAdapterId := strArgs[0] + idpAdapterId := strArgs[1] request := clientInfo.PingFederateApiClient.AuthenticationPoliciesAPI.CreateFragment(clientInfo.PingFederateContext) clientStruct := client.AuthenticationPolicyFragment{ diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go index e336afbc..b05536ed 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go @@ -32,12 +32,12 @@ func IdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo) *testutils_ func createIdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 3 { t.Errorf("Unexpected number of arguments provided to createIdpSpConnection(): %v", strArgs) return testutils_resource.ResourceInfo{} } signingKeyPairId := strArgs[0] - idpTokenProcessorId := strArgs[1] + idpTokenProcessorId := strArgs[2] request := clientInfo.PingFederateApiClient.IdpSpConnectionsAPI.CreateSpConnection(clientInfo.PingFederateContext) clientStruct := client.SpConnection{ diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go index 5a343b4d..d889bfa9 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go @@ -32,12 +32,12 @@ func IdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo) *test func createIdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 3 { t.Errorf("Unexpected number of arguments provided to createIdpToSpAdapterMapping(): %v", strArgs) return testutils_resource.ResourceInfo{} } - testIdpAdapterId := strArgs[0] - testSpAdapterId := strArgs[1] + testIdpAdapterId := strArgs[1] + testSpAdapterId := strArgs[2] request := clientInfo.PingFederateApiClient.IdpToSpAdapterMappingAPI.CreateIdpToSpAdapterMapping(clientInfo.PingFederateContext) clientStruct := client.IdpToSpAdapterMapping{ diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go index 206e9205..b787b7dc 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go @@ -31,11 +31,11 @@ func OauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInfo) *te func createOauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createOauthAccessTokenMapping(): %v", strArgs) return testutils_resource.ResourceInfo{} } - testTokenManagerId := strArgs[0] + testTokenManagerId := strArgs[1] request := clientInfo.PingFederateApiClient.OauthAccessTokenMappingsAPI.CreateMapping(clientInfo.PingFederateContext) clientStruct := client.AccessTokenMapping{ diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go index 4ea1087b..9fb917ca 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go @@ -30,11 +30,11 @@ func OauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo) *tes func createOauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createOauthIdpAdapterMapping(): %v", strArgs) return testutils_resource.ResourceInfo{} } - testIdpAdapterId := strArgs[0] + testIdpAdapterId := strArgs[1] request := clientInfo.PingFederateApiClient.OauthIdpAdapterMappingsAPI.CreateIdpAdapterMapping(clientInfo.PingFederateContext) clientStruct := client.IdpAdapterMapping{ diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go index 97877cd3..82baf3e5 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go @@ -30,11 +30,11 @@ func OauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector.Clien func createOauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createOauthTokenExchangeProcessorPolicy(): %v", strArgs) return testutils_resource.ResourceInfo{} } - testTokenProcessorId := strArgs[0] + testTokenProcessorId := strArgs[1] request := clientInfo.PingFederateApiClient.OauthTokenExchangeProcessorAPI.CreateOauthTokenExchangeProcessorPolicy(clientInfo.PingFederateContext) result := client.TokenExchangeProcessorPolicy{ diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go index 08ec8998..7bac1b12 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go @@ -32,12 +32,12 @@ func OauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *connector func createOauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 5 { t.Errorf("Unexpected number of arguments provided to createOauthTokenExchangeTokenGeneratorMapping(): %v", strArgs) return testutils_resource.ResourceInfo{} } - testProcessorPolicyId := strArgs[0] - testTokenGeneratorId := strArgs[1] + testProcessorPolicyId := strArgs[2] + testTokenGeneratorId := strArgs[4] request := clientInfo.PingFederateApiClient.OauthTokenExchangeTokenGeneratorMappingsAPI.CreateTokenGeneratorMapping(clientInfo.PingFederateContext) clientStruct := client.ProcessorPolicyToGeneratorMapping{ diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go index 362c3852..ee910d16 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go @@ -31,11 +31,11 @@ func OpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo) *testut func createOpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createOpenidConnectPolicy(): %v", strArgs) return testutils_resource.ResourceInfo{} } - testAccessTokenManagerId := strArgs[0] + testAccessTokenManagerId := strArgs[1] request := clientInfo.PingFederateApiClient.OauthOpenIdConnectAPI.CreateOIDCPolicy(clientInfo.PingFederateContext) clientStruct := client.OpenIdConnectPolicy{ diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go b/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go index d7587266..c49dcd8c 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go @@ -32,11 +32,11 @@ func PingoneConnection(t *testing.T, clientInfo *connector.ClientInfo) *testutil func createPingoneConnection(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createPingoneConnection(): %v", strArgs) return testutils_resource.ResourceInfo{} } - credential := strArgs[0] + credential := strArgs[1] request := clientInfo.PingFederateApiClient.PingOneConnectionsAPI.CreatePingOneConnection(clientInfo.PingFederateContext) clientStruct := client.PingOneConnection{ diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go index bcbbc81d..b7431033 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go @@ -31,11 +31,11 @@ func SessionAuthenticationPolicy(t *testing.T, clientInfo *connector.ClientInfo) func createSessionAuthenticationPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createSessionAuthenticationPolicy(): %v", strArgs) return testutils_resource.ResourceInfo{} } - testIdpAdapterId := strArgs[0] + testIdpAdapterId := strArgs[1] request := clientInfo.PingFederateApiClient.SessionAPI.CreateSourcePolicy(clientInfo.PingFederateContext) clientStruct := client.AuthenticationSessionPolicy{ diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go index 65e375ee..0b1c5fce 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go @@ -32,12 +32,12 @@ func TokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *connector.C func createTokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 4 { t.Errorf("Unexpected number of arguments provided to createTokenProcessorToTokenGeneratorMapping(): %v", strArgs) return testutils_resource.ResourceInfo{} } - testTokenProcessorId := strArgs[0] - testTokenGeneratorId := strArgs[1] + testTokenProcessorId := strArgs[1] + testTokenGeneratorId := strArgs[3] request := clientInfo.PingFederateApiClient.TokenProcessorToTokenGeneratorMappingsAPI.CreateTokenToTokenMapping(clientInfo.PingFederateContext) clientStruct := client.TokenToTokenMapping{ diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource_permission.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource_permission.go index f0165cd4..9175416f 100644 --- a/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource_permission.go +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource_permission.go @@ -32,11 +32,11 @@ func ApplicationResourcePermission(t *testing.T, clientInfo *connector.ClientInf func createApplicationResourcePermission(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createApplicationResourcePermission(): %v", strArgs) return testutils_resource.ResourceInfo{} } - applicationResourceId := strArgs[0] + applicationResourceId := strArgs[1] request := clientInfo.PingOneApiClient.AuthorizeAPIClient.ApplicationResourcePermissionsApi.CreateApplicationPermission(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, applicationResourceId) clientStruct := authorize.ApplicationResourcePermission{ diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_deployment.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_deployment.go index 82b96f75..3499426c 100644 --- a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_deployment.go +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_deployment.go @@ -29,11 +29,11 @@ func AuthorizeApiServiceDeployment(t *testing.T, clientInfo *connector.ClientInf func createAuthorizeApiServiceDeployment(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createAuthorizeApiServiceDeployment(): %v", strArgs) return testutils_resource.ResourceInfo{} } - authorizeApiServiceId := strArgs[0] + authorizeApiServiceId := strArgs[1] request := clientInfo.PingOneApiClient.AuthorizeAPIClient.APIServerDeploymentApi.DeployAPIServer(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, authorizeApiServiceId) request = request.ContentType("application/vnd.pingidentity.apiserver.deploy+json") diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_operation.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_operation.go index 4e4c1a48..542bccbb 100644 --- a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_operation.go +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_operation.go @@ -30,11 +30,11 @@ func AuthorizeApiServiceOperation(t *testing.T, clientInfo *connector.ClientInfo func createAuthorizeApiServiceOperation(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() - if len(strArgs) != 1 { + if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createAuthorizeApiServiceOperation(): %v", strArgs) return testutils_resource.ResourceInfo{} } - apiServerId := strArgs[0] + apiServerId := strArgs[1] request := clientInfo.PingOneApiClient.AuthorizeAPIClient.APIServerOperationsApi.CreateAPIServerOperation(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, apiServerId) clientStruct := authorize.APIServerOperation{ diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role_permission.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role_permission.go index 4ccbbc2d..15bc7985 100644 --- a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role_permission.go +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role_permission.go @@ -31,12 +31,12 @@ func AuthorizeApplicationRolePermission(t *testing.T, clientInfo *connector.Clie func createAuthorizeApplicationRolePermission(t *testing.T, clientInfo *connector.ClientInfo, resourceType string, strArgs ...string) testutils_resource.ResourceInfo { t.Helper() - if len(strArgs) != 2 { + if len(strArgs) != 4 { t.Errorf("Unexpected number of arguments provided to createAuthorizeApplicationRolePermission(): %v", strArgs) return testutils_resource.ResourceInfo{} } applicationRoleId := strArgs[0] - applicationResourcePermissionId := strArgs[1] + applicationResourcePermissionId := strArgs[3] request := clientInfo.PingOneApiClient.AuthorizeAPIClient.ApplicationRolePermissionsApi.CreateApplicationRolePermission(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID, applicationRoleId) clientStruct := authorize.ApplicationRolePermission{ diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_credential.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_credential.go index 18c29c6f..e72b9897 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_credential.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_credential.go @@ -54,7 +54,8 @@ func createGatewayCredential(t *testing.T, clientInfo *connector.ClientInfo, res *resource.Id, }, CreationInfo: map[testutils_resource.ResourceCreationInfoType]string{ - testutils_resource.ENUM_ID: *resource.Id, + testutils_resource.ENUM_ID: *resource.Credential, + testutils_resource.ENUM_CREDENTIAL: *resource.Id, }, } } diff --git a/internal/testing/testutils_resource/testutils_resource.go b/internal/testing/testutils_resource/testutils_resource.go index 63abdfe2..558d6387 100644 --- a/internal/testing/testutils_resource/testutils_resource.go +++ b/internal/testing/testutils_resource/testutils_resource.go @@ -87,20 +87,18 @@ func (tr *TestableResource) CreateResource(t *testing.T) { resourceType = tr.ExportableResource.ResourceType() } - createdDepIds := []string{} for _, dependency := range tr.Dependencies { // Recursively create dependencies dependency.CreateResource(t) - depId, ok := dependency.ResourceInfo.CreationInfo[ENUM_ID] - if !ok { - t.Fatalf("Failed to get ID from dependency: %v", dependency) - } - - createdDepIds = append(createdDepIds, depId) + } + depIds, ok := tr.getDepIds() + if !ok { + t.Errorf("Failed to get dependency IDs for resource %s", resourceType) + return } if tr.CreateFunc != nil { - tr.ResourceInfo = tr.CreateFunc(t, tr.ClientInfo, resourceType, createdDepIds...) + tr.ResourceInfo = tr.CreateFunc(t, tr.ClientInfo, resourceType, depIds...) } } @@ -120,3 +118,23 @@ func (tr *TestableResource) DeleteResource(t *testing.T) { dependency.DeleteResource(t) } } + +func (tr *TestableResource) getDepIds() ([]string, bool) { + depIds := []string{} + for _, dependency := range tr.Dependencies { + if len(dependency.Dependencies) > 0 { + nestedDepIds, ok := dependency.getDepIds() + if !ok { + return []string{}, false + } + depIds = append(depIds, nestedDepIds...) + } + + depId, ok := dependency.ResourceInfo.CreationInfo[ENUM_ID] + if !ok { + return []string{}, false + } + depIds = append(depIds, depId) + } + return depIds, true +} diff --git a/internal/testing/testutils_terraform/terraform_utils.go b/internal/testing/testutils_terraform/terraform_utils.go index 53f4c037..8ff4bd5d 100644 --- a/internal/testing/testutils_terraform/terraform_utils.go +++ b/internal/testing/testutils_terraform/terraform_utils.go @@ -168,8 +168,8 @@ provider "pingone" { region_code = "%s" } `, - os.Getenv("TEST_PINGONE_CLIENT_ID"), - os.Getenv("TEST_PINGONE_CLIENT_SECRET"), + os.Getenv("TEST_PINGONE_WORKER_CLIENT_ID"), + os.Getenv("TEST_PINGONE_WORKER_CLIENT_SECRET"), os.Getenv("TEST_PINGONE_ENVIRONMENT_ID"), os.Getenv("TEST_PINGONE_REGION_CODE"), ) diff --git a/internal/testing/testutils_viper/viper_utils.go b/internal/testing/testutils_viper/viper_utils.go index 0e46748b..bc63d538 100644 --- a/internal/testing/testutils_viper/viper_utils.go +++ b/internal/testing/testutils_viper/viper_utils.go @@ -111,8 +111,8 @@ func getDefaultConfigFileContents() string { return fmt.Sprintf(defaultConfigFileContentsPattern, outputDirectoryReplacement, os.Getenv("TEST_PINGONE_REGION_CODE"), - os.Getenv("TEST_PINGONE_CLIENT_ID"), - os.Getenv("TEST_PINGONE_CLIENT_SECRET"), + os.Getenv("TEST_PINGONE_WORKER_CLIENT_ID"), + os.Getenv("TEST_PINGONE_WORKER_CLIENT_SECRET"), os.Getenv("TEST_PINGONE_ENVIRONMENT_ID"), ) } From 234d58afb10c0fab1ee8df6231bf5d3abd63c027 Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Thu, 27 Mar 2025 13:06:01 -0600 Subject: [PATCH 10/18] Upgrade dependencies --- go.mod | 4 ++-- go.sum | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index ae02929d..2b83edcd 100644 --- a/go.mod +++ b/go.mod @@ -17,10 +17,10 @@ require ( github.com/patrickcping/pingone-go-sdk-v2/mfa v0.23.0 github.com/patrickcping/pingone-go-sdk-v2/risk v0.19.0 github.com/pingidentity/pingfederate-go-client/v1220 v1220.0.0 - github.com/rs/zerolog v1.33.0 + github.com/rs/zerolog v1.34.0 github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 - github.com/spf13/viper v1.20.0 + github.com/spf13/viper v1.20.1 golang.org/x/mod v0.24.0 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index d7ece9c4..74998115 100644 --- a/go.sum +++ b/go.sum @@ -494,9 +494,9 @@ github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUc github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= -github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= +github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY= +github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryancurrah/gomodguard v1.3.5 h1:cShyguSwUEeC0jS7ylOiG/idnd1TpJ1LfHGpV3oJmPU= github.com/ryancurrah/gomodguard v1.3.5/go.mod h1:MXlEPQRxgfPQa62O8wzK3Ozbkv9Rkqr+wKjSxTdsNJE= @@ -540,8 +540,8 @@ github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wx github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.20.0 h1:zrxIyR3RQIOsarIrgL8+sAvALXul9jeEPa06Y0Ph6vY= -github.com/spf13/viper v1.20.0/go.mod h1:P9Mdzt1zoHIG8m2eZQinpiBjo6kCmZSKBClNNqjJvu4= +github.com/spf13/viper v1.20.1 h1:ZMi+z/lvLyPSCoNtFCpqjy0S4kPbirhpTMwl8BkW9X4= +github.com/spf13/viper v1.20.1/go.mod h1:P9Mdzt1zoHIG8m2eZQinpiBjo6kCmZSKBClNNqjJvu4= github.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0= github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= github.com/stbenjam/no-sprintf-host-port v0.2.0 h1:i8pxvGrt1+4G0czLr/WnmyH7zbZ8Bg8etvARQ1rpyl4= From 4779e200829e720b760b33031f3587c72bf9817c Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Thu, 27 Mar 2025 13:42:55 -0600 Subject: [PATCH 11/18] Update golangci/golangci-lint-action to v7 --- .github/workflows/code-analysis-lint-test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code-analysis-lint-test.yaml b/.github/workflows/code-analysis-lint-test.yaml index d63f5638..e8f2f50d 100644 --- a/.github/workflows/code-analysis-lint-test.yaml +++ b/.github/workflows/code-analysis-lint-test.yaml @@ -76,7 +76,7 @@ jobs: go-version-file: "go.mod" cache: true - name: golangci-lint - uses: golangci/golangci-lint-action@v6 + uses: golangci/golangci-lint-action@v7 with: # Require: The version of golangci-lint to use. # When `install-mode` is `binary` (default) the value can be v1.2 or v1.2.3 or `latest` to use the latest version. From db585685bf505b549fb48d386a254156c96b735c Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Thu, 27 Mar 2025 17:14:58 -0600 Subject: [PATCH 12/18] golangci-lint fixes --- .golangci.yml | 41 ++++++++++++++- cmd/common/cobra_utils.go | 8 +-- cmd/completion/cmd.go | 1 + cmd/platform/export.go | 1 - cmd/platform/export_test.go | 4 +- cmd/root.go | 4 +- internal/autocompletion/config_args.go | 1 + .../commands/config/add_profile_internal.go | 10 ++-- .../config/delete_profile_internal.go | 8 +-- internal/commands/config/get_internal.go | 6 +-- .../commands/config/list_keys_internal.go | 11 +++- .../commands/config/list_profiles_internal.go | 1 + .../config/set_active_profile_internal.go | 4 +- internal/commands/config/set_internal.go | 48 +++++++++--------- internal/commands/config/unset_internal.go | 12 ++--- .../commands/config/view_profile_internal.go | 6 +-- internal/commands/platform/export_internal.go | 24 ++++----- .../commands/platform/export_internal_test.go | 23 ++++----- internal/commands/request/request_internal.go | 50 ++++++++++++------- .../commands/request/request_internal_test.go | 29 ++++++----- internal/configuration/configuration.go | 5 +- .../configuration/options/options_test.go | 1 - internal/configuration/platform/export.go | 8 +-- internal/configuration/root/root.go | 2 + internal/configuration/services/pingone.go | 1 - internal/connector/common/common_utils.go | 5 +- internal/connector/common/resources_common.go | 5 +- internal/connector/exportable_resource.go | 3 +- .../authentication_api_application.go | 2 +- .../authentication_api_application_test.go | 1 - .../authentication_api_settings_test.go | 1 - .../authentication_policies_fragment.go | 2 +- .../authentication_policies_fragment_test.go | 1 - .../authentication_policies_settings_test.go | 1 - .../resources/authentication_policies_test.go | 1 - .../authentication_policy_contract.go | 2 +- .../authentication_policy_contract_test.go | 1 - .../resources/authentication_selector.go | 2 +- .../resources/authentication_selector_test.go | 1 - .../resources/captcha_provider.go | 2 +- .../captcha_provider_settings_test.go | 1 - .../resources/captcha_provider_test.go | 1 - .../pingfederate/resources/certificate_ca.go | 2 +- .../resources/certificate_ca_test.go | 1 - ...ertificates_revocation_ocsp_certificate.go | 2 +- ...icates_revocation_ocsp_certificate_test.go | 1 - .../certificates_revocation_settings_test.go | 1 - .../resources/cluster_settings.go | 2 + .../resources/cluster_settings_test.go | 1 - ...nfiguration_encryption_keys_rotate_test.go | 1 - .../pingfederate/resources/data_store.go | 2 +- .../pingfederate/resources/data_store_test.go | 1 - .../resources/default_urls_test.go | 1 - .../resources/extended_properties_test.go | 1 - .../resources/identity_store_provisioner.go | 2 +- .../identity_store_provisioner_test.go | 1 - .../pingfederate/resources/idp_adapter.go | 2 +- .../resources/idp_adapter_test.go | 1 - .../resources/idp_sp_connection.go | 2 +- .../resources/idp_sp_connection_test.go | 1 - .../idp_sts_request_parameters_contract.go | 2 +- ...dp_sts_request_parameters_contract_test.go | 1 - .../resources/idp_to_sp_adapter_mapping.go | 2 +- .../idp_to_sp_adapter_mapping_test.go | 1 - .../resources/idp_token_processor.go | 2 +- .../resources/idp_token_processor_test.go | 1 - .../resources/incoming_proxy_settings_test.go | 1 - .../pingfederate/resources/kerberos_realm.go | 2 +- .../resources/kerberos_realm_settings_test.go | 1 - .../resources/kerberos_realm_test.go | 1 - ...oauth_openid_connect_additional_key_set.go | 2 +- ..._openid_connect_additional_key_set_test.go | 1 - .../keypairs_oauth_openid_connect_test.go | 1 - .../keypairs_signing_key_rotation_settings.go | 3 +- ...airs_signing_key_rotation_settings_test.go | 1 - .../keypairs_ssl_server_settings_test.go | 1 - .../resources/local_identity_profile.go | 2 +- .../resources/local_identity_profile_test.go | 1 - .../pingfederate/resources/metadata_url.go | 2 +- .../resources/metadata_url_test.go | 1 - .../resources/notification_publisher.go | 2 +- .../notification_publisher_settings_test.go | 1 - .../resources/notification_publisher_test.go | 1 - .../resources/oauth_access_token_manager.go | 2 +- ...auth_access_token_manager_settings_test.go | 1 - .../oauth_access_token_manager_test.go | 1 - .../resources/oauth_access_token_mapping.go | 2 +- .../oauth_access_token_mapping_test.go | 1 - ...entication_policy_contract_mapping_test.go | 1 - ...oauth_ciba_server_policy_request_policy.go | 2 +- ..._ciba_server_policy_request_policy_test.go | 1 - .../oauth_ciba_server_policy_settings_test.go | 1 - .../pingfederate/resources/oauth_client.go | 2 +- .../oauth_client_registration_policy.go | 2 +- .../oauth_client_registration_policy_test.go | 1 - .../resources/oauth_client_settings_test.go | 1 - .../resources/oauth_client_test.go | 1 - .../oauth_idp_adapter_mapping_test.go | 1 - .../pingfederate/resources/oauth_issuer.go | 2 +- .../resources/oauth_issuer_test.go | 1 - .../resources/oauth_server_settings_test.go | 1 - ..._token_exchange_generator_settings_test.go | 1 - ..._token_exchange_token_generator_mapping.go | 2 +- ...n_exchange_token_generator_mapping_test.go | 1 - .../resources/openid_connect_policy.go | 2 +- .../resources/openid_connect_policy_test.go | 1 - .../resources/openid_connect_settings_test.go | 1 - .../password_credential_validator.go | 2 +- .../password_credential_validator_test.go | 1 - .../resources/pingone_connection.go | 2 +- .../resources/pingone_connection_test.go | 1 - ...rotocol_metadata_lifetime_settings_test.go | 1 - ...protocol_metadata_signing_settings_test.go | 1 - .../resources/redirect_validation_test.go | 1 - .../pingfederate/resources/secret_manager.go | 2 +- .../resources/secret_manager_test.go | 1 - .../resources/server_settings_general_test.go | 1 - .../resources/server_settings_logging_test.go | 1 - ...server_settings_system_keys_rotate_test.go | 1 - .../resources/server_settings_test.go | 1 - ...s_trust_sts_settings_issuer_certificate.go | 2 +- ...st_sts_settings_issuer_certificate_test.go | 1 - ...ver_settings_ws_trust_sts_settings_test.go | 1 - .../resources/service_authentication_test.go | 1 - .../session_application_policy_test.go | 1 - ...ion_authentication_policies_global_test.go | 1 - .../session_authentication_policy.go | 2 +- .../session_authentication_policy_test.go | 1 - .../resources/session_settings_test.go | 1 - .../pingfederate/resources/sp_adapter.go | 2 +- .../pingfederate/resources/sp_adapter_test.go | 1 - ..._authentication_policy_contract_mapping.go | 2 +- ...entication_policy_contract_mapping_test.go | 1 - .../resources/sp_idp_connection.go | 2 +- .../resources/sp_idp_connection_test.go | 1 - .../resources/sp_target_url_mappings_test.go | 1 - ...en_processor_to_token_generator_mapping.go | 2 +- ...ocessor_to_token_generator_mapping_test.go | 1 - .../resources/virtual_host_names_test.go | 1 - .../resources/application_resource.go | 1 - .../pingone/mfa/resources/mfa_settings.go | 1 + .../platform/resources/branding_settings.go | 1 + .../resources/branding_theme_default.go | 1 + .../pingone/platform/resources/certificate.go | 3 +- .../pingone/platform/resources/environment.go | 1 + .../platform/resources/forms_recaptcha_v2.go | 1 + .../resources/gateway_role_assignment.go | 15 +++--- .../pingone/platform/resources/key.go | 2 +- .../resources/notification_settings.go | 1 + .../resources/notification_settings_email.go | 1 + .../notification_template_content.go | 4 +- .../sso/resources/application_secret.go | 4 +- .../sso/resources/group_role_assignment.go | 1 - .../population_default_identity_provider.go | 1 + .../pingone/sso/resources/resource_secret.go | 1 + internal/customtypes/export_format.go | 1 + internal/customtypes/export_service_group.go | 1 + internal/customtypes/export_services.go | 5 ++ internal/customtypes/http_method.go | 1 + internal/customtypes/output_format.go | 1 + .../customtypes/pingfederate_auth_type.go | 1 + internal/customtypes/pingone_auth_type.go | 1 + internal/customtypes/pingone_region_code.go | 1 + internal/customtypes/request_services.go | 1 + internal/customtypes/uuid.go | 1 + internal/input/input.go | 2 + internal/input/input_test.go | 36 ++++++------- internal/logger/logger.go | 6 +-- internal/output/output.go | 29 +++++------ internal/profiles/validate.go | 44 ++++++++-------- internal/profiles/viper.go | 12 +++-- internal/testing/testutils/utils.go | 18 ++++--- .../authentication_api_application.go | 6 +++ .../authentication_policies_fragment.go | 6 +++ .../authentication_policy_contract.go | 6 +++ .../authentication_selector.go | 6 +++ .../captcha_provider.go | 6 +++ .../certificate_ca.go | 6 +++ ...ertificates_revocation_ocsp_certificate.go | 6 +++ .../identity_store_provisioner.go | 6 +++ .../idp_adapter.go | 6 +++ .../idp_sp_connection.go | 6 +++ .../idp_sts_request_parameters_contract.go | 6 +++ .../idp_to_sp_adapter_mapping.go | 6 +++ .../idp_token_processor.go | 6 +++ .../kerberos_realm.go | 6 +++ ...oauth_openid_connect_additional_key_set.go | 6 +++ .../keypairs_signing_key.go | 6 +++ .../keypairs_signing_key_rotation_settings.go | 6 +++ .../local_identity_profile.go | 6 +++ .../metadata_url.go | 6 +++ .../notification_publisher.go | 6 +++ .../oauth_access_token_manager.go | 6 +++ .../oauth_access_token_mapping.go | 6 +++ ..._authentication_policy_contract_mapping.go | 6 +++ ...oauth_ciba_server_policy_request_policy.go | 6 +++ .../oauth_client.go | 6 +++ .../oauth_client_registration_policy.go | 6 +++ .../oauth_idp_adapter_mapping.go | 6 +++ .../oauth_issuer.go | 6 +++ .../oauth_token_exchange_processor_policy.go | 6 +++ ..._token_exchange_token_generator_mapping.go | 6 +++ .../openid_connect_policy.go | 6 +++ .../out_of_band_auth_plugins.go | 6 +++ .../password_credential_validator.go | 6 +++ .../pingone_connection.go | 6 +++ .../secret_manager.go | 6 +++ ...s_trust_sts_settings_issuer_certificate.go | 6 +++ .../session_authentication_policy.go | 6 +++ .../sp_adapter.go | 6 +++ ..._authentication_policy_contract_mapping.go | 6 +++ .../sp_idp_connection.go | 6 +++ .../sp_token_generator.go | 6 +++ ...en_processor_to_token_generator_mapping.go | 6 +++ .../application_resource.go | 6 +++ .../application_resource_permission.go | 6 +++ .../authorize_api_service.go | 6 +++ .../authorize_api_service_deployment.go | 3 ++ .../authorize_api_service_operation.go | 6 +++ .../authorize_application_role.go | 6 +++ .../authorize_application_role_permission.go | 6 +++ .../authorize_decision_endpoint.go | 6 +++ .../mfa_application_push_credential.go | 6 +++ .../mfa_device_policy.go | 6 +++ .../mfa_fido2_policy.go | 6 +++ .../agreement.go | 6 +++ .../agreement_localization.go | 6 +++ .../agreement_localization_revision.go | 7 +++ .../alert_channel.go | 6 +++ .../branding_theme.go | 8 +++ .../certificate.go | 7 +++ .../custom_domain.go | 6 +++ .../device_auth_application.go | 8 +++ .../form.go | 6 +++ .../forms_recaptcha_v2.go | 5 ++ .../gateway.go | 6 +++ .../gateway_credential.go | 6 +++ .../gateway_role_assignment.go | 8 +++ .../identity_propagation_plan.go | 6 +++ .../key.go | 6 +++ .../key_rotation_policy.go | 6 +++ .../language.go | 8 +++ .../notification_policy.go | 6 +++ .../notification_template_content.go | 6 +++ .../phone_delivery_settings.go | 6 +++ .../trusted_email_address.go | 6 +++ .../trusted_email_domain.go | 6 +++ .../webhook.go | 6 +++ .../risk_policy.go | 6 +++ .../risk_predictor.go | 6 +++ .../application_attribute_mapping.go | 6 +++ .../application_device_authorization.go | 7 +++ .../application_flow_policy_assignment.go | 10 ++++ .../application_native.go | 7 +++ .../application_resource_grant.go | 10 ++++ .../application_role_assignment.go | 8 +++ .../application_sign_on_policy_assignment.go | 8 +++ .../application_worker.go | 7 +++ .../pingone_sso_testable_resources/group.go | 7 +++ .../group_nesting.go | 8 +++ .../group_role_assignment.go | 8 +++ .../identity_provider.go | 6 +++ .../identity_provider_attribute.go | 6 +++ .../password_policy.go | 6 +++ .../population.go | 10 ++++ .../resource.go | 6 +++ .../resource_attribute.go | 6 +++ .../resource_scope.go | 6 +++ .../resource_scope_openid.go | 8 +++ .../resource_scope_pingone_api.go | 8 +++ .../schema_attribute.go | 7 +++ .../sign_on_policy.go | 6 +++ .../sign_on_policy_action.go | 3 ++ .../testutils_resource/testutils_resource.go | 2 + .../testutils_terraform/terraform_utils.go | 12 +++-- main.go | 1 + 276 files changed, 1009 insertions(+), 316 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 8f5f4073..f5e05c83 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,3 +1,42 @@ version: "2" linters: - enable-all: true + default: all + disable: + - bodyclose # Checks whether HTTP response body is closed successfully. + - containedctx # Containedctx is a linter that detects struct contained context.Context field. + - contextcheck # Check whether the function uses a non-inherited context. + - cyclop # Checks function and package cyclomatic complexity. + - depguard # Go linter that checks if package imports are in a list of acceptable packages. + - dupl # Detects duplicate fragments of code. + - err113 # Go linter to check the errors handling expressions. + - exhaustive # Check exhaustiveness of enum switch statements. + - exhaustruct # Checks if all structure fields are initialized. + - fatcontext # Detects nested contexts in loops and function literals. + - forbidigo # Forbids identifiers. + - funlen # Checks for long functions. + - gochecknoinits # Checks that no init functions are present in Go code. + - gochecknoglobals # Check that no global variables exist. + - gocognit # Computes and checks the cognitive complexity of functions. + - goconst # Finds repeated strings that could be replaced by a constant. + - gocyclo # Computes and checks the cyclomatic complexity of functions. + - godot # Check if comments end in a period. + - godox # Detects usage of FIXME, TODO and other keywords inside comments. + - lll # Reports long lines. + - loggercheck # Checks key value pairs for common logger libraries (kitlog,klog,logr,zap). + - maintidx # Maintidx measures the maintainability index of each function. + - mnd # An analyzer to detect magic numbers. + - nestif # Reports deeply nested if statements. + - nonamedreturns # Reports all named returns. + - paralleltest # Detects missing usage of t.Parallel() method in your Go test. + - perfsprint # Checks that fmt.Sprintf can be replaced with a faster alternative. + - promlinter # Check Prometheus metrics naming via promlint. + - recvcheck # Checks for receiver type consistency. + - revive # Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint. + - sloglint # Ensure consistent code style when using log/slog. + - spancheck # Checks for mistakes with OpenTelemetry/Census spans. + - sqlclosecheck # Checks that sql.Rows, sql.Stmt, sqlx.NamedStmt, pgx.Query are closed. + - tagliatelle # Checks the struct tags. + - testifylint # Checks usage of github.com/stretchr/testify. + - varnamelen # Checks that the length of a variable's name matches its scope. + - wrapcheck # Checks that errors returned from external packages are wrapped. + - wsl # Add or remove empty lines. diff --git a/cmd/common/cobra_utils.go b/cmd/common/cobra_utils.go index 833f20d1..c06b0724 100644 --- a/cmd/common/cobra_utils.go +++ b/cmd/common/cobra_utils.go @@ -13,15 +13,17 @@ func ExactArgs(numArgs int) cobra.PositionalArgs { if len(args) != numArgs { return fmt.Errorf("failed to execute '%s': command accepts %d arg(s), received %d", cmd.CommandPath(), numArgs, len(args)) } + return nil } } -func RangeArgs(min, max int) cobra.PositionalArgs { +func RangeArgs(minArgs, maxArgs int) cobra.PositionalArgs { return func(cmd *cobra.Command, args []string) error { - if len(args) < min || len(args) > max { - return fmt.Errorf("failed to execute '%s': command accepts %d to %d arg(s), received %d", cmd.CommandPath(), min, max, len(args)) + if len(args) < minArgs || len(args) > maxArgs { + return fmt.Errorf("failed to execute '%s': command accepts %d to %d arg(s), received %d", cmd.CommandPath(), minArgs, maxArgs, len(args)) } + return nil } } diff --git a/cmd/completion/cmd.go b/cmd/completion/cmd.go index 01266a33..0be3d49b 100644 --- a/cmd/completion/cmd.go +++ b/cmd/completion/cmd.go @@ -74,5 +74,6 @@ func Command() *cobra.Command { Args: cobra.MatchAll(cobra.ExactArgs(1), cobra.OnlyValidArgs), RunE: completionCmdRunE, } + return cmd } diff --git a/cmd/platform/export.go b/cmd/platform/export.go index a364bec5..037097e0 100644 --- a/cmd/platform/export.go +++ b/cmd/platform/export.go @@ -114,7 +114,6 @@ func initPingOneExportFlags(cmd *cobra.Command) { options.PingOneAuthenticationWorkerClientSecretOption.CobraParamName, options.PingOneRegionCodeOption.CobraParamName, ) - } func initPingFederateGeneralFlags(cmd *cobra.Command) { diff --git a/cmd/platform/export_test.go b/cmd/platform/export_test.go index 4a826f8d..8bfe402f 100644 --- a/cmd/platform/export_test.go +++ b/cmd/platform/export_test.go @@ -141,7 +141,7 @@ func TestPlatformExportCmd_OverwriteFlag(t *testing.T) { func TestPlatformExportCmd_OverwriteFlagFalseWithExistingDirectory(t *testing.T) { outputDir := t.TempDir() - _, err := os.Create(outputDir + "/file") + _, err := os.Create(outputDir + "/file") //#nosec G304 -- this is a test if err != nil { t.Errorf("Error creating file in output directory: %v", err) } @@ -159,7 +159,7 @@ func TestPlatformExportCmd_OverwriteFlagFalseWithExistingDirectory(t *testing.T) func TestPlatformExportCmd_OverwriteFlagTrueWithExistingDirectory(t *testing.T) { outputDir := t.TempDir() - _, err := os.Create(outputDir + "/file") + _, err := os.Create(outputDir + "/file") //#nosec G304 -- this is a test if err != nil { t.Errorf("Error creating file in output directory: %v", err) } diff --git a/cmd/root.go b/cmd/root.go index f919116b..c441abaa 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -99,7 +99,7 @@ func initViperProfile() { l.Debug().Msgf("Validated configuration file location at: %s", cfgFile) - //Configure the main viper instance + // Configure the main viper instance initMainViper(cfgFile) userDefinedProfile, err := profiles.GetOptionValue(options.RootProfileOption) @@ -149,7 +149,7 @@ func createConfigFile(cfgFile string) { output.Message(fmt.Sprintf("Creating new Ping CLI configuration file at: %s", cfgFile), nil) // MkdirAll does nothing if directories already exist. Create needed directories for config file location. - err := os.MkdirAll(filepath.Dir(cfgFile), os.ModePerm) + err := os.MkdirAll(filepath.Dir(cfgFile), os.FileMode(0700)) if err != nil { output.SystemError(fmt.Sprintf("Failed to make the directory for the new configuration file '%s': %v", cfgFile, err), nil) } diff --git a/internal/autocompletion/config_args.go b/internal/autocompletion/config_args.go index ca635cb4..44dd2eba 100644 --- a/internal/autocompletion/config_args.go +++ b/internal/autocompletion/config_args.go @@ -32,5 +32,6 @@ func ConfigReturnNonActiveProfilesFunc(cmd *cobra.Command, args []string, toComp nonActiveProfiles = append(nonActiveProfiles, p) } } + return nonActiveProfiles, cobra.ShellCompDirectiveNoFileComp } diff --git a/internal/commands/config/add_profile_internal.go b/internal/commands/config/add_profile_internal.go index 50ac01d8..baa203f4 100644 --- a/internal/commands/config/add_profile_internal.go +++ b/internal/commands/config/add_profile_internal.go @@ -17,12 +17,12 @@ import ( func RunInternalConfigAddProfile(rc io.ReadCloser) (err error) { newProfileName, newDescription, setActive, err := readConfigAddProfileOptions(rc) if err != nil { - return fmt.Errorf("failed to add profile: %v", err) + return fmt.Errorf("failed to add profile: %w", err) } err = profiles.GetMainConfig().ValidateNewProfileName(newProfileName) if err != nil { - return fmt.Errorf("failed to add profile: %v", err) + return fmt.Errorf("failed to add profile: %w", err) } output.Message(fmt.Sprintf("Adding new profile '%s'...", newProfileName), nil) @@ -31,14 +31,14 @@ func RunInternalConfigAddProfile(rc io.ReadCloser) (err error) { subViper.Set(options.ProfileDescriptionOption.ViperKey, newDescription) if err = profiles.GetMainConfig().SaveProfile(newProfileName, subViper); err != nil { - return fmt.Errorf("failed to add profile: %v", err) + return fmt.Errorf("failed to add profile: %w", err) } output.Success(fmt.Sprintf("Profile created. Update additional profile attributes via 'pingcli config set' or directly within the config file at '%s'", profiles.GetMainConfig().ViperInstance().ConfigFileUsed()), nil) if setActive { if err = profiles.GetMainConfig().ChangeActiveProfile(newProfileName); err != nil { - return fmt.Errorf("failed to set active profile: %v", err) + return fmt.Errorf("failed to set active profile: %w", err) } output.Success(fmt.Sprintf("Profile '%s' set as active.", newProfileName), nil) @@ -46,7 +46,7 @@ func RunInternalConfigAddProfile(rc io.ReadCloser) (err error) { err = profiles.GetMainConfig().DefaultMissingViperKeys() if err != nil { - return fmt.Errorf("failed to add profile: %v", err) + return fmt.Errorf("failed to add profile: %w", err) } return nil diff --git a/internal/commands/config/delete_profile_internal.go b/internal/commands/config/delete_profile_internal.go index 89a4ae5b..5fbe2703 100644 --- a/internal/commands/config/delete_profile_internal.go +++ b/internal/commands/config/delete_profile_internal.go @@ -19,17 +19,17 @@ func RunInternalConfigDeleteProfile(args []string, rc io.ReadCloser) (err error) } else { pName, err = promptUserToDeleteProfile(rc) if err != nil { - return fmt.Errorf("failed to delete profile: %v", err) + return fmt.Errorf("failed to delete profile: %w", err) } } if err = profiles.GetMainConfig().ValidateExistingProfileName(pName); err != nil { - return fmt.Errorf("failed to delete profile: %v", err) + return fmt.Errorf("failed to delete profile: %w", err) } confirmed, err := promptUserToConfirmDelete(pName, rc) if err != nil { - return fmt.Errorf("failed to delete profile: %v", err) + return fmt.Errorf("failed to delete profile: %w", err) } if !confirmed { @@ -40,7 +40,7 @@ func RunInternalConfigDeleteProfile(args []string, rc io.ReadCloser) (err error) err = deleteProfile(pName) if err != nil { - return fmt.Errorf("failed to delete profile: %v", err) + return fmt.Errorf("failed to delete profile: %w", err) } return nil diff --git a/internal/commands/config/get_internal.go b/internal/commands/config/get_internal.go index edf62ec2..2aca0583 100644 --- a/internal/commands/config/get_internal.go +++ b/internal/commands/config/get_internal.go @@ -14,12 +14,12 @@ import ( func RunInternalConfigGet(viperKey string) (err error) { if err = configuration.ValidateParentViperKey(viperKey); err != nil { - return fmt.Errorf("failed to get configuration: %v", err) + return fmt.Errorf("failed to get configuration: %w", err) } pName, err := readConfigGetOptions() if err != nil { - return fmt.Errorf("failed to get configuration: %v", err) + return fmt.Errorf("failed to get configuration: %w", err) } msgStr := fmt.Sprintf("Configuration values for profile '%s' and key '%s':\n", strings.ToLower(pName), viperKey) @@ -31,7 +31,7 @@ func RunInternalConfigGet(viperKey string) (err error) { vVal, _, err := profiles.ViperValueFromOption(opt) if err != nil { - return fmt.Errorf("failed to get configuration: %v", err) + return fmt.Errorf("failed to get configuration: %w", err) } unmaskOptionVal, err := profiles.GetOptionValue(options.ConfigUnmaskSecretValueOption) diff --git a/internal/commands/config/list_keys_internal.go b/internal/commands/config/list_keys_internal.go index 16aa0b6b..4e248a06 100644 --- a/internal/commands/config/list_keys_internal.go +++ b/internal/commands/config/list_keys_internal.go @@ -32,7 +32,10 @@ func returnKeysYamlString() (string, error) { } // Create a nested map for each yaml key - currentMap := keyMap + var ( + currentMap = keyMap + currentMapOk bool + ) yamlKeys := strings.Split(viperKey, ".") for i, k := range yamlKeys { // If it's the last yaml key, set an empty map @@ -43,7 +46,10 @@ func returnKeysYamlString() (string, error) { if _, exists := currentMap[k]; !exists { currentMap[k] = make(map[string]interface{}) } - currentMap = currentMap[k].(map[string]interface{}) + currentMap, currentMapOk = currentMap[k].(map[string]interface{}) + if !currentMapOk { + return "", fmt.Errorf("failed to get configuration keys list: error creating nested map for key %s", viperKey) + } } } } @@ -65,6 +71,7 @@ func returnKeysString() (string, error) { return "", fmt.Errorf("unable to retrieve valid keys") } else { validKeysJoined := strings.Join(validKeys, "\n- ") + return "Valid Keys:\n- " + validKeysJoined, nil } } diff --git a/internal/commands/config/list_profiles_internal.go b/internal/commands/config/list_profiles_internal.go index 854be968..99fed27f 100644 --- a/internal/commands/config/list_profiles_internal.go +++ b/internal/commands/config/list_profiles_internal.go @@ -37,6 +37,7 @@ func RunInternalConfigListProfiles() (err error) { description, err := profiles.GetMainConfig().ProfileViperValue(profileName, "description") if err != nil { l.Warn().Msgf("Cannot retrieve profile description for profile %s: %v", profileName, err) + continue } diff --git a/internal/commands/config/set_active_profile_internal.go b/internal/commands/config/set_active_profile_internal.go index 04994f27..96b4ebd3 100644 --- a/internal/commands/config/set_active_profile_internal.go +++ b/internal/commands/config/set_active_profile_internal.go @@ -18,14 +18,14 @@ func RunInternalConfigSetActiveProfile(args []string, rc io.ReadCloser) (err err } else { pName, err = promptUserToSelectActiveProfile(rc) if err != nil { - return fmt.Errorf("failed to set active profile: %v", err) + return fmt.Errorf("failed to set active profile: %w", err) } } output.Message(fmt.Sprintf("Setting active profile to '%s'...", pName), nil) if err = profiles.GetMainConfig().ChangeActiveProfile(pName); err != nil { - return fmt.Errorf("failed to set active profile: %v", err) + return fmt.Errorf("failed to set active profile: %w", err) } output.Success(fmt.Sprintf("Active profile set to '%s'", pName), nil) diff --git a/internal/commands/config/set_internal.go b/internal/commands/config/set_internal.go index e8c0af25..cb3d63f4 100644 --- a/internal/commands/config/set_internal.go +++ b/internal/commands/config/set_internal.go @@ -17,11 +17,11 @@ import ( func RunInternalConfigSet(kvPair string) (err error) { pName, vKey, vValue, err := readConfigSetOptions(kvPair) if err != nil { - return fmt.Errorf("failed to set configuration: %v", err) + return fmt.Errorf("failed to set configuration: %w", err) } if err = configuration.ValidateViperKey(vKey); err != nil { - return fmt.Errorf("failed to set configuration: %v", err) + return fmt.Errorf("failed to set configuration: %w", err) } // Make sure value is not empty, and suggest unset command if it is @@ -31,27 +31,27 @@ func RunInternalConfigSet(kvPair string) (err error) { subViper, err := profiles.GetMainConfig().GetProfileViper(pName) if err != nil { - return fmt.Errorf("failed to set configuration: %v", err) + return fmt.Errorf("failed to set configuration: %w", err) } opt, err := configuration.OptionFromViperKey(vKey) if err != nil { - return fmt.Errorf("failed to set configuration: %v", err) + return fmt.Errorf("failed to set configuration: %w", err) } if err = setValue(subViper, vKey, vValue, opt.Type); err != nil { - return fmt.Errorf("failed to set configuration: %v", err) + return fmt.Errorf("failed to set configuration: %w", err) } if err = profiles.GetMainConfig().SaveProfile(pName, subViper); err != nil { - return fmt.Errorf("failed to set configuration: %v", err) + return fmt.Errorf("failed to set configuration: %w", err) } msgStr := "Configuration set successfully:\n" vVal, _, err := profiles.ViperValueFromOption(opt) if err != nil { - return fmt.Errorf("failed to set configuration: %v", err) + return fmt.Errorf("failed to set configuration: %w", err) } unmaskOptionVal, err := profiles.GetOptionValue(options.ConfigUnmaskSecretValueOption) @@ -112,87 +112,87 @@ func parseKeyValuePair(kvPair string) (string, string, error) { func setValue(profileViper *viper.Viper, vKey, vValue string, valueType options.OptionType) (err error) { switch valueType { case options.ENUM_BOOL: - bool := new(customtypes.Bool) - if err = bool.Set(vValue); err != nil { - return fmt.Errorf("value for key '%s' must be a boolean. Allowed [true, false]: %v", vKey, err) + b := new(customtypes.Bool) + if err = b.Set(vValue); err != nil { + return fmt.Errorf("value for key '%s' must be a boolean. Allowed [true, false]: %w", vKey, err) } - profileViper.Set(vKey, bool) + profileViper.Set(vKey, b) case options.ENUM_EXPORT_FORMAT: exportFormat := new(customtypes.ExportFormat) if err = exportFormat.Set(vValue); err != nil { - return fmt.Errorf("value for key '%s' must be a valid export format. Allowed [%s]: %v", vKey, strings.Join(customtypes.ExportFormatValidValues(), ", "), err) + return fmt.Errorf("value for key '%s' must be a valid export format. Allowed [%s]: %w", vKey, strings.Join(customtypes.ExportFormatValidValues(), ", "), err) } profileViper.Set(vKey, exportFormat) case options.ENUM_EXPORT_SERVICE_GROUP: exportServiceGroup := new(customtypes.ExportServiceGroup) if err = exportServiceGroup.Set(vValue); err != nil { - return fmt.Errorf("value for key '%s' must be valid export service group. Allowed [%s]: %v", vKey, strings.Join(customtypes.ExportServiceGroupValidValues(), ", "), err) + return fmt.Errorf("value for key '%s' must be valid export service group. Allowed [%s]: %w", vKey, strings.Join(customtypes.ExportServiceGroupValidValues(), ", "), err) } profileViper.Set(vKey, exportServiceGroup) case options.ENUM_EXPORT_SERVICES: exportServices := new(customtypes.ExportServices) if err = exportServices.Set(vValue); err != nil { - return fmt.Errorf("value for key '%s' must be valid export service(s). Allowed [%s]: %v", vKey, strings.Join(customtypes.ExportServicesValidValues(), ", "), err) + return fmt.Errorf("value for key '%s' must be valid export service(s). Allowed [%s]: %w", vKey, strings.Join(customtypes.ExportServicesValidValues(), ", "), err) } profileViper.Set(vKey, exportServices) case options.ENUM_OUTPUT_FORMAT: outputFormat := new(customtypes.OutputFormat) if err = outputFormat.Set(vValue); err != nil { - return fmt.Errorf("value for key '%s' must be a valid output format. Allowed [%s]: %v", vKey, strings.Join(customtypes.OutputFormatValidValues(), ", "), err) + return fmt.Errorf("value for key '%s' must be a valid output format. Allowed [%s]: %w", vKey, strings.Join(customtypes.OutputFormatValidValues(), ", "), err) } profileViper.Set(vKey, outputFormat) case options.ENUM_PINGONE_REGION_CODE: region := new(customtypes.PingOneRegionCode) if err = region.Set(vValue); err != nil { - return fmt.Errorf("value for key '%s' must be a valid PingOne Region Code. Allowed [%s]: %v", vKey, strings.Join(customtypes.PingOneRegionCodeValidValues(), ", "), err) + return fmt.Errorf("value for key '%s' must be a valid PingOne Region Code. Allowed [%s]: %w", vKey, strings.Join(customtypes.PingOneRegionCodeValidValues(), ", "), err) } profileViper.Set(vKey, region) case options.ENUM_STRING: str := new(customtypes.String) if err = str.Set(vValue); err != nil { - return fmt.Errorf("value for key '%s' must be a string: %v", vKey, err) + return fmt.Errorf("value for key '%s' must be a string: %w", vKey, err) } profileViper.Set(vKey, str) case options.ENUM_STRING_SLICE: strSlice := new(customtypes.StringSlice) if err = strSlice.Set(vValue); err != nil { - return fmt.Errorf("value for key '%s' must be a string slice: %v", vKey, err) + return fmt.Errorf("value for key '%s' must be a string slice: %w", vKey, err) } profileViper.Set(vKey, strSlice) case options.ENUM_UUID: uuid := new(customtypes.UUID) if err = uuid.Set(vValue); err != nil { - return fmt.Errorf("value for key '%s' must be a valid UUID: %v", vKey, err) + return fmt.Errorf("value for key '%s' must be a valid UUID: %w", vKey, err) } profileViper.Set(vKey, uuid) case options.ENUM_PINGONE_AUTH_TYPE: authType := new(customtypes.PingOneAuthenticationType) if err = authType.Set(vValue); err != nil { - return fmt.Errorf("value for key '%s' must be a valid PingOne Authentication Type. Allowed [%s]: %v", vKey, strings.Join(customtypes.PingOneAuthenticationTypeValidValues(), ", "), err) + return fmt.Errorf("value for key '%s' must be a valid PingOne Authentication Type. Allowed [%s]: %w", vKey, strings.Join(customtypes.PingOneAuthenticationTypeValidValues(), ", "), err) } profileViper.Set(vKey, authType) case options.ENUM_PINGFEDERATE_AUTH_TYPE: authType := new(customtypes.PingFederateAuthenticationType) if err = authType.Set(vValue); err != nil { - return fmt.Errorf("value for key '%s' must be a valid PingFederate Authentication Type. Allowed [%s]: %v", vKey, strings.Join(customtypes.PingFederateAuthenticationTypeValidValues(), ", "), err) + return fmt.Errorf("value for key '%s' must be a valid PingFederate Authentication Type. Allowed [%s]: %w", vKey, strings.Join(customtypes.PingFederateAuthenticationTypeValidValues(), ", "), err) } profileViper.Set(vKey, authType) case options.ENUM_INT: intValue := new(customtypes.Int) if err = intValue.Set(vValue); err != nil { - return fmt.Errorf("value for key '%s' must be an integer: %v", vKey, err) + return fmt.Errorf("value for key '%s' must be an integer: %w", vKey, err) } profileViper.Set(vKey, intValue) case options.ENUM_REQUEST_HTTP_METHOD: httpMethod := new(customtypes.HTTPMethod) if err = httpMethod.Set(vValue); err != nil { - return fmt.Errorf("value for key '%s' must be a valid HTTP method. Allowed [%s]: %v", vKey, strings.Join(customtypes.HTTPMethodValidValues(), ", "), err) + return fmt.Errorf("value for key '%s' must be a valid HTTP method. Allowed [%s]: %w", vKey, strings.Join(customtypes.HTTPMethodValidValues(), ", "), err) } profileViper.Set(vKey, httpMethod) case options.ENUM_REQUEST_SERVICE: service := new(customtypes.RequestService) if err = service.Set(vValue); err != nil { - return fmt.Errorf("value for key '%s' must be a valid request service. Allowed [%s]: %v", vKey, strings.Join(customtypes.RequestServiceValidValues(), ", "), err) + return fmt.Errorf("value for key '%s' must be a valid request service. Allowed [%s]: %w", vKey, strings.Join(customtypes.RequestServiceValidValues(), ", "), err) } profileViper.Set(vKey, service) default: diff --git a/internal/commands/config/unset_internal.go b/internal/commands/config/unset_internal.go index 3207569f..63a651d1 100644 --- a/internal/commands/config/unset_internal.go +++ b/internal/commands/config/unset_internal.go @@ -14,35 +14,35 @@ import ( func RunInternalConfigUnset(viperKey string) (err error) { if err = configuration.ValidateViperKey(viperKey); err != nil { - return fmt.Errorf("failed to unset configuration: %v", err) + return fmt.Errorf("failed to unset configuration: %w", err) } pName, err := readConfigUnsetOptions() if err != nil { - return fmt.Errorf("failed to unset configuration: %v", err) + return fmt.Errorf("failed to unset configuration: %w", err) } subViper, err := profiles.GetMainConfig().GetProfileViper(pName) if err != nil { - return fmt.Errorf("failed to unset configuration: %v", err) + return fmt.Errorf("failed to unset configuration: %w", err) } opt, err := configuration.OptionFromViperKey(viperKey) if err != nil { - return fmt.Errorf("failed to unset configuration: %v", err) + return fmt.Errorf("failed to unset configuration: %w", err) } subViper.Set(viperKey, opt.DefaultValue) if err = profiles.GetMainConfig().SaveProfile(pName, subViper); err != nil { - return fmt.Errorf("failed to unset configuration: %v", err) + return fmt.Errorf("failed to unset configuration: %w", err) } msgStr := "Configuration unset successfully:\n" vVal, _, err := profiles.ViperValueFromOption(opt) if err != nil { - return fmt.Errorf("failed to unset configuration: %v", err) + return fmt.Errorf("failed to unset configuration: %w", err) } unmaskOptionVal, err := profiles.GetOptionValue(options.ConfigUnmaskSecretValueOption) diff --git a/internal/commands/config/view_profile_internal.go b/internal/commands/config/view_profile_internal.go index ebf2fdeb..5197d405 100644 --- a/internal/commands/config/view_profile_internal.go +++ b/internal/commands/config/view_profile_internal.go @@ -18,14 +18,14 @@ func RunInternalConfigViewProfile(args []string) (err error) { } else { pName, err = profiles.GetOptionValue(options.RootActiveProfileOption) if err != nil { - return fmt.Errorf("failed to view profile: %v", err) + return fmt.Errorf("failed to view profile: %w", err) } } // Validate the profile name err = profiles.GetMainConfig().ValidateExistingProfileName(pName) if err != nil { - return fmt.Errorf("failed to view profile: %v", err) + return fmt.Errorf("failed to view profile: %w", err) } msgStr := fmt.Sprintf("Configuration for profile '%s':\n", pName) @@ -37,7 +37,7 @@ func RunInternalConfigViewProfile(args []string) (err error) { vVal, _, err := profiles.ViperValueFromOption(opt) if err != nil { - return fmt.Errorf("failed to view profile: %v", err) + return fmt.Errorf("failed to view profile: %w", err) } unmaskOptionVal, err := profiles.GetOptionValue(options.ConfigUnmaskSecretValueOption) diff --git a/internal/commands/platform/export_internal.go b/internal/commands/platform/export_internal.go index 03fabc05..47c1db65 100644 --- a/internal/commands/platform/export_internal.go +++ b/internal/commands/platform/export_internal.go @@ -140,7 +140,7 @@ func initPingFederateServices(ctx context.Context, pingcliVersion string) (err e caCertPemFile := filepath.Clean(caCertPemFile) caCert, err := os.ReadFile(caCertPemFile) if err != nil { - return fmt.Errorf("failed to read CA certificate PEM file '%s': %v", caCertPemFile, err) + return fmt.Errorf("failed to read CA certificate PEM file '%s': %w", caCertPemFile, err) } ok := caCertPool.AppendCertsFromPEM(caCert) @@ -387,7 +387,7 @@ func createOrValidateOutputDir(outputDir string, overwriteExport bool) (resolved if !filepath.IsAbs(outputDir) { pwd, err := os.Getwd() if err != nil { - return "", fmt.Errorf("failed to get present working directory: %v", err) + return "", fmt.Errorf("failed to get present working directory: %w", err) } outputDir = filepath.Join(pwd, outputDir) @@ -400,25 +400,23 @@ func createOrValidateOutputDir(outputDir string, overwriteExport bool) (resolved if err != nil { output.Message(fmt.Sprintf("Output directory does not exist. Creating the directory at filepath '%s'", outputDir), nil) - err = os.MkdirAll(outputDir, os.ModePerm) + err = os.MkdirAll(outputDir, os.FileMode(0700)) if err != nil { return "", fmt.Errorf("failed to create output directory '%s': %s", outputDir, err.Error()) } output.Success(fmt.Sprintf("Output directory '%s' created", outputDir), nil) - } else { + } else if !overwriteExport { // Check if the output directory is empty // If not, default behavior is to exit and not overwrite. // This can be changed with the --overwrite export parameter - if !overwriteExport { - dirEntries, err := os.ReadDir(outputDir) - if err != nil { - return "", fmt.Errorf("failed to read contents of output directory '%s': %v", outputDir, err) - } - - if len(dirEntries) > 0 { - return "", fmt.Errorf("output directory '%s' is not empty. Use --overwrite to overwrite existing export data", outputDir) - } + dirEntries, err := os.ReadDir(outputDir) + if err != nil { + return "", fmt.Errorf("failed to read contents of output directory '%s': %w", outputDir, err) + } + + if len(dirEntries) > 0 { + return "", fmt.Errorf("output directory '%s' is not empty. Use --overwrite to overwrite existing export data", outputDir) } } diff --git a/internal/commands/platform/export_internal_test.go b/internal/commands/platform/export_internal_test.go index 9043cdbf..8fb009b0 100644 --- a/internal/commands/platform/export_internal_test.go +++ b/internal/commands/platform/export_internal_test.go @@ -3,7 +3,6 @@ package platform_internal import ( - "context" "crypto/tls" "net/http" "os" @@ -23,7 +22,7 @@ import ( func TestRunInternalExport(t *testing.T) { testutils_viper.InitVipers(t) - err := RunInternalExport(context.Background(), "v1.2.3") + err := RunInternalExport(t.Context(), "v1.2.3") testutils.CheckExpectedError(t, err, nil) // Check if there are terraform files in the export directory @@ -66,7 +65,7 @@ func TestRunInternalExportNilContext(t *testing.T) { func TestInitPingFederateServices(t *testing.T) { testutils_viper.InitVipers(t) - err := initPingFederateServices(context.Background(), "v1.2.3") + err := initPingFederateServices(t.Context(), "v1.2.3") testutils.CheckExpectedError(t, err, nil) // make sure pf context is not nil @@ -91,7 +90,7 @@ func TestInitPingFederateServicesNilContext(t *testing.T) { func TestInitPingOneServices(t *testing.T) { testutils_viper.InitVipers(t) - err := initPingOneServices(context.Background(), "v1.2.3") + err := initPingOneServices(t.Context(), "v1.2.3") testutils.CheckExpectedError(t, err, nil) // make sure po context is not nil @@ -130,7 +129,7 @@ func TestInitPingFederateApiClientNilTransport(t *testing.T) { func TestInitPingOneApiClient(t *testing.T) { testutils_viper.InitVipers(t) - err := initPingOneApiClient(context.Background(), "v1.2.3") + err := initPingOneApiClient(t.Context(), "v1.2.3") testutils.CheckExpectedError(t, err, nil) // make sure po client is not nil @@ -173,7 +172,7 @@ func TestCreateOrValidateOutputDirExistentDirWithFile(t *testing.T) { outputDir := t.TempDir() - file, err := os.Create(outputDir + "/file") + file, err := os.Create(outputDir + "/file") //#nosec G304 -- This is a test if err != nil { t.Fatalf("os.Create() error = %v", err) } @@ -193,7 +192,7 @@ func TestCreateOrValidateOutputDirExistentDirWithFileNoOverwrite(t *testing.T) { outputDir := t.TempDir() - file, err := os.Create(outputDir + "/file") + file, err := os.Create(outputDir + "/file") //#nosec G304 -- this is a test if err != nil { t.Fatalf("os.Create() error = %v", err) } @@ -225,7 +224,7 @@ func TestGetPingOneExportEnvID(t *testing.T) { func TestValidatePingOneExportEnvID(t *testing.T) { testutils_viper.InitVipers(t) - if err := initPingOneApiClient(context.Background(), "v1.2.3"); err != nil { + if err := initPingOneApiClient(t.Context(), "v1.2.3"); err != nil { t.Errorf("initPingOneApiClient() error = %v, want nil", err) } @@ -233,7 +232,7 @@ func TestValidatePingOneExportEnvID(t *testing.T) { t.Errorf("getPingOneExportEnvID() error = %v, want nil", err) } - err := validatePingOneExportEnvID(context.Background()) + err := validatePingOneExportEnvID(t.Context()) testutils.CheckExpectedError(t, err, nil) } @@ -280,7 +279,7 @@ func TestGetExportableConnectorsNilMultiService(t *testing.T) { func TestExportConnectors(t *testing.T) { testutils_viper.InitVipers(t) - err := initPingOneServices(context.Background(), "v1.2.3") + err := initPingOneServices(t.Context(), "v1.2.3") if err != nil { t.Fatalf("initPingOneServices() error = %v", err) } @@ -317,7 +316,7 @@ func TestExportConnectorsEmptyExportableConnectors(t *testing.T) { func TestExportConnectorsInvalidExportFormat(t *testing.T) { testutils_viper.InitVipers(t) - err := initPingOneServices(context.Background(), "v1.2.3") + err := initPingOneServices(t.Context(), "v1.2.3") if err != nil { t.Fatalf("initPingOneServices() error = %v", err) } @@ -340,7 +339,7 @@ func TestExportConnectorsInvalidExportFormat(t *testing.T) { func TestExportConnectorsInvalidOutputDir(t *testing.T) { testutils_viper.InitVipers(t) - err := initPingOneServices(context.Background(), "v1.2.3") + err := initPingOneServices(t.Context(), "v1.2.3") if err != nil { t.Fatalf("initPingOneServices() error = %v", err) } diff --git a/internal/commands/request/request_internal.go b/internal/commands/request/request_internal.go index 36f2bc0a..c4998388 100644 --- a/internal/commands/request/request_internal.go +++ b/internal/commands/request/request_internal.go @@ -3,6 +3,7 @@ package request_internal import ( + "context" "encoding/base64" "encoding/json" "errors" @@ -10,6 +11,7 @@ import ( "io" "net/http" "os" + "path/filepath" "strconv" "strings" "time" @@ -29,7 +31,7 @@ type PingOneAuthResponse struct { func RunInternalRequest(uri string) (err error) { service, err := profiles.GetOptionValue(options.RequestServiceOption) if err != nil { - return fmt.Errorf("failed to send custom request: %v", err) + return fmt.Errorf("failed to send custom request: %w", err) } if service == "" { @@ -40,7 +42,7 @@ func RunInternalRequest(uri string) (err error) { case customtypes.ENUM_REQUEST_SERVICE_PINGONE: err = runInternalPingOneRequest(uri) if err != nil { - return fmt.Errorf("failed to send custom request: %v", err) + return fmt.Errorf("failed to send custom request: %w", err) } default: return fmt.Errorf("failed to send custom request: unrecognized service '%s'", service) @@ -76,15 +78,22 @@ func runInternalPingOneRequest(uri string) (err error) { return fmt.Errorf("http method is required") } - data, err := getData() + data, err := getDataRaw() if err != nil { return err } + if data == "" { + data, err = getDataFile() + if err != nil { + return err + } + } + payload := strings.NewReader(data) client := &http.Client{} - req, err := http.NewRequest(httpMethod, apiURL, payload) + req, err := http.NewRequestWithContext(context.Background(), httpMethod, apiURL, payload) if err != nil { return err } @@ -117,7 +126,10 @@ func runInternalPingOneRequest(uri string) (err error) { if res.StatusCode < 200 || res.StatusCode >= 300 { output.UserError("Failed Custom Request", fields) if failOption == "true" { - os.Exit(1) + // Allow response body to clean up before exiting + defer os.Exit(1) + + return nil } } else { output.Success("Custom request successful", fields) @@ -227,7 +239,7 @@ func pingoneAuth() (accessToken string, err error) { payload := strings.NewReader("grant_type=client_credentials") client := &http.Client{} - req, err := http.NewRequest(customtypes.ENUM_HTTP_METHOD_POST, authURL, payload) + req, err := http.NewRequestWithContext(context.Background(), customtypes.ENUM_HTTP_METHOD_POST, authURL, payload) if err != nil { return "", err } @@ -293,22 +305,15 @@ func pingoneAuth() (accessToken string, err error) { return pingoneAuthResponse.AccessToken, nil } -func getData() (data string, err error) { - data, err = profiles.GetOptionValue(options.RequestDataRawOption) +func getDataFile() (data string, err error) { + dataFilepath, err := profiles.GetOptionValue(options.RequestDataOption) if err != nil { return "", err } - if data != "" { - return data, nil - } - // get data from file - data, err = profiles.GetOptionValue(options.RequestDataOption) - if err != nil { - return "", err - } - if data != "" { - contents, err := os.ReadFile(data) + if dataFilepath != "" { + dataFilepath = filepath.Clean(dataFilepath) + contents, err := os.ReadFile(dataFilepath) if err != nil { return "", err } @@ -316,5 +321,14 @@ func getData() (data string, err error) { return string(contents), nil } + return "", nil +} + +func getDataRaw() (data string, err error) { + data, err = profiles.GetOptionValue(options.RequestDataRawOption) + if err != nil { + return "", err + } + return data, nil } diff --git a/internal/commands/request/request_internal_test.go b/internal/commands/request/request_internal_test.go index 50b953cd..00dbd2ca 100644 --- a/internal/commands/request/request_internal_test.go +++ b/internal/commands/request/request_internal_test.go @@ -3,6 +3,7 @@ package request_internal import ( + "errors" "fmt" "os" "os/exec" @@ -26,7 +27,6 @@ func Test_RunInternalRequest(t *testing.T) { // Test RunInternalRequest function with fail func Test_RunInternalRequestWithFail(t *testing.T) { - if os.Getenv("RUN_INTERNAL_FAIL_TEST") == "true" { testutils_viper.InitVipers(t) t.Setenv(options.RequestServiceOption.EnvVar, "pingone") @@ -39,12 +39,17 @@ func Test_RunInternalRequestWithFail(t *testing.T) { t.Fatal("This should never run due to internal request resulting in os.Exit(1)") } else { cmdName := os.Args[0] - cmd := exec.Command(cmdName, "-test.run=Test_RunInternalRequestWithFail") + cmd := exec.Command(cmdName, "-test.run=Test_RunInternalRequestWithFail") //#nosec G204 -- This is a test cmd.Env = append(os.Environ(), "RUN_INTERNAL_FAIL_TEST=true") err := cmd.Run() - if exitError, ok := err.(*exec.ExitError); ok && !exitError.Success() { - return + + var exitErr *exec.ExitError + if !errors.As(err, &exitErr) { + if !exitErr.Success() { + return + } } + t.Fatalf("The process did not exit with a non-zero: %s", err) } } @@ -172,13 +177,13 @@ func Test_pingoneAuth_InvalidCredentials(t *testing.T) { } // Test getData function -func Test_getData(t *testing.T) { +func Test_getDataRaw(t *testing.T) { testutils_viper.InitVipers(t) expectedData := "{data: 'json'}" t.Setenv(options.RequestDataRawOption.EnvVar, expectedData) - data, err := getData() + data, err := getDataRaw() testutils.CheckExpectedError(t, err, nil) if data != expectedData { @@ -187,12 +192,12 @@ func Test_getData(t *testing.T) { } // Test getData function with empty data -func Test_getData_EmptyData(t *testing.T) { +func Test_getDataRaw_EmptyData(t *testing.T) { testutils_viper.InitVipers(t) t.Setenv(options.RequestDataRawOption.EnvVar, "") - data, err := getData() + data, err := getDataRaw() testutils.CheckExpectedError(t, err, nil) if data != "" { @@ -201,7 +206,7 @@ func Test_getData_EmptyData(t *testing.T) { } // Test getData function with file input -func Test_getData_FileInput(t *testing.T) { +func Test_getDataFile_FileInput(t *testing.T) { testutils_viper.InitVipers(t) expectedData := "{data: 'json from file'}" @@ -214,7 +219,7 @@ func Test_getData_FileInput(t *testing.T) { t.Setenv(options.RequestDataOption.EnvVar, testFile) - data, err := getData() + data, err := getDataFile() testutils.CheckExpectedError(t, err, nil) if data != expectedData { @@ -223,12 +228,12 @@ func Test_getData_FileInput(t *testing.T) { } // Test getData function with non-existent file input -func Test_getData_NonExistentFileInput(t *testing.T) { +func Test_getDataFile_NonExistentFileInput(t *testing.T) { testutils_viper.InitVipers(t) t.Setenv(options.RequestDataOption.EnvVar, "non_existent_file.json") - _, err := getData() + _, err := getDataFile() expectedErrorPattern := `^open .*: no such file or directory$` testutils.CheckExpectedError(t, err, &expectedErrorPattern) } diff --git a/internal/configuration/configuration.go b/internal/configuration/configuration.go index 4c13d722..c47db193 100644 --- a/internal/configuration/configuration.go +++ b/internal/configuration/configuration.go @@ -24,6 +24,7 @@ func ViperKeys() (keys []string) { } slices.Sort(keys) + return keys } @@ -46,7 +47,7 @@ func ExpandedViperKeys() (keys []string) { leafKeys := ViperKeys() for _, key := range leafKeys { keySplit := strings.Split(key, ".") - for i := 0; i < len(keySplit); i++ { + for i := range keySplit { curKey := strings.Join(keySplit[:i+1], ".") if !slices.ContainsFunc(keys, func(v string) bool { return strings.EqualFold(v, curKey) @@ -57,6 +58,7 @@ func ExpandedViperKeys() (keys []string) { } slices.Sort(keys) + return keys } @@ -77,6 +79,7 @@ func OptionFromViperKey(viperKey string) (opt options.Option, err error) { return opt, nil } } + return opt, fmt.Errorf("failed to get option: no option found for viper key: %s", viperKey) } diff --git a/internal/configuration/options/options_test.go b/internal/configuration/options/options_test.go index 9e12aae2..f6ca0d06 100644 --- a/internal/configuration/options/options_test.go +++ b/internal/configuration/options/options_test.go @@ -13,7 +13,6 @@ import ( ) func Test_outputOptionsMDInfo(t *testing.T) { - // Skip this test. Use only to generate markdown table for documentation t.SkipNow() diff --git a/internal/configuration/platform/export.go b/internal/configuration/platform/export.go index 40609728..efce00e8 100644 --- a/internal/configuration/platform/export.go +++ b/internal/configuration/platform/export.go @@ -66,7 +66,7 @@ func initServiceGroupOption() { "\nOptions are: %s."+ "\nExample: '%s'", strings.Join(customtypes.ExportServiceGroupValidValues(), ", "), - string(customtypes.ENUM_EXPORT_SERVICE_GROUP_PINGONE), + customtypes.ENUM_EXPORT_SERVICE_GROUP_PINGONE, ), Value: cobraValue, }, @@ -94,9 +94,9 @@ func initServicesOption() { "\nOptions are: %s."+ "\nExample: '%s,%s,%s'", strings.Join(customtypes.ExportServicesValidValues(), ", "), - string(customtypes.ENUM_EXPORT_SERVICE_PINGONE_SSO), - string(customtypes.ENUM_EXPORT_SERVICE_PINGONE_MFA), - string(customtypes.ENUM_EXPORT_SERVICE_PINGFEDERATE), + customtypes.ENUM_EXPORT_SERVICE_PINGONE_SSO, + customtypes.ENUM_EXPORT_SERVICE_PINGONE_MFA, + customtypes.ENUM_EXPORT_SERVICE_PINGFEDERATE, ), Value: cobraValue, }, diff --git a/internal/configuration/root/root.go b/internal/configuration/root/root.go index 6ba4632e..f59f9287 100644 --- a/internal/configuration/root/root.go +++ b/internal/configuration/root/root.go @@ -190,12 +190,14 @@ func getDefaultConfigFilepath() (defaultConfigFilepath *customtypes.String) { homeDir, err := os.UserHomeDir() if err != nil { l.Err(err).Msg("Failed to determine user's home directory") + return nil } err = defaultConfigFilepath.Set(fmt.Sprintf("%s/.pingcli/config.yaml", homeDir)) if err != nil { l.Err(err).Msg("Failed to set default config file path") + return nil } diff --git a/internal/configuration/services/pingone.go b/internal/configuration/services/pingone.go index 115cbcb6..18c46e88 100644 --- a/internal/configuration/services/pingone.go +++ b/internal/configuration/services/pingone.go @@ -17,7 +17,6 @@ func InitPingOneServiceOptions() { initAuthenticationWorkerClientSecretOption() initAuthenticationWorkerEnvironmentIDOption() initRegionCodeOption() - } func initAuthenticationWorkerClientIDOption() { diff --git a/internal/connector/common/common_utils.go b/internal/connector/common/common_utils.go index 95e93bf0..999748e7 100644 --- a/internal/connector/common/common_utils.go +++ b/internal/connector/common/common_utils.go @@ -35,6 +35,7 @@ func WriteFiles(exportableResources []connector.ExportableResource, format, outp if len(*importBlocks) == 0 { // No resources exported. Avoid creating an empty import.tf file l.Debug().Msgf("Nothing exported for resource %s. Skipping import file generation...", exportableResource.ResourceType()) + continue } @@ -47,6 +48,7 @@ func WriteFiles(exportableResources []connector.ExportableResource, format, outp outputFileName := fmt.Sprintf("%s.tf", exportableResource.ResourceType()) outputFilePath := filepath.Join(outputDir, filepath.Base(outputFileName)) + outputFilePath = filepath.Clean(outputFilePath) // Check to see if outputFile already exists. // If so, default behavior is to exit and not overwrite. @@ -73,7 +75,7 @@ func WriteFiles(exportableResources []connector.ExportableResource, format, outp } for _, importBlock := range *importBlocks { - // Sanitize import block "to". Add pingcli-- prefix, hexidecimal encode special chars and spaces + // Sanitize import block "to". Add pingcli-- prefix, hexadecimal encode special chars and spaces importBlock.Sanitize() switch format { @@ -87,6 +89,7 @@ func WriteFiles(exportableResources []connector.ExportableResource, format, outp } } } + return nil } diff --git a/internal/connector/common/resources_common.go b/internal/connector/common/resources_common.go index 0ddcad4f..f32ddc21 100644 --- a/internal/connector/common/resources_common.go +++ b/internal/connector/common/resources_common.go @@ -25,13 +25,14 @@ func CheckSingletonResource(response *http.Response, err error, apiFuncName, res return false, nil } - if response.StatusCode == 204 { + if response.StatusCode == http.StatusNoContent { output.Warn("API client 204 No Content response.", map[string]interface{}{ "API Function Name": apiFuncName, "Resource Type": resourceType, "Response Code": response.Status, "Response Body": response.Body, }) + return false, nil } @@ -62,7 +63,7 @@ func HandleClientResponse(response *http.Response, err error, apiFunctionName st }() // When the client returns forbidden, warn user and skip export of resource - if response.StatusCode == 403 { + if response.StatusCode == http.StatusForbidden { output.Warn("API client 403 forbidden response.", map[string]interface{}{ "API Function Name": apiFunctionName, "Resource Type": resourceType, diff --git a/internal/connector/exportable_resource.go b/internal/connector/exportable_resource.go index 5871eea7..8cc584f9 100644 --- a/internal/connector/exportable_resource.go +++ b/internal/connector/exportable_resource.go @@ -34,7 +34,7 @@ type ExportableResource interface { } func (b *ImportBlock) Sanitize() { - // Hexidecimal encode special characters + // Hexadecimal encode special characters b.ResourceName = regexp.MustCompile(`[^0-9A-Za-z_\-]`).ReplaceAllStringFunc(b.ResourceName, func(s string) string { return fmt.Sprintf("-%04X-", s) }) @@ -65,5 +65,6 @@ import { to = %s.%s id = "%s" }` + return fmt.Sprintf(pattern, b.CommentInformation, b.ResourceType, b.ResourceName, b.ResourceID) } diff --git a/internal/connector/pingfederate/resources/authentication_api_application.go b/internal/connector/pingfederate/resources/authentication_api_application.go index cac453b9..7157ce63 100644 --- a/internal/connector/pingfederate/resources/authentication_api_application.go +++ b/internal/connector/pingfederate/resources/authentication_api_application.go @@ -69,7 +69,7 @@ func (r *PingFederateAuthenticationApiApplicationResource) getAuthenticationApiA return nil, err } if !ok { - return nil, nil + return authenticationApiApplicationData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/authentication_api_application_test.go b/internal/connector/pingfederate/resources/authentication_api_application_test.go index dfd16852..ccd71ba8 100644 --- a/internal/connector/pingfederate/resources/authentication_api_application_test.go +++ b/internal/connector/pingfederate/resources/authentication_api_application_test.go @@ -29,5 +29,4 @@ func Test_PingFederateAuthenticationApiApplication(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/authentication_api_settings_test.go b/internal/connector/pingfederate/resources/authentication_api_settings_test.go index 76efbecb..aa0436f5 100644 --- a/internal/connector/pingfederate/resources/authentication_api_settings_test.go +++ b/internal/connector/pingfederate/resources/authentication_api_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateAuthenticationApiSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/authentication_policies_fragment.go b/internal/connector/pingfederate/resources/authentication_policies_fragment.go index 61a06e6f..c7d36111 100644 --- a/internal/connector/pingfederate/resources/authentication_policies_fragment.go +++ b/internal/connector/pingfederate/resources/authentication_policies_fragment.go @@ -69,7 +69,7 @@ func (r *PingFederateAuthenticationPoliciesFragmentResource) getAuthenticationPo return nil, err } if !ok { - return nil, nil + return authenticationPoliciesFragmentData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/authentication_policies_fragment_test.go b/internal/connector/pingfederate/resources/authentication_policies_fragment_test.go index 7a890256..e59246f3 100644 --- a/internal/connector/pingfederate/resources/authentication_policies_fragment_test.go +++ b/internal/connector/pingfederate/resources/authentication_policies_fragment_test.go @@ -29,5 +29,4 @@ func Test_PingFederateAuthenticationPoliciesFragment(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/authentication_policies_settings_test.go b/internal/connector/pingfederate/resources/authentication_policies_settings_test.go index dab4095f..ce5206a7 100644 --- a/internal/connector/pingfederate/resources/authentication_policies_settings_test.go +++ b/internal/connector/pingfederate/resources/authentication_policies_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateAuthenticationPoliciesSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/authentication_policies_test.go b/internal/connector/pingfederate/resources/authentication_policies_test.go index 6a2ba1ed..54678615 100644 --- a/internal/connector/pingfederate/resources/authentication_policies_test.go +++ b/internal/connector/pingfederate/resources/authentication_policies_test.go @@ -25,5 +25,4 @@ func Test_PingFederateAuthenticationPolicies(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/authentication_policy_contract.go b/internal/connector/pingfederate/resources/authentication_policy_contract.go index 8aa0e5ed..8256142d 100644 --- a/internal/connector/pingfederate/resources/authentication_policy_contract.go +++ b/internal/connector/pingfederate/resources/authentication_policy_contract.go @@ -69,7 +69,7 @@ func (r *PingFederateAuthenticationPolicyContractResource) getAuthenticationPoli return nil, err } if !ok { - return nil, nil + return authenticationPolicyContractData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/authentication_policy_contract_test.go b/internal/connector/pingfederate/resources/authentication_policy_contract_test.go index 549b8605..b6f5cc27 100644 --- a/internal/connector/pingfederate/resources/authentication_policy_contract_test.go +++ b/internal/connector/pingfederate/resources/authentication_policy_contract_test.go @@ -29,5 +29,4 @@ func Test_PingFederateAuthenticationPolicyContract(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/authentication_selector.go b/internal/connector/pingfederate/resources/authentication_selector.go index f93bd7a6..64f4203d 100644 --- a/internal/connector/pingfederate/resources/authentication_selector.go +++ b/internal/connector/pingfederate/resources/authentication_selector.go @@ -69,7 +69,7 @@ func (r *PingFederateAuthenticationSelectorResource) getAuthenticationSelectorDa return nil, err } if !ok { - return nil, nil + return authenticationSelectorData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/authentication_selector_test.go b/internal/connector/pingfederate/resources/authentication_selector_test.go index d4acbdb6..33b4007b 100644 --- a/internal/connector/pingfederate/resources/authentication_selector_test.go +++ b/internal/connector/pingfederate/resources/authentication_selector_test.go @@ -29,5 +29,4 @@ func Test_PingFederateAuthenticationSelector(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/captcha_provider.go b/internal/connector/pingfederate/resources/captcha_provider.go index 5e19f106..498b3272 100644 --- a/internal/connector/pingfederate/resources/captcha_provider.go +++ b/internal/connector/pingfederate/resources/captcha_provider.go @@ -69,7 +69,7 @@ func (r *PingFederateCaptchaProviderResource) getCaptchaProviderData() (map[stri return nil, err } if !ok { - return nil, nil + return captchaProviderData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/captcha_provider_settings_test.go b/internal/connector/pingfederate/resources/captcha_provider_settings_test.go index 8f5532d9..bbf1c393 100644 --- a/internal/connector/pingfederate/resources/captcha_provider_settings_test.go +++ b/internal/connector/pingfederate/resources/captcha_provider_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateCaptchaProviderSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/captcha_provider_test.go b/internal/connector/pingfederate/resources/captcha_provider_test.go index 219bd69e..c01d3183 100644 --- a/internal/connector/pingfederate/resources/captcha_provider_test.go +++ b/internal/connector/pingfederate/resources/captcha_provider_test.go @@ -29,5 +29,4 @@ func Test_PingFederateCaptchaProvider(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/certificate_ca.go b/internal/connector/pingfederate/resources/certificate_ca.go index 6ad2b2e5..ce9c9020 100644 --- a/internal/connector/pingfederate/resources/certificate_ca.go +++ b/internal/connector/pingfederate/resources/certificate_ca.go @@ -75,7 +75,7 @@ func (r *PingFederateCertificateCaResource) getCertificateCaData() (map[string][ return nil, err } if !ok { - return nil, nil + return certificateCaData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/certificate_ca_test.go b/internal/connector/pingfederate/resources/certificate_ca_test.go index a140d94e..a23d9359 100644 --- a/internal/connector/pingfederate/resources/certificate_ca_test.go +++ b/internal/connector/pingfederate/resources/certificate_ca_test.go @@ -30,5 +30,4 @@ func Test_PingFederateCertificateCa(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate.go b/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate.go index e442ae94..430c0627 100644 --- a/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate.go +++ b/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate.go @@ -75,7 +75,7 @@ func (r *PingFederateCertificatesRevocationOcspCertificateResource) getCertifica return nil, err } if !ok { - return nil, nil + return certificatesRevocationOcspCertificateData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate_test.go b/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate_test.go index 9bc09663..169910fe 100644 --- a/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate_test.go +++ b/internal/connector/pingfederate/resources/certificates_revocation_ocsp_certificate_test.go @@ -30,5 +30,4 @@ func Test_PingFederateCertificatesRevocationOcspCertificate(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/certificates_revocation_settings_test.go b/internal/connector/pingfederate/resources/certificates_revocation_settings_test.go index a470e754..f94852ad 100644 --- a/internal/connector/pingfederate/resources/certificates_revocation_settings_test.go +++ b/internal/connector/pingfederate/resources/certificates_revocation_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateCertificatesRevocationSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/cluster_settings.go b/internal/connector/pingfederate/resources/cluster_settings.go index 948f9922..b8d687c3 100644 --- a/internal/connector/pingfederate/resources/cluster_settings.go +++ b/internal/connector/pingfederate/resources/cluster_settings.go @@ -45,6 +45,7 @@ func (r *PingFederateClusterSettingsResource) ExportAll() (*[]connector.ImportBl } if !valid { l.Warn().Msgf("'%s' Resource is not supported in the version of PingFederate used. Skipping export.", r.ResourceType()) + return &importBlocks, nil } @@ -85,5 +86,6 @@ func (r *PingFederateClusterSettingsResource) ValidPingFederateVersion() (bool, semVer := (*version)[:strings.LastIndex(*version, ".")] compareResult := semver.Compare(fmt.Sprintf("v%s", semVer), "v12.0.0") + return compareResult >= 0, nil } diff --git a/internal/connector/pingfederate/resources/cluster_settings_test.go b/internal/connector/pingfederate/resources/cluster_settings_test.go index 8d438c6b..53a54e99 100644 --- a/internal/connector/pingfederate/resources/cluster_settings_test.go +++ b/internal/connector/pingfederate/resources/cluster_settings_test.go @@ -38,5 +38,4 @@ func Test_PingFederateClusterSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate_test.go b/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate_test.go index a632f96c..7991c6d5 100644 --- a/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate_test.go +++ b/internal/connector/pingfederate/resources/configuration_encryption_keys_rotate_test.go @@ -25,5 +25,4 @@ func Test_PingFederateConfigurationEncryptionKeysRotate(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/data_store.go b/internal/connector/pingfederate/resources/data_store.go index 5976aa06..792d72a7 100644 --- a/internal/connector/pingfederate/resources/data_store.go +++ b/internal/connector/pingfederate/resources/data_store.go @@ -71,7 +71,7 @@ func (r *PingFederateDataStoreResource) getDataStoreData() (map[string]string, e return nil, err } if !ok { - return nil, nil + return dataStoreData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/data_store_test.go b/internal/connector/pingfederate/resources/data_store_test.go index af263fd3..00647916 100644 --- a/internal/connector/pingfederate/resources/data_store_test.go +++ b/internal/connector/pingfederate/resources/data_store_test.go @@ -26,5 +26,4 @@ func Test_PingFederateDataStore(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/default_urls_test.go b/internal/connector/pingfederate/resources/default_urls_test.go index f40091bb..83fbaf50 100644 --- a/internal/connector/pingfederate/resources/default_urls_test.go +++ b/internal/connector/pingfederate/resources/default_urls_test.go @@ -25,5 +25,4 @@ func Test_PingFederateDefaultUrls(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/extended_properties_test.go b/internal/connector/pingfederate/resources/extended_properties_test.go index 9b308446..c02a9dd0 100644 --- a/internal/connector/pingfederate/resources/extended_properties_test.go +++ b/internal/connector/pingfederate/resources/extended_properties_test.go @@ -25,5 +25,4 @@ func Test_PingFederateExtendedProperties(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/identity_store_provisioner.go b/internal/connector/pingfederate/resources/identity_store_provisioner.go index 70ad9e3c..dce95ef8 100644 --- a/internal/connector/pingfederate/resources/identity_store_provisioner.go +++ b/internal/connector/pingfederate/resources/identity_store_provisioner.go @@ -69,7 +69,7 @@ func (r *PingFederateIdentityStoreProvisionerResource) getIdentityStoreProvision return nil, err } if !ok { - return nil, nil + return identityStoreProvisionerData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/identity_store_provisioner_test.go b/internal/connector/pingfederate/resources/identity_store_provisioner_test.go index 0fd5acfd..465bad8d 100644 --- a/internal/connector/pingfederate/resources/identity_store_provisioner_test.go +++ b/internal/connector/pingfederate/resources/identity_store_provisioner_test.go @@ -29,5 +29,4 @@ func Test_PingFederateIdentityStoreProvisioner(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/idp_adapter.go b/internal/connector/pingfederate/resources/idp_adapter.go index d4468cf3..410fcabf 100644 --- a/internal/connector/pingfederate/resources/idp_adapter.go +++ b/internal/connector/pingfederate/resources/idp_adapter.go @@ -69,7 +69,7 @@ func (r *PingFederateIdpAdapterResource) getIdpAdapterData() (map[string]string, return nil, err } if !ok { - return nil, nil + return idpAdapterData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/idp_adapter_test.go b/internal/connector/pingfederate/resources/idp_adapter_test.go index 002412b7..6189ceab 100644 --- a/internal/connector/pingfederate/resources/idp_adapter_test.go +++ b/internal/connector/pingfederate/resources/idp_adapter_test.go @@ -29,5 +29,4 @@ func Test_PingFederateIdpAdapter(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/idp_sp_connection.go b/internal/connector/pingfederate/resources/idp_sp_connection.go index 631f3b4e..b0693b67 100644 --- a/internal/connector/pingfederate/resources/idp_sp_connection.go +++ b/internal/connector/pingfederate/resources/idp_sp_connection.go @@ -69,7 +69,7 @@ func (r *PingFederateIdpSpConnectionResource) getIdpSpConnectionData() (map[stri return nil, err } if !ok { - return nil, nil + return idpSpConnectionData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/idp_sp_connection_test.go b/internal/connector/pingfederate/resources/idp_sp_connection_test.go index 515e77ad..075adfb2 100644 --- a/internal/connector/pingfederate/resources/idp_sp_connection_test.go +++ b/internal/connector/pingfederate/resources/idp_sp_connection_test.go @@ -29,5 +29,4 @@ func Test_PingFederateIdpSpConnection(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract.go b/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract.go index 69b2ee4d..549d63db 100644 --- a/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract.go +++ b/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract.go @@ -69,7 +69,7 @@ func (r *PingFederateIdpStsRequestParametersContractResource) getIdpStsRequestPa return nil, err } if !ok { - return nil, nil + return idpStsRequestParametersContractData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract_test.go b/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract_test.go index 7cc250f5..860c84f5 100644 --- a/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract_test.go +++ b/internal/connector/pingfederate/resources/idp_sts_request_parameters_contract_test.go @@ -29,5 +29,4 @@ func Test_PingFederateIdpStsRequestParametersContract(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping.go b/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping.go index a126baab..cefa93a4 100644 --- a/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping.go +++ b/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping.go @@ -71,7 +71,7 @@ func (r *PingFederateIdpToSpAdapterMappingResource) getIdpToSpAdapterMappingData return nil, err } if !ok { - return nil, nil + return idpToSpAdapterMappingData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping_test.go b/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping_test.go index 7190b4f7..efcef908 100644 --- a/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping_test.go +++ b/internal/connector/pingfederate/resources/idp_to_sp_adapter_mapping_test.go @@ -30,5 +30,4 @@ func Test_PingFederateIdpToSpAdapterMapping(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/idp_token_processor.go b/internal/connector/pingfederate/resources/idp_token_processor.go index 6f878b81..eb4d6118 100644 --- a/internal/connector/pingfederate/resources/idp_token_processor.go +++ b/internal/connector/pingfederate/resources/idp_token_processor.go @@ -69,7 +69,7 @@ func (r *PingFederateIdpTokenProcessorResource) getIdpTokenProcessorData() (map[ return nil, err } if !ok { - return nil, nil + return idpTokenProcessorData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/idp_token_processor_test.go b/internal/connector/pingfederate/resources/idp_token_processor_test.go index 0cd8830b..22a9781a 100644 --- a/internal/connector/pingfederate/resources/idp_token_processor_test.go +++ b/internal/connector/pingfederate/resources/idp_token_processor_test.go @@ -29,5 +29,4 @@ func Test_PingFederateIdpTokenProcessor(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/incoming_proxy_settings_test.go b/internal/connector/pingfederate/resources/incoming_proxy_settings_test.go index fbfdab0f..d61f9d59 100644 --- a/internal/connector/pingfederate/resources/incoming_proxy_settings_test.go +++ b/internal/connector/pingfederate/resources/incoming_proxy_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateIncomingProxySettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/kerberos_realm.go b/internal/connector/pingfederate/resources/kerberos_realm.go index 3acde8d4..1f9a5e1c 100644 --- a/internal/connector/pingfederate/resources/kerberos_realm.go +++ b/internal/connector/pingfederate/resources/kerberos_realm.go @@ -69,7 +69,7 @@ func (r *PingFederateKerberosRealmResource) getKerberosRealmData() (map[string]s return nil, err } if !ok { - return nil, nil + return kerberosRealmData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/kerberos_realm_settings_test.go b/internal/connector/pingfederate/resources/kerberos_realm_settings_test.go index 4abb6b91..55232c09 100644 --- a/internal/connector/pingfederate/resources/kerberos_realm_settings_test.go +++ b/internal/connector/pingfederate/resources/kerberos_realm_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateKerberosRealmSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/kerberos_realm_test.go b/internal/connector/pingfederate/resources/kerberos_realm_test.go index c08f24c5..403d775f 100644 --- a/internal/connector/pingfederate/resources/kerberos_realm_test.go +++ b/internal/connector/pingfederate/resources/kerberos_realm_test.go @@ -29,5 +29,4 @@ func Test_PingFederateKerberosRealm(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set.go b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set.go index a13b4842..577bf2ad 100644 --- a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set.go +++ b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set.go @@ -69,7 +69,7 @@ func (r *PingFederateKeypairsOauthOpenidConnectAdditionalKeySetResource) getKeyp return nil, err } if !ok { - return nil, nil + return keypairsOauthOpenidConnectAdditionalKeySetData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set_test.go b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set_test.go index b44aa79b..c255cd44 100644 --- a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set_test.go +++ b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_additional_key_set_test.go @@ -29,5 +29,4 @@ func Test_PingFederateKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_test.go b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_test.go index 4206a5fd..93ae0da1 100644 --- a/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_test.go +++ b/internal/connector/pingfederate/resources/keypairs_oauth_openid_connect_test.go @@ -25,5 +25,4 @@ func Test_PingFederateKeypairsOauthOpenidConnect(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings.go b/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings.go index 5cbf5d79..0cc9269d 100644 --- a/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings.go +++ b/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings.go @@ -83,7 +83,7 @@ func (r *PingFederateKeypairsSigningKeyRotationSettingsResource) getKeypairsSign return nil, err } if !ok { - return nil, nil + return signingKeyPairData, nil } if apiObj == nil { @@ -114,5 +114,6 @@ func (r *PingFederateKeypairsSigningKeyRotationSettingsResource) getKeypairsSign func (r *PingFederateKeypairsSigningKeyRotationSettingsResource) checkKeypairsSigningKeyRotationSettingsData(id string) (bool, error) { _, response, err := r.clientInfo.PingFederateApiClient.KeyPairsSigningAPI.GetRotationSettings(r.clientInfo.PingFederateContext, id).Execute() + return common.CheckSingletonResource(response, err, "GetRotationSettings", r.ResourceType()) } diff --git a/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings_test.go b/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings_test.go index fc01405e..8c1b5ada 100644 --- a/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings_test.go +++ b/internal/connector/pingfederate/resources/keypairs_signing_key_rotation_settings_test.go @@ -33,5 +33,4 @@ func Test_PingFederateKeypairsSigningKeyRotationSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/keypairs_ssl_server_settings_test.go b/internal/connector/pingfederate/resources/keypairs_ssl_server_settings_test.go index 9b63ded5..4746131c 100644 --- a/internal/connector/pingfederate/resources/keypairs_ssl_server_settings_test.go +++ b/internal/connector/pingfederate/resources/keypairs_ssl_server_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateKeypairsSslServerSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/local_identity_profile.go b/internal/connector/pingfederate/resources/local_identity_profile.go index d127d768..1ee4369e 100644 --- a/internal/connector/pingfederate/resources/local_identity_profile.go +++ b/internal/connector/pingfederate/resources/local_identity_profile.go @@ -69,7 +69,7 @@ func (r *PingFederateLocalIdentityProfileResource) getLocalIdentityProfileData() return nil, err } if !ok { - return nil, nil + return localIdentityProfileData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/local_identity_profile_test.go b/internal/connector/pingfederate/resources/local_identity_profile_test.go index 7772263d..d9a34a23 100644 --- a/internal/connector/pingfederate/resources/local_identity_profile_test.go +++ b/internal/connector/pingfederate/resources/local_identity_profile_test.go @@ -29,5 +29,4 @@ func Test_PingFederateLocalIdentityProfile(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/metadata_url.go b/internal/connector/pingfederate/resources/metadata_url.go index c0cd76aa..baf5788d 100644 --- a/internal/connector/pingfederate/resources/metadata_url.go +++ b/internal/connector/pingfederate/resources/metadata_url.go @@ -69,7 +69,7 @@ func (r *PingFederateMetadataUrlResource) getMetadataUrlData() (map[string]strin return nil, err } if !ok { - return nil, nil + return metadataUrlData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/metadata_url_test.go b/internal/connector/pingfederate/resources/metadata_url_test.go index 2c365ad7..7dff8d1e 100644 --- a/internal/connector/pingfederate/resources/metadata_url_test.go +++ b/internal/connector/pingfederate/resources/metadata_url_test.go @@ -29,5 +29,4 @@ func Test_PingFederateMetadataUrl(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/notification_publisher.go b/internal/connector/pingfederate/resources/notification_publisher.go index 603ec194..48b64ca2 100644 --- a/internal/connector/pingfederate/resources/notification_publisher.go +++ b/internal/connector/pingfederate/resources/notification_publisher.go @@ -69,7 +69,7 @@ func (r *PingFederateNotificationPublisherResource) getNotificationPublisherData return nil, err } if !ok { - return nil, nil + return notificationPublisherData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/notification_publisher_settings_test.go b/internal/connector/pingfederate/resources/notification_publisher_settings_test.go index db681340..bb073d3a 100644 --- a/internal/connector/pingfederate/resources/notification_publisher_settings_test.go +++ b/internal/connector/pingfederate/resources/notification_publisher_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateNotificationPublisherSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/notification_publisher_test.go b/internal/connector/pingfederate/resources/notification_publisher_test.go index 492b4d02..aa497ad1 100644 --- a/internal/connector/pingfederate/resources/notification_publisher_test.go +++ b/internal/connector/pingfederate/resources/notification_publisher_test.go @@ -29,5 +29,4 @@ func Test_PingFederateNotificationPublisher(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/oauth_access_token_manager.go b/internal/connector/pingfederate/resources/oauth_access_token_manager.go index eedace24..d0ce4fc3 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_manager.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_manager.go @@ -69,7 +69,7 @@ func (r *PingFederateOauthAccessTokenManagerResource) getOauthAccessTokenManager return nil, err } if !ok { - return nil, nil + return oauthAccessTokenManagerData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/oauth_access_token_manager_settings_test.go b/internal/connector/pingfederate/resources/oauth_access_token_manager_settings_test.go index dcb0280d..4079a698 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_manager_settings_test.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_manager_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateOauthAccessTokenManagerSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/oauth_access_token_manager_test.go b/internal/connector/pingfederate/resources/oauth_access_token_manager_test.go index 4d036428..daf1fcdf 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_manager_test.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_manager_test.go @@ -29,5 +29,4 @@ func Test_PingFederateOauthAccessTokenManager(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/oauth_access_token_mapping.go b/internal/connector/pingfederate/resources/oauth_access_token_mapping.go index f5d8e3e1..eff7b6cf 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_mapping.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_mapping.go @@ -71,7 +71,7 @@ func (r *PingFederateOauthAccessTokenMappingResource) getOauthAccessTokenMapping return nil, err } if !ok { - return nil, nil + return oauthAccessTokenMappingData, nil } for _, oauthAccessTokenMapping := range mappings { diff --git a/internal/connector/pingfederate/resources/oauth_access_token_mapping_test.go b/internal/connector/pingfederate/resources/oauth_access_token_mapping_test.go index b064d795..f39d7f95 100644 --- a/internal/connector/pingfederate/resources/oauth_access_token_mapping_test.go +++ b/internal/connector/pingfederate/resources/oauth_access_token_mapping_test.go @@ -30,5 +30,4 @@ func Test_PingFederateOauthAccessTokenMapping(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping_test.go b/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping_test.go index 2236d3c9..a6144f3a 100644 --- a/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping_test.go +++ b/internal/connector/pingfederate/resources/oauth_authentication_policy_contract_mapping_test.go @@ -30,5 +30,4 @@ func Test_PingFederateOauthAuthenticationPolicyContractMapping(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy.go b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy.go index d5ee09c1..e2ec8e5f 100644 --- a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy.go +++ b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy.go @@ -69,7 +69,7 @@ func (r *PingFederateOauthCibaServerPolicyRequestPolicyResource) getOauthCibaSer return nil, err } if !ok { - return nil, nil + return oauthCibaServerPolicyRequestPolicyData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy_test.go b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy_test.go index 306a3ed8..fefa23b2 100644 --- a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy_test.go +++ b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_request_policy_test.go @@ -32,5 +32,4 @@ func Test_PingFederateOauthCibaServerPolicyRequestPolicy(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings_test.go b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings_test.go index 9bfc6261..9f0eb08b 100644 --- a/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings_test.go +++ b/internal/connector/pingfederate/resources/oauth_ciba_server_policy_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateOauthCibaServerPolicySettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/oauth_client.go b/internal/connector/pingfederate/resources/oauth_client.go index 07fbf6fb..1777dc69 100644 --- a/internal/connector/pingfederate/resources/oauth_client.go +++ b/internal/connector/pingfederate/resources/oauth_client.go @@ -69,7 +69,7 @@ func (r *PingFederateOauthClientResource) getOauthClientData() (map[string]strin return nil, err } if !ok { - return nil, nil + return oauthClientData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/oauth_client_registration_policy.go b/internal/connector/pingfederate/resources/oauth_client_registration_policy.go index 352cd85b..4a183d84 100644 --- a/internal/connector/pingfederate/resources/oauth_client_registration_policy.go +++ b/internal/connector/pingfederate/resources/oauth_client_registration_policy.go @@ -69,7 +69,7 @@ func (r *PingFederateOauthClientRegistrationPolicyResource) getOauthClientRegist return nil, err } if !ok { - return nil, nil + return oauthClientRegistrationPolicyData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/oauth_client_registration_policy_test.go b/internal/connector/pingfederate/resources/oauth_client_registration_policy_test.go index f4c78d16..3a5a459f 100644 --- a/internal/connector/pingfederate/resources/oauth_client_registration_policy_test.go +++ b/internal/connector/pingfederate/resources/oauth_client_registration_policy_test.go @@ -29,5 +29,4 @@ func Test_PingFederateOauthClientRegistrationPolicy(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/oauth_client_settings_test.go b/internal/connector/pingfederate/resources/oauth_client_settings_test.go index 903d54ef..b52db7ab 100644 --- a/internal/connector/pingfederate/resources/oauth_client_settings_test.go +++ b/internal/connector/pingfederate/resources/oauth_client_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateOauthClientSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/oauth_client_test.go b/internal/connector/pingfederate/resources/oauth_client_test.go index 16a794ae..2fc5fd5e 100644 --- a/internal/connector/pingfederate/resources/oauth_client_test.go +++ b/internal/connector/pingfederate/resources/oauth_client_test.go @@ -29,5 +29,4 @@ func Test_PingFederateOauthClient(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping_test.go b/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping_test.go index 37f49758..9dbf65ef 100644 --- a/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping_test.go +++ b/internal/connector/pingfederate/resources/oauth_idp_adapter_mapping_test.go @@ -30,5 +30,4 @@ func Test_PingFederateOauthIdpAdapterMapping(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/oauth_issuer.go b/internal/connector/pingfederate/resources/oauth_issuer.go index 261728d3..055c8e41 100644 --- a/internal/connector/pingfederate/resources/oauth_issuer.go +++ b/internal/connector/pingfederate/resources/oauth_issuer.go @@ -69,7 +69,7 @@ func (r *PingFederateOauthIssuerResource) getOauthIssuerData() (map[string]strin return nil, err } if !ok { - return nil, nil + return oauthIssuerData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/oauth_issuer_test.go b/internal/connector/pingfederate/resources/oauth_issuer_test.go index e97a5a2a..5f777cd4 100644 --- a/internal/connector/pingfederate/resources/oauth_issuer_test.go +++ b/internal/connector/pingfederate/resources/oauth_issuer_test.go @@ -29,5 +29,4 @@ func Test_PingFederateOauthIssuer(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/oauth_server_settings_test.go b/internal/connector/pingfederate/resources/oauth_server_settings_test.go index 95230f04..3dffefff 100644 --- a/internal/connector/pingfederate/resources/oauth_server_settings_test.go +++ b/internal/connector/pingfederate/resources/oauth_server_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateOauthServerSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings_test.go b/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings_test.go index b28aa49c..a7b0ea88 100644 --- a/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings_test.go +++ b/internal/connector/pingfederate/resources/oauth_token_exchange_generator_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateOauthTokenExchangeGeneratorSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping.go b/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping.go index 6b8e95cb..fc9431cd 100644 --- a/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping.go +++ b/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping.go @@ -75,7 +75,7 @@ func (r *PingFederateOauthTokenExchangeTokenGeneratorMappingResource) getOauthTo return nil, err } if !ok { - return nil, nil + return oauthTokenExchangeTokenGeneratorMappingData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping_test.go b/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping_test.go index e720ce2a..ab13874a 100644 --- a/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping_test.go +++ b/internal/connector/pingfederate/resources/oauth_token_exchange_token_generator_mapping_test.go @@ -30,5 +30,4 @@ func Test_PingFederateOauthTokenExchangeTokenGeneratorMapping(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/openid_connect_policy.go b/internal/connector/pingfederate/resources/openid_connect_policy.go index 6be96e57..da6942a4 100644 --- a/internal/connector/pingfederate/resources/openid_connect_policy.go +++ b/internal/connector/pingfederate/resources/openid_connect_policy.go @@ -69,7 +69,7 @@ func (r *PingFederateOpenidConnectPolicyResource) getOpenidConnectPolicyData() ( return nil, err } if !ok { - return nil, nil + return openidConnectPolicyData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/openid_connect_policy_test.go b/internal/connector/pingfederate/resources/openid_connect_policy_test.go index 20145084..9d5cd55c 100644 --- a/internal/connector/pingfederate/resources/openid_connect_policy_test.go +++ b/internal/connector/pingfederate/resources/openid_connect_policy_test.go @@ -29,5 +29,4 @@ func Test_PingFederateOpenidConnectPolicy(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/openid_connect_settings_test.go b/internal/connector/pingfederate/resources/openid_connect_settings_test.go index 691129de..951f4317 100644 --- a/internal/connector/pingfederate/resources/openid_connect_settings_test.go +++ b/internal/connector/pingfederate/resources/openid_connect_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateOpenidConnectSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/password_credential_validator.go b/internal/connector/pingfederate/resources/password_credential_validator.go index ae356b1f..3a1d619f 100644 --- a/internal/connector/pingfederate/resources/password_credential_validator.go +++ b/internal/connector/pingfederate/resources/password_credential_validator.go @@ -69,7 +69,7 @@ func (r *PingFederatePasswordCredentialValidatorResource) getPasswordCredentialV return nil, err } if !ok { - return nil, nil + return passwordCredentialValidatorData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/password_credential_validator_test.go b/internal/connector/pingfederate/resources/password_credential_validator_test.go index 5b7dffde..d396affc 100644 --- a/internal/connector/pingfederate/resources/password_credential_validator_test.go +++ b/internal/connector/pingfederate/resources/password_credential_validator_test.go @@ -29,5 +29,4 @@ func Test_PingFederatePasswordCredentialValidator(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/pingone_connection.go b/internal/connector/pingfederate/resources/pingone_connection.go index c4e1ea0d..a8cd4040 100644 --- a/internal/connector/pingfederate/resources/pingone_connection.go +++ b/internal/connector/pingfederate/resources/pingone_connection.go @@ -69,7 +69,7 @@ func (r *PingFederatePingoneConnectionResource) getPingoneConnectionData() (map[ return nil, err } if !ok { - return nil, nil + return pingoneConnectionData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/pingone_connection_test.go b/internal/connector/pingfederate/resources/pingone_connection_test.go index 2fceb4da..5b6f1d26 100644 --- a/internal/connector/pingfederate/resources/pingone_connection_test.go +++ b/internal/connector/pingfederate/resources/pingone_connection_test.go @@ -29,5 +29,4 @@ func Test_PingFederatePingoneConnection(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings_test.go b/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings_test.go index 9308c32e..623ad954 100644 --- a/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings_test.go +++ b/internal/connector/pingfederate/resources/protocol_metadata_lifetime_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateProtocolMetadataLifetimeSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/protocol_metadata_signing_settings_test.go b/internal/connector/pingfederate/resources/protocol_metadata_signing_settings_test.go index 23719a6e..876f2ae0 100644 --- a/internal/connector/pingfederate/resources/protocol_metadata_signing_settings_test.go +++ b/internal/connector/pingfederate/resources/protocol_metadata_signing_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateProtocolMetadataSigningSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/redirect_validation_test.go b/internal/connector/pingfederate/resources/redirect_validation_test.go index 97bae724..917a0448 100644 --- a/internal/connector/pingfederate/resources/redirect_validation_test.go +++ b/internal/connector/pingfederate/resources/redirect_validation_test.go @@ -25,5 +25,4 @@ func Test_PingFederateRedirectValidation(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/secret_manager.go b/internal/connector/pingfederate/resources/secret_manager.go index 574c31f6..c5b36938 100644 --- a/internal/connector/pingfederate/resources/secret_manager.go +++ b/internal/connector/pingfederate/resources/secret_manager.go @@ -69,7 +69,7 @@ func (r *PingFederateSecretManagerResource) getSecretManagerData() (map[string]s return nil, err } if !ok { - return nil, nil + return secretManagerData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/secret_manager_test.go b/internal/connector/pingfederate/resources/secret_manager_test.go index ce8a31b8..13c69cd8 100644 --- a/internal/connector/pingfederate/resources/secret_manager_test.go +++ b/internal/connector/pingfederate/resources/secret_manager_test.go @@ -29,5 +29,4 @@ func Test_PingFederateSecretManager(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/server_settings_general_test.go b/internal/connector/pingfederate/resources/server_settings_general_test.go index d40480e5..894076f0 100644 --- a/internal/connector/pingfederate/resources/server_settings_general_test.go +++ b/internal/connector/pingfederate/resources/server_settings_general_test.go @@ -25,5 +25,4 @@ func Test_PingFederateServerSettingsGeneral(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/server_settings_logging_test.go b/internal/connector/pingfederate/resources/server_settings_logging_test.go index 6d313cc8..ad3fcc8d 100644 --- a/internal/connector/pingfederate/resources/server_settings_logging_test.go +++ b/internal/connector/pingfederate/resources/server_settings_logging_test.go @@ -25,5 +25,4 @@ func Test_PingFederateServerSettingsLogging(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/server_settings_system_keys_rotate_test.go b/internal/connector/pingfederate/resources/server_settings_system_keys_rotate_test.go index 9aaef0e5..cf736cb9 100644 --- a/internal/connector/pingfederate/resources/server_settings_system_keys_rotate_test.go +++ b/internal/connector/pingfederate/resources/server_settings_system_keys_rotate_test.go @@ -25,5 +25,4 @@ func Test_PingFederateServerSettingsSystemKeysRotate(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/server_settings_test.go b/internal/connector/pingfederate/resources/server_settings_test.go index e544a542..a9569bc0 100644 --- a/internal/connector/pingfederate/resources/server_settings_test.go +++ b/internal/connector/pingfederate/resources/server_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateServerSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate.go b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate.go index 3d1e1825..7f877f8b 100644 --- a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate.go +++ b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate.go @@ -75,7 +75,7 @@ func (r *PingFederateServerSettingsWsTrustStsSettingsIssuerCertificateResource) return nil, err } if !ok { - return nil, nil + return serverSettingsWsTrustStsSettingsIssuerCertificateData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate_test.go b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate_test.go index 0f6a69f5..93247cc6 100644 --- a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate_test.go +++ b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_issuer_certificate_test.go @@ -30,5 +30,4 @@ func Test_PingFederateServerSettingsWsTrustStsSettingsIssuerCertificate(t *testi } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_test.go b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_test.go index f1f2c715..88be0b24 100644 --- a/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_test.go +++ b/internal/connector/pingfederate/resources/server_settings_ws_trust_sts_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateServerSettingsWsTrustStsSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/service_authentication_test.go b/internal/connector/pingfederate/resources/service_authentication_test.go index 9df3e283..e1750f7d 100644 --- a/internal/connector/pingfederate/resources/service_authentication_test.go +++ b/internal/connector/pingfederate/resources/service_authentication_test.go @@ -25,5 +25,4 @@ func Test_PingFederateServiceAuthentication(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/session_application_policy_test.go b/internal/connector/pingfederate/resources/session_application_policy_test.go index 2d9cebd7..a50c8658 100644 --- a/internal/connector/pingfederate/resources/session_application_policy_test.go +++ b/internal/connector/pingfederate/resources/session_application_policy_test.go @@ -25,5 +25,4 @@ func Test_PingFederateSessionApplicationPolicy(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/session_authentication_policies_global_test.go b/internal/connector/pingfederate/resources/session_authentication_policies_global_test.go index bf94f734..13b53047 100644 --- a/internal/connector/pingfederate/resources/session_authentication_policies_global_test.go +++ b/internal/connector/pingfederate/resources/session_authentication_policies_global_test.go @@ -25,5 +25,4 @@ func Test_PingFederateSessionAuthenticationPoliciesGlobal(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/session_authentication_policy.go b/internal/connector/pingfederate/resources/session_authentication_policy.go index 5a8d8379..32b2a570 100644 --- a/internal/connector/pingfederate/resources/session_authentication_policy.go +++ b/internal/connector/pingfederate/resources/session_authentication_policy.go @@ -75,7 +75,7 @@ func (r *PingFederateSessionAuthenticationPolicyResource) getSessionAuthenticati return nil, err } if !ok { - return nil, nil + return sessionAuthenticationPolicyData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/session_authentication_policy_test.go b/internal/connector/pingfederate/resources/session_authentication_policy_test.go index 89b46e9b..16921bf6 100644 --- a/internal/connector/pingfederate/resources/session_authentication_policy_test.go +++ b/internal/connector/pingfederate/resources/session_authentication_policy_test.go @@ -30,5 +30,4 @@ func Test_PingFederateSessionAuthenticationPolicy(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/session_settings_test.go b/internal/connector/pingfederate/resources/session_settings_test.go index 6227454f..a7b2ca75 100644 --- a/internal/connector/pingfederate/resources/session_settings_test.go +++ b/internal/connector/pingfederate/resources/session_settings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateSessionSettings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/sp_adapter.go b/internal/connector/pingfederate/resources/sp_adapter.go index 8d257bfb..06d86063 100644 --- a/internal/connector/pingfederate/resources/sp_adapter.go +++ b/internal/connector/pingfederate/resources/sp_adapter.go @@ -69,7 +69,7 @@ func (r *PingFederateSpAdapterResource) getSpAdapterData() (map[string]string, e return nil, err } if !ok { - return nil, nil + return spAdapterData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/sp_adapter_test.go b/internal/connector/pingfederate/resources/sp_adapter_test.go index 49defcc6..03064b10 100644 --- a/internal/connector/pingfederate/resources/sp_adapter_test.go +++ b/internal/connector/pingfederate/resources/sp_adapter_test.go @@ -29,5 +29,4 @@ func Test_PingFederateSpAdapter(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping.go b/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping.go index a9a55980..e6a709a4 100644 --- a/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping.go +++ b/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping.go @@ -75,7 +75,7 @@ func (r *PingFederateSpAuthenticationPolicyContractMappingResource) getSpAuthent return nil, err } if !ok { - return nil, nil + return spAuthenticationPolicyContractMappingData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping_test.go b/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping_test.go index b95473cb..0b5dbab3 100644 --- a/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping_test.go +++ b/internal/connector/pingfederate/resources/sp_authentication_policy_contract_mapping_test.go @@ -30,5 +30,4 @@ func Test_PingFederateSpAuthenticationPolicyContractMapping(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/sp_idp_connection.go b/internal/connector/pingfederate/resources/sp_idp_connection.go index e1f23388..8c10f222 100644 --- a/internal/connector/pingfederate/resources/sp_idp_connection.go +++ b/internal/connector/pingfederate/resources/sp_idp_connection.go @@ -69,7 +69,7 @@ func (r *PingFederateSpIdpConnectionResource) getSpIdpConnectionData() (map[stri return nil, err } if !ok { - return nil, nil + return spIdpConnectionData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/sp_idp_connection_test.go b/internal/connector/pingfederate/resources/sp_idp_connection_test.go index 05086f2b..31495480 100644 --- a/internal/connector/pingfederate/resources/sp_idp_connection_test.go +++ b/internal/connector/pingfederate/resources/sp_idp_connection_test.go @@ -29,5 +29,4 @@ func Test_PingFederateSpIdpConnection(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/sp_target_url_mappings_test.go b/internal/connector/pingfederate/resources/sp_target_url_mappings_test.go index 6915dfea..028dc2b2 100644 --- a/internal/connector/pingfederate/resources/sp_target_url_mappings_test.go +++ b/internal/connector/pingfederate/resources/sp_target_url_mappings_test.go @@ -25,5 +25,4 @@ func Test_PingFederateSpTargetUrlMappings(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping.go b/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping.go index 9bdc4ad7..2844acee 100644 --- a/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping.go +++ b/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping.go @@ -75,7 +75,7 @@ func (r *PingFederateTokenProcessorToTokenGeneratorMappingResource) getTokenProc return nil, err } if !ok { - return nil, nil + return tokenProcessorToTokenGeneratorMappingData, nil } if apiObj == nil { diff --git a/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping_test.go b/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping_test.go index ecc17cf3..6c80f8fe 100644 --- a/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping_test.go +++ b/internal/connector/pingfederate/resources/token_processor_to_token_generator_mapping_test.go @@ -30,5 +30,4 @@ func Test_PingFederateTokenProcessorToTokenGeneratorMapping(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingfederate/resources/virtual_host_names_test.go b/internal/connector/pingfederate/resources/virtual_host_names_test.go index 9cd434d4..1a439969 100644 --- a/internal/connector/pingfederate/resources/virtual_host_names_test.go +++ b/internal/connector/pingfederate/resources/virtual_host_names_test.go @@ -25,5 +25,4 @@ func Test_PingFederateVirtualHostNames(t *testing.T) { } testutils.ValidateImportBlocks(t, tr.ExportableResource, &expectedImportBlocks) - } diff --git a/internal/connector/pingone/authorize/resources/application_resource.go b/internal/connector/pingone/authorize/resources/application_resource.go index 9c0b80e5..a402486b 100644 --- a/internal/connector/pingone/authorize/resources/application_resource.go +++ b/internal/connector/pingone/authorize/resources/application_resource.go @@ -93,7 +93,6 @@ func (r *PingOneApplicationResourceResource) getApplicationResourceData() (map[s resourceId, resourceIdOk := applicationResource.Parent.GetIdOk() if applicationResourceIdOk && applicationResourceNameOk && resourceIdOk { - applicationResourceData[*applicationResourceId] = []string{*applicationResourceName, *resourceId} } } diff --git a/internal/connector/pingone/mfa/resources/mfa_settings.go b/internal/connector/pingone/mfa/resources/mfa_settings.go index 6f475a55..64e08be9 100644 --- a/internal/connector/pingone/mfa/resources/mfa_settings.go +++ b/internal/connector/pingone/mfa/resources/mfa_settings.go @@ -62,5 +62,6 @@ func (r *PingOneMfaSettingsResource) ExportAll() (*[]connector.ImportBlock, erro func (r *PingOneMfaSettingsResource) checkMfaSettingsData() (bool, error) { _, response, err := r.clientInfo.PingOneApiClient.MFAAPIClient.MFASettingsApi.ReadMFASettings(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + return common.CheckSingletonResource(response, err, "ReadMFASettings", r.ResourceType()) } diff --git a/internal/connector/pingone/platform/resources/branding_settings.go b/internal/connector/pingone/platform/resources/branding_settings.go index 456d5e22..87c7b258 100644 --- a/internal/connector/pingone/platform/resources/branding_settings.go +++ b/internal/connector/pingone/platform/resources/branding_settings.go @@ -62,5 +62,6 @@ func (r *PingOneBrandingSettingsResource) ExportAll() (*[]connector.ImportBlock, func (r *PingOneBrandingSettingsResource) checkBrandingSettingsData() (bool, error) { _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.BrandingSettingsApi.ReadBrandingSettings(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + return common.CheckSingletonResource(response, err, "ReadBrandingSettings", r.ResourceType()) } diff --git a/internal/connector/pingone/platform/resources/branding_theme_default.go b/internal/connector/pingone/platform/resources/branding_theme_default.go index bf1a0980..62c7cf07 100644 --- a/internal/connector/pingone/platform/resources/branding_theme_default.go +++ b/internal/connector/pingone/platform/resources/branding_theme_default.go @@ -72,6 +72,7 @@ func (r *PingOneBrandingThemeDefaultResource) checkBrandingThemeDefaultData() (b for _, brandingTheme := range brandingThemes { if brandingTheme.Default { _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.BrandingThemesApi.ReadBrandingThemeDefault(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, *brandingTheme.Id).Execute() + return common.CheckSingletonResource(response, err, "ReadBrandingThemeDefault", r.ResourceType()) } } diff --git a/internal/connector/pingone/platform/resources/certificate.go b/internal/connector/pingone/platform/resources/certificate.go index 44ec8909..919762c2 100644 --- a/internal/connector/pingone/platform/resources/certificate.go +++ b/internal/connector/pingone/platform/resources/certificate.go @@ -68,12 +68,13 @@ func (r *PingOneCertificateResource) getCertificateData() (map[string]string, er // TODO: Implement pagination once supported in the PingOne Go Client SDK entityArray, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.CertificateManagementApi.GetCertificates(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + ok, err := common.HandleClientResponse(response, err, "GetCertificates", r.ResourceType()) if err != nil { return nil, err } if !ok { - return nil, nil + return certificateData, nil } if entityArray == nil { diff --git a/internal/connector/pingone/platform/resources/environment.go b/internal/connector/pingone/platform/resources/environment.go index bb941d8f..355b743b 100644 --- a/internal/connector/pingone/platform/resources/environment.go +++ b/internal/connector/pingone/platform/resources/environment.go @@ -62,5 +62,6 @@ func (r *PingOneEnvironmentResource) ExportAll() (*[]connector.ImportBlock, erro func (r *PingOneEnvironmentResource) checkEnvironmentData() (bool, error) { _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.EnvironmentsApi.ReadOneEnvironment(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + return common.CheckSingletonResource(response, err, "ReadOneEnvironment", r.ResourceType()) } diff --git a/internal/connector/pingone/platform/resources/forms_recaptcha_v2.go b/internal/connector/pingone/platform/resources/forms_recaptcha_v2.go index 75c52128..77bf419c 100644 --- a/internal/connector/pingone/platform/resources/forms_recaptcha_v2.go +++ b/internal/connector/pingone/platform/resources/forms_recaptcha_v2.go @@ -62,5 +62,6 @@ func (r *PingOneFormsRecaptchaV2Resource) ExportAll() (*[]connector.ImportBlock, func (r *PingOneFormsRecaptchaV2Resource) checkFormsRecaptchaV2Data() (bool, error) { _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.RecaptchaConfigurationApi.ReadRecaptchaConfiguration(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + return common.CheckSingletonResource(response, err, "ReadRecaptchaConfiguration", r.ResourceType()) } diff --git a/internal/connector/pingone/platform/resources/gateway_role_assignment.go b/internal/connector/pingone/platform/resources/gateway_role_assignment.go index ef647551..6c0307b6 100644 --- a/internal/connector/pingone/platform/resources/gateway_role_assignment.go +++ b/internal/connector/pingone/platform/resources/gateway_role_assignment.go @@ -51,13 +51,16 @@ func (r *PingOneGatewayRoleAssignmentResource) ExportAll() (*[]connector.ImportB } for gatewayRoleAssignmentId, gatewayRoleId := range gatewayRoleAssignmentData { - gatewayRoleName, err := r.getRoleAssignmentRoleName(gatewayRoleId) + gatewayRoleName, gatewayRoleNameOk, err := r.getRoleAssignmentRoleName(gatewayRoleId) if err != nil { return nil, err } if gatewayRoleName == nil { continue } + if !gatewayRoleNameOk { + continue + } commentData := map[string]string{ "Gateway ID": gatewayId, @@ -135,22 +138,22 @@ func (r *PingOneGatewayRoleAssignmentResource) getGatewayRoleAssignmentData(gate return gatewayRoleAssignmentData, nil } -func (r *PingOneGatewayRoleAssignmentResource) getRoleAssignmentRoleName(roleId string) (*management.EnumRoleName, error) { +func (r *PingOneGatewayRoleAssignmentResource) getRoleAssignmentRoleName(roleId string) (*management.EnumRoleName, bool, error) { role, resp, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.RolesApi.ReadOneRole(r.clientInfo.PingOneContext, roleId).Execute() ok, err := common.CheckSingletonResource(resp, err, "ReadOneRole", r.ResourceType()) if err != nil { - return nil, err + return nil, false, err } if !ok { - return nil, nil + return nil, false, nil } if role != nil { roleName, roleNameOk := role.GetNameOk() if roleNameOk { - return roleName, nil + return roleName, true, nil } } - return nil, fmt.Errorf("failed to export resource '%s'. No role name found for Role ID '%s'", r.ResourceType(), roleId) + return nil, false, fmt.Errorf("failed to export resource '%s'. No role name found for Role ID '%s'", r.ResourceType(), roleId) } diff --git a/internal/connector/pingone/platform/resources/key.go b/internal/connector/pingone/platform/resources/key.go index fc75f888..b86c156e 100644 --- a/internal/connector/pingone/platform/resources/key.go +++ b/internal/connector/pingone/platform/resources/key.go @@ -78,7 +78,7 @@ func (r *PingOneKeyResource) getKeyData() (map[string][]string, error) { return nil, err } if !ok { - return nil, nil + return keyData, nil } if entityArray == nil { diff --git a/internal/connector/pingone/platform/resources/notification_settings.go b/internal/connector/pingone/platform/resources/notification_settings.go index a979aea7..f82b73a0 100644 --- a/internal/connector/pingone/platform/resources/notification_settings.go +++ b/internal/connector/pingone/platform/resources/notification_settings.go @@ -62,5 +62,6 @@ func (r *PingOneNotificationSettingsResource) ExportAll() (*[]connector.ImportBl func (r *PingOneNotificationSettingsResource) checkNotificationSettingsData() (bool, error) { _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsSettingsApi.ReadNotificationsSettings(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + return common.CheckSingletonResource(response, err, "ReadNotificationsSettings", r.ResourceType()) } diff --git a/internal/connector/pingone/platform/resources/notification_settings_email.go b/internal/connector/pingone/platform/resources/notification_settings_email.go index 76719afd..006b5fff 100644 --- a/internal/connector/pingone/platform/resources/notification_settings_email.go +++ b/internal/connector/pingone/platform/resources/notification_settings_email.go @@ -62,5 +62,6 @@ func (r *PingOneNotificationSettingsEmailResource) ExportAll() (*[]connector.Imp func (r *PingOneNotificationSettingsEmailResource) checkNotificationSettingsEmailData() (bool, error) { _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.NotificationsSettingsSMTPApi.ReadEmailNotificationsSettings(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() + return common.CheckSingletonResource(response, err, "ReadEmailNotificationsSettings", r.ResourceType()) } diff --git a/internal/connector/pingone/platform/resources/notification_template_content.go b/internal/connector/pingone/platform/resources/notification_template_content.go index 175b818d..2e953f86 100644 --- a/internal/connector/pingone/platform/resources/notification_template_content.go +++ b/internal/connector/pingone/platform/resources/notification_template_content.go @@ -7,6 +7,7 @@ import ( "errors" "fmt" "io" + "net/http" "strings" "github.com/patrickcping/pingone-go-sdk-v2/management" @@ -134,7 +135,7 @@ func (r *PingOneNotificationTemplateContentResource) getTemplateNames() (arr []m // When PingOne services are not enabled in an environment, // the response code for the templates related to that service is // 400 Bad Request - "CONSTRAINT_VIOLATION" - if err != nil && response.StatusCode == 400 && response.Status == "400 Bad Request" { + if err != nil && response.StatusCode == http.StatusBadRequest && response.Status == "400 Bad Request" { defer func() { cErr := response.Body.Close() if cErr != nil { @@ -210,6 +211,7 @@ func (r *PingOneNotificationTemplateContentResource) getNotificationTemplateCont notificationTemplateContentVariant = notificationTemplateContent.TemplateContentVoice.GetVariant() default: output.Warn(fmt.Sprintf("Template content '%v' for template '%s' is not one of: Push, SMS, Email, or Voice. Skipping export.", notificationTemplateContent, templateName), nil) + continue } diff --git a/internal/connector/pingone/sso/resources/application_secret.go b/internal/connector/pingone/sso/resources/application_secret.go index 31d8a36c..51454977 100644 --- a/internal/connector/pingone/sso/resources/application_secret.go +++ b/internal/connector/pingone/sso/resources/application_secret.go @@ -6,6 +6,7 @@ package resources import ( "errors" "fmt" + "net/http" "github.com/patrickcping/pingone-go-sdk-v2/management" "github.com/pingidentity/pingcli/internal/connector" @@ -128,7 +129,7 @@ func (r *PingOneApplicationSecretResource) checkApplicationSecretData(applicatio // If the appId is the same as the worker ID, make sure the API response is a 403 and ignore the error if applicationId == r.clientInfo.PingOneApiClientId { - if response.StatusCode == 403 { + if response.StatusCode == http.StatusForbidden { return false, nil } else { return false, fmt.Errorf("error: Expected 403 Forbidden response - worker apps cannot read their own secret\n%s Response Code: %s\nResponse Body: %s", "ReadApplicationSecret", response.Status, response.Body) @@ -144,6 +145,7 @@ func (r *PingOneApplicationSecretResource) checkApplicationSecretData(applicatio "Response Code": response.Status, "Response Body": response.Body, }) + return false, nil } diff --git a/internal/connector/pingone/sso/resources/group_role_assignment.go b/internal/connector/pingone/sso/resources/group_role_assignment.go index d97d7526..a2f519ea 100644 --- a/internal/connector/pingone/sso/resources/group_role_assignment.go +++ b/internal/connector/pingone/sso/resources/group_role_assignment.go @@ -51,7 +51,6 @@ func (r *PingOneGroupRoleAssignmentResource) ExportAll() (*[]connector.ImportBlo } for groupRoleAssignmentId, groupRoleAssignmentRoleId := range groupRoleAssignmentData { - groupRoleAssignmentRoleName, groupRoleAssignmentRoleNameOk, err := r.getRoleName(groupRoleAssignmentRoleId) if err != nil { return nil, err diff --git a/internal/connector/pingone/sso/resources/population_default_identity_provider.go b/internal/connector/pingone/sso/resources/population_default_identity_provider.go index b3891144..a1067442 100644 --- a/internal/connector/pingone/sso/resources/population_default_identity_provider.go +++ b/internal/connector/pingone/sso/resources/population_default_identity_provider.go @@ -96,5 +96,6 @@ func (r *PingOnePopulationDefaultIdentityProviderResource) getPopulationData() ( func (r *PingOnePopulationDefaultIdentityProviderResource) checkPopulationDefaultIdentityProviderData(populationId string) (bool, error) { _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.PopulationsApi.ReadOnePopulationDefaultIdp(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, populationId).Execute() + return common.CheckSingletonResource(response, err, "ReadOnePopulationDefaultIdp", r.ResourceType()) } diff --git a/internal/connector/pingone/sso/resources/resource_secret.go b/internal/connector/pingone/sso/resources/resource_secret.go index cafe7e33..15ade4e3 100644 --- a/internal/connector/pingone/sso/resources/resource_secret.go +++ b/internal/connector/pingone/sso/resources/resource_secret.go @@ -99,5 +99,6 @@ func (r *PingOneResourceSecretResource) getResourceData() (map[string]string, er func (r *PingOneResourceSecretResource) checkResourceSecretData(resourceId string) (bool, error) { _, response, err := r.clientInfo.PingOneApiClient.ManagementAPIClient.ResourceClientSecretApi.ReadResourceSecret(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID, resourceId).Execute() + return common.CheckSingletonResource(response, err, "ReadResourceSecret", r.ResourceType()) } diff --git a/internal/customtypes/export_format.go b/internal/customtypes/export_format.go index e5919791..856768b1 100644 --- a/internal/customtypes/export_format.go +++ b/internal/customtypes/export_format.go @@ -34,6 +34,7 @@ func (ef *ExportFormat) Set(format string) error { default: return fmt.Errorf("unrecognized export format '%s'. Must be one of: %s", format, strings.Join(ExportFormatValidValues(), ", ")) } + return nil } diff --git a/internal/customtypes/export_service_group.go b/internal/customtypes/export_service_group.go index 3cb79b00..3aa0184a 100644 --- a/internal/customtypes/export_service_group.go +++ b/internal/customtypes/export_service_group.go @@ -32,6 +32,7 @@ func (esg *ExportServiceGroup) Set(serviceGroup string) error { default: return fmt.Errorf("unrecognized service group '%s'. Must be one of: %s", serviceGroup, strings.Join(ExportServiceGroupValidValues(), ", ")) } + return nil } diff --git a/internal/customtypes/export_services.go b/internal/customtypes/export_services.go index 09d5623d..b7e65666 100644 --- a/internal/customtypes/export_services.go +++ b/internal/customtypes/export_services.go @@ -36,6 +36,7 @@ func (es *ExportServices) Set(services string) error { if services == "" || services == "[]" { *es = ExportServices([]string{}) + return nil } @@ -49,8 +50,10 @@ func (es *ExportServices) Set(services string) error { if !slices.Contains(returnServiceList, validService) { returnServiceList = append(returnServiceList, validService) } + return true } + return false }) { return fmt.Errorf("failed to set ExportServices: Invalid service: %s. Allowed services: %s", service, strings.Join(validServices, ", ")) @@ -60,6 +63,7 @@ func (es *ExportServices) Set(services string) error { slices.Sort(returnServiceList) *es = ExportServices(returnServiceList) + return nil } @@ -153,5 +157,6 @@ func (es *ExportServices) Merge(es2 ExportServices) error { } slices.Sort(mergedServices) + return es.Set(strings.Join(mergedServices, ",")) } diff --git a/internal/customtypes/http_method.go b/internal/customtypes/http_method.go index df2f976e..6d379448 100644 --- a/internal/customtypes/http_method.go +++ b/internal/customtypes/http_method.go @@ -46,6 +46,7 @@ func (hm *HTTPMethod) Set(httpMethod string) error { default: return fmt.Errorf("unrecognized HTTP Method: '%s'. Must be one of: %s", httpMethod, strings.Join(HTTPMethodValidValues(), ", ")) } + return nil } diff --git a/internal/customtypes/output_format.go b/internal/customtypes/output_format.go index d6c3dc1d..0c4e3467 100644 --- a/internal/customtypes/output_format.go +++ b/internal/customtypes/output_format.go @@ -37,6 +37,7 @@ func (o *OutputFormat) Set(outputFormat string) error { default: return fmt.Errorf("unrecognized Output Format: '%s'. Must be one of: %s", outputFormat, strings.Join(OutputFormatValidValues(), ", ")) } + return nil } diff --git a/internal/customtypes/pingfederate_auth_type.go b/internal/customtypes/pingfederate_auth_type.go index 82227fef..c61b32f2 100644 --- a/internal/customtypes/pingfederate_auth_type.go +++ b/internal/customtypes/pingfederate_auth_type.go @@ -39,6 +39,7 @@ func (pat *PingFederateAuthenticationType) Set(authType string) error { default: return fmt.Errorf("unrecognized PingFederate Authentication Type: '%s'. Must be one of: %s", authType, strings.Join(PingFederateAuthenticationTypeValidValues(), ", ")) } + return nil } diff --git a/internal/customtypes/pingone_auth_type.go b/internal/customtypes/pingone_auth_type.go index 1e35ba80..63f71bfb 100644 --- a/internal/customtypes/pingone_auth_type.go +++ b/internal/customtypes/pingone_auth_type.go @@ -33,6 +33,7 @@ func (pat *PingOneAuthenticationType) Set(authType string) error { default: return fmt.Errorf("unrecognized PingOne Authentication Type: '%s'. Must be one of: %s", authType, strings.Join(PingOneAuthenticationTypeValidValues(), ", ")) } + return nil } diff --git a/internal/customtypes/pingone_region_code.go b/internal/customtypes/pingone_region_code.go index 642fad70..eeba73da 100644 --- a/internal/customtypes/pingone_region_code.go +++ b/internal/customtypes/pingone_region_code.go @@ -51,6 +51,7 @@ func (prc *PingOneRegionCode) Set(regionCode string) error { default: return fmt.Errorf("unrecognized PingOne Region Code: '%s'. Must be one of: %s", regionCode, strings.Join(PingOneRegionCodeValidValues(), ", ")) } + return nil } diff --git a/internal/customtypes/request_services.go b/internal/customtypes/request_services.go index 094c9a1e..38a13453 100644 --- a/internal/customtypes/request_services.go +++ b/internal/customtypes/request_services.go @@ -33,6 +33,7 @@ func (rs *RequestService) Set(service string) error { default: return fmt.Errorf("unrecognized Request Service: '%s'. Must be one of: %s", service, strings.Join(RequestServiceValidValues(), ", ")) } + return nil } diff --git a/internal/customtypes/uuid.go b/internal/customtypes/uuid.go index f58a7734..8aae001b 100644 --- a/internal/customtypes/uuid.go +++ b/internal/customtypes/uuid.go @@ -21,6 +21,7 @@ func (u *UUID) Set(val string) error { if val == "" { *u = UUID(val) + return nil } diff --git a/internal/input/input.go b/internal/input/input.go index 2128040a..1b3116ec 100644 --- a/internal/input/input.go +++ b/internal/input/input.go @@ -33,6 +33,7 @@ func RunPromptConfirm(message string, rc io.ReadCloser) (bool, error) { if errors.Is(err, promptui.ErrAbort) { return false, nil } + return false, err } @@ -48,5 +49,6 @@ func RunPromptSelect(message string, items []string, rc io.ReadCloser) (selectio } _, selection, err = p.Run() + return selection, err } diff --git a/internal/input/input_test.go b/internal/input/input_test.go index 03855c4b..e1b90821 100644 --- a/internal/input/input_test.go +++ b/internal/input/input_test.go @@ -1,11 +1,12 @@ // Copyright © 2025 Ping Identity Corporation -package input +package input_test import ( "fmt" "testing" + "github.com/pingidentity/pingcli/internal/input" "github.com/pingidentity/pingcli/internal/testing/testutils" ) @@ -13,14 +14,15 @@ func mockValidateFunc(input string) error { if input == "invalid" { return fmt.Errorf("invalid input") } + return nil } // Test RunPrompt function func TestRunPrompt(t *testing.T) { testInput := "test-input" - reader := testutils.WriteStringToPipe(fmt.Sprintf("%s\n", testInput), t) - parsedInput, err := RunPrompt("test", nil, reader) + reader := testutils.WriteStringToPipe(t, fmt.Sprintf("%s\n", testInput)) + parsedInput, err := input.RunPrompt("test", nil, reader) if err != nil { t.Errorf("Error running RunPrompt: %v", err) } @@ -33,8 +35,8 @@ func TestRunPrompt(t *testing.T) { // Test RunPrompt function with validation func TestRunPromptWithValidation(t *testing.T) { testInput := "test-input" - reader := testutils.WriteStringToPipe(fmt.Sprintf("%s\n", testInput), t) - parsedInput, err := RunPrompt("test", mockValidateFunc, reader) + reader := testutils.WriteStringToPipe(t, fmt.Sprintf("%s\n", testInput)) + parsedInput, err := input.RunPrompt("test", mockValidateFunc, reader) if err != nil { t.Errorf("Error running RunPrompt: %v", err) } @@ -47,8 +49,8 @@ func TestRunPromptWithValidation(t *testing.T) { // Test RunPrompt function with validation error func TestRunPromptWithValidationError(t *testing.T) { testInput := "invalid" - reader := testutils.WriteStringToPipe(fmt.Sprintf("%s\n", testInput), t) - _, err := RunPrompt("test", mockValidateFunc, reader) + reader := testutils.WriteStringToPipe(t, fmt.Sprintf("%s\n", testInput)) + _, err := input.RunPrompt("test", mockValidateFunc, reader) if err == nil { t.Errorf("Expected error, but got nil") } @@ -56,8 +58,8 @@ func TestRunPromptWithValidationError(t *testing.T) { // Test RunPromptConfirm function func TestRunPromptConfirm(t *testing.T) { - reader := testutils.WriteStringToPipe("y\n", t) - parsedInput, err := RunPromptConfirm("test", reader) + reader := testutils.WriteStringToPipe(t, "y\n") + parsedInput, err := input.RunPromptConfirm("test", reader) if err != nil { t.Errorf("Error running RunPromptConfirm: %v", err) } @@ -69,8 +71,8 @@ func TestRunPromptConfirm(t *testing.T) { // Test RunPromptConfirm function with no input func TestRunPromptConfirmNoInput(t *testing.T) { - reader := testutils.WriteStringToPipe("\n", t) - parsedInput, err := RunPromptConfirm("test", reader) + reader := testutils.WriteStringToPipe(t, "\n") + parsedInput, err := input.RunPromptConfirm("test", reader) if err != nil { t.Errorf("Error running RunPromptConfirm: %v", err) } @@ -82,8 +84,8 @@ func TestRunPromptConfirmNoInput(t *testing.T) { // Test RunPromptConfirm function with "n" input func TestRunPromptConfirmNoInputN(t *testing.T) { - reader := testutils.WriteStringToPipe("n\n", t) - parsedInput, err := RunPromptConfirm("test", reader) + reader := testutils.WriteStringToPipe(t, "n\n") + parsedInput, err := input.RunPromptConfirm("test", reader) if err != nil { t.Errorf("Error running RunPromptConfirm: %v", err) } @@ -95,8 +97,8 @@ func TestRunPromptConfirmNoInputN(t *testing.T) { // Test RunPromptConfirm function with junk input func TestRunPromptConfirmJunkInput(t *testing.T) { - reader := testutils.WriteStringToPipe("junk\n", t) - parsedInput, err := RunPromptConfirm("test", reader) + reader := testutils.WriteStringToPipe(t, "junk\n") + parsedInput, err := input.RunPromptConfirm("test", reader) if err != nil { t.Errorf("Error running RunPromptConfirm: %v", err) } @@ -109,8 +111,8 @@ func TestRunPromptConfirmJunkInput(t *testing.T) { // Test RunPromptSelect function func TestRunPromptSelect(t *testing.T) { testInput := "test-input" - reader := testutils.WriteStringToPipe(fmt.Sprintf("%s\n", testInput), t) - parsedInput, err := RunPromptSelect("test", []string{testInput}, reader) + reader := testutils.WriteStringToPipe(t, fmt.Sprintf("%s\n", testInput)) + parsedInput, err := input.RunPromptSelect("test", []string{testInput}, reader) if err != nil { t.Errorf("Error running RunPromptSelect: %v", err) } diff --git a/internal/logger/logger.go b/internal/logger/logger.go index 27d2c77d..a8ae755b 100644 --- a/internal/logger/logger.go +++ b/internal/logger/logger.go @@ -5,6 +5,7 @@ package logger import ( "io" "os" + "path/filepath" "sync" "time" @@ -20,7 +21,6 @@ var ( // Create a get function for a standardized zerolog logger func Get() zerolog.Logger { once.Do(func() { - // Viper config is not initialized yet, so read environment variables directly logLevelEnv := os.Getenv("PINGCLI_LOG_LEVEL") logPathEnv := os.Getenv("PINGCLI_LOG_PATH") @@ -52,14 +52,13 @@ func Get() zerolog.Logger { // Handle log file creation when PINGCLI_LOG_PATH is defined if logPathEnv != "" && logLevel != zerolog.Disabled { - var err error + logPathEnv = filepath.Clean(logPathEnv) output, err = os.Create(logPathEnv) if err != nil { // Most likely the directory specified for the log path does not exist log.Fatal().Err(err).Msgf("Unable to create log file at: %s", logPathEnv) } - } else { output = zerolog.ConsoleWriter{ Out: os.Stdout, @@ -73,5 +72,6 @@ func Get() zerolog.Logger { Timestamp(). Logger() }) + return logger } diff --git a/internal/output/output.go b/internal/output/output.go index cbf3be01..6319885a 100644 --- a/internal/output/output.go +++ b/internal/output/output.go @@ -44,14 +44,14 @@ func SetColorize() { func Message(message string, fields map[string]interface{}) { l := logger.Get() - print(message, fields, white, l.Info) + printOutput(message, fields, white, l.Info) } // This function outputs green text to inform the user of success func Success(message string, fields map[string]interface{}) { l := logger.Get() - print(fmt.Sprintf("SUCCESS: %s", message), fields, green, l.Info) + printOutput(fmt.Sprintf("SUCCESS: %s", message), fields, green, l.Info) } // This function outputs yellow text to inform the user of a warning @@ -59,7 +59,7 @@ func Warn(message string, fields map[string]interface{}) { l := logger.Get() detailedExitCodeWarnLogged = true - print(fmt.Sprintf("WARNING: %s", message), fields, yellow, l.Warn) + printOutput(fmt.Sprintf("WARNING: %s", message), fields, yellow, l.Warn) } func DetailedExitCodeWarnLogged() (bool, error) { @@ -71,6 +71,7 @@ func DetailedExitCodeWarnLogged() (bool, error) { if detailedExitCodeEnabled == "true" { return detailedExitCodeWarnLogged, nil } + return false, nil } @@ -78,14 +79,14 @@ func DetailedExitCodeWarnLogged() (bool, error) { // or input to pingcli has caused an error. func UserError(message string, fields map[string]interface{}) { l := logger.Get() - print(fmt.Sprintf("ERROR: %s", message), fields, red, l.Error) + printOutput(fmt.Sprintf("ERROR: %s", message), fields, red, l.Error) } // This functions is used to inform the user their configuration // or input to pingcli has caused an fatal error that exits the program immediately. func UserFatal(message string, fields map[string]interface{}) { l := logger.Get() - print(fmt.Sprintf("FATAL: %s", message), fields, boldRed, l.Fatal) + printOutput(fmt.Sprintf("FATAL: %s", message), fields, boldRed, l.Fatal) } // This function is used to inform the user a system-level error @@ -102,10 +103,10 @@ Please raise an issue at https://github.com/pingidentity/pingcli`, // l.Fatal() exits the program prematurely before the message is printed // pass nil to print the message before exiting - print(systemMsg, fields, boldRed, l.Fatal) + printOutput(systemMsg, fields, boldRed, l.Fatal) } -func print(message string, fields map[string]interface{}, colorFunc func(format string, a ...interface{}) string, +func printOutput(message string, fields map[string]interface{}, colorFunc func(format string, a ...interface{}) string, logEventFunc func() *zerolog.Event) { SetColorize() @@ -116,18 +117,17 @@ func print(message string, fields map[string]interface{}, colorFunc func(format switch outputFormat { case customtypes.ENUM_OUTPUT_FORMAT_TEXT: - printText(message, fields, colorFunc, logEventFunc) + printTextOutput(message, fields, colorFunc, logEventFunc) case customtypes.ENUM_OUTPUT_FORMAT_JSON: - printJson(message, fields, logEventFunc) + printJsonOutput(message, fields, logEventFunc) default: l := logger.Get() - printText(fmt.Sprintf("Output format %q is not recognized. Defaulting to \"text\" output", outputFormat), nil, yellow, l.Warn) - printText(message, fields, colorFunc, logEventFunc) + printTextOutput(fmt.Sprintf("Output format %q is not recognized. Defaulting to \"text\" output", outputFormat), nil, yellow, l.Warn) + printTextOutput(message, fields, colorFunc, logEventFunc) } - } -func printText(message string, fields map[string]interface{}, colorFunc func(format string, a ...interface{}) string, +func printTextOutput(message string, fields map[string]interface{}, colorFunc func(format string, a ...interface{}) string, logEventFunc func() *zerolog.Event) { l := logger.Get() @@ -147,7 +147,7 @@ func printText(message string, fields map[string]interface{}, colorFunc func(for logEventFunc().Msg(colorFunc(message)) } -func printJson(message string, fields map[string]interface{}, logEventFunc func() *zerolog.Event) { +func printJsonOutput(message string, fields map[string]interface{}, logEventFunc func() *zerolog.Event) { l := logger.Get() if fields == nil { @@ -164,6 +164,7 @@ func printJson(message string, fields map[string]interface{}, logEventFunc func( jsonOut, err := json.MarshalIndent(fields, "", " ") if err != nil { l.Error().Err(err).Msgf("Failed to serialize output as JSON") + return } diff --git a/internal/profiles/validate.go b/internal/profiles/validate.go index 8f2ec38d..7366c31f 100644 --- a/internal/profiles/validate.go +++ b/internal/profiles/validate.go @@ -31,7 +31,7 @@ func Validate() (err error) { activeProfileName, err := GetOptionValue(options.RootActiveProfileOption) activeProfileName = strings.ToLower(activeProfileName) if err != nil { - return fmt.Errorf("failed to validate Ping CLI configuration: %v", err) + return fmt.Errorf("failed to validate Ping CLI configuration: %w", err) } if !slices.Contains(profileNames, activeProfileName) { return fmt.Errorf("failed to validate Ping CLI configuration: active profile '%s' not found in configuration "+ @@ -42,15 +42,15 @@ func Validate() (err error) { for _, pName := range profileNames { subViper, err := GetMainConfig().GetProfileViper(pName) if err != nil { - return fmt.Errorf("failed to validate Ping CLI configuration: %v", err) + return fmt.Errorf("failed to validate Ping CLI configuration: %w", err) } if err := validateProfileKeys(pName, subViper); err != nil { - return fmt.Errorf("failed to validate Ping CLI configuration: %v", err) + return fmt.Errorf("failed to validate Ping CLI configuration: %w", err) } if err := validateProfileValues(pName, subViper); err != nil { - return fmt.Errorf("failed to validate Ping CLI configuration: %v", err) + return fmt.Errorf("failed to validate Ping CLI configuration: %w", err) } } @@ -63,6 +63,7 @@ func validateProfileNames(profileNames []string) error { return err } } + return nil } @@ -84,8 +85,10 @@ func validateProfileKeys(profileName string, profileViper *viper.Viper) error { if len(invalidKeys) > 0 { invalidKeysStr := strings.Join(invalidKeys, ", ") validKeysStr := strings.Join(validProfileKeys, ", ") + return fmt.Errorf("invalid configuration key(s) found in profile %s: %s\nMust use one of: %s", profileName, invalidKeysStr, validKeysStr) } + return nil } @@ -106,7 +109,7 @@ func validateProfileValues(pName string, profileViper *viper.Viper) (err error) case string: b := new(customtypes.Bool) if err = b.Set(typedValue); err != nil { - return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a boolean value: %v", pName, typedValue, key, err) + return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a boolean value: %w", pName, typedValue, key, err) } case bool: continue @@ -120,7 +123,7 @@ func validateProfileValues(pName string, profileViper *viper.Viper) (err error) case string: u := new(customtypes.UUID) if err = u.Set(typedValue); err != nil { - return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a UUID value: %v", pName, typedValue, key, err) + return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a UUID value: %w", pName, typedValue, key, err) } default: return fmt.Errorf("profile '%s': variable type %T for key '%s' is not a UUID value", pName, typedValue, key) @@ -132,7 +135,7 @@ func validateProfileValues(pName string, profileViper *viper.Viper) (err error) case string: o := new(customtypes.OutputFormat) if err = o.Set(typedValue); err != nil { - return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not an output format value: %v", pName, typedValue, key, err) + return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not an output format value: %w", pName, typedValue, key, err) } default: return fmt.Errorf("profile '%s': variable type %T for key '%s' is not an output format value", pName, typedValue, key) @@ -144,7 +147,7 @@ func validateProfileValues(pName string, profileViper *viper.Viper) (err error) case string: prc := new(customtypes.PingOneRegionCode) if err = prc.Set(typedValue); err != nil { - return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a PingOne Region Code value: %v", pName, typedValue, key, err) + return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a PingOne Region Code value: %w", pName, typedValue, key, err) } default: return fmt.Errorf("profile '%s': variable type %T for key '%s' is not a PingOne Region Code value", pName, typedValue, key) @@ -156,7 +159,7 @@ func validateProfileValues(pName string, profileViper *viper.Viper) (err error) case string: s := new(customtypes.String) if err = s.Set(typedValue); err != nil { - return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a string value: %v", pName, typedValue, key, err) + return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a string value: %w", pName, typedValue, key, err) } default: return fmt.Errorf("profile '%s': variable type %T for key '%s' is not a string value", pName, typedValue, key) @@ -168,7 +171,7 @@ func validateProfileValues(pName string, profileViper *viper.Viper) (err error) case string: ss := new(customtypes.StringSlice) if err = ss.Set(typedValue); err != nil { - return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a string slice value: %v", pName, typedValue, key, err) + return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a string slice value: %w", pName, typedValue, key, err) } case []any: ss := new(customtypes.StringSlice) @@ -176,7 +179,7 @@ func validateProfileValues(pName string, profileViper *viper.Viper) (err error) switch innerTypedValue := v.(type) { case string: if err = ss.Set(innerTypedValue); err != nil { - return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a string slice value: %v", pName, typedValue, key, err) + return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a string slice value: %w", pName, typedValue, key, err) } default: return fmt.Errorf("profile '%s': variable type %T for key '%s' is not a string slice value", pName, typedValue, key) @@ -192,7 +195,7 @@ func validateProfileValues(pName string, profileViper *viper.Viper) (err error) case string: esg := new(customtypes.ExportServiceGroup) if err = esg.Set(typedValue); err != nil { - return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a export service group value: %v", pName, typedValue, key, err) + return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a export service group value: %w", pName, typedValue, key, err) } default: return fmt.Errorf("profile '%s': variable type %T for key '%s' is not a export service group value", pName, typedValue, key) @@ -204,7 +207,7 @@ func validateProfileValues(pName string, profileViper *viper.Viper) (err error) case string: es := new(customtypes.ExportServices) if err = es.Set(typedValue); err != nil { - return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a export service value: %v", pName, typedValue, key, err) + return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a export service value: %w", pName, typedValue, key, err) } case []any: es := new(customtypes.ExportServices) @@ -212,12 +215,11 @@ func validateProfileValues(pName string, profileViper *viper.Viper) (err error) switch innerTypedValue := v.(type) { case string: if err = es.Set(innerTypedValue); err != nil { - return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a export service value: %v", pName, typedValue, key, err) + return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a export service value: %w", pName, typedValue, key, err) } default: return fmt.Errorf("profile '%s': variable type %T for key '%s' is not a export service value", pName, typedValue, key) } - } default: return fmt.Errorf("profile '%s': variable type %T for key '%s' is not a export service value", pName, typedValue, key) @@ -229,7 +231,7 @@ func validateProfileValues(pName string, profileViper *viper.Viper) (err error) case string: ef := new(customtypes.ExportFormat) if err = ef.Set(typedValue); err != nil { - return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not an export format value: %v", pName, typedValue, key, err) + return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not an export format value: %w", pName, typedValue, key, err) } default: return fmt.Errorf("profile '%s': variable type %T for key '%s' is not an export format value", pName, typedValue, key) @@ -241,7 +243,7 @@ func validateProfileValues(pName string, profileViper *viper.Viper) (err error) case string: hm := new(customtypes.HTTPMethod) if err = hm.Set(typedValue); err != nil { - return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not an HTTP method value: %v", pName, typedValue, key, err) + return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not an HTTP method value: %w", pName, typedValue, key, err) } default: return fmt.Errorf("profile '%s': variable type %T for key '%s' is not an HTTP method value", pName, typedValue, key) @@ -253,7 +255,7 @@ func validateProfileValues(pName string, profileViper *viper.Viper) (err error) case string: rs := new(customtypes.RequestService) if err = rs.Set(typedValue); err != nil { - return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a request service value: %v", pName, typedValue, key, err) + return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a request service value: %w", pName, typedValue, key, err) } default: return fmt.Errorf("profile '%s': variable type %T for key '%s' is not a request service value", pName, typedValue, key) @@ -269,7 +271,7 @@ func validateProfileValues(pName string, profileViper *viper.Viper) (err error) case string: i := new(customtypes.Int) if err = i.Set(typedValue); err != nil { - return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not an int value: %v", pName, typedValue, key, err) + return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not an int value: %w", pName, typedValue, key, err) } default: return fmt.Errorf("profile '%s': variable type %T for key '%s' is not an int value", pName, typedValue, key) @@ -281,7 +283,7 @@ func validateProfileValues(pName string, profileViper *viper.Viper) (err error) case string: pfa := new(customtypes.PingFederateAuthenticationType) if err = pfa.Set(typedValue); err != nil { - return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a PingFederate Authentication Type value: %v", pName, typedValue, key, err) + return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a PingFederate Authentication Type value: %w", pName, typedValue, key, err) } default: return fmt.Errorf("profile '%s': variable type %T for key '%s' is not a PingFederate Authentication Type value", pName, typedValue, key) @@ -293,7 +295,7 @@ func validateProfileValues(pName string, profileViper *viper.Viper) (err error) case string: pat := new(customtypes.PingOneAuthenticationType) if err = pat.Set(typedValue); err != nil { - return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a PingOne Authentication Type value: %v", pName, typedValue, key, err) + return fmt.Errorf("profile '%s': variable type '%T' for key '%s' is not a PingOne Authentication Type value: %w", pName, typedValue, key, err) } default: return fmt.Errorf("profile '%s': variable type %T for key '%s' is not a PingOne Authentication Type value", pName, typedValue, key) diff --git a/internal/profiles/viper.go b/internal/profiles/viper.go index 5592e457..1f99cbac 100644 --- a/internal/profiles/viper.go +++ b/internal/profiles/viper.go @@ -50,7 +50,7 @@ func (m MainConfig) ViperInstance() *viper.Viper { return m.viperInstance } -func (m *MainConfig) ChangeActiveProfile(pName string) (err error) { +func (m MainConfig) ChangeActiveProfile(pName string) (err error) { if err = m.ValidateExistingProfileName(pName); err != nil { return err } @@ -180,7 +180,7 @@ func (m MainConfig) ProfileNames() (profileNames []string) { keySet := make(map[string]struct{}) mainViperKeys := m.ViperInstance().AllKeys() for _, key := range mainViperKeys { - //Do not add Active profile viper key to profileNames + // Do not add Active profile viper key to profileNames if strings.EqualFold(key, options.RootActiveProfileOption.ViperKey) { continue } @@ -296,7 +296,7 @@ func (m MainConfig) ProfileToString(pName string) (yamlStr string, err error) { yaml, err := yaml.Marshal(subViper.AllSettings()) if err != nil { - return "", fmt.Errorf("failed to yaml marshal active profile: %v", err) + return "", fmt.Errorf("failed to yaml marshal active profile: %w", err) } return string(yaml), nil @@ -318,7 +318,7 @@ func (m MainConfig) ProfileViperValue(pName, viperKey string) (yamlStr string, e yaml, err := yaml.Marshal(subViper.Get(viperKey)) if err != nil { - return "", fmt.Errorf("failed to yaml marshal configuration value from key '%s': %v", viperKey, err) + return "", fmt.Errorf("failed to yaml marshal configuration value from key '%s': %w", viperKey, err) } return string(yaml), nil @@ -342,7 +342,7 @@ func (m MainConfig) DefaultMissingViperKeys() (err error) { } err = m.SaveProfile(pName, subViper) if err != nil { - return fmt.Errorf("failed to save profile '%s': %v", pName, err) + return fmt.Errorf("failed to save profile '%s': %w", pName, err) } } @@ -374,6 +374,7 @@ func GetOptionValue(opt options.Option) (pFlagValue string, err error) { // 4th priority: default value if opt.DefaultValue != nil { pFlagValue = opt.DefaultValue.String() + return pFlagValue, nil } @@ -446,6 +447,7 @@ func ViperValueFromOption(opt options.Option) (value string, ok bool, err error) for _, v := range typedValue { strSlice = append(strSlice, fmt.Sprintf("%v", v)) } + return strings.Join(strSlice, ","), true, nil default: return fmt.Sprintf("%v", typedValue), true, nil diff --git a/internal/testing/testutils/utils.go b/internal/testing/testutils/utils.go index b0f8e871..b55cb320 100644 --- a/internal/testing/testutils/utils.go +++ b/internal/testing/testutils/utils.go @@ -69,7 +69,7 @@ func initPingFederateClientInfo(t *testing.T, clientInfo *connector.ClientInfo) pfClientConfig.HTTPClient = httpClient clientInfo.PingFederateApiClient = pingfederateGoClient.NewAPIClient(pfClientConfig) - clientInfo.PingFederateContext = context.WithValue(context.Background(), pingfederateGoClient.ContextBasicAuth, pingfederateGoClient.BasicAuth{ + clientInfo.PingFederateContext = context.WithValue(t.Context(), pingfederateGoClient.ContextBasicAuth, pingfederateGoClient.BasicAuth{ UserName: pfUsername, Password: pfPassword, }) @@ -98,7 +98,7 @@ func initPingOneClientInfo(t *testing.T, clientInfo *connector.ClientInfo) { } // Make empty context for testing - ctx := context.Background() + ctx := t.Context() // Initialize the API client client, err := apiConfig.APIClient(ctx) @@ -188,6 +188,7 @@ func ValidateImportBlocks(t *testing.T, resource connector.ExportableResource, e if !ok { t.Errorf("No matching expected import block for generated import block:\n%s", actualImportBlock.String()) + continue } @@ -226,6 +227,7 @@ func ValidateImportBlockSubset(t *testing.T, resource connector.ExportableResour if !ok { t.Errorf("No matching actual import block for expected import block:\n%s", expectedImportBlock.String()) + continue } @@ -240,11 +242,13 @@ func CheckExpectedError(t *testing.T, err error, errMessagePattern *string) { if err == nil && errMessagePattern != nil { t.Errorf("Error message did not match expected regex\n\nerror message: '%v'\n\nregex pattern %s", err, *errMessagePattern) + return } if err != nil && errMessagePattern == nil { t.Errorf("Expected no error, but got error: %v", err) + return } @@ -258,7 +262,7 @@ func CheckExpectedError(t *testing.T, err error, errMessagePattern *string) { // Get os.File with string written to it. // The caller is responsible for closing the file. -func WriteStringToPipe(str string, t *testing.T) (reader *os.File) { +func WriteStringToPipe(t *testing.T, str string) (reader *os.File) { t.Helper() reader, writer, err := os.Pipe() @@ -285,7 +289,7 @@ func CreateX509Certificate() (string, error) { serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128) serialNumber, err := rand.Int(rand.Reader, serialNumberLimit) if err != nil { - return "", fmt.Errorf("failed to generate serial number: %v", err) + return "", fmt.Errorf("failed to generate serial number: %w", err) } certificateCA := &x509.Certificate{ @@ -309,12 +313,12 @@ func CreateX509Certificate() (string, error) { caPrivKey, err := rsa.GenerateKey(rand.Reader, 4096) if err != nil { - return "", fmt.Errorf("failed to generate private key: %v", err) + return "", fmt.Errorf("failed to generate private key: %w", err) } caBytes, err := x509.CreateCertificate(rand.Reader, certificateCA, certificateCA, &caPrivKey.PublicKey, caPrivKey) if err != nil { - return "", fmt.Errorf("failed to create certificate: %v", err) + return "", fmt.Errorf("failed to create certificate: %w", err) } caPEM := new(bytes.Buffer) @@ -323,7 +327,7 @@ func CreateX509Certificate() (string, error) { Bytes: caBytes, }) if err != nil { - return "", fmt.Errorf("failed to encode certificate: %v", err) + return "", fmt.Errorf("failed to encode certificate: %w", err) } return caPEM.String(), nil diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_application.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_application.go index 13375cbe..015cf1ac 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_application.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_api_application.go @@ -30,6 +30,7 @@ func createAuthenticationApiApplication(t *testing.T, clientInfo *connector.Clie if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createAuthenticationApiApplication(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -46,10 +47,12 @@ func createAuthenticationApiApplication(t *testing.T, clientInfo *connector.Clie ok, err := common.HandleClientResponse(response, err, "CreateApplication", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -69,6 +72,7 @@ func deleteAuthenticationApiApplication(t *testing.T, clientInfo *connector.Clie if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteAuthenticationApiApplication(): %v", ids) + return } @@ -78,10 +82,12 @@ func deleteAuthenticationApiApplication(t *testing.T, clientInfo *connector.Clie ok, err := common.HandleClientResponse(response, err, "DeleteApplication", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go index 321c20e7..f452e98e 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policies_fragment.go @@ -33,6 +33,7 @@ func createAuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.Cl if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createAuthenticationPoliciesFragment(): %v", strArgs) + return testutils_resource.ResourceInfo{} } idpAdapterId := strArgs[1] @@ -86,10 +87,12 @@ func createAuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.Cl ok, err := common.HandleClientResponse(response, err, "CreateFragment", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -109,6 +112,7 @@ func deleteAuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.Cl if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteAuthenticationPoliciesFragment(): %v", ids) + return } @@ -118,10 +122,12 @@ func deleteAuthenticationPoliciesFragment(t *testing.T, clientInfo *connector.Cl ok, err := common.HandleClientResponse(response, err, "DeleteFragment", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policy_contract.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policy_contract.go index 66c37a78..05562055 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policy_contract.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_policy_contract.go @@ -31,6 +31,7 @@ func createAuthenticationPolicyContract(t *testing.T, clientInfo *connector.Clie if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createAuthenticationPolicyContract(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -51,10 +52,12 @@ func createAuthenticationPolicyContract(t *testing.T, clientInfo *connector.Clie ok, err := common.HandleClientResponse(response, err, "CreateAuthenticationPolicyContract", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -74,6 +77,7 @@ func deleteAuthenticationPolicyContract(t *testing.T, clientInfo *connector.Clie if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteAuthenticationPolicyContract(): %v", ids) + return } @@ -83,10 +87,12 @@ func deleteAuthenticationPolicyContract(t *testing.T, clientInfo *connector.Clie ok, err := common.HandleClientResponse(response, err, "DeleteAuthenticationPolicyContract", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_selector.go b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_selector.go index 33a4379d..771810a4 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_selector.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/authentication_selector.go @@ -31,6 +31,7 @@ func createAuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createAuthenticationSelector(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -73,10 +74,12 @@ func createAuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo ok, err := common.HandleClientResponse(response, err, "CreateAuthenticationSelector", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -96,6 +99,7 @@ func deleteAuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteAuthenticationSelector(): %v", ids) + return } @@ -105,10 +109,12 @@ func deleteAuthenticationSelector(t *testing.T, clientInfo *connector.ClientInfo ok, err := common.HandleClientResponse(response, err, "DeleteAuthenticationSelector", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider.go b/internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider.go index 33c77529..a762f0a4 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/captcha_provider.go @@ -31,6 +31,7 @@ func createCaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo, resou if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createCaptchaProvider(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -65,10 +66,12 @@ func createCaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo, resou ok, err := common.HandleClientResponse(response, err, "CreateCaptchaProvider", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -88,6 +91,7 @@ func deleteCaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo, resou if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteCaptchaProvider(): %v", ids) + return } @@ -97,10 +101,12 @@ func deleteCaptchaProvider(t *testing.T, clientInfo *connector.ClientInfo, resou ok, err := common.HandleClientResponse(response, err, "DeleteCaptchaProvider", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/certificate_ca.go b/internal/testing/testutils_resource/pingfederate_testable_resources/certificate_ca.go index 74b4d090..4f72a860 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/certificate_ca.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/certificate_ca.go @@ -37,6 +37,7 @@ func createCertificateCa(t *testing.T, clientInfo *connector.ClientInfo, resourc filedata, err := testutils.CreateX509Certificate() if err != nil { t.Errorf("Failed to create test pem certificate %s: %v", resourceType, err) + return testutils_resource.ResourceInfo{} } @@ -52,10 +53,12 @@ func createCertificateCa(t *testing.T, clientInfo *connector.ClientInfo, resourc ok, err := common.HandleClientResponse(response, err, "ImportTrustedCA", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -76,6 +79,7 @@ func deleteCertificateCa(t *testing.T, clientInfo *connector.ClientInfo, resourc if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteCertificateCa(): %v", ids) + return } @@ -85,10 +89,12 @@ func deleteCertificateCa(t *testing.T, clientInfo *connector.ClientInfo, resourc ok, err := common.HandleClientResponse(response, err, "DeleteTrustedCA", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_ocsp_certificate.go b/internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_ocsp_certificate.go index 9dd2f7a9..1baea5e5 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_ocsp_certificate.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/certificates_revocation_ocsp_certificate.go @@ -37,6 +37,7 @@ func createCertificatesRevocationOcspCertificate(t *testing.T, clientInfo *conne filedata, err := testutils.CreateX509Certificate() if err != nil { t.Errorf("Failed to create test pem certificate %s: %v", resourceType, err) + return testutils_resource.ResourceInfo{} } @@ -52,10 +53,12 @@ func createCertificatesRevocationOcspCertificate(t *testing.T, clientInfo *conne ok, err := common.HandleClientResponse(response, err, "ImportOcspCertificate", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -76,6 +79,7 @@ func deleteCertificatesRevocationOcspCertificate(t *testing.T, clientInfo *conne if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteCertificatesRevocationOcspCertificate(): %v", ids) + return } @@ -85,10 +89,12 @@ func deleteCertificatesRevocationOcspCertificate(t *testing.T, clientInfo *conne ok, err := common.HandleClientResponse(response, err, "DeleteOcspCertificateById", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/identity_store_provisioner.go b/internal/testing/testutils_resource/pingfederate_testable_resources/identity_store_provisioner.go index 38fe2c60..291fef71 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/identity_store_provisioner.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/identity_store_provisioner.go @@ -30,6 +30,7 @@ func createIdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientIn if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createIdentityStoreProvisioner(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -62,10 +63,12 @@ func createIdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientIn ok, err := common.HandleClientResponse(response, err, "CreateIdentityStoreProvisioner", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -85,6 +88,7 @@ func deleteIdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientIn if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteIdentityStoreProvisioner(): %v", ids) + return } @@ -94,10 +98,12 @@ func deleteIdentityStoreProvisioner(t *testing.T, clientInfo *connector.ClientIn ok, err := common.HandleClientResponse(response, err, "DeleteIdentityStoreProvisioner", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_adapter.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_adapter.go index 095a33c8..34881c97 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_adapter.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_adapter.go @@ -33,6 +33,7 @@ func createIdpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceTy if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createIdpAdapter(): %v", strArgs) + return testutils_resource.ResourceInfo{} } pcvId := strArgs[0] @@ -95,10 +96,12 @@ func createIdpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceTy ok, err := common.HandleClientResponse(response, err, "CreateIdpAdapter", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -118,6 +121,7 @@ func deleteIdpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceTy if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteIdpAdapter(): %v", ids) + return } @@ -127,10 +131,12 @@ func deleteIdpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceTy ok, err := common.HandleClientResponse(response, err, "DeleteIdpAdapter", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go index b05536ed..ab375296 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sp_connection.go @@ -34,6 +34,7 @@ func createIdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo, resou if len(strArgs) != 3 { t.Errorf("Unexpected number of arguments provided to createIdpSpConnection(): %v", strArgs) + return testutils_resource.ResourceInfo{} } signingKeyPairId := strArgs[0] @@ -100,10 +101,12 @@ func createIdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo, resou ok, err := common.HandleClientResponse(response, err, "CreateSpConnection", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -123,6 +126,7 @@ func deleteIdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo, resou if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteIdpSpConnection(): %v", ids) + return } @@ -132,10 +136,12 @@ func deleteIdpSpConnection(t *testing.T, clientInfo *connector.ClientInfo, resou ok, err := common.HandleClientResponse(response, err, "DeleteSpConnection", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sts_request_parameters_contract.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sts_request_parameters_contract.go index 2d0a00d8..0a212d68 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sts_request_parameters_contract.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_sts_request_parameters_contract.go @@ -30,6 +30,7 @@ func createIdpStsRequestParametersContract(t *testing.T, clientInfo *connector.C if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createIdpStsRequestParametersContract(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -48,10 +49,12 @@ func createIdpStsRequestParametersContract(t *testing.T, clientInfo *connector.C ok, err := common.HandleClientResponse(response, err, "CreateStsRequestParamContract", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -71,6 +74,7 @@ func deleteIdpStsRequestParametersContract(t *testing.T, clientInfo *connector.C if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteIdpStsRequestParametersContract(): %v", ids) + return } @@ -80,10 +84,12 @@ func deleteIdpStsRequestParametersContract(t *testing.T, clientInfo *connector.C ok, err := common.HandleClientResponse(response, err, "DeleteStsRequestParamContractById", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go index d889bfa9..c23dd8a7 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_to_sp_adapter_mapping.go @@ -34,6 +34,7 @@ func createIdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, if len(strArgs) != 3 { t.Errorf("Unexpected number of arguments provided to createIdpToSpAdapterMapping(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testIdpAdapterId := strArgs[1] @@ -59,10 +60,12 @@ func createIdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, ok, err := common.HandleClientResponse(response, err, "CreateIdpToSpAdapterMapping", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -83,6 +86,7 @@ func deleteIdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteIdpToSpAdapterMapping(): %v", ids) + return } @@ -92,10 +96,12 @@ func deleteIdpToSpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo, ok, err := common.HandleClientResponse(response, err, "DeleteIdpToSpAdapterMappingsById", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_token_processor.go b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_token_processor.go index 2a04749f..c94ce771 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/idp_token_processor.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/idp_token_processor.go @@ -33,6 +33,7 @@ func createIdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo, res if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createIdpTokenProcessor(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testPCVId := strArgs[0] @@ -79,10 +80,12 @@ func createIdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo, res ok, err := common.HandleClientResponse(response, err, "CreateTokenProcessor", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -102,6 +105,7 @@ func deleteIdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo, res if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteIdpTokenProcessor(): %v", ids) + return } @@ -111,10 +115,12 @@ func deleteIdpTokenProcessor(t *testing.T, clientInfo *connector.ClientInfo, res ok, err := common.HandleClientResponse(response, err, "DeleteTokenProcessor", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm.go b/internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm.go index 6bbc4f04..86a49c4b 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/kerberos_realm.go @@ -31,6 +31,7 @@ func createKerberosRealm(t *testing.T, clientInfo *connector.ClientInfo, resourc if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createKerberosRealm(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -50,10 +51,12 @@ func createKerberosRealm(t *testing.T, clientInfo *connector.ClientInfo, resourc ok, err := common.HandleClientResponse(response, err, "CreateKerberosRealm", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -73,6 +76,7 @@ func deleteKerberosRealm(t *testing.T, clientInfo *connector.ClientInfo, resourc if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteKerberosRealm(): %v", ids) + return } @@ -82,10 +86,12 @@ func deleteKerberosRealm(t *testing.T, clientInfo *connector.ClientInfo, resourc ok, err := common.HandleClientResponse(response, err, "DeleteKerberosRealm", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect_additional_key_set.go b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect_additional_key_set.go index 9d569822..d15f7519 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect_additional_key_set.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_oauth_openid_connect_additional_key_set.go @@ -34,6 +34,7 @@ func createKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo * if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createKeypairsOauthOpenidConnectAdditionalKeySet(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testOauthIssuerId := strArgs[0] @@ -61,10 +62,12 @@ func createKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo * ok, err := common.HandleClientResponse(response, err, "CreateKeySet", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -84,6 +87,7 @@ func deleteKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo * if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteKeypairsOauthOpenidConnectAdditionalKeySet(): %v", ids) + return } @@ -93,10 +97,12 @@ func deleteKeypairsOauthOpenidConnectAdditionalKeySet(t *testing.T, clientInfo * ok, err := common.HandleClientResponse(response, err, "DeleteKeySet", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key.go b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key.go index 63478661..748d8cc7 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key.go @@ -31,6 +31,7 @@ func createKeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo, re if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createIdpAdapter(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -54,10 +55,12 @@ func createKeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo, re ok, err := common.HandleClientResponse(response, err, "CreateKeyPair", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -78,6 +81,7 @@ func deleteKeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo, re if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteKeypairsSigningKey(): %v", ids) + return } @@ -87,10 +91,12 @@ func deleteKeypairsSigningKey(t *testing.T, clientInfo *connector.ClientInfo, re ok, err := common.HandleClientResponse(response, err, "DeleteSigningKeyPair", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key_rotation_settings.go b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key_rotation_settings.go index cd12a0c5..7b3c3a8d 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key_rotation_settings.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/keypairs_signing_key_rotation_settings.go @@ -33,6 +33,7 @@ func createKeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connecto if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createKeypairsSigningKeyRotationSettings(): %v", strArgs) + return testutils_resource.ResourceInfo{} } keyPairId := strArgs[0] @@ -50,10 +51,12 @@ func createKeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connecto ok, err := common.HandleClientResponse(response, err, "UpdateRotationSettings", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -73,6 +76,7 @@ func deleteKeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connecto if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteKeypairsSigningKeyRotationSettings(): %v", ids) + return } @@ -82,10 +86,12 @@ func deleteKeypairsSigningKeyRotationSettings(t *testing.T, clientInfo *connecto ok, err := common.HandleClientResponse(response, err, "DeleteKeyPairRotationSettings", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/local_identity_profile.go b/internal/testing/testutils_resource/pingfederate_testable_resources/local_identity_profile.go index efab4e94..32c7649f 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/local_identity_profile.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/local_identity_profile.go @@ -33,6 +33,7 @@ func createLocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo, if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createLocalIdentityProfile(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testApcId := strArgs[0] @@ -52,10 +53,12 @@ func createLocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo, ok, err := common.HandleClientResponse(response, err, "CreateIdentityProfile", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -75,6 +78,7 @@ func deleteLocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo, if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteLocalIdentityProfile(): %v", ids) + return } @@ -84,10 +88,12 @@ func deleteLocalIdentityProfile(t *testing.T, clientInfo *connector.ClientInfo, ok, err := common.HandleClientResponse(response, err, "DeleteIdentityProfile", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/metadata_url.go b/internal/testing/testutils_resource/pingfederate_testable_resources/metadata_url.go index 3b2b703c..39f34ab3 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/metadata_url.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/metadata_url.go @@ -31,6 +31,7 @@ func createMetadataUrl(t *testing.T, clientInfo *connector.ClientInfo, resourceT if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createMetadataUrl(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -47,10 +48,12 @@ func createMetadataUrl(t *testing.T, clientInfo *connector.ClientInfo, resourceT ok, err := common.HandleClientResponse(response, err, "AddMetadataUrl", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -70,6 +73,7 @@ func deleteMetadataUrl(t *testing.T, clientInfo *connector.ClientInfo, resourceT if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteMetadataUrl(): %v", ids) + return } @@ -79,10 +83,12 @@ func deleteMetadataUrl(t *testing.T, clientInfo *connector.ClientInfo, resourceT ok, err := common.HandleClientResponse(response, err, "DeleteMetadataUrl", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher.go b/internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher.go index 5274e45d..8478712d 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/notification_publisher.go @@ -31,6 +31,7 @@ func createNotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo, if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createNotificationPublisher(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -61,10 +62,12 @@ func createNotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo, ok, err := common.HandleClientResponse(response, err, "CreateNotificationPublisher", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -84,6 +87,7 @@ func deleteNotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo, if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteNotificationPublisher(): %v", ids) + return } @@ -93,10 +97,12 @@ func deleteNotificationPublisher(t *testing.T, clientInfo *connector.ClientInfo, ok, err := common.HandleClientResponse(response, err, "DeleteNotificationPublisher", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager.go index cc8191d1..8286e0e0 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_manager.go @@ -33,6 +33,7 @@ func createOauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInf if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createOauthAccessTokenManager(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testKeyPairId := strArgs[0] @@ -92,10 +93,12 @@ func createOauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInf ok, err := common.HandleClientResponse(response, err, "CreateTokenManager", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -115,6 +118,7 @@ func deleteOauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInf if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteOauthAccessTokenManager(): %v", ids) + return } @@ -124,10 +128,12 @@ func deleteOauthAccessTokenManager(t *testing.T, clientInfo *connector.ClientInf ok, err := common.HandleClientResponse(response, err, "DeleteTokenManager", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go index b787b7dc..438dc896 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_access_token_mapping.go @@ -33,6 +33,7 @@ func createOauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInf if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createOauthAccessTokenMapping(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testTokenManagerId := strArgs[1] @@ -61,10 +62,12 @@ func createOauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInf ok, err := common.HandleClientResponse(response, err, "CreateMapping", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -84,6 +87,7 @@ func deleteOauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInf if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteOauthAccessTokenMapping(): %v", ids) + return } @@ -93,10 +97,12 @@ func deleteOauthAccessTokenMapping(t *testing.T, clientInfo *connector.ClientInf ok, err := common.HandleClientResponse(response, err, "DeleteMapping", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_authentication_policy_contract_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_authentication_policy_contract_mapping.go index 758515f2..136a6267 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_authentication_policy_contract_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_authentication_policy_contract_mapping.go @@ -32,6 +32,7 @@ func createOauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *co if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createOauthAuthenticationPolicyContractMapping(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testApcId := strArgs[0] @@ -62,10 +63,12 @@ func createOauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *co ok, err := common.HandleClientResponse(response, err, "CreateApcMapping", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -84,6 +87,7 @@ func deleteOauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *co if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteOauthAuthenticationPolicyContractMapping(): %v", ids) + return } @@ -93,10 +97,12 @@ func deleteOauthAuthenticationPolicyContractMapping(t *testing.T, clientInfo *co ok, err := common.HandleClientResponse(response, err, "DeleteApcMapping", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_request_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_request_policy.go index 5e9b6803..d46dfba7 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_request_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_ciba_server_policy_request_policy.go @@ -33,6 +33,7 @@ func createOauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connecto if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createOauthCibaServerPolicyRequestPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testAuthenticatorId := strArgs[0] @@ -86,10 +87,12 @@ func createOauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connecto ok, err := common.HandleClientResponse(response, err, "CreateCibaServerPolicy", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -109,6 +112,7 @@ func deleteOauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connecto if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteOauthCibaServerPolicyRequestPolicy(): %v", ids) + return } @@ -118,10 +122,12 @@ func deleteOauthCibaServerPolicyRequestPolicy(t *testing.T, clientInfo *connecto ok, err := common.HandleClientResponse(response, err, "DeleteCibaServerPolicy", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client.go index 09ca9bd9..27caaa86 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client.go @@ -30,6 +30,7 @@ func createOauthClient(t *testing.T, clientInfo *connector.ClientInfo, resourceT if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createOauthClient(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -51,10 +52,12 @@ func createOauthClient(t *testing.T, clientInfo *connector.ClientInfo, resourceT ok, err := common.HandleClientResponse(response, err, "CreateOauthClient", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -74,6 +77,7 @@ func deleteOauthClient(t *testing.T, clientInfo *connector.ClientInfo, resourceT if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteOauthClient(): %v", ids) + return } @@ -83,10 +87,12 @@ func deleteOauthClient(t *testing.T, clientInfo *connector.ClientInfo, resourceT ok, err := common.HandleClientResponse(response, err, "DeleteOauthClient", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_registration_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_registration_policy.go index 86a39379..d2406346 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_registration_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_client_registration_policy.go @@ -30,6 +30,7 @@ func createOauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.Cli if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createOauthClientRegistrationPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -48,10 +49,12 @@ func createOauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.Cli ok, err := common.HandleClientResponse(response, err, "CreateDynamicClientRegistrationPolicy", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -71,6 +74,7 @@ func deleteOauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.Cli if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteOauthClientRegistrationPolicy(): %v", ids) + return } @@ -80,10 +84,12 @@ func deleteOauthClientRegistrationPolicy(t *testing.T, clientInfo *connector.Cli ok, err := common.HandleClientResponse(response, err, "DeleteDynamicClientRegistrationPolicy", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go index 9fb917ca..a1648359 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_idp_adapter_mapping.go @@ -32,6 +32,7 @@ func createOauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createOauthIdpAdapterMapping(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testIdpAdapterId := strArgs[1] @@ -62,10 +63,12 @@ func createOauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo ok, err := common.HandleClientResponse(response, err, "CreateIdpAdapterMapping", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -84,6 +87,7 @@ func deleteOauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteOauthIdpAdapterMapping(): %v", ids) + return } @@ -93,10 +97,12 @@ func deleteOauthIdpAdapterMapping(t *testing.T, clientInfo *connector.ClientInfo ok, err := common.HandleClientResponse(response, err, "DeleteIdpAdapterMapping", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_issuer.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_issuer.go index 6c668f83..1e8cdb7c 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_issuer.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_issuer.go @@ -31,6 +31,7 @@ func createOauthIssuer(t *testing.T, clientInfo *connector.ClientInfo, resourceT if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createOauthIssuer(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -47,10 +48,12 @@ func createOauthIssuer(t *testing.T, clientInfo *connector.ClientInfo, resourceT ok, err := common.HandleClientResponse(response, err, "AddOauthIssuer", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -70,6 +73,7 @@ func deleteOauthIssuer(t *testing.T, clientInfo *connector.ClientInfo, resourceT if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteOauthIssuer(): %v", ids) + return } @@ -79,10 +83,12 @@ func deleteOauthIssuer(t *testing.T, clientInfo *connector.ClientInfo, resourceT ok, err := common.HandleClientResponse(response, err, "DeleteOauthIssuer", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go index 82baf3e5..4fa524c1 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_processor_policy.go @@ -32,6 +32,7 @@ func createOauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createOauthTokenExchangeProcessorPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testTokenProcessorId := strArgs[1] @@ -71,10 +72,12 @@ func createOauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector ok, err := common.HandleClientResponse(response, err, "CreateOauthTokenExchangeProcessorPolicy", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -93,6 +96,7 @@ func deleteOauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteOauthTokenExchangeProcessorPolicy(): %v", ids) + return } @@ -102,10 +106,12 @@ func deleteOauthTokenExchangeProcessorPolicy(t *testing.T, clientInfo *connector ok, err := common.HandleClientResponse(response, err, "DeleteOauthTokenExchangeProcessorPolicy", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go index 7bac1b12..ac91142f 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/oauth_token_exchange_token_generator_mapping.go @@ -34,6 +34,7 @@ func createOauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *con if len(strArgs) != 5 { t.Errorf("Unexpected number of arguments provided to createOauthTokenExchangeTokenGeneratorMapping(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testProcessorPolicyId := strArgs[2] @@ -59,10 +60,12 @@ func createOauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *con ok, err := common.HandleClientResponse(response, err, "CreateTokenGeneratorMapping", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -83,6 +86,7 @@ func deleteOauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *con if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteOauthTokenExchangeTokenGeneratorMapping(): %v", ids) + return } @@ -92,10 +96,12 @@ func deleteOauthTokenExchangeTokenGeneratorMapping(t *testing.T, clientInfo *con ok, err := common.HandleClientResponse(response, err, "DeleteTokenGeneratorMappingById", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go index ee910d16..7ec31ea6 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/openid_connect_policy.go @@ -33,6 +33,7 @@ func createOpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo, r if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createOpenidConnectPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testAccessTokenManagerId := strArgs[1] @@ -69,10 +70,12 @@ func createOpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo, r ok, err := common.HandleClientResponse(response, err, "CreateOIDCPolicy", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -92,6 +95,7 @@ func deleteOpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo, r if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteOpenidConnectPolicy(): %v", ids) + return } @@ -101,10 +105,12 @@ func deleteOpenidConnectPolicy(t *testing.T, clientInfo *connector.ClientInfo, r ok, err := common.HandleClientResponse(response, err, "DeleteOIDCPolicy", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go b/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go index 6d673d9c..6c5e54a7 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/out_of_band_auth_plugins.go @@ -33,6 +33,7 @@ func createOutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo, if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createOutOfBandAuthPlugins(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testPingOneConnectionId := strArgs[0] @@ -72,10 +73,12 @@ func createOutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo, ok, err := common.HandleClientResponse(response, err, "CreateOOBAuthenticator", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -94,6 +97,7 @@ func deleteOutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo, if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteOutOfBandAuthPlugins(): %v", ids) + return } @@ -103,10 +107,12 @@ func deleteOutOfBandAuthPlugins(t *testing.T, clientInfo *connector.ClientInfo, ok, err := common.HandleClientResponse(response, err, "DeleteOOBAuthenticator", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go b/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go index 7a2e33b5..748b86fe 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go @@ -31,6 +31,7 @@ func createPasswordCredentialValidator(t *testing.T, clientInfo *connector.Clien if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createPasswordCredentialValidator(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -79,10 +80,12 @@ func createPasswordCredentialValidator(t *testing.T, clientInfo *connector.Clien ok, err := common.HandleClientResponse(response, err, "CreatePasswordCredentialValidator", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -102,6 +105,7 @@ func deletePasswordCredentialValidator(t *testing.T, clientInfo *connector.Clien if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deletePasswordCredentialValidator(): %v", ids) + return } @@ -111,10 +115,12 @@ func deletePasswordCredentialValidator(t *testing.T, clientInfo *connector.Clien ok, err := common.HandleClientResponse(response, err, "DeletePasswordCredentialValidator", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go b/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go index c49dcd8c..d8459609 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/pingone_connection.go @@ -34,6 +34,7 @@ func createPingoneConnection(t *testing.T, clientInfo *connector.ClientInfo, res if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createPingoneConnection(): %v", strArgs) + return testutils_resource.ResourceInfo{} } credential := strArgs[1] @@ -51,10 +52,12 @@ func createPingoneConnection(t *testing.T, clientInfo *connector.ClientInfo, res ok, err := common.HandleClientResponse(response, err, "CreatePingOneConnection", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -74,6 +77,7 @@ func deletePingoneConnection(t *testing.T, clientInfo *connector.ClientInfo, res if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deletePingoneConnection(): %v", ids) + return } @@ -83,10 +87,12 @@ func deletePingoneConnection(t *testing.T, clientInfo *connector.ClientInfo, res ok, err := common.HandleClientResponse(response, err, "DeletePingOneConnection", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/secret_manager.go b/internal/testing/testutils_resource/pingfederate_testable_resources/secret_manager.go index 4424b616..dbcdc801 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/secret_manager.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/secret_manager.go @@ -31,6 +31,7 @@ func createSecretManager(t *testing.T, clientInfo *connector.ClientInfo, resourc if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createSecretManager(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -57,10 +58,12 @@ func createSecretManager(t *testing.T, clientInfo *connector.ClientInfo, resourc ok, err := common.HandleClientResponse(response, err, "CreateSecretManager", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -80,6 +83,7 @@ func deleteSecretManager(t *testing.T, clientInfo *connector.ClientInfo, resourc if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteSecretManager(): %v", ids) + return } @@ -89,10 +93,12 @@ func deleteSecretManager(t *testing.T, clientInfo *connector.ClientInfo, resourc ok, err := common.HandleClientResponse(response, err, "DeleteSecretManager", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings_issuer_certificate.go b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings_issuer_certificate.go index c512605f..e10a5429 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings_issuer_certificate.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/server_settings_ws_trust_sts_settings_issuer_certificate.go @@ -37,6 +37,7 @@ func createServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clien fileData, err := testutils.CreateX509Certificate() if err != nil { t.Errorf("Failed to create test %s: %v", resourceType, err) + return testutils_resource.ResourceInfo{} } @@ -52,10 +53,12 @@ func createServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clien ok, err := common.HandleClientResponse(response, err, "ImportCertificate", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -76,6 +79,7 @@ func deleteServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clien if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteServerSettingsWsTrustStsSettingsIssuerCertificate(): %v", ids) + return } @@ -85,10 +89,12 @@ func deleteServerSettingsWsTrustStsSettingsIssuerCertificate(t *testing.T, clien ok, err := common.HandleClientResponse(response, err, "DeleteCertificate", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go b/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go index b7431033..ca5531dc 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/session_authentication_policy.go @@ -33,6 +33,7 @@ func createSessionAuthenticationPolicy(t *testing.T, clientInfo *connector.Clien if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createSessionAuthenticationPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testIdpAdapterId := strArgs[1] @@ -54,10 +55,12 @@ func createSessionAuthenticationPolicy(t *testing.T, clientInfo *connector.Clien ok, err := common.HandleClientResponse(response, err, "CreateSourcePolicy", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -78,6 +81,7 @@ func deleteSessionAuthenticationPolicy(t *testing.T, clientInfo *connector.Clien if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteSessionAuthenticationPolicy(): %v", ids) + return } @@ -87,10 +91,12 @@ func deleteSessionAuthenticationPolicy(t *testing.T, clientInfo *connector.Clien ok, err := common.HandleClientResponse(response, err, "DeleteSourcePolicy", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_adapter.go b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_adapter.go index 41c200e6..a3f23fd3 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_adapter.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_adapter.go @@ -31,6 +31,7 @@ func createSpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createSpAdapter(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -61,10 +62,12 @@ func createSpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp ok, err := common.HandleClientResponse(response, err, "CreateSpAdapter", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -84,6 +87,7 @@ func deleteSpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteSpAdapter(): %v", ids) + return } @@ -93,10 +97,12 @@ func deleteSpAdapter(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp ok, err := common.HandleClientResponse(response, err, "DeleteSpAdapter", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_authentication_policy_contract_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_authentication_policy_contract_mapping.go index c17f53ee..b80c971f 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_authentication_policy_contract_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_authentication_policy_contract_mapping.go @@ -34,6 +34,7 @@ func createSpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *conne if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createSpAuthenticationPolicyContractMapping(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testAPCId := strArgs[0] @@ -59,10 +60,12 @@ func createSpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *conne ok, err := common.HandleClientResponse(response, err, "CreateApcToSpAdapterMapping", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -83,6 +86,7 @@ func deleteSpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *conne if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteSpAuthenticationPolicyContractMapping(): %v", ids) + return } @@ -92,10 +96,12 @@ func deleteSpAuthenticationPolicyContractMapping(t *testing.T, clientInfo *conne ok, err := common.HandleClientResponse(response, err, "DeleteApcToSpAdapterMappingById", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_idp_connection.go b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_idp_connection.go index 9d2657c6..b9ebff8c 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_idp_connection.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_idp_connection.go @@ -37,6 +37,7 @@ func createSpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo, resou filedata, err := testutils.CreateX509Certificate() if err != nil { t.Errorf("Failed to create test %s: %v", resourceType, err) + return testutils_resource.ResourceInfo{} } @@ -80,10 +81,12 @@ func createSpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo, resou ok, err := common.HandleClientResponse(response, err, "CreateConnection", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -103,6 +106,7 @@ func deleteSpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo, resou if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteSpIdpConnection(): %v", ids) + return } @@ -112,10 +116,12 @@ func deleteSpIdpConnection(t *testing.T, clientInfo *connector.ClientInfo, resou ok, err := common.HandleClientResponse(response, err, "DeleteConnection", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_token_generator.go b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_token_generator.go index a5c33175..41283938 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/sp_token_generator.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/sp_token_generator.go @@ -32,6 +32,7 @@ func createSpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo, reso if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createSpTokenGenerator(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testSigningKeyPairId := strArgs[0] @@ -86,10 +87,12 @@ func createSpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo, reso ok, err := common.HandleClientResponse(response, err, "CreateTokenGenerator", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -108,6 +111,7 @@ func deleteSpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo, reso if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteSpTokenGenerator(): %v", ids) + return } @@ -117,10 +121,12 @@ func deleteSpTokenGenerator(t *testing.T, clientInfo *connector.ClientInfo, reso ok, err := common.HandleClientResponse(response, err, "DeleteTokenGenerator", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go b/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go index 0b1c5fce..006664c0 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/token_processor_to_token_generator_mapping.go @@ -34,6 +34,7 @@ func createTokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *conne if len(strArgs) != 4 { t.Errorf("Unexpected number of arguments provided to createTokenProcessorToTokenGeneratorMapping(): %v", strArgs) + return testutils_resource.ResourceInfo{} } testTokenProcessorId := strArgs[1] @@ -59,10 +60,12 @@ func createTokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *conne ok, err := common.HandleClientResponse(response, err, "CreateTokenToTokenMapping", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -83,6 +86,7 @@ func deleteTokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *conne if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteTokenProcessorToTokenGeneratorMapping(): %v", ids) + return } @@ -92,10 +96,12 @@ func deleteTokenProcessorToTokenGeneratorMapping(t *testing.T, clientInfo *conne ok, err := common.HandleClientResponse(response, err, "DeleteTokenToTokenMappingById", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource.go index f0ef202f..67726a77 100644 --- a/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource.go +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource.go @@ -33,6 +33,7 @@ func createApplicationResource(t *testing.T, clientInfo *connector.ClientInfo, r if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createApplicationResource(): %v", strArgs) + return testutils_resource.ResourceInfo{} } resourceId := strArgs[0] @@ -48,10 +49,12 @@ func createApplicationResource(t *testing.T, clientInfo *connector.ClientInfo, r ok, err := common.HandleClientResponse(response, err, "CreateApplicationResource", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -72,6 +75,7 @@ func deleteApplicationResource(t *testing.T, clientInfo *connector.ClientInfo, r if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteApplicationResource(): %v", ids) + return } @@ -81,10 +85,12 @@ func deleteApplicationResource(t *testing.T, clientInfo *connector.ClientInfo, r ok, err := common.HandleClientResponse(response, err, "DeleteApplicationResource", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource_permission.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource_permission.go index 9175416f..b7d0002c 100644 --- a/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource_permission.go +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/application_resource_permission.go @@ -34,6 +34,7 @@ func createApplicationResourcePermission(t *testing.T, clientInfo *connector.Cli if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createApplicationResourcePermission(): %v", strArgs) + return testutils_resource.ResourceInfo{} } applicationResourceId := strArgs[1] @@ -50,10 +51,12 @@ func createApplicationResourcePermission(t *testing.T, clientInfo *connector.Cli ok, err := common.HandleClientResponse(response, err, "CreateApplicationPermission", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -74,6 +77,7 @@ func deleteApplicationResourcePermission(t *testing.T, clientInfo *connector.Cli if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteApplicationResourcePermission(): %v", ids) + return } @@ -83,10 +87,12 @@ func deleteApplicationResourcePermission(t *testing.T, clientInfo *connector.Cli ok, err := common.HandleClientResponse(response, err, "DeleteApplicationPermission", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service.go index 1551abec..2a28c33c 100644 --- a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service.go +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service.go @@ -33,6 +33,7 @@ func createAuthorizeApiService(t *testing.T, clientInfo *connector.ClientInfo, r if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createAuthorizeApiService(): %v", strArgs) + return testutils_resource.ResourceInfo{} } resourceId := strArgs[0] @@ -58,10 +59,12 @@ func createAuthorizeApiService(t *testing.T, clientInfo *connector.ClientInfo, r ok, err := common.HandleClientResponse(response, err, "CreateAPIServer", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -81,6 +84,7 @@ func deleteAuthorizeApiService(t *testing.T, clientInfo *connector.ClientInfo, r if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteAuthorizeApiService(): %v", ids) + return } @@ -90,10 +94,12 @@ func deleteAuthorizeApiService(t *testing.T, clientInfo *connector.ClientInfo, r ok, err := common.HandleClientResponse(response, err, "DeleteAPIServer", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_deployment.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_deployment.go index 3499426c..d9707e2e 100644 --- a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_deployment.go +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_deployment.go @@ -31,6 +31,7 @@ func createAuthorizeApiServiceDeployment(t *testing.T, clientInfo *connector.Cli if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createAuthorizeApiServiceDeployment(): %v", strArgs) + return testutils_resource.ResourceInfo{} } authorizeApiServiceId := strArgs[1] @@ -42,6 +43,7 @@ func createAuthorizeApiServiceDeployment(t *testing.T, clientInfo *connector.Cli ok, err := common.HandleClientResponse(response, err, "CreateApplicationPermission", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { @@ -50,6 +52,7 @@ func createAuthorizeApiServiceDeployment(t *testing.T, clientInfo *connector.Cli } else { t.Errorf("Failed to execute PingOne client function") } + return testutils_resource.ResourceInfo{} } diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_operation.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_operation.go index 542bccbb..d0167775 100644 --- a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_operation.go +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_api_service_operation.go @@ -32,6 +32,7 @@ func createAuthorizeApiServiceOperation(t *testing.T, clientInfo *connector.Clie if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createAuthorizeApiServiceOperation(): %v", strArgs) + return testutils_resource.ResourceInfo{} } apiServerId := strArgs[1] @@ -57,10 +58,12 @@ func createAuthorizeApiServiceOperation(t *testing.T, clientInfo *connector.Clie ok, err := common.HandleClientResponse(response, err, "CreateAPIServerOperation", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -81,6 +84,7 @@ func deleteAuthorizeApiServiceOperation(t *testing.T, clientInfo *connector.Clie if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteAuthorizeApiServiceOperation(): %v", ids) + return } @@ -90,10 +94,12 @@ func deleteAuthorizeApiServiceOperation(t *testing.T, clientInfo *connector.Clie ok, err := common.HandleClientResponse(response, err, "DeleteAPIServerOperation", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role.go index bce0a00e..7aa8256b 100644 --- a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role.go +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role.go @@ -31,6 +31,7 @@ func createAuthorizeApplicationRole(t *testing.T, clientInfo *connector.ClientIn if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createAuthorizeApplicationRole(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -46,10 +47,12 @@ func createAuthorizeApplicationRole(t *testing.T, clientInfo *connector.ClientIn ok, err := common.HandleClientResponse(response, err, "CreateApplicationRoles", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -69,6 +72,7 @@ func deleteAuthorizeApplicationRole(t *testing.T, clientInfo *connector.ClientIn if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteAuthorizeApplicationRole(): %v", ids) + return } @@ -78,10 +82,12 @@ func deleteAuthorizeApplicationRole(t *testing.T, clientInfo *connector.ClientIn ok, err := common.HandleClientResponse(response, err, "DeleteApplicationRole", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role_permission.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role_permission.go index 15bc7985..4bacd2da 100644 --- a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role_permission.go +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_application_role_permission.go @@ -33,6 +33,7 @@ func createAuthorizeApplicationRolePermission(t *testing.T, clientInfo *connecto if len(strArgs) != 4 { t.Errorf("Unexpected number of arguments provided to createAuthorizeApplicationRolePermission(): %v", strArgs) + return testutils_resource.ResourceInfo{} } applicationRoleId := strArgs[0] @@ -49,10 +50,12 @@ func createAuthorizeApplicationRolePermission(t *testing.T, clientInfo *connecto ok, err := common.HandleClientResponse(response, err, "CreateApplicationRolePermission", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -73,6 +76,7 @@ func deleteAuthorizeApplicationRolePermission(t *testing.T, clientInfo *connecto if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteAuthorizeApplicationRolePermission(): %v", ids) + return } @@ -82,10 +86,12 @@ func deleteAuthorizeApplicationRolePermission(t *testing.T, clientInfo *connecto ok, err := common.HandleClientResponse(response, err, "DeleteApplicationRolePermission", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_decision_endpoint.go b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_decision_endpoint.go index fd8477e3..946b3326 100644 --- a/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_decision_endpoint.go +++ b/internal/testing/testutils_resource/pingone_authorize_testable_resources/authorize_decision_endpoint.go @@ -30,6 +30,7 @@ func createAuthorizeDecisionEndpoint(t *testing.T, clientInfo *connector.ClientI if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createAuthorizeDecisionEndpoint(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -46,10 +47,12 @@ func createAuthorizeDecisionEndpoint(t *testing.T, clientInfo *connector.ClientI ok, err := common.HandleClientResponse(response, err, "CreateDecisionEndpoint", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -69,6 +72,7 @@ func deleteAuthorizeDecisionEndpoint(t *testing.T, clientInfo *connector.ClientI if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteAuthorizeDecisionEndpoint(): %v", ids) + return } @@ -78,10 +82,12 @@ func deleteAuthorizeDecisionEndpoint(t *testing.T, clientInfo *connector.ClientI ok, err := common.HandleClientResponse(response, err, "DeleteDecisionEndpoint", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_application_push_credential.go b/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_application_push_credential.go index fc274225..bc0bc714 100644 --- a/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_application_push_credential.go +++ b/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_application_push_credential.go @@ -33,6 +33,7 @@ func createMfaApplicationPushCredential(t *testing.T, clientInfo *connector.Clie if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createMfaApplicationPushCredential(): %v", strArgs) + return testutils_resource.ResourceInfo{} } applicationId := strArgs[0] @@ -52,10 +53,12 @@ func createMfaApplicationPushCredential(t *testing.T, clientInfo *connector.Clie ok, err := common.HandleClientResponse(response, err, "CreateMFAPushCredential", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -76,6 +79,7 @@ func deleteMfaApplicationPushCredential(t *testing.T, clientInfo *connector.Clie if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteMfaApplicationPushCredential(): %v", ids) + return } @@ -85,10 +89,12 @@ func deleteMfaApplicationPushCredential(t *testing.T, clientInfo *connector.Clie ok, err := common.HandleClientResponse(response, err, "DeleteMFAPushCredential", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_device_policy.go b/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_device_policy.go index 1d9bc611..cc5aad28 100644 --- a/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_device_policy.go +++ b/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_device_policy.go @@ -31,6 +31,7 @@ func createMfaDevicePolicy(t *testing.T, clientInfo *connector.ClientInfo, resou if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createMfaDevicePolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -126,10 +127,12 @@ func createMfaDevicePolicy(t *testing.T, clientInfo *connector.ClientInfo, resou ok, err := common.HandleClientResponse(response, err, "CreateDeviceAuthenticationPolicies", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -149,6 +152,7 @@ func deleteMfaDevicePolicy(t *testing.T, clientInfo *connector.ClientInfo, resou if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteMfaDevicePolicy(): %v", ids) + return } @@ -158,10 +162,12 @@ func deleteMfaDevicePolicy(t *testing.T, clientInfo *connector.ClientInfo, resou ok, err := common.HandleClientResponse(response, err, "DeleteDeviceAuthenticationPolicy", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_fido2_policy.go b/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_fido2_policy.go index 38fe3059..853f2c59 100644 --- a/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_fido2_policy.go +++ b/internal/testing/testutils_resource/pingone_mfa_testable_resources/mfa_fido2_policy.go @@ -31,6 +31,7 @@ func createMfaFido2Policy(t *testing.T, clientInfo *connector.ClientInfo, resour if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createMfaFido2Policy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -84,10 +85,12 @@ func createMfaFido2Policy(t *testing.T, clientInfo *connector.ClientInfo, resour ok, err := common.HandleClientResponse(response, err, "CreateFIDO2Policy", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -107,6 +110,7 @@ func deleteMfaFido2Policy(t *testing.T, clientInfo *connector.ClientInfo, resour if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteMfaFido2Policy(): %v", ids) + return } @@ -116,10 +120,12 @@ func deleteMfaFido2Policy(t *testing.T, clientInfo *connector.ClientInfo, resour ok, err := common.HandleClientResponse(response, err, "DeleteFIDO2Policy", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement.go index b6b49838..e5fc2ed4 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement.go @@ -31,6 +31,7 @@ func createAgreement(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createAgreement(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -48,10 +49,12 @@ func createAgreement(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp ok, err := common.HandleClientResponse(response, err, "CreateAgreement", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -71,6 +74,7 @@ func deleteAgreement(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteAgreement(): %v", ids) + return } @@ -80,10 +84,12 @@ func deleteAgreement(t *testing.T, clientInfo *connector.ClientInfo, resourceTyp ok, err := common.HandleClientResponse(response, err, "DeleteAgreement", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_localization.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_localization.go index bc9a64f2..bce2000a 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_localization.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_localization.go @@ -32,6 +32,7 @@ func createAgreementLocalization(t *testing.T, clientInfo *connector.ClientInfo, if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createAgreementLocalization(): %v", strArgs) + return testutils_resource.ResourceInfo{} } agreementId := strArgs[0] @@ -49,10 +50,12 @@ func createAgreementLocalization(t *testing.T, clientInfo *connector.ClientInfo, ok, err := common.HandleClientResponse(response, err, "CreateAgreementLanguage", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -73,6 +76,7 @@ func deleteAgreementLocalization(t *testing.T, clientInfo *connector.ClientInfo, if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteAgreementLocalization(): %v", ids) + return } @@ -82,10 +86,12 @@ func deleteAgreementLocalization(t *testing.T, clientInfo *connector.ClientInfo, ok, err := common.HandleClientResponse(response, err, "DeleteAgreementLanguage", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_localization_revision.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_localization_revision.go index a229ad40..b086e752 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_localization_revision.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/agreement_localization_revision.go @@ -33,6 +33,7 @@ func createAgreementLocalizationRevision(t *testing.T, clientInfo *connector.Cli if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createAgreementLocalizationRevision(): %v", strArgs) + return testutils_resource.ResourceInfo{} } agreementId := strArgs[0] @@ -41,6 +42,7 @@ func createAgreementLocalizationRevision(t *testing.T, clientInfo *connector.Cli parsedTime, err := time.Parse(time.RFC3339, "2098-08-01T22:45:44.497Z") if err != nil { t.Errorf("Failed to parse time: %v", err) + return testutils_resource.ResourceInfo{} } @@ -58,10 +60,12 @@ func createAgreementLocalizationRevision(t *testing.T, clientInfo *connector.Cli ok, err := common.HandleClientResponse(response, err, "CreateAgreementLanguageRevision", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -82,6 +86,7 @@ func deleteAgreementLocalizationRevision(t *testing.T, clientInfo *connector.Cli if len(ids) != 3 { t.Errorf("Unexpected number of arguments provided to deleteAgreementLocalizationRevision(): %v", ids) + return } @@ -91,10 +96,12 @@ func deleteAgreementLocalizationRevision(t *testing.T, clientInfo *connector.Cli ok, err := common.HandleClientResponse(response, err, "DeleteAgreementLanguageRevision", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/alert_channel.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/alert_channel.go index 9d1c1f42..94214a8f 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/alert_channel.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/alert_channel.go @@ -30,6 +30,7 @@ func createAlertChannel(t *testing.T, clientInfo *connector.ClientInfo, resource if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createAlertChannel(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -55,10 +56,12 @@ func createAlertChannel(t *testing.T, clientInfo *connector.ClientInfo, resource ok, err := common.HandleClientResponse(response, err, "CreateAlertChannel", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -78,6 +81,7 @@ func deleteAlertChannel(t *testing.T, clientInfo *connector.ClientInfo, resource if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteAlertChannel(): %v", ids) + return } @@ -87,10 +91,12 @@ func deleteAlertChannel(t *testing.T, clientInfo *connector.ClientInfo, resource ok, err := common.HandleClientResponse(response, err, "DeleteAlertChannel", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/branding_theme.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/branding_theme.go index 242d13c4..6f3b1daa 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/branding_theme.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/branding_theme.go @@ -32,6 +32,7 @@ func createBrandingTheme(t *testing.T, clientInfo *connector.ClientInfo, resourc if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createBrandingTheme(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -40,12 +41,14 @@ func createBrandingTheme(t *testing.T, clientInfo *connector.ClientInfo, resourc newLogoId, err := uuid.GenerateUUID() if err != nil { t.Errorf("Failed to generate UUID: %v", err) + return testutils_resource.ResourceInfo{} } newImageId, err := uuid.GenerateUUID() if err != nil { t.Errorf("Failed to generate UUID: %v", err) + return testutils_resource.ResourceInfo{} } @@ -80,10 +83,12 @@ func createBrandingTheme(t *testing.T, clientInfo *connector.ClientInfo, resourc ok, err := common.HandleClientResponse(response, err, "CreateBrandingTheme", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -103,6 +108,7 @@ func deleteBrandingTheme(t *testing.T, clientInfo *connector.ClientInfo, resourc if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteBrandingTheme(): %v", ids) + return } @@ -112,10 +118,12 @@ func deleteBrandingTheme(t *testing.T, clientInfo *connector.ClientInfo, resourc ok, err := common.HandleClientResponse(response, err, "DeleteBrandingTheme", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/certificate.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/certificate.go index 0f789ac1..4f244686 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/certificate.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/certificate.go @@ -31,6 +31,7 @@ func createCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceT if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createCertificate(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -39,6 +40,7 @@ func createCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceT fileData, err := testutils.CreateX509Certificate() if err != nil { t.Errorf("Failed to create X509 certificate: %v", err) + return testutils_resource.ResourceInfo{} } @@ -49,10 +51,12 @@ func createCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceT ok, err := common.HandleClientResponse(response, err, "CreateCertificateFromFile", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -72,6 +76,7 @@ func deleteCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceT if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteCertificate(): %v", ids) + return } @@ -81,10 +86,12 @@ func deleteCertificate(t *testing.T, clientInfo *connector.ClientInfo, resourceT ok, err := common.HandleClientResponse(response, err, "DeleteCertificate", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/custom_domain.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/custom_domain.go index 2da58a47..23395d94 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/custom_domain.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/custom_domain.go @@ -30,6 +30,7 @@ func createCustomDomain(t *testing.T, clientInfo *connector.ClientInfo, resource if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createCustomDomain(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -44,10 +45,12 @@ func createCustomDomain(t *testing.T, clientInfo *connector.ClientInfo, resource ok, err := common.HandleClientResponse(response, err, "CreateDomain", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -67,6 +70,7 @@ func deleteCustomDomain(t *testing.T, clientInfo *connector.ClientInfo, resource if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteCustomDomain(): %v", ids) + return } @@ -76,10 +80,12 @@ func deleteCustomDomain(t *testing.T, clientInfo *connector.ClientInfo, resource ok, err := common.HandleClientResponse(response, err, "DeleteDomain", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/device_auth_application.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/device_auth_application.go index 59fc81bf..74629901 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/device_auth_application.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/device_auth_application.go @@ -28,6 +28,7 @@ func createDeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo, if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createPingOneDeviceAuthApplication(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -49,21 +50,25 @@ func createDeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo, ok, err := common.HandleClientResponse(response, err, "CreateApplication", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } if createApplication201Response == nil || createApplication201Response.ApplicationOIDC == nil { t.Errorf("Failed to create test %s: %v", resourceType, err) + return testutils_resource.ResourceInfo{} } appId, appIdOk := createApplication201Response.ApplicationOIDC.GetIdOk() if !appIdOk { t.Errorf("Failed to create test %s: %v", resourceType, err) + return testutils_resource.ResourceInfo{} } @@ -82,6 +87,7 @@ func deleteDeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo, if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteDeviceAuthApplication(): %v", ids) + return } @@ -89,10 +95,12 @@ func deleteDeviceAuthApplication(t *testing.T, clientInfo *connector.ClientInfo, ok, err := common.HandleClientResponse(response, err, "DeleteApplication", resourceType) if err != nil { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/form.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/form.go index ac6d2cd6..eaee8e76 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/form.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/form.go @@ -31,6 +31,7 @@ func createForm(t *testing.T, clientInfo *connector.ClientInfo, resourceType str if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createForm(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -59,10 +60,12 @@ func createForm(t *testing.T, clientInfo *connector.ClientInfo, resourceType str ok, err := common.HandleClientResponse(response, err, "CreateForm", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -82,6 +85,7 @@ func deleteForm(t *testing.T, clientInfo *connector.ClientInfo, resourceType str if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteForm(): %v", ids) + return } @@ -91,10 +95,12 @@ func deleteForm(t *testing.T, clientInfo *connector.ClientInfo, resourceType str ok, err := common.HandleClientResponse(response, err, "DeleteForm", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/forms_recaptcha_v2.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/forms_recaptcha_v2.go index f5354a8f..5f40b4df 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/forms_recaptcha_v2.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/forms_recaptcha_v2.go @@ -30,6 +30,7 @@ func createFormsRecaptchaV2(t *testing.T, clientInfo *connector.ClientInfo, reso if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createFormsRecaptchaV2(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -45,10 +46,12 @@ func createFormsRecaptchaV2(t *testing.T, clientInfo *connector.ClientInfo, reso ok, err := common.HandleClientResponse(response, err, "UpdateRecaptchaConfiguration", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -67,10 +70,12 @@ func deleteFormsRecaptchaV2(t *testing.T, clientInfo *connector.ClientInfo, reso ok, err := common.HandleClientResponse(response, err, "DeleteRecaptchaConfiguration", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway.go index c81beca5..fe2087a7 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway.go @@ -31,6 +31,7 @@ func createGateway(t *testing.T, clientInfo *connector.ClientInfo, resourceType if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createGateway(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -50,10 +51,12 @@ func createGateway(t *testing.T, clientInfo *connector.ClientInfo, resourceType ok, err := common.HandleClientResponse(response, err, "CreateGateway", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -73,6 +76,7 @@ func deleteGateway(t *testing.T, clientInfo *connector.ClientInfo, resourceType if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteGateway(): %v", ids) + return } @@ -82,10 +86,12 @@ func deleteGateway(t *testing.T, clientInfo *connector.ClientInfo, resourceType ok, err := common.HandleClientResponse(response, err, "DeleteGateway", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_credential.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_credential.go index e72b9897..93e97223 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_credential.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_credential.go @@ -31,6 +31,7 @@ func createGatewayCredential(t *testing.T, clientInfo *connector.ClientInfo, res if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createGatewayCredential(): %v", strArgs) + return testutils_resource.ResourceInfo{} } gatewayId := strArgs[0] @@ -41,10 +42,12 @@ func createGatewayCredential(t *testing.T, clientInfo *connector.ClientInfo, res ok, err := common.HandleClientResponse(response, err, "CreateGatewayCredential", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -65,6 +68,7 @@ func deleteGatewayCredential(t *testing.T, clientInfo *connector.ClientInfo, res if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteGatewayCredential(): %v", ids) + return } @@ -74,10 +78,12 @@ func deleteGatewayCredential(t *testing.T, clientInfo *connector.ClientInfo, res ok, err := common.HandleClientResponse(response, err, "DeleteGatewayCredential", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_role_assignment.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_role_assignment.go index 825136be..e3f6f847 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_role_assignment.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/gateway_role_assignment.go @@ -33,6 +33,7 @@ func createGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createGatewayRoleAssignment(): %v", strArgs) + return testutils_resource.ResourceInfo{} } gatewayId := strArgs[0] @@ -41,6 +42,7 @@ func createGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedRolesInner](iter, "ReadAllRoles", "GetRoles", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nError: %v", err) + return testutils_resource.ResourceInfo{} } if len(apiObjs) == 0 { @@ -57,6 +59,7 @@ func createGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, if role.Role.Name != nil && *role.Role.Name == management.ENUMROLENAME_APPLICATION_OWNER { roleId = *role.Role.Id roleName = string(*role.Role.Name) + break } } @@ -79,10 +82,12 @@ func createGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, ok, err := common.HandleClientResponse(response, err, "CreateGatewayRoleAssignment", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -103,6 +108,7 @@ func deleteGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteGatewayRoleAssignment(): %v", ids) + return } @@ -112,10 +118,12 @@ func deleteGatewayRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, ok, err := common.HandleClientResponse(response, err, "DeleteGatewayRoleAssignment", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/identity_propagation_plan.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/identity_propagation_plan.go index fa10d488..9e4ac0c3 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/identity_propagation_plan.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/identity_propagation_plan.go @@ -30,6 +30,7 @@ func createIdentityPropagationPlan(t *testing.T, clientInfo *connector.ClientInf if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createIdentityPropagationPlan(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -44,10 +45,12 @@ func createIdentityPropagationPlan(t *testing.T, clientInfo *connector.ClientInf ok, err := common.HandleClientResponse(response, err, "CreatePlan", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -67,6 +70,7 @@ func deleteIdentityPropagationPlan(t *testing.T, clientInfo *connector.ClientInf if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteIdentityPropagationPlan(): %v", ids) + return } @@ -76,10 +80,12 @@ func deleteIdentityPropagationPlan(t *testing.T, clientInfo *connector.ClientInf ok, err := common.HandleClientResponse(response, err, "DeletePlan", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/key.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/key.go index 697082fa..56d93ebd 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/key.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/key.go @@ -32,6 +32,7 @@ func createKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType stri if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createKey(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -55,10 +56,12 @@ func createKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType stri ok, err := common.HandleClientResponse(response, err, "CreateKey", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -79,6 +82,7 @@ func deleteKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType stri if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteKey(): %v", ids) + return } @@ -88,10 +92,12 @@ func deleteKey(t *testing.T, clientInfo *connector.ClientInfo, resourceType stri ok, err := common.HandleClientResponse(response, err, "DeleteKey", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/key_rotation_policy.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/key_rotation_policy.go index d4f8ef36..f11848cd 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/key_rotation_policy.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/key_rotation_policy.go @@ -31,6 +31,7 @@ func createKeyRotationPolicy(t *testing.T, clientInfo *connector.ClientInfo, res if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createKeyRotationPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -52,10 +53,12 @@ func createKeyRotationPolicy(t *testing.T, clientInfo *connector.ClientInfo, res ok, err := common.HandleClientResponse(response, err, "CreateKeyRotationPolicy", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -75,6 +78,7 @@ func deleteKeyRotationPolicy(t *testing.T, clientInfo *connector.ClientInfo, res if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteKeyRotationPolicy(): %v", ids) + return } @@ -84,10 +88,12 @@ func deleteKeyRotationPolicy(t *testing.T, clientInfo *connector.ClientInfo, res ok, err := common.HandleClientResponse(response, err, "DeleteKeyRotationPolicy", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/language.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/language.go index 026ecc85..e73f8350 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/language.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/language.go @@ -30,6 +30,7 @@ func createLanguage(t *testing.T, clientInfo *connector.ClientInfo, resourceType if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createLanguage(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -44,10 +45,12 @@ func createLanguage(t *testing.T, clientInfo *connector.ClientInfo, resourceType ok, err := common.HandleClientResponse(response, err, "CreateLanguage", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -64,10 +67,12 @@ func createLanguage(t *testing.T, clientInfo *connector.ClientInfo, resourceType ok, err = common.HandleClientResponse(response, err, "UpdateLanguage", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -87,6 +92,7 @@ func deleteLanguage(t *testing.T, clientInfo *connector.ClientInfo, resourceType if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteLanguage(): %v", ids) + return } @@ -96,10 +102,12 @@ func deleteLanguage(t *testing.T, clientInfo *connector.ClientInfo, resourceType ok, err := common.HandleClientResponse(response, err, "DeleteLanguage", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/notification_policy.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/notification_policy.go index fc5656ca..77056de7 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/notification_policy.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/notification_policy.go @@ -31,6 +31,7 @@ func createNotificationPolicy(t *testing.T, clientInfo *connector.ClientInfo, re if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createNotificationPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -67,10 +68,12 @@ func createNotificationPolicy(t *testing.T, clientInfo *connector.ClientInfo, re ok, err := common.HandleClientResponse(response, err, "CreateNotificationsPolicy", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -90,6 +93,7 @@ func deleteNotificationPolicy(t *testing.T, clientInfo *connector.ClientInfo, re if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteNotificationPolicy(): %v", ids) + return } @@ -99,10 +103,12 @@ func deleteNotificationPolicy(t *testing.T, clientInfo *connector.ClientInfo, re ok, err := common.HandleClientResponse(response, err, "DeleteNotificationsPolicy", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/notification_template_content.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/notification_template_content.go index b4e81329..ae6ba871 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/notification_template_content.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/notification_template_content.go @@ -31,6 +31,7 @@ func createNotificationTemplateContent(t *testing.T, clientInfo *connector.Clien if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createNotificationTemplateContent(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -51,10 +52,12 @@ func createNotificationTemplateContent(t *testing.T, clientInfo *connector.Clien ok, err := common.HandleClientResponse(response, err, "CreateContent", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -77,6 +80,7 @@ func deleteNotificationTemplateContent(t *testing.T, clientInfo *connector.Clien if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteNotificationTemplateContent(): %v", ids) + return } @@ -86,10 +90,12 @@ func deleteNotificationTemplateContent(t *testing.T, clientInfo *connector.Clien ok, err := common.HandleClientResponse(response, err, "DeleteContent", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/phone_delivery_settings.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/phone_delivery_settings.go index 0af0b102..8c1d8910 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/phone_delivery_settings.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/phone_delivery_settings.go @@ -31,6 +31,7 @@ func createPhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo, if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createPhoneDeliverySettings(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -101,10 +102,12 @@ func createPhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo, ok, err := common.HandleClientResponse(response, err, "CreatePhoneDeliverySettings", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -124,6 +127,7 @@ func deletePhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo, if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deletePhoneDeliverySettings(): %v", ids) + return } @@ -133,10 +137,12 @@ func deletePhoneDeliverySettings(t *testing.T, clientInfo *connector.ClientInfo, ok, err := common.HandleClientResponse(response, err, "DeletePhoneDeliverySettings", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/trusted_email_address.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/trusted_email_address.go index 89b01780..397a4e04 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/trusted_email_address.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/trusted_email_address.go @@ -32,6 +32,7 @@ func createTrustedEmailAddress(t *testing.T, clientInfo *connector.ClientInfo, r if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createTrustedEmailAddress(): %v", strArgs) + return testutils_resource.ResourceInfo{} } trustedEmailDomainId := strArgs[0] @@ -47,10 +48,12 @@ func createTrustedEmailAddress(t *testing.T, clientInfo *connector.ClientInfo, r ok, err := common.HandleClientResponse(response, err, "CreateTrustedEmailAddress", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -71,6 +74,7 @@ func deleteTrustedEmailAddress(t *testing.T, clientInfo *connector.ClientInfo, r if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteTrustedEmailAddress(): %v", ids) + return } @@ -80,10 +84,12 @@ func deleteTrustedEmailAddress(t *testing.T, clientInfo *connector.ClientInfo, r ok, err := common.HandleClientResponse(response, err, "DeleteTrustedEmailAddress", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/trusted_email_domain.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/trusted_email_domain.go index 80ca1f8d..dfad4ab7 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/trusted_email_domain.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/trusted_email_domain.go @@ -30,6 +30,7 @@ func createTrustedEmailDomain(t *testing.T, clientInfo *connector.ClientInfo, re if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createTrustedEmailDomain(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -44,10 +45,12 @@ func createTrustedEmailDomain(t *testing.T, clientInfo *connector.ClientInfo, re ok, err := common.HandleClientResponse(response, err, "CreateTrustedEmailDomain", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -67,6 +70,7 @@ func deleteTrustedEmailDomain(t *testing.T, clientInfo *connector.ClientInfo, re if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteTrustedEmailDomain(): %v", ids) + return } @@ -76,10 +80,12 @@ func deleteTrustedEmailDomain(t *testing.T, clientInfo *connector.ClientInfo, re ok, err := common.HandleClientResponse(response, err, "DeleteTrustedEmailDomain", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_platform_testable_resources/webhook.go b/internal/testing/testutils_resource/pingone_platform_testable_resources/webhook.go index 23a61599..05af511c 100644 --- a/internal/testing/testutils_resource/pingone_platform_testable_resources/webhook.go +++ b/internal/testing/testutils_resource/pingone_platform_testable_resources/webhook.go @@ -30,6 +30,7 @@ func createWebhook(t *testing.T, clientInfo *connector.ClientInfo, resourceType if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createWebhook(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -59,10 +60,12 @@ func createWebhook(t *testing.T, clientInfo *connector.ClientInfo, resourceType ok, err := common.HandleClientResponse(response, err, "CreateSubscription", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -82,6 +85,7 @@ func deleteWebhook(t *testing.T, clientInfo *connector.ClientInfo, resourceType if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteWebhook(): %v", ids) + return } @@ -91,10 +95,12 @@ func deleteWebhook(t *testing.T, clientInfo *connector.ClientInfo, resourceType ok, err := common.HandleClientResponse(response, err, "DeleteSubscription", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_protect_testable_resources/risk_policy.go b/internal/testing/testutils_resource/pingone_protect_testable_resources/risk_policy.go index cd333c52..3d58b3c7 100644 --- a/internal/testing/testutils_resource/pingone_protect_testable_resources/risk_policy.go +++ b/internal/testing/testutils_resource/pingone_protect_testable_resources/risk_policy.go @@ -31,6 +31,7 @@ func createRiskPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceTy if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createRiskPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -75,10 +76,12 @@ func createRiskPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceTy ok, err := common.HandleClientResponse(response, err, "CreateRiskPolicySet", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -98,6 +101,7 @@ func deleteRiskPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceTy if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteRiskPolicy(): %v", ids) + return } @@ -107,10 +111,12 @@ func deleteRiskPolicy(t *testing.T, clientInfo *connector.ClientInfo, resourceTy ok, err := common.HandleClientResponse(response, err, "DeleteRiskPolicySet", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_protect_testable_resources/risk_predictor.go b/internal/testing/testutils_resource/pingone_protect_testable_resources/risk_predictor.go index 58603b9f..699082f3 100644 --- a/internal/testing/testutils_resource/pingone_protect_testable_resources/risk_predictor.go +++ b/internal/testing/testutils_resource/pingone_protect_testable_resources/risk_predictor.go @@ -31,6 +31,7 @@ func createRiskPredictor(t *testing.T, clientInfo *connector.ClientInfo, resourc if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createRiskPredictor(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -74,10 +75,12 @@ func createRiskPredictor(t *testing.T, clientInfo *connector.ClientInfo, resourc ok, err := common.HandleClientResponse(response, err, "CreateRiskPredictor", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -98,6 +101,7 @@ func deleteRiskPredictor(t *testing.T, clientInfo *connector.ClientInfo, resourc if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteRiskPredictor(): %v", ids) + return } @@ -107,10 +111,12 @@ func deleteRiskPredictor(t *testing.T, clientInfo *connector.ClientInfo, resourc ok, err := common.HandleClientResponse(response, err, "DeleteRiskAdvancedPredictor", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/application_attribute_mapping.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_attribute_mapping.go index 8f852d06..0637dd18 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/application_attribute_mapping.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_attribute_mapping.go @@ -32,6 +32,7 @@ func createApplicationAttributeMapping(t *testing.T, clientInfo *connector.Clien if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createApplicationAttributeMapping(): %v", strArgs) + return testutils_resource.ResourceInfo{} } applicationId := strArgs[0] @@ -49,10 +50,12 @@ func createApplicationAttributeMapping(t *testing.T, clientInfo *connector.Clien ok, err := common.HandleClientResponse(response, err, "CreateApplicationAttributeMapping", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -73,6 +76,7 @@ func deleteApplicationAttributeMapping(t *testing.T, clientInfo *connector.Clien if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteApplicationAttributeMapping(): %v", ids) + return } @@ -82,10 +86,12 @@ func deleteApplicationAttributeMapping(t *testing.T, clientInfo *connector.Clien ok, err := common.HandleClientResponse(response, err, "DeleteApplicationAttributeMapping", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/application_device_authorization.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_device_authorization.go index 816dc2cc..3e631585 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/application_device_authorization.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_device_authorization.go @@ -31,6 +31,7 @@ func createApplicationDeviceAuthorization(t *testing.T, clientInfo *connector.Cl if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createApplicationDeviceAuthorization(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -38,6 +39,7 @@ func createApplicationDeviceAuthorization(t *testing.T, clientInfo *connector.Cl applicationName, err := uuid.GenerateUUID() if err != nil { t.Errorf("Failed to generate UUID for application name: %v", err) + return testutils_resource.ResourceInfo{} } @@ -62,10 +64,12 @@ func createApplicationDeviceAuthorization(t *testing.T, clientInfo *connector.Cl ok, err := common.HandleClientResponse(response, err, "CreateApplication", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -85,6 +89,7 @@ func deleteApplicationDeviceAuthorization(t *testing.T, clientInfo *connector.Cl if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteApplicationDeviceAuthorization(): %v", ids) + return } @@ -94,10 +99,12 @@ func deleteApplicationDeviceAuthorization(t *testing.T, clientInfo *connector.Cl ok, err := common.HandleClientResponse(response, err, "DeleteApplication", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/application_flow_policy_assignment.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_flow_policy_assignment.go index 90d49435..de25132c 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/application_flow_policy_assignment.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_flow_policy_assignment.go @@ -33,6 +33,7 @@ func createApplicationFlowPolicyAssignment(t *testing.T, clientInfo *connector.C if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createApplicationFlowPolicyAssignment(): %v", strArgs) + return testutils_resource.ResourceInfo{} } applicationId := strArgs[0] @@ -41,11 +42,13 @@ func createApplicationFlowPolicyAssignment(t *testing.T, clientInfo *connector.C flowPolicies, err := pingone.GetManagementAPIObjectsFromIterator[management.FlowPolicy](iter, "ReadAllFlowPolicies", "GetFlowPolicies", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nError: %v", err) + return testutils_resource.ResourceInfo{} } if len(flowPolicies) == 0 { t.Errorf("No flow policies found") + return testutils_resource.ResourceInfo{} } @@ -63,10 +66,12 @@ func createApplicationFlowPolicyAssignment(t *testing.T, clientInfo *connector.C ok, err := common.HandleClientResponse(response, err, "CreateFlowPolicyAssignment", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -75,10 +80,12 @@ func createApplicationFlowPolicyAssignment(t *testing.T, clientInfo *connector.C ok, err = common.HandleClientResponse(response, err, "ReadOneFlowPolicy", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -99,6 +106,7 @@ func deleteApplicationFlowPolicyAssignment(t *testing.T, clientInfo *connector.C if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteApplicationFlowPolicyAssignment(): %v", ids) + return } @@ -108,10 +116,12 @@ func deleteApplicationFlowPolicyAssignment(t *testing.T, clientInfo *connector.C ok, err := common.HandleClientResponse(response, err, "DeleteFlowPolicyAssignment", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/application_native.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_native.go index 97908d12..769317fa 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/application_native.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_native.go @@ -32,6 +32,7 @@ func createApplicationNative(t *testing.T, clientInfo *connector.ClientInfo, res if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createApplicationNative(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -39,6 +40,7 @@ func createApplicationNative(t *testing.T, clientInfo *connector.ClientInfo, res applicationName, err := uuid.GenerateUUID() if err != nil { t.Errorf("Failed to generate UUID for application name: %v", err) + return testutils_resource.ResourceInfo{} } @@ -80,10 +82,12 @@ func createApplicationNative(t *testing.T, clientInfo *connector.ClientInfo, res ok, err := common.HandleClientResponse(response, err, "CreateApplication", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -103,6 +107,7 @@ func deleteApplicationNative(t *testing.T, clientInfo *connector.ClientInfo, res if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteApplicationNative(): %v", ids) + return } @@ -112,10 +117,12 @@ func deleteApplicationNative(t *testing.T, clientInfo *connector.ClientInfo, res ok, err := common.HandleClientResponse(response, err, "DeleteApplication", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/application_resource_grant.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_resource_grant.go index c03ce03d..21fdcde1 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/application_resource_grant.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_resource_grant.go @@ -33,6 +33,7 @@ func createApplicationResourceGrant(t *testing.T, clientInfo *connector.ClientIn if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createApplicationResourceGrant(): %v", strArgs) + return testutils_resource.ResourceInfo{} } applicationId := strArgs[0] @@ -48,10 +49,12 @@ func createApplicationResourceGrant(t *testing.T, clientInfo *connector.ClientIn ok, err := common.HandleClientResponse(response, err, "CreateResourceScope", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -73,10 +76,12 @@ func createApplicationResourceGrant(t *testing.T, clientInfo *connector.ClientIn ok, err = common.HandleClientResponse(response, err, "CreateApplicationGrant", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -84,10 +89,12 @@ func createApplicationResourceGrant(t *testing.T, clientInfo *connector.ClientIn ok, err = common.HandleClientResponse(resResponse, resErr, "ReadOneResource", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", resResponse.Status, resResponse.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", resResponse.Status, resResponse.Body) + return testutils_resource.ResourceInfo{} } @@ -108,6 +115,7 @@ func deleteApplicationResourceGrant(t *testing.T, clientInfo *connector.ClientIn if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteApplicationResourceGrant(): %v", ids) + return } @@ -117,10 +125,12 @@ func deleteApplicationResourceGrant(t *testing.T, clientInfo *connector.ClientIn ok, err := common.HandleClientResponse(response, err, "DeleteApplicationGrant", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/application_role_assignment.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_role_assignment.go index 57dcb8cb..3863e6e4 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/application_role_assignment.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_role_assignment.go @@ -33,6 +33,7 @@ func createApplicationRoleAssignment(t *testing.T, clientInfo *connector.ClientI if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createApplicationRoleAssignment(): %v", strArgs) + return testutils_resource.ResourceInfo{} } applicationId := strArgs[0] @@ -41,6 +42,7 @@ func createApplicationRoleAssignment(t *testing.T, clientInfo *connector.ClientI apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedRolesInner](iter, "ReadAllRoles", "GetRoles", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nError: %v", err) + return testutils_resource.ResourceInfo{} } if len(apiObjs) == 0 { @@ -57,6 +59,7 @@ func createApplicationRoleAssignment(t *testing.T, clientInfo *connector.ClientI if role.Role.Name != nil && *role.Role.Name == management.ENUMROLENAME_APPLICATION_OWNER { roleId = *role.Role.Id roleName = string(*role.Role.Name) + break } } @@ -79,10 +82,12 @@ func createApplicationRoleAssignment(t *testing.T, clientInfo *connector.ClientI ok, err := common.HandleClientResponse(response, err, "CreateApplicationRoleAssignment", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -103,6 +108,7 @@ func deleteApplicationRoleAssignment(t *testing.T, clientInfo *connector.ClientI if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteApplicationRoleAssignment(): %v", ids) + return } @@ -112,10 +118,12 @@ func deleteApplicationRoleAssignment(t *testing.T, clientInfo *connector.ClientI ok, err := common.HandleClientResponse(response, err, "DeleteApplicationRoleAssignment", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/application_sign_on_policy_assignment.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_sign_on_policy_assignment.go index 40fd6111..0217c6e9 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/application_sign_on_policy_assignment.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_sign_on_policy_assignment.go @@ -33,6 +33,7 @@ func createApplicationSignOnPolicyAssignment(t *testing.T, clientInfo *connector if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createApplicationSignOnPolicyAssignment(): %v", strArgs) + return testutils_resource.ResourceInfo{} } applicationId := strArgs[0] @@ -52,10 +53,12 @@ func createApplicationSignOnPolicyAssignment(t *testing.T, clientInfo *connector ok, err := common.HandleClientResponse(response, err, "CreateSignOnPolicyAssignment", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -63,10 +66,12 @@ func createApplicationSignOnPolicyAssignment(t *testing.T, clientInfo *connector ok, err = common.HandleClientResponse(response, err, "ReadOneSignOnPolicy", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -87,6 +92,7 @@ func deleteApplicationSignOnPolicyAssignment(t *testing.T, clientInfo *connector if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteApplicationSignOnPolicyAssignment(): %v", ids) + return } @@ -96,10 +102,12 @@ func deleteApplicationSignOnPolicyAssignment(t *testing.T, clientInfo *connector ok, err := common.HandleClientResponse(response, err, "DeleteSignOnPolicyAssignment", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/application_worker.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_worker.go index 482744a8..a3fc58fc 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/application_worker.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/application_worker.go @@ -32,6 +32,7 @@ func createApplicationWorker(t *testing.T, clientInfo *connector.ClientInfo, res if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createApplicationWorker(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -39,6 +40,7 @@ func createApplicationWorker(t *testing.T, clientInfo *connector.ClientInfo, res applicationName, err := uuid.GenerateUUID() if err != nil { t.Errorf("Failed to generate UUID for application name: %v", err) + return testutils_resource.ResourceInfo{} } @@ -64,10 +66,12 @@ func createApplicationWorker(t *testing.T, clientInfo *connector.ClientInfo, res ok, err := common.HandleClientResponse(response, err, "CreateApplication", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -87,6 +91,7 @@ func deleteApplicationWorker(t *testing.T, clientInfo *connector.ClientInfo, res if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteApplicationWorker(): %v", ids) + return } @@ -96,10 +101,12 @@ func deleteApplicationWorker(t *testing.T, clientInfo *connector.ClientInfo, res ok, err := common.HandleClientResponse(response, err, "DeleteApplication", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/group.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/group.go index c126166b..c10d19aa 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/group.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/group.go @@ -32,6 +32,7 @@ func createGroup(t *testing.T, clientInfo *connector.ClientInfo, resourceType st if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createGroup(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -39,6 +40,7 @@ func createGroup(t *testing.T, clientInfo *connector.ClientInfo, resourceType st groupName, err := uuid.GenerateUUID() if err != nil { t.Errorf("Failed to generate UUID for group name: %v", err) + return testutils_resource.ResourceInfo{} } @@ -58,10 +60,12 @@ func createGroup(t *testing.T, clientInfo *connector.ClientInfo, resourceType st ok, err := common.HandleClientResponse(response, err, "CreateGroup", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -81,6 +85,7 @@ func deleteGroup(t *testing.T, clientInfo *connector.ClientInfo, resourceType st if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteGroup(): %v", ids) + return } @@ -90,10 +95,12 @@ func deleteGroup(t *testing.T, clientInfo *connector.ClientInfo, resourceType st ok, err := common.HandleClientResponse(response, err, "DeleteGroup", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/group_nesting.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/group_nesting.go index 3248bdf8..88c058dc 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/group_nesting.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/group_nesting.go @@ -33,6 +33,7 @@ func createGroupNesting(t *testing.T, clientInfo *connector.ClientInfo, resource if len(strArgs) != 2 { t.Errorf("Unexpected number of arguments provided to createGroupNesting(): %v", strArgs) + return testutils_resource.ResourceInfo{} } groupId := strArgs[0] @@ -49,10 +50,12 @@ func createGroupNesting(t *testing.T, clientInfo *connector.ClientInfo, resource ok, err := common.HandleClientResponse(response, err, "CreateGroupNesting", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -60,10 +63,12 @@ func createGroupNesting(t *testing.T, clientInfo *connector.ClientInfo, resource ok, err = common.HandleClientResponse(response, err, "ReadOneGroup", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -84,6 +89,7 @@ func deleteGroupNesting(t *testing.T, clientInfo *connector.ClientInfo, resource if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteGroupNesting(): %v", ids) + return } @@ -93,10 +99,12 @@ func deleteGroupNesting(t *testing.T, clientInfo *connector.ClientInfo, resource ok, err := common.HandleClientResponse(response, err, "DeleteGroupNesting", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/group_role_assignment.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/group_role_assignment.go index 94551ad0..09519302 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/group_role_assignment.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/group_role_assignment.go @@ -33,6 +33,7 @@ func createGroupRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, r if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createGroupRoleAssignment(): %v", strArgs) + return testutils_resource.ResourceInfo{} } groupId := strArgs[0] @@ -41,6 +42,7 @@ func createGroupRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, r apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedRolesInner](iter, "ReadAllRoles", "GetRoles", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nError: %v", err) + return testutils_resource.ResourceInfo{} } if len(apiObjs) == 0 { @@ -57,6 +59,7 @@ func createGroupRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, r if role.Role.Name != nil && *role.Role.Name == management.ENUMROLENAME_APPLICATION_OWNER { roleId = *role.Role.Id roleName = string(*role.Role.Name) + break } } @@ -79,10 +82,12 @@ func createGroupRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, r ok, err := common.HandleClientResponse(response, err, "CreateGroupRoleAssignment", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -103,6 +108,7 @@ func deleteGroupRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, r if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteGroupRoleAssignment(): %v", ids) + return } @@ -112,10 +118,12 @@ func deleteGroupRoleAssignment(t *testing.T, clientInfo *connector.ClientInfo, r ok, err := common.HandleClientResponse(response, err, "DeleteGroupRoleAssignment", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/identity_provider.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/identity_provider.go index b18e5900..17f638a5 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/identity_provider.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/identity_provider.go @@ -31,6 +31,7 @@ func createIdentityProvider(t *testing.T, clientInfo *connector.ClientInfo, reso if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createIdentityProvider(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -60,10 +61,12 @@ func createIdentityProvider(t *testing.T, clientInfo *connector.ClientInfo, reso ok, err := common.HandleClientResponse(response, err, "CreateIdentityProvider", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -83,6 +86,7 @@ func deleteIdentityProvider(t *testing.T, clientInfo *connector.ClientInfo, reso if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteIdentityProvider(): %v", ids) + return } @@ -92,10 +96,12 @@ func deleteIdentityProvider(t *testing.T, clientInfo *connector.ClientInfo, reso ok, err := common.HandleClientResponse(response, err, "DeleteIdentityProvider", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/identity_provider_attribute.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/identity_provider_attribute.go index 2fa67a1d..ac3eeecb 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/identity_provider_attribute.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/identity_provider_attribute.go @@ -32,6 +32,7 @@ func createIdentityProviderAttribute(t *testing.T, clientInfo *connector.ClientI if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createIdentityProviderAttribute(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -50,10 +51,12 @@ func createIdentityProviderAttribute(t *testing.T, clientInfo *connector.ClientI ok, err := common.HandleClientResponse(response, err, "CreateIdentityProviderAttribute", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -74,6 +77,7 @@ func deleteIdentityProviderAttribute(t *testing.T, clientInfo *connector.ClientI if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteIdentityProviderAttribute(): %v", ids) + return } @@ -83,10 +87,12 @@ func deleteIdentityProviderAttribute(t *testing.T, clientInfo *connector.ClientI ok, err := common.HandleClientResponse(response, err, "DeleteIdentityProviderAttribute", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/password_policy.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/password_policy.go index 8b9ec478..451609ec 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/password_policy.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/password_policy.go @@ -31,6 +31,7 @@ func createPasswordPolicy(t *testing.T, clientInfo *connector.ClientInfo, resour if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createPasswordPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -61,10 +62,12 @@ func createPasswordPolicy(t *testing.T, clientInfo *connector.ClientInfo, resour ok, err := common.HandleClientResponse(response, err, "CreatePasswordPolicy", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -84,6 +87,7 @@ func deletePasswordPolicy(t *testing.T, clientInfo *connector.ClientInfo, resour if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deletePasswordPolicy(): %v", ids) + return } @@ -93,10 +97,12 @@ func deletePasswordPolicy(t *testing.T, clientInfo *connector.ClientInfo, resour ok, err := common.HandleClientResponse(response, err, "DeletePasswordPolicy", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/population.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/population.go index c127d774..487a3ee2 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/population.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/population.go @@ -33,6 +33,7 @@ func createPopulation(t *testing.T, clientInfo *connector.ClientInfo, resourceTy if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createPopulation(): %v", strArgs) + return testutils_resource.ResourceInfo{} } passwordPolicyId := strArgs[0] @@ -53,10 +54,12 @@ func createPopulation(t *testing.T, clientInfo *connector.ClientInfo, resourceTy ok, err := common.HandleClientResponse(response, err, "CreatePopulation", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -76,6 +79,7 @@ func deletePopulation(t *testing.T, clientInfo *connector.ClientInfo, resourceTy if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deletePopulation(): %v", ids) + return } @@ -84,10 +88,12 @@ func deletePopulation(t *testing.T, clientInfo *connector.ClientInfo, resourceTy ok, err := common.HandleClientResponse(response, err, "ReadOnePopulation", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } @@ -99,10 +105,12 @@ func deletePopulation(t *testing.T, clientInfo *connector.ClientInfo, resourceTy ok, err = common.HandleClientResponse(response, err, "UpdatePopulation", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } @@ -112,10 +120,12 @@ func deletePopulation(t *testing.T, clientInfo *connector.ClientInfo, resourceTy ok, err = common.HandleClientResponse(response, err, "DeletePopulation", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/resource.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource.go index 567f71f9..51cf883b 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/resource.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource.go @@ -31,6 +31,7 @@ func createResource(t *testing.T, clientInfo *connector.ClientInfo, resourceType if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createResource(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -51,10 +52,12 @@ func createResource(t *testing.T, clientInfo *connector.ClientInfo, resourceType ok, err := common.HandleClientResponse(response, err, "CreateResource", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -74,6 +77,7 @@ func deleteResource(t *testing.T, clientInfo *connector.ClientInfo, resourceType if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteResource(): %v", ids) + return } @@ -83,10 +87,12 @@ func deleteResource(t *testing.T, clientInfo *connector.ClientInfo, resourceType ok, err := common.HandleClientResponse(response, err, "DeleteResource", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_attribute.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_attribute.go index b1ae52a6..52f4061e 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_attribute.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_attribute.go @@ -32,6 +32,7 @@ func createResourceAttribute(t *testing.T, clientInfo *connector.ClientInfo, res if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createResourceAttribute(): %v", strArgs) + return testutils_resource.ResourceInfo{} } resourceId := strArgs[0] @@ -48,10 +49,12 @@ func createResourceAttribute(t *testing.T, clientInfo *connector.ClientInfo, res ok, err := common.HandleClientResponse(response, err, "CreateResourceAttribute", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -72,6 +75,7 @@ func deleteResourceAttribute(t *testing.T, clientInfo *connector.ClientInfo, res if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteResourceAttribute(): %v", ids) + return } @@ -81,10 +85,12 @@ func deleteResourceAttribute(t *testing.T, clientInfo *connector.ClientInfo, res ok, err := common.HandleClientResponse(response, err, "DeleteResourceAttribute", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope.go index bc3d4adf..f9219732 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope.go @@ -33,6 +33,7 @@ func createResourceScope(t *testing.T, clientInfo *connector.ClientInfo, resourc if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createResourceScope(): %v", strArgs) + return testutils_resource.ResourceInfo{} } resourceId := strArgs[0] @@ -49,10 +50,12 @@ func createResourceScope(t *testing.T, clientInfo *connector.ClientInfo, resourc ok, err := common.HandleClientResponse(response, err, "CreateResourceScope", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -73,6 +76,7 @@ func deleteResourceScope(t *testing.T, clientInfo *connector.ClientInfo, resourc if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteResourceScope(): %v", ids) + return } @@ -82,10 +86,12 @@ func deleteResourceScope(t *testing.T, clientInfo *connector.ClientInfo, resourc ok, err := common.HandleClientResponse(response, err, "DeleteResourceScope", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope_openid.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope_openid.go index dd6aee94..917b020a 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope_openid.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope_openid.go @@ -31,6 +31,7 @@ func createResourceScopeOpenid(t *testing.T, clientInfo *connector.ClientInfo, r if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createResourceScopeOpenid(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -38,6 +39,7 @@ func createResourceScopeOpenid(t *testing.T, clientInfo *connector.ClientInfo, r generatedResources, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nError: %v", err) + return testutils_resource.ResourceInfo{} } @@ -45,6 +47,7 @@ func createResourceScopeOpenid(t *testing.T, clientInfo *connector.ClientInfo, r for _, generatedResource := range generatedResources { if generatedResource.Resource != nil && generatedResource.Resource.Name == "openid" && *generatedResource.Resource.Type == management.ENUMRESOURCETYPE_OPENID_CONNECT { resourceId = *generatedResource.Resource.Id + break } } @@ -60,10 +63,12 @@ func createResourceScopeOpenid(t *testing.T, clientInfo *connector.ClientInfo, r ok, err := common.HandleClientResponse(response, err, "CreateResourceScope", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -84,6 +89,7 @@ func deleteResourceScopeOpenid(t *testing.T, clientInfo *connector.ClientInfo, r if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteResourceScopeOpenid(): %v", ids) + return } @@ -93,10 +99,12 @@ func deleteResourceScopeOpenid(t *testing.T, clientInfo *connector.ClientInfo, r ok, err := common.HandleClientResponse(response, err, "DeleteResourceScope", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope_pingone_api.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope_pingone_api.go index 143289ed..27b438ec 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope_pingone_api.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/resource_scope_pingone_api.go @@ -32,6 +32,7 @@ func createResourceScopePingoneApi(t *testing.T, clientInfo *connector.ClientInf if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createResourceScopePingoneApi(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -39,6 +40,7 @@ func createResourceScopePingoneApi(t *testing.T, clientInfo *connector.ClientInf generatedResources, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedResourcesInner](iter, "ReadAllResources", "GetResources", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nError: %v", err) + return testutils_resource.ResourceInfo{} } @@ -46,6 +48,7 @@ func createResourceScopePingoneApi(t *testing.T, clientInfo *connector.ClientInf for _, generatedResource := range generatedResources { if generatedResource.Resource != nil && generatedResource.Resource.Name == "PingOne API" && *generatedResource.Resource.Type == management.ENUMRESOURCETYPE_PINGONE_API { resourceId = *generatedResource.Resource.Id + break } } @@ -66,10 +69,12 @@ func createResourceScopePingoneApi(t *testing.T, clientInfo *connector.ClientInf ok, err := common.HandleClientResponse(response, err, "CreateResourceScope", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -90,6 +95,7 @@ func deleteResourceScopePingoneApi(t *testing.T, clientInfo *connector.ClientInf if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteResourceScopePingoneApi(): %v", ids) + return } @@ -99,10 +105,12 @@ func deleteResourceScopePingoneApi(t *testing.T, clientInfo *connector.ClientInf ok, err := common.HandleClientResponse(response, err, "DeleteResourceScope", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/schema_attribute.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/schema_attribute.go index 3070589f..75c45eb8 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/schema_attribute.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/schema_attribute.go @@ -32,6 +32,7 @@ func createSchemaAttribute(t *testing.T, clientInfo *connector.ClientInfo, resou if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createSchemaAttribute(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -39,6 +40,7 @@ func createSchemaAttribute(t *testing.T, clientInfo *connector.ClientInfo, resou apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.Schema](iter, "ReadAllSchemas", "GetSchemas", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nError: %v", err) + return testutils_resource.ResourceInfo{} } @@ -77,10 +79,12 @@ func createSchemaAttribute(t *testing.T, clientInfo *connector.ClientInfo, resou ok, err := common.HandleClientResponse(response, err, "CreateAttribute", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -103,6 +107,7 @@ func deleteSchemaAttribute(t *testing.T, clientInfo *connector.ClientInfo, resou if len(ids) != 2 { t.Errorf("Unexpected number of arguments provided to deleteSchemaAttribute(): %v", ids) + return } @@ -112,10 +117,12 @@ func deleteSchemaAttribute(t *testing.T, clientInfo *connector.ClientInfo, resou ok, err := common.HandleClientResponse(response, err, "DeleteAttribute", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/sign_on_policy.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/sign_on_policy.go index db3fce75..9d4e0e3c 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/sign_on_policy.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/sign_on_policy.go @@ -31,6 +31,7 @@ func createSignOnPolicy(t *testing.T, clientInfo *connector.ClientInfo, resource if len(strArgs) != 0 { t.Errorf("Unexpected number of arguments provided to createSignOnPolicy(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -47,10 +48,12 @@ func createSignOnPolicy(t *testing.T, clientInfo *connector.ClientInfo, resource ok, err := common.HandleClientResponse(response, err, "CreateSignOnPolicy", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } @@ -70,6 +73,7 @@ func deleteSignOnPolicy(t *testing.T, clientInfo *connector.ClientInfo, resource if len(ids) != 1 { t.Errorf("Unexpected number of arguments provided to deleteSignOnPolicy(): %v", ids) + return } @@ -79,10 +83,12 @@ func deleteSignOnPolicy(t *testing.T, clientInfo *connector.ClientInfo, resource ok, err := common.HandleClientResponse(response, err, "DeleteSignOnPolicy", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return } } diff --git a/internal/testing/testutils_resource/pingone_sso_testable_resources/sign_on_policy_action.go b/internal/testing/testutils_resource/pingone_sso_testable_resources/sign_on_policy_action.go index 7a08547b..6ddff0d3 100644 --- a/internal/testing/testutils_resource/pingone_sso_testable_resources/sign_on_policy_action.go +++ b/internal/testing/testutils_resource/pingone_sso_testable_resources/sign_on_policy_action.go @@ -32,6 +32,7 @@ func createSignOnPolicyAction(t *testing.T, clientInfo *connector.ClientInfo, re if len(strArgs) != 1 { t.Errorf("Unexpected number of arguments provided to createSignOnPolicyAction(): %v", strArgs) + return testutils_resource.ResourceInfo{} } @@ -67,10 +68,12 @@ func createSignOnPolicyAction(t *testing.T, clientInfo *connector.ClientInfo, re ok, err := common.HandleClientResponse(response, err, "CreateSignOnPolicyAction", resourceType) if err != nil { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s\nError: %v", response.Status, response.Body, err) + return testutils_resource.ResourceInfo{} } if !ok { t.Errorf("Failed to execute PingOne client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + return testutils_resource.ResourceInfo{} } diff --git a/internal/testing/testutils_resource/testutils_resource.go b/internal/testing/testutils_resource/testutils_resource.go index 558d6387..1d646e9a 100644 --- a/internal/testing/testutils_resource/testutils_resource.go +++ b/internal/testing/testutils_resource/testutils_resource.go @@ -94,6 +94,7 @@ func (tr *TestableResource) CreateResource(t *testing.T) { depIds, ok := tr.getDepIds() if !ok { t.Errorf("Failed to get dependency IDs for resource %s", resourceType) + return } @@ -136,5 +137,6 @@ func (tr *TestableResource) getDepIds() ([]string, bool) { } depIds = append(depIds, depId) } + return depIds, true } diff --git a/internal/testing/testutils_terraform/terraform_utils.go b/internal/testing/testutils_terraform/terraform_utils.go index 8ff4bd5d..32578a3a 100644 --- a/internal/testing/testutils_terraform/terraform_utils.go +++ b/internal/testing/testutils_terraform/terraform_utils.go @@ -4,6 +4,7 @@ package testutils_terraform import ( "encoding/json" + "errors" "fmt" "io" "os" @@ -42,6 +43,7 @@ func ValidateTerraformPlan(t *testing.T, resource connector.ExportableResource, if output["@message"] == ignoredError { usedIgnoreErrors[ignoredError] = true ignore = true + break } } @@ -107,6 +109,8 @@ func singleResourceTerraformPlanGenerateConfigOut(t *testing.T, resource connect // Helper function to run terraform plan --generate-config-out func runTerraformPlanGenerateConfigOut(t *testing.T, terraformExecutableFilepath, exportDir string) string { + t.Helper() + // Create the os.exec Command terraformPlanCmd := exec.Command(terraformExecutableFilepath) // Add the arguments to the command @@ -133,8 +137,10 @@ func runTerraformPlanGenerateConfigOut(t *testing.T, terraformExecutableFilepath // Wait for the command to finish if err := terraformPlanCmd.Wait(); err != nil { + var exitErr *exec.ExitError + // If err is of type *exec.ExitError, ignore the error - if _, ok := err.(*exec.ExitError); !ok { + if !errors.As(err, &exitErr) { t.Fatalf("Failed to run terraform plan: %v", err) } } @@ -181,7 +187,7 @@ provider "pingone" { } // Run terraform init in testing directory - initCmd := exec.Command(terraformExecutableFilepath) + initCmd := exec.Command(terraformExecutableFilepath) //#nosec G204 -- This is a test initCmd.Args = append(initCmd.Args, "init") initCmd.Dir = exportDir @@ -228,7 +234,7 @@ provider "pingfederate" { } // Run terraform init in testing directory - initCmd := exec.Command(terraformExecutableFilepath) + initCmd := exec.Command(terraformExecutableFilepath) //#nosec G204 -- This is a test initCmd.Args = append(initCmd.Args, "init") initCmd.Dir = exportDir diff --git a/main.go b/main.go index 3e5d2b68..11fe1e9c 100644 --- a/main.go +++ b/main.go @@ -25,6 +25,7 @@ func main() { for _, setting := range info.Settings { if setting.Key == "vcs.revision" { commit = setting.Value + break } } From 7043e4e00efc62152479e635b680281f7d0522be Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Thu, 27 Mar 2025 17:21:04 -0600 Subject: [PATCH 13/18] Switch golang config file to enabled linters --- .golangci.yml | 106 +++++++++++++++++++++++++++++++------------------- 1 file changed, 66 insertions(+), 40 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index f5e05c83..8c9abc90 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,42 +1,68 @@ version: "2" linters: - default: all - disable: - - bodyclose # Checks whether HTTP response body is closed successfully. - - containedctx # Containedctx is a linter that detects struct contained context.Context field. - - contextcheck # Check whether the function uses a non-inherited context. - - cyclop # Checks function and package cyclomatic complexity. - - depguard # Go linter that checks if package imports are in a list of acceptable packages. - - dupl # Detects duplicate fragments of code. - - err113 # Go linter to check the errors handling expressions. - - exhaustive # Check exhaustiveness of enum switch statements. - - exhaustruct # Checks if all structure fields are initialized. - - fatcontext # Detects nested contexts in loops and function literals. - - forbidigo # Forbids identifiers. - - funlen # Checks for long functions. - - gochecknoinits # Checks that no init functions are present in Go code. - - gochecknoglobals # Check that no global variables exist. - - gocognit # Computes and checks the cognitive complexity of functions. - - goconst # Finds repeated strings that could be replaced by a constant. - - gocyclo # Computes and checks the cyclomatic complexity of functions. - - godot # Check if comments end in a period. - - godox # Detects usage of FIXME, TODO and other keywords inside comments. - - lll # Reports long lines. - - loggercheck # Checks key value pairs for common logger libraries (kitlog,klog,logr,zap). - - maintidx # Maintidx measures the maintainability index of each function. - - mnd # An analyzer to detect magic numbers. - - nestif # Reports deeply nested if statements. - - nonamedreturns # Reports all named returns. - - paralleltest # Detects missing usage of t.Parallel() method in your Go test. - - perfsprint # Checks that fmt.Sprintf can be replaced with a faster alternative. - - promlinter # Check Prometheus metrics naming via promlint. - - recvcheck # Checks for receiver type consistency. - - revive # Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint. - - sloglint # Ensure consistent code style when using log/slog. - - spancheck # Checks for mistakes with OpenTelemetry/Census spans. - - sqlclosecheck # Checks that sql.Rows, sql.Stmt, sqlx.NamedStmt, pgx.Query are closed. - - tagliatelle # Checks the struct tags. - - testifylint # Checks usage of github.com/stretchr/testify. - - varnamelen # Checks that the length of a variable's name matches its scope. - - wrapcheck # Checks that errors returned from external packages are wrapped. - - wsl # Add or remove empty lines. + enable: + - asasalint + - asciicheck + - bidichk + - canonicalheader + - copyloopvar + - decorder + - dogsled + - dupword + - durationcheck + - errcheck + - errchkjson + - errname + - errorlint + - exptostd + - forcetypeassert + - ginkgolinter + - gocheckcompilerdirectives + - gochecksumtype + - gocritic + - goheader + - gomoddirectives + - gomodguard + - goprintffuncname + - gosec + - gosmopolitan + - govet + - grouper + - iface + - importas + - inamedparam + - ineffassign + - interfacebloat + - intrange + - ireturn + - makezero + - mirror + - misspell + - musttag + - nakedret + - nilerr + - nilnesserr + - nilnil + - nlreturn + - noctx + - nolintlint + - nosprintfhostport + - prealloc + - predeclared + - protogetter + - reassign + - rowserrcheck + - staticcheck + - tagalign + - testableexamples + - testpackage + - thelper + - tparallel + - unconvert + - unparam + - unused + - usestdlibvars + - usetesting + - wastedassign + - whitespace + - zerologlint From c90059d91283f2393cc8d0f82287a4ab2a0c5cff Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Thu, 27 Mar 2025 17:28:31 -0600 Subject: [PATCH 14/18] Update PF container variable injection --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index a1bf1ceb..5eaef3cf 100644 --- a/Makefile +++ b/Makefile @@ -132,8 +132,8 @@ starttestcontainer: --checkpfcontainerenvvars --checkdocker --dockerrunpf --wait @docker run --name pingcli_test_pingfederate_container \ -d -p 9031:9031 \ -p 9999:9999 \ - --env PING_IDENTITY_DEVOPS_USER="$${PING_IDENTITY_DEVOPS_USER}" \ - --env PING_IDENTITY_DEVOPS_KEY="$${PING_IDENTITY_DEVOPS_KEY}" \ + --env PING_IDENTITY_DEVOPS_USER="$${TEST_PING_IDENTITY_DEVOPS_USER}" \ + --env PING_IDENTITY_DEVOPS_KEY="$${TEST_PING_IDENTITY_DEVOPS_KEY}" \ --env PING_IDENTITY_ACCEPT_EULA="$${PING_IDENTITY_ACCEPT_EULA}" \ --env CREATE_INITIAL_ADMIN_USER="true" \ -v $$(pwd)/internal/testing/pingfederate_container_files/deploy:/opt/in/instance/server/default/deploy \ From c9a92f8d3e9ffd93fb91dd346eb92d4dfba5b326 Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Thu, 27 Mar 2025 17:35:11 -0600 Subject: [PATCH 15/18] Update PF container variable injection --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 5eaef3cf..86b70d7e 100644 --- a/Makefile +++ b/Makefile @@ -134,7 +134,7 @@ starttestcontainer: --checkpfcontainerenvvars --checkdocker --dockerrunpf --wait -p 9999:9999 \ --env PING_IDENTITY_DEVOPS_USER="$${TEST_PING_IDENTITY_DEVOPS_USER}" \ --env PING_IDENTITY_DEVOPS_KEY="$${TEST_PING_IDENTITY_DEVOPS_KEY}" \ - --env PING_IDENTITY_ACCEPT_EULA="$${PING_IDENTITY_ACCEPT_EULA}" \ + --env PING_IDENTITY_ACCEPT_EULA="$${TEST_PING_IDENTITY_ACCEPT_EULA}" \ --env CREATE_INITIAL_ADMIN_USER="true" \ -v $$(pwd)/internal/testing/pingfederate_container_files/deploy:/opt/in/instance/server/default/deploy \ pingidentity/pingfederate:latest > /dev/null 2>&1 || { echo " FAILED"; echo "Failed to start the PingFederate container. Please check your Docker setup."; exit 1; } From 5163dff8bd247a07779ac262b2ea29d8e361aaaa Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Thu, 27 Mar 2025 22:48:56 -0600 Subject: [PATCH 16/18] Test fixes and code review changes --- .../commands/request/request_internal_test.go | 2 +- .../mfa_application_push_credential.go | 10 +- .../resources/agreement_localization_test.go | 3 +- .../resources/gateway_credential_test.go | 3 +- .../pingone/platform/resources/language.go | 16 +-- .../resources/system_application_test.go | 2 +- .../protect/resources/risk_predictor.go | 106 +++++++++--------- .../pingone/sso/resources/application.go | 20 ++-- .../application_attribute_mapping.go | 14 +-- .../application_flow_policy_assignment.go | 20 ++-- .../resources/application_resource_grant.go | 32 +++--- .../resources/application_role_assignment.go | 32 +++--- .../application_sign_on_policy_assignment.go | 20 ++-- .../sso/resources/identity_provider.go | 38 +++---- .../resources/identity_provider_attribute.go | 38 +++---- .../sso/resources/resource_attribute.go | 20 ++-- .../pingone/sso/resources/resource_scope.go | 10 +- .../sso/resources/resource_scope_openid.go | 10 +- .../resources/resource_scope_pingone_api.go | 10 +- .../pingone/sso/resources/resource_secret.go | 10 +- .../pingone/sso/resources/schema_attribute.go | 2 + .../sso/resources/sign_on_policy_action.go | 52 ++++----- internal/testing/testutils/utils.go | 20 +++- 23 files changed, 254 insertions(+), 236 deletions(-) diff --git a/internal/commands/request/request_internal_test.go b/internal/commands/request/request_internal_test.go index 00dbd2ca..f4e633c5 100644 --- a/internal/commands/request/request_internal_test.go +++ b/internal/commands/request/request_internal_test.go @@ -44,7 +44,7 @@ func Test_RunInternalRequestWithFail(t *testing.T) { err := cmd.Run() var exitErr *exec.ExitError - if !errors.As(err, &exitErr) { + if errors.As(err, &exitErr) { if !exitErr.Success() { return } diff --git a/internal/connector/pingone/mfa/resources/mfa_application_push_credential.go b/internal/connector/pingone/mfa/resources/mfa_application_push_credential.go index cb550707..602b0112 100644 --- a/internal/connector/pingone/mfa/resources/mfa_application_push_credential.go +++ b/internal/connector/pingone/mfa/resources/mfa_application_push_credential.go @@ -84,12 +84,12 @@ func (r *PingOneMfaApplicationPushCredentialResource) getApplicationData() (map[ return nil, err } - for _, inner := range apiObjs { + for _, innerObj := range apiObjs { // MFa application push credentials are only for OIDC Native Apps - if inner.ApplicationOIDC != nil { - applicationId, applicationIdOk := inner.ApplicationOIDC.GetIdOk() - applicationName, applicationNameOk := inner.ApplicationOIDC.GetNameOk() - applicationType, applicationTypeOk := inner.ApplicationOIDC.GetTypeOk() + if innerObj.ApplicationOIDC != nil { + applicationId, applicationIdOk := innerObj.ApplicationOIDC.GetIdOk() + applicationName, applicationNameOk := innerObj.ApplicationOIDC.GetNameOk() + applicationType, applicationTypeOk := innerObj.ApplicationOIDC.GetTypeOk() if applicationIdOk && applicationNameOk && applicationTypeOk { if *applicationType == management.ENUMAPPLICATIONTYPE_NATIVE_APP { diff --git a/internal/connector/pingone/platform/resources/agreement_localization_test.go b/internal/connector/pingone/platform/resources/agreement_localization_test.go index ec87aa57..64631b08 100644 --- a/internal/connector/pingone/platform/resources/agreement_localization_test.go +++ b/internal/connector/pingone/platform/resources/agreement_localization_test.go @@ -17,11 +17,12 @@ func Test_AgreementLocalization(t *testing.T) { clientInfo := testutils.GetClientInfo(t) tr := pingone_platform_testable_resources.AgreementLocalization(t, clientInfo) - agreementTr := tr.Dependencies[0] tr.CreateResource(t) defer tr.DeleteResource(t) + agreementTr := tr.Dependencies[0] + expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), diff --git a/internal/connector/pingone/platform/resources/gateway_credential_test.go b/internal/connector/pingone/platform/resources/gateway_credential_test.go index af61bff3..162a90f9 100644 --- a/internal/connector/pingone/platform/resources/gateway_credential_test.go +++ b/internal/connector/pingone/platform/resources/gateway_credential_test.go @@ -17,11 +17,12 @@ func Test_GatewayCredential(t *testing.T) { clientInfo := testutils.GetClientInfo(t) tr := pingone_platform_testable_resources.GatewayCredential(t, clientInfo) - gatewayTr := tr.Dependencies[0] tr.CreateResource(t) defer tr.DeleteResource(t) + gatewayTr := tr.Dependencies[0] + expectedImportBlocks := []connector.ImportBlock{ { ResourceType: tr.ExportableResource.ResourceType(), diff --git a/internal/connector/pingone/platform/resources/language.go b/internal/connector/pingone/platform/resources/language.go index 217adcb2..dd7c68fc 100644 --- a/internal/connector/pingone/platform/resources/language.go +++ b/internal/connector/pingone/platform/resources/language.go @@ -44,18 +44,18 @@ func (r *PingOneLanguageResource) ExportAll() (*[]connector.ImportBlock, error) return nil, err } - for langaugeId, langaugeName := range languageData { + for languageId, languageName := range languageData { commentData := map[string]string{ - "Language ID": langaugeId, - "Language Name": langaugeName, + "Language ID": languageId, + "Language Name": languageName, "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, "Resource Type": r.ResourceType(), } importBlock := connector.ImportBlock{ ResourceType: r.ResourceType(), - ResourceName: langaugeName, - ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, langaugeId), + ResourceName: languageName, + ResourceID: fmt.Sprintf("%s/%s", r.clientInfo.PingOneExportEnvironmentID, languageId), CommentInformation: common.GenerateCommentInformation(commentData), } @@ -66,7 +66,7 @@ func (r *PingOneLanguageResource) ExportAll() (*[]connector.ImportBlock, error) } func (r *PingOneLanguageResource) getLanguageData() (map[string]string, error) { - langaugeData := make(map[string]string) + languageData := make(map[string]string) iter := r.clientInfo.PingOneApiClient.ManagementAPIClient.LanguagesApi.ReadLanguages(r.clientInfo.PingOneContext, r.clientInfo.PingOneExportEnvironmentID).Execute() apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.EntityArrayEmbeddedLanguagesInner](iter, "ReadLanguages", "GetLanguages", r.ResourceType()) @@ -80,10 +80,10 @@ func (r *PingOneLanguageResource) getLanguageData() (map[string]string, error) { languageName, languageNameOk := innerObj.Language.GetNameOk() if languageIdOk && languageNameOk { - langaugeData[*languageId] = *languageName + languageData[*languageId] = *languageName } } } - return langaugeData, nil + return languageData, nil } diff --git a/internal/connector/pingone/platform/resources/system_application_test.go b/internal/connector/pingone/platform/resources/system_application_test.go index b3881c92..f3989b03 100644 --- a/internal/connector/pingone/platform/resources/system_application_test.go +++ b/internal/connector/pingone/platform/resources/system_application_test.go @@ -20,7 +20,7 @@ func TestSystemApplicationExport(t *testing.T) { expectedImportBlocks := []connector.ImportBlock{} - // Every environmnt has pre-configured system applications, so we need to get them all. + // Every environment has pre-configured system applications, so we need to get them all. iter := clientInfo.PingOneApiClient.ManagementAPIClient.ApplicationsApi.ReadAllApplications(clientInfo.PingOneContext, clientInfo.PingOneExportEnvironmentID).Execute() apiObjs, err := pingone.GetManagementAPIObjectsFromIterator[management.ReadOneApplication200Response](iter, "ReadAllApplications", "GetApplications", tr.ExportableResource.ResourceType()) if err != nil { diff --git a/internal/connector/pingone/protect/resources/risk_predictor.go b/internal/connector/pingone/protect/resources/risk_predictor.go index e53ac712..3906e7cc 100644 --- a/internal/connector/pingone/protect/resources/risk_predictor.go +++ b/internal/connector/pingone/protect/resources/risk_predictor.go @@ -78,7 +78,7 @@ func (r *PingOneRiskPredictorResource) getRiskPredictorData() (map[string][]stri return nil, err } - for _, inner := range apiObjs { + for _, innerObj := range apiObjs { var ( riskPredictorId *string riskPredictorIdOk bool @@ -89,58 +89,58 @@ func (r *PingOneRiskPredictorResource) getRiskPredictorData() (map[string][]stri ) switch { - case inner.RiskPredictorAdversaryInTheMiddle != nil: - riskPredictorId, riskPredictorIdOk = inner.RiskPredictorAdversaryInTheMiddle.GetIdOk() - riskPredictorName, riskPredictorNameOk = inner.RiskPredictorAdversaryInTheMiddle.GetNameOk() - riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorAdversaryInTheMiddle.GetTypeOk() - case inner.RiskPredictorAnonymousNetwork != nil: - riskPredictorId, riskPredictorIdOk = inner.RiskPredictorAnonymousNetwork.GetIdOk() - riskPredictorName, riskPredictorNameOk = inner.RiskPredictorAnonymousNetwork.GetNameOk() - riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorAnonymousNetwork.GetTypeOk() - case inner.RiskPredictorBotDetection != nil: - riskPredictorId, riskPredictorIdOk = inner.RiskPredictorBotDetection.GetIdOk() - riskPredictorName, riskPredictorNameOk = inner.RiskPredictorBotDetection.GetNameOk() - riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorBotDetection.GetTypeOk() - case inner.RiskPredictorCommon != nil: - riskPredictorId, riskPredictorIdOk = inner.RiskPredictorCommon.GetIdOk() - riskPredictorName, riskPredictorNameOk = inner.RiskPredictorCommon.GetNameOk() - riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorCommon.GetTypeOk() - case inner.RiskPredictorComposite != nil: - riskPredictorId, riskPredictorIdOk = inner.RiskPredictorComposite.GetIdOk() - riskPredictorName, riskPredictorNameOk = inner.RiskPredictorComposite.GetNameOk() - riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorComposite.GetTypeOk() - case inner.RiskPredictorCustom != nil: - riskPredictorId, riskPredictorIdOk = inner.RiskPredictorCustom.GetIdOk() - riskPredictorName, riskPredictorNameOk = inner.RiskPredictorCustom.GetNameOk() - riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorCustom.GetTypeOk() - case inner.RiskPredictorDevice != nil: - riskPredictorId, riskPredictorIdOk = inner.RiskPredictorDevice.GetIdOk() - riskPredictorName, riskPredictorNameOk = inner.RiskPredictorDevice.GetNameOk() - riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorDevice.GetTypeOk() - case inner.RiskPredictorEmailReputation != nil: - riskPredictorId, riskPredictorIdOk = inner.RiskPredictorEmailReputation.GetIdOk() - riskPredictorName, riskPredictorNameOk = inner.RiskPredictorEmailReputation.GetNameOk() - riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorEmailReputation.GetTypeOk() - case inner.RiskPredictorGeovelocity != nil: - riskPredictorId, riskPredictorIdOk = inner.RiskPredictorGeovelocity.GetIdOk() - riskPredictorName, riskPredictorNameOk = inner.RiskPredictorGeovelocity.GetNameOk() - riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorGeovelocity.GetTypeOk() - case inner.RiskPredictorIPReputation != nil: - riskPredictorId, riskPredictorIdOk = inner.RiskPredictorIPReputation.GetIdOk() - riskPredictorName, riskPredictorNameOk = inner.RiskPredictorIPReputation.GetNameOk() - riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorIPReputation.GetTypeOk() - case inner.RiskPredictorUserLocationAnomaly != nil: - riskPredictorId, riskPredictorIdOk = inner.RiskPredictorUserLocationAnomaly.GetIdOk() - riskPredictorName, riskPredictorNameOk = inner.RiskPredictorUserLocationAnomaly.GetNameOk() - riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorUserLocationAnomaly.GetTypeOk() - case inner.RiskPredictorUserRiskBehavior != nil: - riskPredictorId, riskPredictorIdOk = inner.RiskPredictorUserRiskBehavior.GetIdOk() - riskPredictorName, riskPredictorNameOk = inner.RiskPredictorUserRiskBehavior.GetNameOk() - riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorUserRiskBehavior.GetTypeOk() - case inner.RiskPredictorVelocity != nil: - riskPredictorId, riskPredictorIdOk = inner.RiskPredictorVelocity.GetIdOk() - riskPredictorName, riskPredictorNameOk = inner.RiskPredictorVelocity.GetNameOk() - riskPredictorType, riskPredictorTypeOk = inner.RiskPredictorVelocity.GetTypeOk() + case innerObj.RiskPredictorAdversaryInTheMiddle != nil: + riskPredictorId, riskPredictorIdOk = innerObj.RiskPredictorAdversaryInTheMiddle.GetIdOk() + riskPredictorName, riskPredictorNameOk = innerObj.RiskPredictorAdversaryInTheMiddle.GetNameOk() + riskPredictorType, riskPredictorTypeOk = innerObj.RiskPredictorAdversaryInTheMiddle.GetTypeOk() + case innerObj.RiskPredictorAnonymousNetwork != nil: + riskPredictorId, riskPredictorIdOk = innerObj.RiskPredictorAnonymousNetwork.GetIdOk() + riskPredictorName, riskPredictorNameOk = innerObj.RiskPredictorAnonymousNetwork.GetNameOk() + riskPredictorType, riskPredictorTypeOk = innerObj.RiskPredictorAnonymousNetwork.GetTypeOk() + case innerObj.RiskPredictorBotDetection != nil: + riskPredictorId, riskPredictorIdOk = innerObj.RiskPredictorBotDetection.GetIdOk() + riskPredictorName, riskPredictorNameOk = innerObj.RiskPredictorBotDetection.GetNameOk() + riskPredictorType, riskPredictorTypeOk = innerObj.RiskPredictorBotDetection.GetTypeOk() + case innerObj.RiskPredictorCommon != nil: + riskPredictorId, riskPredictorIdOk = innerObj.RiskPredictorCommon.GetIdOk() + riskPredictorName, riskPredictorNameOk = innerObj.RiskPredictorCommon.GetNameOk() + riskPredictorType, riskPredictorTypeOk = innerObj.RiskPredictorCommon.GetTypeOk() + case innerObj.RiskPredictorComposite != nil: + riskPredictorId, riskPredictorIdOk = innerObj.RiskPredictorComposite.GetIdOk() + riskPredictorName, riskPredictorNameOk = innerObj.RiskPredictorComposite.GetNameOk() + riskPredictorType, riskPredictorTypeOk = innerObj.RiskPredictorComposite.GetTypeOk() + case innerObj.RiskPredictorCustom != nil: + riskPredictorId, riskPredictorIdOk = innerObj.RiskPredictorCustom.GetIdOk() + riskPredictorName, riskPredictorNameOk = innerObj.RiskPredictorCustom.GetNameOk() + riskPredictorType, riskPredictorTypeOk = innerObj.RiskPredictorCustom.GetTypeOk() + case innerObj.RiskPredictorDevice != nil: + riskPredictorId, riskPredictorIdOk = innerObj.RiskPredictorDevice.GetIdOk() + riskPredictorName, riskPredictorNameOk = innerObj.RiskPredictorDevice.GetNameOk() + riskPredictorType, riskPredictorTypeOk = innerObj.RiskPredictorDevice.GetTypeOk() + case innerObj.RiskPredictorEmailReputation != nil: + riskPredictorId, riskPredictorIdOk = innerObj.RiskPredictorEmailReputation.GetIdOk() + riskPredictorName, riskPredictorNameOk = innerObj.RiskPredictorEmailReputation.GetNameOk() + riskPredictorType, riskPredictorTypeOk = innerObj.RiskPredictorEmailReputation.GetTypeOk() + case innerObj.RiskPredictorGeovelocity != nil: + riskPredictorId, riskPredictorIdOk = innerObj.RiskPredictorGeovelocity.GetIdOk() + riskPredictorName, riskPredictorNameOk = innerObj.RiskPredictorGeovelocity.GetNameOk() + riskPredictorType, riskPredictorTypeOk = innerObj.RiskPredictorGeovelocity.GetTypeOk() + case innerObj.RiskPredictorIPReputation != nil: + riskPredictorId, riskPredictorIdOk = innerObj.RiskPredictorIPReputation.GetIdOk() + riskPredictorName, riskPredictorNameOk = innerObj.RiskPredictorIPReputation.GetNameOk() + riskPredictorType, riskPredictorTypeOk = innerObj.RiskPredictorIPReputation.GetTypeOk() + case innerObj.RiskPredictorUserLocationAnomaly != nil: + riskPredictorId, riskPredictorIdOk = innerObj.RiskPredictorUserLocationAnomaly.GetIdOk() + riskPredictorName, riskPredictorNameOk = innerObj.RiskPredictorUserLocationAnomaly.GetNameOk() + riskPredictorType, riskPredictorTypeOk = innerObj.RiskPredictorUserLocationAnomaly.GetTypeOk() + case innerObj.RiskPredictorUserRiskBehavior != nil: + riskPredictorId, riskPredictorIdOk = innerObj.RiskPredictorUserRiskBehavior.GetIdOk() + riskPredictorName, riskPredictorNameOk = innerObj.RiskPredictorUserRiskBehavior.GetNameOk() + riskPredictorType, riskPredictorTypeOk = innerObj.RiskPredictorUserRiskBehavior.GetTypeOk() + case innerObj.RiskPredictorVelocity != nil: + riskPredictorId, riskPredictorIdOk = innerObj.RiskPredictorVelocity.GetIdOk() + riskPredictorName, riskPredictorNameOk = innerObj.RiskPredictorVelocity.GetNameOk() + riskPredictorType, riskPredictorTypeOk = innerObj.RiskPredictorVelocity.GetTypeOk() default: continue } diff --git a/internal/connector/pingone/sso/resources/application.go b/internal/connector/pingone/sso/resources/application.go index fd49a2a5..ffb43b85 100644 --- a/internal/connector/pingone/sso/resources/application.go +++ b/internal/connector/pingone/sso/resources/application.go @@ -74,7 +74,7 @@ func (r *PingOneApplicationResource) getApplicationData() (map[string]string, er return nil, err } - for _, inner := range apiObjs { + for _, innerObj := range apiObjs { var ( applicationId *string applicationIdOk bool @@ -83,15 +83,15 @@ func (r *PingOneApplicationResource) getApplicationData() (map[string]string, er ) switch { - case inner.ApplicationOIDC != nil: - applicationId, applicationIdOk = inner.ApplicationOIDC.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationOIDC.GetNameOk() - case inner.ApplicationSAML != nil: - applicationId, applicationIdOk = inner.ApplicationSAML.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationSAML.GetNameOk() - case inner.ApplicationExternalLink != nil: - applicationId, applicationIdOk = inner.ApplicationExternalLink.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationExternalLink.GetNameOk() + case innerObj.ApplicationOIDC != nil: + applicationId, applicationIdOk = innerObj.ApplicationOIDC.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationOIDC.GetNameOk() + case innerObj.ApplicationSAML != nil: + applicationId, applicationIdOk = innerObj.ApplicationSAML.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationSAML.GetNameOk() + case innerObj.ApplicationExternalLink != nil: + applicationId, applicationIdOk = innerObj.ApplicationExternalLink.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationExternalLink.GetNameOk() default: continue } diff --git a/internal/connector/pingone/sso/resources/application_attribute_mapping.go b/internal/connector/pingone/sso/resources/application_attribute_mapping.go index eb4231a0..336bfdda 100644 --- a/internal/connector/pingone/sso/resources/application_attribute_mapping.go +++ b/internal/connector/pingone/sso/resources/application_attribute_mapping.go @@ -83,7 +83,7 @@ func (r *PingOneApplicationAttributeMappingResource) getApplicationData() (map[s return nil, err } - for _, inner := range apiObjs { + for _, innerObj := range apiObjs { var ( applicationId *string applicationIdOk bool @@ -92,12 +92,12 @@ func (r *PingOneApplicationAttributeMappingResource) getApplicationData() (map[s ) switch { - case inner.ApplicationOIDC != nil: - applicationId, applicationIdOk = inner.ApplicationOIDC.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationOIDC.GetNameOk() - case inner.ApplicationSAML != nil: - applicationId, applicationIdOk = inner.ApplicationSAML.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationSAML.GetNameOk() + case innerObj.ApplicationOIDC != nil: + applicationId, applicationIdOk = innerObj.ApplicationOIDC.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationOIDC.GetNameOk() + case innerObj.ApplicationSAML != nil: + applicationId, applicationIdOk = innerObj.ApplicationSAML.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationSAML.GetNameOk() default: continue } diff --git a/internal/connector/pingone/sso/resources/application_flow_policy_assignment.go b/internal/connector/pingone/sso/resources/application_flow_policy_assignment.go index 0259ad2e..bb257cd3 100644 --- a/internal/connector/pingone/sso/resources/application_flow_policy_assignment.go +++ b/internal/connector/pingone/sso/resources/application_flow_policy_assignment.go @@ -92,7 +92,7 @@ func (r *PingOneApplicationFlowPolicyAssignmentResource) getApplicationData() (m return nil, err } - for _, inner := range apiObjs { + for _, innerObj := range apiObjs { var ( applicationId *string applicationIdOk bool @@ -101,15 +101,15 @@ func (r *PingOneApplicationFlowPolicyAssignmentResource) getApplicationData() (m ) switch { - case inner.ApplicationOIDC != nil: - applicationId, applicationIdOk = inner.ApplicationOIDC.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationOIDC.GetNameOk() - case inner.ApplicationSAML != nil: - applicationId, applicationIdOk = inner.ApplicationSAML.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationSAML.GetNameOk() - case inner.ApplicationExternalLink != nil: - applicationId, applicationIdOk = inner.ApplicationExternalLink.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationExternalLink.GetNameOk() + case innerObj.ApplicationOIDC != nil: + applicationId, applicationIdOk = innerObj.ApplicationOIDC.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationOIDC.GetNameOk() + case innerObj.ApplicationSAML != nil: + applicationId, applicationIdOk = innerObj.ApplicationSAML.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationSAML.GetNameOk() + case innerObj.ApplicationExternalLink != nil: + applicationId, applicationIdOk = innerObj.ApplicationExternalLink.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationExternalLink.GetNameOk() default: continue } diff --git a/internal/connector/pingone/sso/resources/application_resource_grant.go b/internal/connector/pingone/sso/resources/application_resource_grant.go index 599cd39f..7a6d605a 100644 --- a/internal/connector/pingone/sso/resources/application_resource_grant.go +++ b/internal/connector/pingone/sso/resources/application_resource_grant.go @@ -92,7 +92,7 @@ func (r *PingOneApplicationResourceGrantResource) getApplicationData() (map[stri return nil, err } - for _, inner := range apiObjs { + for _, innerObj := range apiObjs { var ( applicationId *string applicationIdOk bool @@ -101,21 +101,21 @@ func (r *PingOneApplicationResourceGrantResource) getApplicationData() (map[stri ) switch { - case inner.ApplicationPingOnePortal != nil: - applicationId, applicationIdOk = inner.ApplicationPingOnePortal.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationPingOnePortal.GetNameOk() - case inner.ApplicationPingOneSelfService != nil: - applicationId, applicationIdOk = inner.ApplicationPingOneSelfService.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationPingOneSelfService.GetNameOk() - case inner.ApplicationExternalLink != nil: - applicationId, applicationIdOk = inner.ApplicationExternalLink.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationExternalLink.GetNameOk() - case inner.ApplicationOIDC != nil: - applicationId, applicationIdOk = inner.ApplicationOIDC.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationOIDC.GetNameOk() - case inner.ApplicationSAML != nil: - applicationId, applicationIdOk = inner.ApplicationSAML.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationSAML.GetNameOk() + case innerObj.ApplicationPingOnePortal != nil: + applicationId, applicationIdOk = innerObj.ApplicationPingOnePortal.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationPingOnePortal.GetNameOk() + case innerObj.ApplicationPingOneSelfService != nil: + applicationId, applicationIdOk = innerObj.ApplicationPingOneSelfService.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationPingOneSelfService.GetNameOk() + case innerObj.ApplicationExternalLink != nil: + applicationId, applicationIdOk = innerObj.ApplicationExternalLink.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationExternalLink.GetNameOk() + case innerObj.ApplicationOIDC != nil: + applicationId, applicationIdOk = innerObj.ApplicationOIDC.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationOIDC.GetNameOk() + case innerObj.ApplicationSAML != nil: + applicationId, applicationIdOk = innerObj.ApplicationSAML.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationSAML.GetNameOk() default: continue } diff --git a/internal/connector/pingone/sso/resources/application_role_assignment.go b/internal/connector/pingone/sso/resources/application_role_assignment.go index c24652f6..fe22ee9b 100644 --- a/internal/connector/pingone/sso/resources/application_role_assignment.go +++ b/internal/connector/pingone/sso/resources/application_role_assignment.go @@ -92,7 +92,7 @@ func (r *PingOneApplicationRoleAssignmentResource) getApplicationData() (map[str return nil, err } - for _, inner := range apiObjs { + for _, innerObj := range apiObjs { var ( applicationId *string applicationIdOk bool @@ -103,23 +103,23 @@ func (r *PingOneApplicationRoleAssignmentResource) getApplicationData() (map[str ) switch { - case inner.ApplicationOIDC != nil: - applicationId, applicationIdOk = inner.ApplicationOIDC.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationOIDC.GetNameOk() - if inner.ApplicationOIDC.AccessControl != nil { - applicationAccessControlRole, applicationAccessControlRoleOk = inner.ApplicationOIDC.AccessControl.GetRoleOk() + case innerObj.ApplicationOIDC != nil: + applicationId, applicationIdOk = innerObj.ApplicationOIDC.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationOIDC.GetNameOk() + if innerObj.ApplicationOIDC.AccessControl != nil { + applicationAccessControlRole, applicationAccessControlRoleOk = innerObj.ApplicationOIDC.AccessControl.GetRoleOk() } - case inner.ApplicationSAML != nil: - applicationId, applicationIdOk = inner.ApplicationSAML.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationSAML.GetNameOk() - if inner.ApplicationSAML.AccessControl != nil { - applicationAccessControlRole, applicationAccessControlRoleOk = inner.ApplicationSAML.AccessControl.GetRoleOk() + case innerObj.ApplicationSAML != nil: + applicationId, applicationIdOk = innerObj.ApplicationSAML.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationSAML.GetNameOk() + if innerObj.ApplicationSAML.AccessControl != nil { + applicationAccessControlRole, applicationAccessControlRoleOk = innerObj.ApplicationSAML.AccessControl.GetRoleOk() } - case inner.ApplicationExternalLink != nil: - applicationId, applicationIdOk = inner.ApplicationExternalLink.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationExternalLink.GetNameOk() - if inner.ApplicationExternalLink.AccessControl != nil { - applicationAccessControlRole, applicationAccessControlRoleOk = inner.ApplicationExternalLink.AccessControl.GetRoleOk() + case innerObj.ApplicationExternalLink != nil: + applicationId, applicationIdOk = innerObj.ApplicationExternalLink.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationExternalLink.GetNameOk() + if innerObj.ApplicationExternalLink.AccessControl != nil { + applicationAccessControlRole, applicationAccessControlRoleOk = innerObj.ApplicationExternalLink.AccessControl.GetRoleOk() } default: continue diff --git a/internal/connector/pingone/sso/resources/application_sign_on_policy_assignment.go b/internal/connector/pingone/sso/resources/application_sign_on_policy_assignment.go index 65af52f6..0c8085ea 100644 --- a/internal/connector/pingone/sso/resources/application_sign_on_policy_assignment.go +++ b/internal/connector/pingone/sso/resources/application_sign_on_policy_assignment.go @@ -92,7 +92,7 @@ func (r *PingOneApplicationSignOnPolicyAssignmentResource) getApplicationData() return nil, err } - for _, inner := range apiObjs { + for _, innerObj := range apiObjs { var ( applicationId *string applicationIdOk bool @@ -101,15 +101,15 @@ func (r *PingOneApplicationSignOnPolicyAssignmentResource) getApplicationData() ) switch { - case inner.ApplicationOIDC != nil: - applicationId, applicationIdOk = inner.ApplicationOIDC.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationOIDC.GetNameOk() - case inner.ApplicationSAML != nil: - applicationId, applicationIdOk = inner.ApplicationSAML.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationSAML.GetNameOk() - case inner.ApplicationExternalLink != nil: - applicationId, applicationIdOk = inner.ApplicationExternalLink.GetIdOk() - applicationName, applicationNameOk = inner.ApplicationExternalLink.GetNameOk() + case innerObj.ApplicationOIDC != nil: + applicationId, applicationIdOk = innerObj.ApplicationOIDC.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationOIDC.GetNameOk() + case innerObj.ApplicationSAML != nil: + applicationId, applicationIdOk = innerObj.ApplicationSAML.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationSAML.GetNameOk() + case innerObj.ApplicationExternalLink != nil: + applicationId, applicationIdOk = innerObj.ApplicationExternalLink.GetIdOk() + applicationName, applicationNameOk = innerObj.ApplicationExternalLink.GetNameOk() default: continue } diff --git a/internal/connector/pingone/sso/resources/identity_provider.go b/internal/connector/pingone/sso/resources/identity_provider.go index 0a1dbe32..80e99e6c 100644 --- a/internal/connector/pingone/sso/resources/identity_provider.go +++ b/internal/connector/pingone/sso/resources/identity_provider.go @@ -74,7 +74,7 @@ func (r *PingOneIdentityProviderResource) getIdentityProviderData() (map[string] return nil, err } - for _, inner := range apiObjs { + for _, innerObj := range apiObjs { var ( identityProviderId *string identityProviderIdOk bool @@ -83,24 +83,24 @@ func (r *PingOneIdentityProviderResource) getIdentityProviderData() (map[string] ) switch { - case inner.IdentityProviderApple != nil: - identityProviderId, identityProviderIdOk = inner.IdentityProviderApple.GetIdOk() - identityProviderName, identityProviderNameOk = inner.IdentityProviderApple.GetNameOk() - case inner.IdentityProviderClientIDClientSecret != nil: - identityProviderId, identityProviderIdOk = inner.IdentityProviderClientIDClientSecret.GetIdOk() - identityProviderName, identityProviderNameOk = inner.IdentityProviderClientIDClientSecret.GetNameOk() - case inner.IdentityProviderFacebook != nil: - identityProviderId, identityProviderIdOk = inner.IdentityProviderFacebook.GetIdOk() - identityProviderName, identityProviderNameOk = inner.IdentityProviderFacebook.GetNameOk() - case inner.IdentityProviderOIDC != nil: - identityProviderId, identityProviderIdOk = inner.IdentityProviderOIDC.GetIdOk() - identityProviderName, identityProviderNameOk = inner.IdentityProviderOIDC.GetNameOk() - case inner.IdentityProviderPaypal != nil: - identityProviderId, identityProviderIdOk = inner.IdentityProviderPaypal.GetIdOk() - identityProviderName, identityProviderNameOk = inner.IdentityProviderPaypal.GetNameOk() - case inner.IdentityProviderSAML != nil: - identityProviderId, identityProviderIdOk = inner.IdentityProviderSAML.GetIdOk() - identityProviderName, identityProviderNameOk = inner.IdentityProviderSAML.GetNameOk() + case innerObj.IdentityProviderApple != nil: + identityProviderId, identityProviderIdOk = innerObj.IdentityProviderApple.GetIdOk() + identityProviderName, identityProviderNameOk = innerObj.IdentityProviderApple.GetNameOk() + case innerObj.IdentityProviderClientIDClientSecret != nil: + identityProviderId, identityProviderIdOk = innerObj.IdentityProviderClientIDClientSecret.GetIdOk() + identityProviderName, identityProviderNameOk = innerObj.IdentityProviderClientIDClientSecret.GetNameOk() + case innerObj.IdentityProviderFacebook != nil: + identityProviderId, identityProviderIdOk = innerObj.IdentityProviderFacebook.GetIdOk() + identityProviderName, identityProviderNameOk = innerObj.IdentityProviderFacebook.GetNameOk() + case innerObj.IdentityProviderOIDC != nil: + identityProviderId, identityProviderIdOk = innerObj.IdentityProviderOIDC.GetIdOk() + identityProviderName, identityProviderNameOk = innerObj.IdentityProviderOIDC.GetNameOk() + case innerObj.IdentityProviderPaypal != nil: + identityProviderId, identityProviderIdOk = innerObj.IdentityProviderPaypal.GetIdOk() + identityProviderName, identityProviderNameOk = innerObj.IdentityProviderPaypal.GetNameOk() + case innerObj.IdentityProviderSAML != nil: + identityProviderId, identityProviderIdOk = innerObj.IdentityProviderSAML.GetIdOk() + identityProviderName, identityProviderNameOk = innerObj.IdentityProviderSAML.GetNameOk() default: continue } diff --git a/internal/connector/pingone/sso/resources/identity_provider_attribute.go b/internal/connector/pingone/sso/resources/identity_provider_attribute.go index 91b29e5d..b9604e29 100644 --- a/internal/connector/pingone/sso/resources/identity_provider_attribute.go +++ b/internal/connector/pingone/sso/resources/identity_provider_attribute.go @@ -83,7 +83,7 @@ func (r *PingOneIdentityProviderAttributeResource) getProviderData() (map[string return nil, err } - for _, inner := range apiObjs { + for _, innerObj := range apiObjs { var ( providerId *string providerIdOk bool @@ -92,24 +92,24 @@ func (r *PingOneIdentityProviderAttributeResource) getProviderData() (map[string ) switch { - case inner.IdentityProviderApple != nil: - providerId, providerIdOk = inner.IdentityProviderApple.GetIdOk() - providerName, providerNameOk = inner.IdentityProviderApple.GetNameOk() - case inner.IdentityProviderClientIDClientSecret != nil: - providerId, providerIdOk = inner.IdentityProviderClientIDClientSecret.GetIdOk() - providerName, providerNameOk = inner.IdentityProviderClientIDClientSecret.GetNameOk() - case inner.IdentityProviderFacebook != nil: - providerId, providerIdOk = inner.IdentityProviderFacebook.GetIdOk() - providerName, providerNameOk = inner.IdentityProviderFacebook.GetNameOk() - case inner.IdentityProviderOIDC != nil: - providerId, providerIdOk = inner.IdentityProviderOIDC.GetIdOk() - providerName, providerNameOk = inner.IdentityProviderOIDC.GetNameOk() - case inner.IdentityProviderPaypal != nil: - providerId, providerIdOk = inner.IdentityProviderPaypal.GetIdOk() - providerName, providerNameOk = inner.IdentityProviderPaypal.GetNameOk() - case inner.IdentityProviderSAML != nil: - providerId, providerIdOk = inner.IdentityProviderSAML.GetIdOk() - providerName, providerNameOk = inner.IdentityProviderSAML.GetNameOk() + case innerObj.IdentityProviderApple != nil: + providerId, providerIdOk = innerObj.IdentityProviderApple.GetIdOk() + providerName, providerNameOk = innerObj.IdentityProviderApple.GetNameOk() + case innerObj.IdentityProviderClientIDClientSecret != nil: + providerId, providerIdOk = innerObj.IdentityProviderClientIDClientSecret.GetIdOk() + providerName, providerNameOk = innerObj.IdentityProviderClientIDClientSecret.GetNameOk() + case innerObj.IdentityProviderFacebook != nil: + providerId, providerIdOk = innerObj.IdentityProviderFacebook.GetIdOk() + providerName, providerNameOk = innerObj.IdentityProviderFacebook.GetNameOk() + case innerObj.IdentityProviderOIDC != nil: + providerId, providerIdOk = innerObj.IdentityProviderOIDC.GetIdOk() + providerName, providerNameOk = innerObj.IdentityProviderOIDC.GetNameOk() + case innerObj.IdentityProviderPaypal != nil: + providerId, providerIdOk = innerObj.IdentityProviderPaypal.GetIdOk() + providerName, providerNameOk = innerObj.IdentityProviderPaypal.GetNameOk() + case innerObj.IdentityProviderSAML != nil: + providerId, providerIdOk = innerObj.IdentityProviderSAML.GetIdOk() + providerName, providerNameOk = innerObj.IdentityProviderSAML.GetNameOk() default: continue } diff --git a/internal/connector/pingone/sso/resources/resource_attribute.go b/internal/connector/pingone/sso/resources/resource_attribute.go index 94960cfd..ba7b2cf5 100644 --- a/internal/connector/pingone/sso/resources/resource_attribute.go +++ b/internal/connector/pingone/sso/resources/resource_attribute.go @@ -86,11 +86,11 @@ func (r *PingOneResourceAttributeResource) getResourceData() (map[string][]strin return nil, err } - for _, inner := range apiObjs { - if inner.Resource != nil { - resourceId, resourceIdOk := inner.Resource.GetIdOk() - resourceName, resourceNameOk := inner.Resource.GetNameOk() - resourceType, resourceTypeOk := inner.Resource.GetTypeOk() + for _, innerObj := range apiObjs { + if innerObj.Resource != nil { + resourceId, resourceIdOk := innerObj.Resource.GetIdOk() + resourceName, resourceNameOk := innerObj.Resource.GetNameOk() + resourceType, resourceTypeOk := innerObj.Resource.GetTypeOk() if resourceIdOk && resourceNameOk && resourceTypeOk { resourceData[*resourceId] = []string{*resourceName, string(*resourceType)} @@ -110,11 +110,11 @@ func (r *PingOneResourceAttributeResource) getResourceAttributeData(resourceId, return nil, err } - for _, inner := range apiObjs { - if inner.ResourceAttribute != nil { - resourceAttributeId, resourceAttributeIdOk := inner.ResourceAttribute.GetIdOk() - resourceAttributeName, resourceAttributeNameOk := inner.ResourceAttribute.GetNameOk() - resourceAttributeType, resourceAttributeTypeOk := inner.ResourceAttribute.GetTypeOk() + for _, innerObj := range apiObjs { + if innerObj.ResourceAttribute != nil { + resourceAttributeId, resourceAttributeIdOk := innerObj.ResourceAttribute.GetIdOk() + resourceAttributeName, resourceAttributeNameOk := innerObj.ResourceAttribute.GetNameOk() + resourceAttributeType, resourceAttributeTypeOk := innerObj.ResourceAttribute.GetTypeOk() if resourceAttributeIdOk && resourceAttributeNameOk && resourceAttributeTypeOk { // Any CORE attribute is required and cannot be overridden diff --git a/internal/connector/pingone/sso/resources/resource_scope.go b/internal/connector/pingone/sso/resources/resource_scope.go index d18e0c30..5c3cc213 100644 --- a/internal/connector/pingone/sso/resources/resource_scope.go +++ b/internal/connector/pingone/sso/resources/resource_scope.go @@ -83,11 +83,11 @@ func (r *PingOneResourceScopeResource) getResourceData() (map[string]string, err return nil, err } - for _, inner := range apiObjs { - if inner.Resource != nil { - resourceId, resourceIdOk := inner.Resource.GetIdOk() - resourceName, resourceNameOk := inner.Resource.GetNameOk() - resourceType, resourceTypeOk := inner.Resource.GetTypeOk() + for _, innerObj := range apiObjs { + if innerObj.Resource != nil { + resourceId, resourceIdOk := innerObj.Resource.GetIdOk() + resourceName, resourceNameOk := innerObj.Resource.GetNameOk() + resourceType, resourceTypeOk := innerObj.Resource.GetTypeOk() if resourceIdOk && resourceNameOk && resourceTypeOk && *resourceType == management.ENUMRESOURCETYPE_CUSTOM { resourceData[*resourceId] = *resourceName diff --git a/internal/connector/pingone/sso/resources/resource_scope_openid.go b/internal/connector/pingone/sso/resources/resource_scope_openid.go index 6b4389ce..042f3cd5 100644 --- a/internal/connector/pingone/sso/resources/resource_scope_openid.go +++ b/internal/connector/pingone/sso/resources/resource_scope_openid.go @@ -81,11 +81,11 @@ func (r *PingOneResourceScopeOpenIdResource) getResourceData() (map[string]strin return nil, err } - for _, inner := range apiObjs { - if inner.Resource != nil { - resourceId, resourceIdOk := inner.Resource.GetIdOk() - resourceName, resourceNameOk := inner.Resource.GetNameOk() - resourceType, resourceTypeOk := inner.Resource.GetTypeOk() + for _, innerObj := range apiObjs { + if innerObj.Resource != nil { + resourceId, resourceIdOk := innerObj.Resource.GetIdOk() + resourceName, resourceNameOk := innerObj.Resource.GetNameOk() + resourceType, resourceTypeOk := innerObj.Resource.GetTypeOk() if resourceIdOk && resourceNameOk && resourceTypeOk && *resourceType == management.ENUMRESOURCETYPE_OPENID_CONNECT { resourceData[*resourceId] = *resourceName diff --git a/internal/connector/pingone/sso/resources/resource_scope_pingone_api.go b/internal/connector/pingone/sso/resources/resource_scope_pingone_api.go index cfe50d4d..72efc594 100644 --- a/internal/connector/pingone/sso/resources/resource_scope_pingone_api.go +++ b/internal/connector/pingone/sso/resources/resource_scope_pingone_api.go @@ -82,11 +82,11 @@ func (r *PingOneResourceScopePingOneApiResource) getResourceData() (map[string]s return nil, err } - for _, inner := range apiObjs { - if inner.Resource != nil { - resourceId, resourceIdOk := inner.Resource.GetIdOk() - resourceName, resourceNameOk := inner.Resource.GetNameOk() - resourceType, resourceTypeOk := inner.Resource.GetTypeOk() + for _, innerObj := range apiObjs { + if innerObj.Resource != nil { + resourceId, resourceIdOk := innerObj.Resource.GetIdOk() + resourceName, resourceNameOk := innerObj.Resource.GetNameOk() + resourceType, resourceTypeOk := innerObj.Resource.GetTypeOk() if resourceIdOk && resourceNameOk && resourceTypeOk && *resourceType == management.ENUMRESOURCETYPE_PINGONE_API { resourceData[*resourceId] = *resourceName diff --git a/internal/connector/pingone/sso/resources/resource_secret.go b/internal/connector/pingone/sso/resources/resource_secret.go index 15ade4e3..49a5e617 100644 --- a/internal/connector/pingone/sso/resources/resource_secret.go +++ b/internal/connector/pingone/sso/resources/resource_secret.go @@ -82,11 +82,11 @@ func (r *PingOneResourceSecretResource) getResourceData() (map[string]string, er return nil, err } - for _, inner := range apiObjs { - if inner.Resource != nil { - resourceId, resourceIdOk := inner.Resource.GetIdOk() - resourceName, resourceNameOk := inner.Resource.GetNameOk() - resourceType, resourceTypeOk := inner.Resource.GetTypeOk() + for _, innerObj := range apiObjs { + if innerObj.Resource != nil { + resourceId, resourceIdOk := innerObj.Resource.GetIdOk() + resourceName, resourceNameOk := innerObj.Resource.GetNameOk() + resourceType, resourceTypeOk := innerObj.Resource.GetTypeOk() if resourceIdOk && resourceNameOk && resourceTypeOk && *resourceType == management.ENUMRESOURCETYPE_CUSTOM { resourceData[*resourceId] = *resourceName diff --git a/internal/connector/pingone/sso/resources/schema_attribute.go b/internal/connector/pingone/sso/resources/schema_attribute.go index a3d48ce0..60ad9794 100644 --- a/internal/connector/pingone/sso/resources/schema_attribute.go +++ b/internal/connector/pingone/sso/resources/schema_attribute.go @@ -52,6 +52,8 @@ func (r *PingOneSchemaAttributeResource) ExportAll() (*[]connector.ImportBlock, for schemaAttributeId, schemaAttributeName := range schemaAttributeData { commentData := map[string]string{ + "Schema ID": schemaId, + "Schema Name": schemaName, "Schema Attribute ID": schemaAttributeId, "Schema Attribute Name": schemaAttributeName, "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, diff --git a/internal/connector/pingone/sso/resources/sign_on_policy_action.go b/internal/connector/pingone/sso/resources/sign_on_policy_action.go index 34ed7fb4..90d9b959 100644 --- a/internal/connector/pingone/sso/resources/sign_on_policy_action.go +++ b/internal/connector/pingone/sso/resources/sign_on_policy_action.go @@ -52,6 +52,8 @@ func (r *PingOneSignOnPolicyActionResource) ExportAll() (*[]connector.ImportBloc for signOnPolicysignOnPolicyActionId, signOnPolicyActionType := range signOnPolicyActionData { commentData := map[string]string{ + "Sign On Policy ID": signOnPolicyId, + "Sign On Policy Name": signOnPolicyName, "Sign On Policy Action ID": signOnPolicysignOnPolicyActionId, "Sign On Policy Action Type": signOnPolicyActionType, "Export Environment ID": r.clientInfo.PingOneExportEnvironmentID, @@ -102,7 +104,7 @@ func (r *PingOneSignOnPolicyActionResource) getSignOnPolicyActionData(signOnPoli return nil, err } - for _, inner := range apiObjs { + for _, innerObj := range apiObjs { var ( signOnPolicyActionId *string signOnPolicyActionIdOk bool @@ -111,30 +113,30 @@ func (r *PingOneSignOnPolicyActionResource) getSignOnPolicyActionData(signOnPoli ) switch { - case inner.SignOnPolicyActionAgreement != nil: - signOnPolicyActionId, signOnPolicyActionIdOk = inner.SignOnPolicyActionAgreement.GetIdOk() - signOnPolicyActionType, signOnPolicyActionTypeOk = inner.SignOnPolicyActionAgreement.GetTypeOk() - case inner.SignOnPolicyActionCommon != nil: - signOnPolicyActionId, signOnPolicyActionIdOk = inner.SignOnPolicyActionCommon.GetIdOk() - signOnPolicyActionType, signOnPolicyActionTypeOk = inner.SignOnPolicyActionCommon.GetTypeOk() - case inner.SignOnPolicyActionIDFirst != nil: - signOnPolicyActionId, signOnPolicyActionIdOk = inner.SignOnPolicyActionIDFirst.GetIdOk() - signOnPolicyActionType, signOnPolicyActionTypeOk = inner.SignOnPolicyActionIDFirst.GetTypeOk() - case inner.SignOnPolicyActionIDP != nil: - signOnPolicyActionId, signOnPolicyActionIdOk = inner.SignOnPolicyActionIDP.GetIdOk() - signOnPolicyActionType, signOnPolicyActionTypeOk = inner.SignOnPolicyActionIDP.GetTypeOk() - case inner.SignOnPolicyActionLogin != nil: - signOnPolicyActionId, signOnPolicyActionIdOk = inner.SignOnPolicyActionLogin.GetIdOk() - signOnPolicyActionType, signOnPolicyActionTypeOk = inner.SignOnPolicyActionLogin.GetTypeOk() - case inner.SignOnPolicyActionMFA != nil: - signOnPolicyActionId, signOnPolicyActionIdOk = inner.SignOnPolicyActionMFA.GetIdOk() - signOnPolicyActionType, signOnPolicyActionTypeOk = inner.SignOnPolicyActionMFA.GetTypeOk() - case inner.SignOnPolicyActionPingIDWinLoginPasswordless != nil: - signOnPolicyActionId, signOnPolicyActionIdOk = inner.SignOnPolicyActionPingIDWinLoginPasswordless.GetIdOk() - signOnPolicyActionType, signOnPolicyActionTypeOk = inner.SignOnPolicyActionPingIDWinLoginPasswordless.GetTypeOk() - case inner.SignOnPolicyActionProgressiveProfiling != nil: - signOnPolicyActionId, signOnPolicyActionIdOk = inner.SignOnPolicyActionProgressiveProfiling.GetIdOk() - signOnPolicyActionType, signOnPolicyActionTypeOk = inner.SignOnPolicyActionProgressiveProfiling.GetTypeOk() + case innerObj.SignOnPolicyActionAgreement != nil: + signOnPolicyActionId, signOnPolicyActionIdOk = innerObj.SignOnPolicyActionAgreement.GetIdOk() + signOnPolicyActionType, signOnPolicyActionTypeOk = innerObj.SignOnPolicyActionAgreement.GetTypeOk() + case innerObj.SignOnPolicyActionCommon != nil: + signOnPolicyActionId, signOnPolicyActionIdOk = innerObj.SignOnPolicyActionCommon.GetIdOk() + signOnPolicyActionType, signOnPolicyActionTypeOk = innerObj.SignOnPolicyActionCommon.GetTypeOk() + case innerObj.SignOnPolicyActionIDFirst != nil: + signOnPolicyActionId, signOnPolicyActionIdOk = innerObj.SignOnPolicyActionIDFirst.GetIdOk() + signOnPolicyActionType, signOnPolicyActionTypeOk = innerObj.SignOnPolicyActionIDFirst.GetTypeOk() + case innerObj.SignOnPolicyActionIDP != nil: + signOnPolicyActionId, signOnPolicyActionIdOk = innerObj.SignOnPolicyActionIDP.GetIdOk() + signOnPolicyActionType, signOnPolicyActionTypeOk = innerObj.SignOnPolicyActionIDP.GetTypeOk() + case innerObj.SignOnPolicyActionLogin != nil: + signOnPolicyActionId, signOnPolicyActionIdOk = innerObj.SignOnPolicyActionLogin.GetIdOk() + signOnPolicyActionType, signOnPolicyActionTypeOk = innerObj.SignOnPolicyActionLogin.GetTypeOk() + case innerObj.SignOnPolicyActionMFA != nil: + signOnPolicyActionId, signOnPolicyActionIdOk = innerObj.SignOnPolicyActionMFA.GetIdOk() + signOnPolicyActionType, signOnPolicyActionTypeOk = innerObj.SignOnPolicyActionMFA.GetTypeOk() + case innerObj.SignOnPolicyActionPingIDWinLoginPasswordless != nil: + signOnPolicyActionId, signOnPolicyActionIdOk = innerObj.SignOnPolicyActionPingIDWinLoginPasswordless.GetIdOk() + signOnPolicyActionType, signOnPolicyActionTypeOk = innerObj.SignOnPolicyActionPingIDWinLoginPasswordless.GetTypeOk() + case innerObj.SignOnPolicyActionProgressiveProfiling != nil: + signOnPolicyActionId, signOnPolicyActionIdOk = innerObj.SignOnPolicyActionProgressiveProfiling.GetIdOk() + signOnPolicyActionType, signOnPolicyActionTypeOk = innerObj.SignOnPolicyActionProgressiveProfiling.GetTypeOk() default: continue } diff --git a/internal/testing/testutils/utils.go b/internal/testing/testutils/utils.go index b55cb320..b9effc99 100644 --- a/internal/testing/testutils/utils.go +++ b/internal/testing/testutils/utils.go @@ -117,7 +117,9 @@ func getValidatedActualImportBlocks(t *testing.T, resource connector.ExportableR importBlocks, err := resource.ExportAll() if err != nil { - t.Fatalf("Failed to export %s: %s", resource.ResourceType(), err.Error()) + t.Errorf("Failed to export %s: %s", resource.ResourceType(), err.Error()) + + return nil } // Make sure the resource name and id in each import block is unique across all import blocks @@ -126,11 +128,15 @@ func getValidatedActualImportBlocks(t *testing.T, resource connector.ExportableR for _, importBlock := range *importBlocks { if resourceNames[importBlock.ResourceName] { t.Errorf("Resource name %s is not unique", importBlock.ResourceName) + + return nil } resourceNames[importBlock.ResourceName] = true if resourceIDs[importBlock.ResourceID] { t.Errorf("Resource ID %s is not unique", importBlock.ResourceID) + + return nil } resourceIDs[importBlock.ResourceID] = true } @@ -179,7 +185,9 @@ func ValidateImportBlocks(t *testing.T, resource connector.ExportableResource, e expectedNumberOfBlocks := len(*expectedImportBlocks) actualNumberOfBlocks := len(*actualImportBlocks) if actualNumberOfBlocks != expectedNumberOfBlocks { - t.Fatalf("Expected %d import blocks, got %d", expectedNumberOfBlocks, actualNumberOfBlocks) + t.Errorf("Expected %d import blocks, got %d", expectedNumberOfBlocks, actualNumberOfBlocks) + + return } // Make sure the import blocks match the expected import blocks @@ -215,10 +223,14 @@ func ValidateImportBlockSubset(t *testing.T, resource connector.ExportableResour expectedNumberOfBlocks := len(*expectedImportBlocks) actualNumberOfBlocks := len(*actualImportBlocks) if actualNumberOfBlocks < expectedNumberOfBlocks { - t.Fatalf("Expected import blocks count (%d) is greater than Actual import blocks count (%d)", expectedNumberOfBlocks, actualNumberOfBlocks) + t.Errorf("Expected import blocks count (%d) is greater than Actual import blocks count (%d)", expectedNumberOfBlocks, actualNumberOfBlocks) + + return } if expectedNumberOfBlocks == 0 { - t.Fatalf("Expected import blocks count is 0") + t.Errorf("Expected import blocks count is 0") + + return } // For each expected import block, make sure it matches an actual import block From 2aaed092535ef206e93f5dd6d84affa7d769b123 Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Fri, 28 Mar 2025 08:59:09 -0600 Subject: [PATCH 17/18] More testing fixes --- internal/testing/testutils/utils.go | 4 ++-- .../password_credential_validator.go | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/internal/testing/testutils/utils.go b/internal/testing/testutils/utils.go index b9effc99..3e3ab110 100644 --- a/internal/testing/testutils/utils.go +++ b/internal/testing/testutils/utils.go @@ -69,7 +69,7 @@ func initPingFederateClientInfo(t *testing.T, clientInfo *connector.ClientInfo) pfClientConfig.HTTPClient = httpClient clientInfo.PingFederateApiClient = pingfederateGoClient.NewAPIClient(pfClientConfig) - clientInfo.PingFederateContext = context.WithValue(t.Context(), pingfederateGoClient.ContextBasicAuth, pingfederateGoClient.BasicAuth{ + clientInfo.PingFederateContext = context.WithValue(context.WithoutCancel(t.Context()), pingfederateGoClient.ContextBasicAuth, pingfederateGoClient.BasicAuth{ UserName: pfUsername, Password: pfPassword, }) @@ -98,7 +98,7 @@ func initPingOneClientInfo(t *testing.T, clientInfo *connector.ClientInfo) { } // Make empty context for testing - ctx := t.Context() + ctx := context.WithoutCancel(t.Context()) // Initialize the API client client, err := apiConfig.APIClient(ctx) diff --git a/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go b/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go index 748b86fe..67f20dbc 100644 --- a/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go +++ b/internal/testing/testutils_resource/pingfederate_testable_resources/password_credential_validator.go @@ -84,7 +84,11 @@ func createPasswordCredentialValidator(t *testing.T, clientInfo *connector.Clien return testutils_resource.ResourceInfo{} } if !ok { - t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + if response != nil { + t.Errorf("Failed to execute client function\nResponse Status: %s\nResponse Body: %s", response.Status, response.Body) + } else { + t.Errorf("Failed to execute client function") + } return testutils_resource.ResourceInfo{} } From f6adf155010a3ec178a0324c3ce0826389a46545 Mon Sep 17 00:00:00 2001 From: Erik Ostien Date: Fri, 28 Mar 2025 10:07:26 -0600 Subject: [PATCH 18/18] Disable sign-on policy tests for TRIAGE-26632 --- .../pingone/sso/pingone_sso_connector_test.go | 26 ++++++++++--------- .../resources/sign_on_policy_action_test.go | 3 +++ .../sso/resources/sign_on_policy_test.go | 3 +++ 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/internal/connector/pingone/sso/pingone_sso_connector_test.go b/internal/connector/pingone/sso/pingone_sso_connector_test.go index 5bd598a3..f95b440c 100644 --- a/internal/connector/pingone/sso/pingone_sso_connector_test.go +++ b/internal/connector/pingone/sso/pingone_sso_connector_test.go @@ -142,18 +142,20 @@ func TestSSOTerraformPlan(t *testing.T) { "Error: Data Loss Protection", }, }, - { - name: "SignOnPolicy", - testableResource: pingone_sso_testable_resources.SignOnPolicy(t, clientInfo), - ignoredErrors: nil, - }, - { - name: "SignOnPolicyAction", - testableResource: pingone_sso_testable_resources.SignOnPolicyAction(t, clientInfo), - ignoredErrors: []string{ - "Error: Conflicting configuration arguments", - }, - }, + // TODO: Re-enable test after compleition of TRIAGE-26632 + // { + // name: "SignOnPolicy", + // testableResource: pingone_sso_testable_resources.SignOnPolicy(t, clientInfo), + // ignoredErrors: nil, + // }, + // TODO: Re-enable test after compleition of TRIAGE-26632 + // { + // name: "SignOnPolicyAction", + // testableResource: pingone_sso_testable_resources.SignOnPolicyAction(t, clientInfo), + // ignoredErrors: []string{ + // "Error: Conflicting configuration arguments", + // }, + // }, } for _, tc := range testCases { diff --git a/internal/connector/pingone/sso/resources/sign_on_policy_action_test.go b/internal/connector/pingone/sso/resources/sign_on_policy_action_test.go index cff6fb77..3ae33bb1 100644 --- a/internal/connector/pingone/sso/resources/sign_on_policy_action_test.go +++ b/internal/connector/pingone/sso/resources/sign_on_policy_action_test.go @@ -14,6 +14,9 @@ import ( ) func Test_SignOnPolicyAction(t *testing.T) { + // TODO: Re-enable test after compleition of TRIAGE-26632 + t.SkipNow() + clientInfo := testutils.GetClientInfo(t) tr := pingone_sso_testable_resources.SignOnPolicyAction(t, clientInfo) diff --git a/internal/connector/pingone/sso/resources/sign_on_policy_test.go b/internal/connector/pingone/sso/resources/sign_on_policy_test.go index 829e282b..74f77b3f 100644 --- a/internal/connector/pingone/sso/resources/sign_on_policy_test.go +++ b/internal/connector/pingone/sso/resources/sign_on_policy_test.go @@ -14,6 +14,9 @@ import ( ) func Test_SignOnPolicy(t *testing.T) { + // TODO: Re-enable test after compleition of TRIAGE-26632 + t.SkipNow() + clientInfo := testutils.GetClientInfo(t) tr := pingone_sso_testable_resources.SignOnPolicy(t, clientInfo)