RELEASE NOTES
12.0.0 (Nov 4, 2026)
BREAKING CHANGES:
-
CPS
- Removed the deprecated
network_configuration.clone_dns_namesfield from theakamai_cps_dv_enrollmentandakamai_cps_third_party_enrollmentresources and from theakamai_cps_enrollmentand theakamai_cps_enrollmentsdata sources. Use thenetwork_configuration.enable_for_all_sansfield instead.
- Removed the deprecated
-
Cloudlets
- Removed the
akaRuleIdand thelocationfields from thematch_rulesattribute of theakamai_cloudlets_policyresource, since it's not possible to reliably reflect these server-generated values in the resource's state without causing an unexpectedterraform plandiff. Use theakamai_cloudlets_policyorakamai_cloudlets_shared_policydata source to read them (I#659).
- Removed the
-
GTM
- Changed the
type,ttl, and therdataattributes in thestatic_rr_setblock of theakamai_gtm_propertyresource from optional to required.
- Changed the
-
IAM
- Fixed the
akamai_iam_userresource so that removingsecondary_emailfrom the configuration now correctly clears a previously set value on update, instead of silently leaving it unchanged (I#699). - Corrected
secondary_emailto no longer accept an empty string in configuration.
- Fixed the
-
PAPI
- Changed the
optionsattribute in theakamai_edge_hostnamesand theakamai_edge_hostnamedata sources from a list to a string.
- Changed the
FEATURES/ENHANCEMENTS:
-
Appsec
- Changed the following resources to store JSON attributes in state in a normalized form (sorted keys, no extra whitespace) at read time:
akamai_appsec_advanced_settings_attack_payload_loggingakamai_appsec_advanced_settings_loggingakamai_appsec_advanced_settings_pragma_headerakamai_appsec_attack_groupakamai_appsec_custom_denyakamai_appsec_eval_groupakamai_appsec_eval_penalty_box_conditionsakamai_appsec_eval_ruleakamai_appsec_malware_policyakamai_appsec_malware_policy_actionsakamai_appsec_match_targetakamai_appsec_match_target_sequenceakamai_appsec_penalty_box_conditionsakamai_appsec_rate_policyakamai_appsec_reputation_profileakamai_appsec_rule
- Added a caching layer for the
akamai_appsec_rate_policy,akamai_appsec_match_target, and theakamai_appsec_reputation_profileresources to reduce API calls. - Improved the
akamai_appsec_activationspolling to use progressive backoff instead of a fixed interval, reducing unnecessary API calls.
- Changed the following resources to store JSON attributes in state in a normalized form (sorted keys, no extra whitespace) at read time:
-
Appsec (Beta)
- Added a new resource
akamai_appsec_script_behavior_rule- manages Client-Side Protection script behavior rules for a security policy. - Added new data sources:
akamai_appsec_script_behavior_rule- retrieves a single script behavior rule for a security policy.akamai_appsec_script_behavior_rules- retrieves all script behavior rules for a security policy.akamai_appsec_clientside_protection_configuration- retrieves the CPC configuration for a security policy.
- Added a new resource:
akamai_appsec_clientside_protection_configuration- manages Client-side Protection & Compliance (CPC) configuration for a security policy.
- Added a new resource
-
Cloud Certificates (Beta)
- Added the
akamai_cloudcertificates_renewaction to renew a certificate lineage by creating a new head generation with fresh CSRs for every algorithm. - Added the
akamai_cloudcertificates_rollbackaction to roll a certificate lineage's production generation back to its previous production generation. - Added the
akamai_cloudcertificates_replace_stagingaction to replace a certificate lineage's staging generation with its current or previous production generation. - Added the
akamai_cloudcertificates_delete_generationaction to permanently delete a single certificate generation from a lineage. - Changed paginated data-source behavior to return an error when the API returns a repeated cursor, preventing incomplete results or continued requests with repeated cursors. This affects the
akamai_cloudcertificates_activations,akamai_cloudcertificates_activity,akamai_cloudcertificates_bindings, andakamai_cloudcertificates_lineagesdata sources. - Replaced the
error_typesstring attribute with anerrorslist ofmessage/typeobjects on theakamai_cloudcertificates_activationresource and theakamai_cloudcertificates_activation_statusandakamai_cloudcertificates_activationsdata sources. - Removed the
total_hostname_countandin_progress_hostname_countattributes from theakamai_cloudcertificates_activationresource and theakamai_cloudcertificates_activation_statusandakamai_cloudcertificates_activationsdata sources, as they are no longer provided by the API. - Added the
CONTIGUOUS_USandRESERVED_GLOBALvalues for thegeo_classattribute on theakamai_cloudcertificates_lineageresource. Both requiresecure_networkto beENHANCED_TLS; this is now enforced at plan time.
- Added the
-
PAPI
- Added support for the
delivery_policyattribute and map details in theakamai_edge_hostnamesand theakamai_edge_hostnamedata sources whenoptionsis set tomapDetails. - Added support for the new rule format
v2026-09-30. Compared to the previous rule format, thedownloadNotificationbehavior is no longer supported. - Increased the default timeout of the
akamai_edge_hostnameresource from 45 minutes to 3 hours and removed the 15-retry limit when waiting for edge hostname propagation.
- Added support for the
BUG FIXES:
-
General
- Marked credential, secret, token, password, and private-key schema attributes as sensitive to prevent Terraform from displaying them in plan and apply output. Affected resources and data sources:
akamai_dns_zone,akamai_gtm_property,akamai_gtm_domain,akamai_iam_api_clients,akamai_cloudwrapper_configuration,akamai_property_hostnames, andakamai_property_rules_builder. Thanks for reporting this issue, @kta1kri .
- Marked credential, secret, token, password, and private-key schema attributes as sensitive to prevent Terraform from displaying them in plan and apply output. Affected resources and data sources:
-
Appsec
- Fixed the
akamai_appsec_advanced_settings_url_evasion_defenseresource failing with theProvider produced inconsistent result after applyerror whenbypass_listsorruleswere not configured, or whenruleswere added to an existing resource. - Added validation to the
akamai_appsec_advanced_settings_url_evasion_defenseresource that rejects an emptyruleslist. Omitrulesinstead. - Fixed the
akamai_appsec_advanced_settings_url_evasion_defenseresource failing withProvider produced inconsistent result after applywhenruleswere reordered or inserted, as the computednameanddescriptionof a rule were taken from the rule previously at the same position instead of the samerule_id. - Fixed type mismatch for
config_idandversionacross all appsec resources by updating internal handling to useint64, aligning with EG library type changes. - Fixed spurious plan drift for the
akamai_appsec_rate_policyresource where Terraform detected a change on every plan even when the configuration had not changed. This occurred because the API returns server-assigned fields (id,configId,configVersion) that customers do not write in their HCL config. These fields are now correctly ignored during plan comparison.
- Fixed the
-
CPS
- Fixed an issue in the
akamai_cps_dv_enrollmentandakamai_cps_third_party_enrollmentresources where deletion got stuck until timeout when warnings required acknowledgement. Optionalacknowledge_deletion_warningsattribute was introduced. It acknowledges deletion warnings when set totrue. Default isfalse. (I#759). - Fixed an issue where
dns_nameswas not set correctly in theakamai_cps_dv_enrollmentand theakamai_cps_third_party_enrollmentresources whenenable_for_all_sanswas set totrue.
- Fixed an issue in the
-
Cloud Certificates (Beta)
- Fixed the
akamai_cloudcertificates_lineageresource's plan-time name-conflict check to detect matching names on subsequent pages of API results. - Fixed incomplete results from the
akamai_cloudcertificates_activity,akamai_cloudcertificates_bindings, and theakamai_cloudcertificates_lineagesdata sources by following valid pagination cursors after empty pages.
- Fixed the
-
PAPI
- Fixed the
akamai_property_activationresource getting stuck retrying a deactivation indefinitely when the property version had already been deactivated outside Terraform, causing repeated 422 errors and apply timeouts (I#793).
- Fixed the