# This is an automatically generated code sample.
# To make this code sample work in your Oracle Cloud tenancy,
# please replace the values for any parameters whose current values do not fit
# your use case (such as resource IDs, strings containing ‘EXAMPLE’ or ‘unique_id’, and
# boolean, number, and enum parameters with values not fitting your use case).

import oci

# Create a default config using DEFAULT profile in default location
# Refer to
# https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File
# for more info
config = oci.config.from_file()


# Initialize service client with default config file
identity_domains_client = oci.identity_domains.IdentityDomainsClient(
    config, "https://endpoint_of_this_service.com")


# Send the request to service, some parameters are not required, see API
# doc for more info
put_authentication_factor_setting_response = identity_domains_client.put_authentication_factor_setting(
    authentication_factor_setting_id="ocid1.test.oc1..<unique_ID>EXAMPLE-authenticationFactorSettingId-Value",
    authorization="EXAMPLE-authorization-Value",
    resource_type_schema_version="EXAMPLE-resourceTypeSchemaVersion-Value",
    attributes="EXAMPLE-attributes-Value",
    attribute_sets=["all"],
    authentication_factor_setting=oci.identity_domains.models.AuthenticationFactorSetting(
        schemas=["EXAMPLE--Value"],
        sms_enabled=False,
        totp_enabled=False,
        push_enabled=True,
        bypass_code_enabled=True,
        security_questions_enabled=False,
        mfa_enrollment_type="EXAMPLE-mfaEnrollmentType-Value",
        notification_settings=oci.identity_domains.models.AuthenticationFactorSettingsNotificationSettings(
            pull_enabled=False),
        bypass_code_settings=oci.identity_domains.models.AuthenticationFactorSettingsBypassCodeSettings(
            self_service_generation_enabled=False,
            help_desk_generation_enabled=True,
            length=636,
            max_active=844,
            help_desk_code_expiry_in_mins=469,
            help_desk_max_usage=297),
        client_app_settings=oci.identity_domains.models.AuthenticationFactorSettingsClientAppSettings(
            min_pin_length=528,
            max_failures_before_warning=584,
            max_failures_before_lockout=309,
            initial_lockout_period_in_secs=823,
            lockout_escalation_pattern="EXAMPLE-lockoutEscalationPattern-Value",
            max_lockout_interval_in_secs=446,
            request_signing_algo="SHA256withRSA",
            policy_update_freq_in_days=500,
            key_pair_length=524,
            device_protection_policy="EXAMPLE-deviceProtectionPolicy-Value",
            unlock_app_for_each_request_enabled=True,
            unlock_on_app_start_enabled=True,
            unlock_app_interval_in_secs=398,
            shared_secret_encoding="Base32",
            unlock_on_app_foreground_enabled=True),
        endpoint_restrictions=oci.identity_domains.models.AuthenticationFactorSettingsEndpointRestrictions(
            max_enrolled_devices=461,
            max_trusted_endpoints=517,
            max_endpoint_trust_duration_in_days=145,
            trusted_endpoints_enabled=False,
            max_incorrect_attempts=879),
        compliance_policy=[
            oci.identity_domains.models.AuthenticationFactorSettingsCompliancePolicy(
                name="EXAMPLE-name-Value",
                action="None",
                value="EXAMPLE-value-Value")],
        totp_settings=oci.identity_domains.models.AuthenticationFactorSettingsTotpSettings(
            hashing_algorithm="SHA256",
            passcode_length=533,
            key_refresh_interval_in_days=290,
            time_step_in_secs=660,
            time_step_tolerance=95,
            sms_otp_validity_duration_in_mins=201,
            jwt_validity_duration_in_secs=301,
            sms_passcode_length=583,
            email_otp_validity_duration_in_mins=379,
            email_passcode_length=570),
        id="ocid1.test.oc1..<unique_ID>EXAMPLE-id-Value",
        ocid="EXAMPLE-ocid-Value",
        meta=oci.identity_domains.models.Meta(
            resource_type="EXAMPLE-resourceType-Value",
            created="EXAMPLE-created-Value",
            last_modified="EXAMPLE-lastModified-Value",
            location="EXAMPLE-location-Value",
            version="EXAMPLE-version-Value"),
        idcs_created_by=oci.identity_domains.models.IdcsCreatedBy(
            value="EXAMPLE-value-Value",
            ref=None,
            type="User",
            display="EXAMPLE-display-Value",
            ocid="EXAMPLE-ocid-Value"),
        idcs_last_modified_by=oci.identity_domains.models.IdcsLastModifiedBy(
            value="EXAMPLE-value-Value",
            ref=None,
            type="User",
            display="EXAMPLE-display-Value",
            ocid="EXAMPLE-ocid-Value"),
        idcs_prevented_operations=["delete"],
        tags=[
            oci.identity_domains.models.Tags(
                key="EXAMPLE-key-Value",
                value="EXAMPLE-value-Value")],
        delete_in_progress=False,
        idcs_last_upgraded_in_release="EXAMPLE-idcsLastUpgradedInRelease-Value",
        domain_ocid="EXAMPLE-domainOcid-Value",
        compartment_ocid="EXAMPLE-compartmentOcid-Value",
        tenancy_ocid="EXAMPLE-tenancyOcid-Value",
        email_enabled=True,
        phone_call_enabled=False,
        fido_authenticator_enabled=True,
        yubico_otp_enabled=False,
        mfa_enabled_category="EXAMPLE-mfaEnabledCategory-Value",
        hide_backup_factor_enabled=True,
        auto_enroll_email_factor_disabled=True,
        user_enrollment_disabled_factors=["TOTP"],
        email_settings=oci.identity_domains.models.AuthenticationFactorSettingsEmailSettings(
            email_link_enabled=False,
            email_link_custom_url="EXAMPLE-emailLinkCustomUrl-Value"),
        third_party_factor=oci.identity_domains.models.AuthenticationFactorSettingsThirdPartyFactor(
            duo_security=True),
        identity_store_settings=oci.identity_domains.models.AuthenticationFactorSettingsIdentityStoreSettings(
            mobile_number_enabled=False,
            mobile_number_update_enabled=True),
        urn_ietf_params_scim_schemas_oracle_idcs_extension_third_party_authentication_factor_settings=oci.identity_domains.models.ExtensionThirdPartyAuthenticationFactorSettings(
            duo_security_settings=oci.identity_domains.models.AuthenticationFactorSettingsDuoSecuritySettings(
                integration_key="EXAMPLE-integrationKey-Value",
                secret_key="EXAMPLE-secretKey-Value",
                api_hostname="EXAMPLE-apiHostname-Value",
                user_mapping_attribute="userName",
                attestation_key="EXAMPLE-attestationKey-Value")),
        urn_ietf_params_scim_schemas_oracle_idcs_extension_fido_authentication_factor_settings=oci.identity_domains.models.ExtensionFidoAuthenticationFactorSettings(
            attestation="INDIRECT",
            authenticator_selection_attachment="CROSS-PLATFORM",
            authenticator_selection_user_verification="REQUIRED",
            authenticator_selection_resident_key="PREFERRED",
            timeout=694,
            authenticator_selection_require_resident_key=True,
            public_key_types=["ES256"],
            exclude_credentials=False,
            domain_validation_level=859)),
    if_match="EXAMPLE-ifMatch-Value",
    opc_retry_token="EXAMPLE-opcRetryToken-Value")

# Get the data from response
print(put_authentication_factor_setting_response.data)