diff --git a/docs/reference/api/ModemManager-sections.txt b/docs/reference/api/ModemManager-sections.txt
index 886454f8..eff2fe08 100644
--- a/docs/reference/api/ModemManager-sections.txt
+++ b/docs/reference/api/ModemManager-sections.txt
@@ -17,6 +17,7 @@ MMBearerAllowedAuth
MMBearerMultiplexSupport
MMBearerApnType
MMBearerAccessTypePreference
+MMBearerRoamingAllowance
MMCallDirection
MMCallState
MMCallStateReason
diff --git a/docs/reference/libmm-glib/libmm-glib-sections.txt b/docs/reference/libmm-glib/libmm-glib-sections.txt
index 42c4d81a..690d31f7 100644
--- a/docs/reference/libmm-glib/libmm-glib-sections.txt
+++ b/docs/reference/libmm-glib/libmm-glib-sections.txt
@@ -1706,6 +1706,7 @@ mm_sim_type_get_string
mm_sim_esim_status_get_string
mm_sim_removability_get_string
mm_bearer_access_type_preference_get_string
+mm_bearer_roaming_allowance_build_string_from_mask
mm_modem_capability_build_string_from_mask
mm_modem_state_get_string
mm_modem_state_failed_reason_get_string
@@ -1777,6 +1778,7 @@ mm_sim_type_build_string_from_mask
mm_sim_esim_status_build_string_from_mask
mm_sim_removability_build_string_from_mask
mm_bearer_access_type_preference_build_string_from_mask
+mm_bearer_roaming_allowance_get_string
mm_modem_cdma_registration_state_build_string_from_mask
mm_modem_cdma_activation_state_build_string_from_mask
mm_modem_cdma_rm_protocol_build_string_from_mask
@@ -1810,6 +1812,7 @@ MM_TYPE_SIM_TYPE
MM_TYPE_ESIM_STATUS
MM_TYPE_SIM_REMOVAL_STATUS
MM_TYPE_BEARER_ACCESS_TYPE_PREFERENCE
+MM_TYPE_BEARER_ROAMING_ALLOWANCE
MM_TYPE_FIRMWARE_IMAGE_TYPE
MM_TYPE_MODEM_3GPP_FACILITY
MM_TYPE_MODEM_3GPP_NETWORK_AVAILABILITY
@@ -1861,6 +1864,7 @@ mm_sim_type_get_type
mm_sim_esim_status_get_type
mm_sim_removability_get_type
mm_bearer_access_type_preference_get_type
+mm_bearer_roaming_allowance_get_type
mm_firmware_image_type_get_type
mm_modem_3gpp_facility_get_type
mm_modem_3gpp_network_availability_get_type
diff --git a/include/ModemManager-enums.h b/include/ModemManager-enums.h
index 6abad2c1..422ed52c 100644
--- a/include/ModemManager-enums.h
+++ b/include/ModemManager-enums.h
@@ -1840,4 +1840,22 @@ typedef enum { /*< underscore_name=mm_bearer_access_type_preference >*/
MM_BEARER_ACCESS_TYPE_PREFERENCE_NON_3GPP_ONLY = 3,
} MMBearerAccessTypePreference;
+/**
+ * MMBearerRoamingAllowance:
+ * @MM_BEARER_ROAMING_ALLOWANCE_NONE: No explicit roaming allowance rules.
+ * @MM_BEARER_ROAMING_ALLOWANCE_HOME: Home network allowed.
+ * @MM_BEARER_ROAMING_ALLOWANCE_PARTNER: Partner network allowed.
+ * @MM_BEARER_ROAMING_ALLOWANCE_NON_PARTNER: Non-parter network allowed.
+ *
+ * Bitmask specifying roaming allowance rules for different network types.
+ *
+ * Since: 1.20
+ */
+typedef enum { /*< underscore_name=mm_bearer_roaming_allowance >*/
+ MM_BEARER_ROAMING_ALLOWANCE_NONE = 0,
+ MM_BEARER_ROAMING_ALLOWANCE_HOME = 1 << 0,
+ MM_BEARER_ROAMING_ALLOWANCE_PARTNER = 1 << 1,
+ MM_BEARER_ROAMING_ALLOWANCE_NON_PARTNER = 1 << 2,
+} MMBearerRoamingAllowance;
+
#endif /* _MODEMMANAGER_ENUMS_H_ */
diff --git a/introspection/org.freedesktop.ModemManager1.Bearer.xml b/introspection/org.freedesktop.ModemManager1.Bearer.xml
index 6ba352fa..cb06849b 100644
--- a/introspection/org.freedesktop.ModemManager1.Bearer.xml
+++ b/introspection/org.freedesktop.ModemManager1.Bearer.xml
@@ -489,6 +489,14 @@
value (signature "u". Since 1.20.
+ "roaming-allowance"
+
+ Roaming allowance, given as a
+ MMBearerRoamingAllowance
+ value (signature "u". If supported, this setting should
+ be used instead of 'allow-roaming'. Since 1.20.
+
+
"profile-id"
The ID of the 3GPP profile to connect to (signature