diff --git a/.apigentools-info b/.apigentools-info index 7ca437e7afc..0e60b132e4f 100644 --- a/.apigentools-info +++ b/.apigentools-info @@ -4,13 +4,13 @@ "spec_versions": { "v1": { "apigentools_version": "1.6.6", - "regenerated": "2024-10-01 19:12:41.411794", - "spec_repo_commit": "34a01c1d" + "regenerated": "2024-10-02 11:36:05.178125", + "spec_repo_commit": "c09e55c6" }, "v2": { "apigentools_version": "1.6.6", - "regenerated": "2024-10-01 19:12:41.427472", - "spec_repo_commit": "34a01c1d" + "regenerated": "2024-10-02 11:36:05.192230", + "spec_repo_commit": "c09e55c6" } } } \ No newline at end of file diff --git a/.generator/schemas/v1/openapi.yaml b/.generator/schemas/v1/openapi.yaml index 3ed2686dde2..fa65f3a5d10 100644 --- a/.generator/schemas/v1/openapi.yaml +++ b/.generator/schemas/v1/openapi.yaml @@ -15061,11 +15061,13 @@ components: enum: - global - text + - email example: text type: string x-enum-varnames: - GLOBAL - TEXT + - EMAIL SyntheticsCoreWebVitals: description: Core Web Vitals attached to a browser test step. properties: @@ -15468,6 +15470,795 @@ components: $ref: '#/components/schemas/SyntheticsLocation' type: array type: object + SyntheticsMobileDeviceID: + description: The device ID. + enum: + - apple ipad (2022),16.4 + - apple ipad (2022),17.3.1 + - apple ipad 7th gen (2019),13.3 + - apple ipad 9th gen (2021),15.0.2 + - apple ipad 9th gen (2021),16.1 + - apple ipad air (2022),15.4.1 + - apple ipad mini (5th gen),14.6 + - apple ipad mini (6th gen),15.1 + - apple ipad pro 11 (2022),16.3 + - apple ipad pro 12.9 (2020),14.8 + - apple ipad pro 12.9 (2021),15.6.1 + - apple ipad pro 12.9 (2022),16.5 + - apple iphone 11 pro max,13.1.3 + - apple iphone 11 pro,13.6 + - apple iphone 11 pro,15.5 + - apple iphone 11,13.3.1 + - apple iphone 11,14.0 + - apple iphone 11,16.3 + - apple iphone 12 mini,14.2 + - apple iphone 12 mini,16.5 + - apple iphone 12 pro max,14.5.1 + - apple iphone 12 pro,14.5.1 + - apple iphone 12 pro,14.8 + - apple iphone 12 pro,15.0.2 + - apple iphone 12 pro,16.2 + - apple iphone 12,14.2 + - apple iphone 12,14.6 + - apple iphone 12,14.8 + - apple iphone 12,15.6.1 + - apple iphone 12,16.6.1 + - apple iphone 13 mini,15.0.2 + - apple iphone 13 mini,16.6 + - apple iphone 13 pro max,15.1 + - apple iphone 13 pro max,17.3 + - apple iphone 13 pro,15.0.2 + - apple iphone 13 pro,15.2 + - apple iphone 14 plus,16.1 + - apple iphone 14 pro max,16.2 + - apple iphone 14 pro,16.1 + - apple iphone 14 pro,17.3.1 + - apple iphone 14,16.1 + - apple iphone 15 pro max,17.3.1 + - apple iphone 15 pro,17.3.1 + - apple iphone 15,17.2.1 + - apple iphone se (2022),15.4.1 + - galaxy a40,9 + - galaxy a5,8.0.0 + - galaxy note 10,9 + - galaxy note5 (at&t),7.0 + - galaxy s10,9 + - galaxy s6 edge sm-g925f,7.0 + - galaxy s8 (t-mobile),8.0.0 + - galaxy s8 unlocked,8.0.0 + - galaxy s9 (unlocked),9 + - galaxy s9+ (unlocked),8.0.0 + - galaxy s9+ (unlocked),9 + - google pixel 2,8.0.0 + - google pixel 2,9 + - google pixel 3 xl,10 + - google pixel 3 xl,9 + - google pixel 3,10 + - google pixel 3,9 + - google pixel 3a xl,11 + - google pixel 3a xl,12 + - google pixel 3a,10 + - google pixel 4 (unlocked),10 + - google pixel 4 (unlocked),11 + - google pixel 4 xl (unlocked),10 + - google pixel 4a,11 + - google pixel 4a,12 + - google pixel 5a 5g,12 + - google pixel 6 pro,12 + - google pixel 6,12 + - google pixel 6a,13 + - google pixel 7 pro,13 + - google pixel 7,13 + - google pixel 7,14 + - google pixel 8 pro,14 + - google pixel 8,14 + - ipad 8th gen (2020),14.8 + - ipad air 2,13.6 + - ipad air 4th gen (2020),14.8 + - iphone 13,15.0.2 + - iphone 13,16.0.2 + - iphone 6,12.5.4 + - iphone 6s,14.4.2 + - iphone 7,14.8 + - iphone 8,13.5.1 + - iphone 8,14.4.2 + - iphone se (2020),13.6 + - iphone se (2020),14.6 + - iphone se (2020),15.0.2 + - iphone x,14.6 + - iphone xr,12.0 + - iphone xr,14.0 + - iphone xs max,12.1 + - iphone xs,13.6 + - lg stylo 5,9 + - lg stylo 6,10 + - moto g 4,7.0 + - moto g7 play,9 + - nexus 7 - 2nd gen (wifi),6.0 + - oneplus 8t,11 + - pixel 2 xl,8.1.0 + - pixel 2 xl,9 + - pixel 5,11 + - pixel 5,12 + - pixel xl,8.0.0 + - pixel,7.1.2 + - samsung a51,10 + - samsung galaxy a10s,10 + - samsung galaxy a13 5g,11 + - samsung galaxy a53 5g,12 + - samsung galaxy a7,8.0.0 + - samsung galaxy a71,11 + - samsung galaxy a73 5g,12 + - samsung galaxy j7 (2018),8.0.0 + - samsung galaxy note20,11 + - samsung galaxy s20 (unlocked),10 + - samsung galaxy s20+ (unlocked),10 + - samsung galaxy s21 ultra,11 + - samsung galaxy s21 ultra,12 + - samsung galaxy s21+,11 + - samsung galaxy s21,11 + - samsung galaxy s21,12 + - samsung galaxy s22 5g,12 + - samsung galaxy s22 5g,13 + - samsung galaxy s22 ultra 5g,12 + - samsung galaxy s22+ 5g,12 + - samsung galaxy s23 ultra,13 + - samsung galaxy s23+,13 + - samsung galaxy s23,13 + - samsung galaxy s23,14 + - samsung galaxy tab a 10.1,10 + - samsung galaxy tab a 10.1,7.0 + - samsung galaxy tab a8 (2021),11 + - samsung galaxy tab s4,8.1.0 + - samsung galaxy tab s6,9 + - samsung galaxy tab s7,11 + - samsung galaxy tab s8,12 + - samsung s20 ultra,10 + - sony xperia xz3,9 + - xiaomi redmi note 10 5g,11 + - synthetics:mobile:device:apple_ipad_10th_gen_2022_ios_16 + - synthetics:mobile:device:apple_ipad_10th_gen_2022_ios_17 + - synthetics:mobile:device:apple_ipad_9th_gen_2021_ios_15 + - synthetics:mobile:device:apple_ipad_air_2022_ios_15 + - synthetics:mobile:device:apple_ipad_mini_5th_gen_ios_14 + - synthetics:mobile:device:apple_ipad_mini_6th_gen_ios_15 + - synthetics:mobile:device:apple_ipad_pro_11_2022_ios_16 + - synthetics:mobile:device:apple_ipad_pro_12_9_2020_ios_14 + - synthetics:mobile:device:apple_ipad_pro_12_9_2021_ios_15 + - synthetics:mobile:device:apple_ipad_pro_12_9_2022_ios_16 + - synthetics:mobile:device:apple_iphone_11_ios_14 + - synthetics:mobile:device:apple_iphone_11_ios_16 + - synthetics:mobile:device:apple_iphone_11_pro_ios_15 + - synthetics:mobile:device:apple_iphone_12_ios_14 + - synthetics:mobile:device:apple_iphone_12_ios_15 + - synthetics:mobile:device:apple_iphone_12_ios_16 + - synthetics:mobile:device:apple_iphone_12_mini_ios_14 + - synthetics:mobile:device:apple_iphone_12_mini_ios_16 + - synthetics:mobile:device:apple_iphone_12_pro_ios_14 + - synthetics:mobile:device:apple_iphone_12_pro_max_ios_14 + - synthetics:mobile:device:apple_iphone_13_mini_ios_15 + - synthetics:mobile:device:apple_iphone_13_mini_ios_16 + - synthetics:mobile:device:apple_iphone_13_pro_ios_15 + - synthetics:mobile:device:apple_iphone_13_pro_max_ios_15 + - synthetics:mobile:device:apple_iphone_13_pro_max_ios_17 + - synthetics:mobile:device:apple_iphone_14_ios_16 + - synthetics:mobile:device:apple_iphone_14_plus_ios_16 + - synthetics:mobile:device:apple_iphone_14_pro_ios_16 + - synthetics:mobile:device:apple_iphone_14_pro_ios_17 + - synthetics:mobile:device:apple_iphone_14_pro_max_ios_16 + - synthetics:mobile:device:apple_iphone_6_ios_12 + - synthetics:mobile:device:apple_iphone_8_ios_13 + - synthetics:mobile:device:apple_iphone_8_ios_14 + - synthetics:mobile:device:apple_iphone_se_2022_ios_15 + - synthetics:mobile:device:apple_iphone_se_2022_ios_16 + - synthetics:mobile:device:galaxy_a5_android_8 + - synthetics:mobile:device:galaxy_note5_android_7 + - synthetics:mobile:device:google_pixel_3a_xl_android_11 + - synthetics:mobile:device:google_pixel_4_unlocked_android_11 + - synthetics:mobile:device:google_pixel_4_xl_unlocked_android_10 + - synthetics:mobile:device:google_pixel_4a_android_11 + - synthetics:mobile:device:google_pixel_6_android_12 + - synthetics:mobile:device:google_pixel_6_pro_android_12 + - synthetics:mobile:device:google_pixel_6a_android_13 + - synthetics:mobile:device:google_pixel_7_android_13 + - synthetics:mobile:device:google_pixel_7_android_14 + - synthetics:mobile:device:google_pixel_7_pro_android_13 + - synthetics:mobile:device:google_pixel_8_android_14 + - synthetics:mobile:device:google_pixel_8_pro_android_14 + - synthetics:mobile:device:ipad_air_2_ios_13 + - synthetics:mobile:device:ipad_air_4th_gen_2020_ios_14 + - synthetics:mobile:device:iphone_13_ios_15 + - synthetics:mobile:device:iphone_13_ios_16 + - synthetics:mobile:device:iphone_15_ios_17 + - synthetics:mobile:device:iphone_15_pro_ios_17 + - synthetics:mobile:device:iphone_15_pro_max_ios_17 + - synthetics:mobile:device:iphone_se_2020_ios_13 + - synthetics:mobile:device:iphone_se_2020_ios_14 + - synthetics:mobile:device:iphone_x_ios_14 + - synthetics:mobile:device:iphone_xr_ios_14 + - synthetics:mobile:device:iphone_xs_ios_13 + - synthetics:mobile:device:lg_stylo_6_android_10 + - synthetics:mobile:device:pixel_5_android_12 + - synthetics:mobile:device:samsung_a51_android_10 + - synthetics:mobile:device:samsung_galaxy_a71_android_11 + - synthetics:mobile:device:samsung_galaxy_note20_android_11 + - synthetics:mobile:device:samsung_galaxy_s21_android_11 + - synthetics:mobile:device:samsung_galaxy_s21_android_12 + - synthetics:mobile:device:samsung_galaxy_s21_plus_android_11 + - synthetics:mobile:device:samsung_galaxy_s21_ultra_android_11 + - synthetics:mobile:device:samsung_galaxy_s22_5g_android_12 + - synthetics:mobile:device:samsung_galaxy_s22_5g_android_13 + - synthetics:mobile:device:samsung_galaxy_s22_plus_5g_android_12 + - synthetics:mobile:device:samsung_galaxy_s22_ultra_5g_android_12 + - synthetics:mobile:device:samsung_galaxy_s23_android_13 + - synthetics:mobile:device:samsung_galaxy_s23_android_14 + - synthetics:mobile:device:samsung_galaxy_s23_plus_android_13 + - synthetics:mobile:device:samsung_galaxy_s23_plus_android_14 + - synthetics:mobile:device:samsung_galaxy_s23_ultra_android_13 + - synthetics:mobile:device:samsung_galaxy_tab_a_10_1_android_7 + - synthetics:mobile:device:samsung_galaxy_tab_s7_android_11 + - synthetics:mobile:device:samsung_galaxy_tab_s8_android_12 + - synthetics:mobile:device:xiaomi_redmi_note_10_5g_android_11 + example: apple ipad (2022),16.4 + type: string + x-enum-varnames: + - APPLE_IPAD__2022__16_4 + - APPLE_IPAD__2022__17_3_1 + - APPLE_IPAD_7TH_GEN__2019__13_3 + - APPLE_IPAD_9TH_GEN__2021__15_0_2 + - APPLE_IPAD_9TH_GEN__2021__16_1 + - APPLE_IPAD_AIR__2022__15_4_1 + - APPLE_IPAD_MINI__5TH_GEN__14_6 + - APPLE_IPAD_MINI__6TH_GEN__15_1 + - APPLE_IPAD_PRO_11__2022__16_3 + - APPLE_IPAD_PRO_12_9__2020__14_8 + - APPLE_IPAD_PRO_12_9__2021__15_6_1 + - APPLE_IPAD_PRO_12_9__2022__16_5 + - APPLE_IPHONE_11_PRO_MAX_13_1_3 + - APPLE_IPHONE_11_PRO_13_6 + - APPLE_IPHONE_11_PRO_15_5 + - APPLE_IPHONE_11_13_3_1 + - APPLE_IPHONE_11_14_0 + - APPLE_IPHONE_11_16_3 + - APPLE_IPHONE_12_MINI_14_2 + - APPLE_IPHONE_12_MINI_16_5 + - APPLE_IPHONE_12_PRO_MAX_14_5_1 + - APPLE_IPHONE_12_PRO_14_5_1 + - APPLE_IPHONE_12_PRO_14_8 + - APPLE_IPHONE_12_PRO_15_0_2 + - APPLE_IPHONE_12_PRO_16_2 + - APPLE_IPHONE_12_14_2 + - APPLE_IPHONE_12_14_6 + - APPLE_IPHONE_12_14_8 + - APPLE_IPHONE_12_15_6_1 + - APPLE_IPHONE_12_16_6_1 + - APPLE_IPHONE_13_MINI_15_0_2 + - APPLE_IPHONE_13_MINI_16_6 + - APPLE_IPHONE_13_PRO_MAX_15_1 + - APPLE_IPHONE_13_PRO_MAX_17_3 + - APPLE_IPHONE_13_PRO_15_0_2 + - APPLE_IPHONE_13_PRO_15_2 + - APPLE_IPHONE_14_PLUS_16_1 + - APPLE_IPHONE_14_PRO_MAX_16_2 + - APPLE_IPHONE_14_PRO_16_1 + - APPLE_IPHONE_14_PRO_17_3_1 + - APPLE_IPHONE_14_16_1 + - APPLE_IPHONE_15_PRO_MAX_17_3_1 + - APPLE_IPHONE_15_PRO_17_3_1 + - APPLE_IPHONE_15_17_2_1 + - APPLE_IPHONE_SE__2022__15_4_1 + - GALAXY_A40_9 + - GALAXY_A5_8_0_0 + - GALAXY_NOTE_10_9 + - GALAXY_NOTE5__AT_T__7_0 + - GALAXY_S10_9 + - GALAXY_S6_EDGE_SMNOT_G925F_7_0 + - GALAXY_S8__TNOT_MOBILE__8_0_0 + - GALAXY_S8_UNLOCKED_8_0_0 + - GALAXY_S9__UNLOCKED__9 + - GALAXY_S9___UNLOCKED__8_0_0 + - GALAXY_S9___UNLOCKED__9 + - GOOGLE_PIXEL_2_8_0_0 + - GOOGLE_PIXEL_2_9 + - GOOGLE_PIXEL_3_XL_10 + - GOOGLE_PIXEL_3_XL_9 + - GOOGLE_PIXEL_3_10 + - GOOGLE_PIXEL_3_9 + - GOOGLE_PIXEL_3A_XL_11 + - GOOGLE_PIXEL_3A_XL_12 + - GOOGLE_PIXEL_3A_10 + - GOOGLE_PIXEL_4__UNLOCKED__10 + - GOOGLE_PIXEL_4__UNLOCKED__11 + - GOOGLE_PIXEL_4_XL__UNLOCKED__10 + - GOOGLE_PIXEL_4A_11 + - GOOGLE_PIXEL_4A_12 + - GOOGLE_PIXEL_5A_5G_12 + - GOOGLE_PIXEL_6_PRO_12 + - GOOGLE_PIXEL_6_12 + - GOOGLE_PIXEL_6A_13 + - GOOGLE_PIXEL_7_PRO_13 + - GOOGLE_PIXEL_7_13 + - GOOGLE_PIXEL_7_14 + - GOOGLE_PIXEL_8_PRO_14 + - GOOGLE_PIXEL_8_14 + - IPAD_8TH_GEN__2020__14_8 + - IPAD_AIR_2_13_6 + - IPAD_AIR_4TH_GEN__2020__14_8 + - IPHONE_13_15_0_2 + - IPHONE_13_16_0_2 + - IPHONE_6_12_5_4 + - IPHONE_6S_14_4_2 + - IPHONE_7_14_8 + - IPHONE_8_13_5_1 + - IPHONE_8_14_4_2 + - IPHONE_SE__2020__13_6 + - IPHONE_SE__2020__14_6 + - IPHONE_SE__2020__15_0_2 + - IPHONE_X_14_6 + - IPHONE_XR_12_0 + - IPHONE_XR_14_0 + - IPHONE_XS_MAX_12_1 + - IPHONE_XS_13_6 + - LG_STYLO_5_9 + - LG_STYLO_6_10 + - MOTO_G_4_7_0 + - MOTO_G7_PLAY_9 + - NEXUS_7_NOT__2ND_GEN__WIFI__6_0 + - ONEPLUS_8T_11 + - PIXEL_2_XL_8_1_0 + - PIXEL_2_XL_9 + - PIXEL_5_11 + - PIXEL_5_12 + - PIXEL_XL_8_0_0 + - PIXEL_7_1_2 + - SAMSUNG_A51_10 + - SAMSUNG_GALAXY_A10S_10 + - SAMSUNG_GALAXY_A13_5G_11 + - SAMSUNG_GALAXY_A53_5G_12 + - SAMSUNG_GALAXY_A7_8_0_0 + - SAMSUNG_GALAXY_A71_11 + - SAMSUNG_GALAXY_A73_5G_12 + - SAMSUNG_GALAXY_J7__2018__8_0_0 + - SAMSUNG_GALAXY_NOTE20_11 + - SAMSUNG_GALAXY_S20__UNLOCKED__10 + - SAMSUNG_GALAXY_S20___UNLOCKED__10 + - SAMSUNG_GALAXY_S21_ULTRA_11 + - SAMSUNG_GALAXY_S21_ULTRA_12 + - SAMSUNG_GALAXY_S21__11 + - SAMSUNG_GALAXY_S21_11 + - SAMSUNG_GALAXY_S21_12 + - SAMSUNG_GALAXY_S22_5G_12 + - SAMSUNG_GALAXY_S22_5G_13 + - SAMSUNG_GALAXY_S22_ULTRA_5G_12 + - SAMSUNG_GALAXY_S22__5G_12 + - SAMSUNG_GALAXY_S23_ULTRA_13 + - SAMSUNG_GALAXY_S23__13 + - SAMSUNG_GALAXY_S23_13 + - SAMSUNG_GALAXY_S23_14 + - SAMSUNG_GALAXY_TAB_A_10_1_10 + - SAMSUNG_GALAXY_TAB_A_10_1_7_0 + - SAMSUNG_GALAXY_TAB_A8__2021__11 + - SAMSUNG_GALAXY_TAB_S4_8_1_0 + - SAMSUNG_GALAXY_TAB_S6_9 + - SAMSUNG_GALAXY_TAB_S7_11 + - SAMSUNG_GALAXY_TAB_S8_12 + - SAMSUNG_S20_ULTRA_10 + - SONY_XPERIA_XZ3_9 + - XIAOMI_REDMI_NOTE_10_5G_11 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_10TH_GEN_2022_IOS_16 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_10TH_GEN_2022_IOS_17 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_9TH_GEN_2021_IOS_15 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_AIR_2022_IOS_15 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_MINI_5TH_GEN_IOS_14 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_MINI_6TH_GEN_IOS_15 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_PRO_11_2022_IOS_16 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_PRO_12_9_2020_IOS_14 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_PRO_12_9_2021_IOS_15 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_PRO_12_9_2022_IOS_16 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_11_IOS_14 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_11_IOS_16 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_11_PRO_IOS_15 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_12_IOS_14 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_12_IOS_15 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_12_IOS_16 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_12_MINI_IOS_14 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_12_MINI_IOS_16 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_12_PRO_IOS_14 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_12_PRO_MAX_IOS_14 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_13_MINI_IOS_15 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_13_MINI_IOS_16 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_13_PRO_IOS_15 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_13_PRO_MAX_IOS_15 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_13_PRO_MAX_IOS_17 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_14_IOS_16 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_14_PLUS_IOS_16 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_14_PRO_IOS_16 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_14_PRO_IOS_17 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_14_PRO_MAX_IOS_16 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_6_IOS_12 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_8_IOS_13 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_8_IOS_14 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_SE_2022_IOS_15 + - SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_SE_2022_IOS_16 + - SYNTHETICS_MOBILE_DEVICE_GALAXY_A5_ANDROID_8 + - SYNTHETICS_MOBILE_DEVICE_GALAXY_NOTE5_ANDROID_7 + - SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_3A_XL_ANDROID_11 + - SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_4_UNLOCKED_ANDROID_11 + - SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_4_XL_UNLOCKED_ANDROID_10 + - SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_4A_ANDROID_11 + - SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_6_ANDROID_12 + - SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_6_PRO_ANDROID_12 + - SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_6A_ANDROID_13 + - SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_7_ANDROID_13 + - SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_7_ANDROID_14 + - SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_7_PRO_ANDROID_13 + - SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_8_ANDROID_14 + - SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_8_PRO_ANDROID_14 + - SYNTHETICS_MOBILE_DEVICE_IPAD_AIR_2_IOS_13 + - SYNTHETICS_MOBILE_DEVICE_IPAD_AIR_4TH_GEN_2020_IOS_14 + - SYNTHETICS_MOBILE_DEVICE_IPHONE_13_IOS_15 + - SYNTHETICS_MOBILE_DEVICE_IPHONE_13_IOS_16 + - SYNTHETICS_MOBILE_DEVICE_IPHONE_15_IOS_17 + - SYNTHETICS_MOBILE_DEVICE_IPHONE_15_PRO_IOS_17 + - SYNTHETICS_MOBILE_DEVICE_IPHONE_15_PRO_MAX_IOS_17 + - SYNTHETICS_MOBILE_DEVICE_IPHONE_SE_2020_IOS_13 + - SYNTHETICS_MOBILE_DEVICE_IPHONE_SE_2020_IOS_14 + - SYNTHETICS_MOBILE_DEVICE_IPHONE_X_IOS_14 + - SYNTHETICS_MOBILE_DEVICE_IPHONE_XR_IOS_14 + - SYNTHETICS_MOBILE_DEVICE_IPHONE_XS_IOS_13 + - SYNTHETICS_MOBILE_DEVICE_LG_STYLO_6_ANDROID_10 + - SYNTHETICS_MOBILE_DEVICE_PIXEL_5_ANDROID_12 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_A51_ANDROID_10 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_A71_ANDROID_11 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_NOTE20_ANDROID_11 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S21_ANDROID_11 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S21_ANDROID_12 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S21_PLUS_ANDROID_11 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S21_ULTRA_ANDROID_11 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S22_5G_ANDROID_12 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S22_5G_ANDROID_13 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S22_PLUS_5G_ANDROID_12 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S22_ULTRA_5G_ANDROID_12 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S23_ANDROID_13 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S23_ANDROID_14 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S23_PLUS_ANDROID_13 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S23_PLUS_ANDROID_14 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S23_ULTRA_ANDROID_13 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_TAB_A_10_1_ANDROID_7 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_TAB_S7_ANDROID_11 + - SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_TAB_S8_ANDROID_12 + - SYNTHETICS_MOBILE_DEVICE_XIAOMI_REDMI_NOTE_10_5G_ANDROID_11 + SyntheticsMobileStep: + description: The steps used in a Synthetic mobile test. + properties: + allowFailure: + description: A boolean set to allow this step to fail. + type: boolean + hasNewStepElement: + description: A boolean set to determine if the step has a new step element. + type: boolean + isCritical: + description: A boolean to use in addition to `allowFailure` to determine + if the test should be marked as failed when the step fails. + type: boolean + name: + description: The name of the step. + maxLength: 1500 + type: string + noScreenshot: + description: A boolean set to not take a screenshot for the step. + type: boolean + params: + description: The parameters of the mobile step. + type: object + publicId: + description: The public ID of the step. + example: pub-lic-id0 + type: string + timeout: + description: The time before declaring a step failed. + format: int64 + type: integer + type: + $ref: '#/components/schemas/SyntheticsMobileStepType' + type: object + SyntheticsMobileStepType: + description: Step type used in your mobile Synthetic test. + enum: + - assertElementContent + - assertScreenContains + - assertScreenLacks + - doubleTap + - extractVariable + - flick + - openDeeplink + - playSubTest + - pressBack + - restartApplication + - rotate + - scroll + - scrollToElement + - tap + - toggleWiFi + - typeText + - wait + example: assertElementContent + type: string + x-enum-varnames: + - ASSERTELEMENTCONTENT + - ASSERTSCREENCONTAINS + - ASSERTSCREENLACKS + - DOUBLETAP + - EXTRACTVARIABLE + - FLICK + - OPENDEEPLINK + - PLAYSUBTEST + - PRESSBACK + - RESTARTAPPLICATION + - ROTATE + - SCROLL + - SCROLLTOELEMENT + - TAP + - TOGGLEWIFI + - TYPETEXT + - WAIT + SyntheticsMobileTest: + description: Object containing details about a Synthetic mobile test. + properties: + config: + $ref: '#/components/schemas/SyntheticsMobileTestConfig' + device_ids: + description: The `SyntheticsMobileTest` `device_ids`. + items: + $ref: '#/components/schemas/SyntheticsMobileDeviceID' + type: array + message: + description: Notification message associated with the test. + example: Notification message + type: string + monitor_id: + description: The associated monitor ID. + example: 12345678 + format: int64 + readOnly: true + type: integer + name: + description: Name of the test. + example: Example test name + type: string + options: + $ref: '#/components/schemas/SyntheticsMobileTestOptions' + public_id: + description: The public ID of the test. + example: 123-abc-456 + readOnly: true + type: string + status: + $ref: '#/components/schemas/SyntheticsTestPauseStatus' + steps: + description: Array of steps for the test. + items: + $ref: '#/components/schemas/SyntheticsMobileStep' + type: array + tags: + description: Array of tags attached to the test. + example: + - env:production + items: + description: A tag attached to the test. + type: string + type: array + type: + $ref: '#/components/schemas/SyntheticsMobileTestType' + required: + - config + - name + - options + - type + type: object + SyntheticsMobileTestBinding: + description: Objects describing the binding used for a mobile test. + properties: + items: + $ref: '#/components/schemas/SyntheticsMobileTestBindingItems' + type: object + SyntheticsMobileTestBindingItems: + description: Object describing the binding used for a mobile test. + properties: + principals: + $ref: '#/components/schemas/SyntheticsMobileTestBindingPrincipals' + role: + $ref: '#/components/schemas/SyntheticsMobileTestBindingItemsRole' + type: object + SyntheticsMobileTestBindingItemsRole: + description: The definition of `SyntheticsMobileTestBindingItemsRole` object. + enum: + - editor + - viewer + type: string + x-enum-varnames: + - EDITOR + - VIEWER + SyntheticsMobileTestBindingPrincipals: + description: List of principals for a mobile test binding. + items: + description: A principal for a mobile test binding. + maxLength: 1500 + type: string + type: array + SyntheticsMobileTestCiOptions: + description: CI/CD options for a Synthetic test. + properties: + executionRule: + $ref: '#/components/schemas/SyntheticsTestExecutionRule' + required: + - executionRule + type: object + SyntheticsMobileTestConfig: + description: Configuration object for a Synthetic mobile test. + properties: + initialApplicationArguments: + $ref: '#/components/schemas/SyntheticsMobileTestInitialApplicationArguments' + variables: + description: Array of variables used for the test steps. + items: + $ref: '#/components/schemas/SyntheticsConfigVariable' + type: array + type: object + SyntheticsMobileTestInitialApplicationArguments: + description: Initial application arguments for a mobile test. + properties: + propertyNames: + $ref: '#/components/schemas/SyntheticsMobileTestInitialApplicationArgumentsPropertyNames' + type: object + SyntheticsMobileTestInitialApplicationArgumentsPropertyNames: + description: Name of the property. + properties: + pattern: + description: The `propertyNames` `pattern`. + example: ^(?!_dd).*$ + type: string + type: object + SyntheticsMobileTestOptions: + description: Object describing the extra options for a Synthetic test. + properties: + allowApplicationCrash: + description: The `SyntheticsMobileTestOptions` `allowApplicationCrash`. + type: boolean + bindings: + description: Array of bindings used for the mobile test. + items: + $ref: '#/components/schemas/SyntheticsMobileTestBinding' + type: array + ci: + $ref: '#/components/schemas/SyntheticsMobileTestCiOptions' + defaultStepTimeout: + description: The `SyntheticsMobileTestOptions` `defaultStepTimeout`. + format: int32 + maximum: 300 + minimum: 1 + type: integer + device_ids: + description: For mobile test, array with the different device IDs used to + run the test. + items: + $ref: '#/components/schemas/SyntheticsMobileDeviceID' + type: array + disableAutoAcceptAlert: + description: The `SyntheticsMobileTestOptions` `disableAutoAcceptAlert`. + type: boolean + min_failure_duration: + description: Minimum amount of time in failure required to trigger an alert. + format: int64 + maximum: 7200 + minimum: 0 + type: integer + mobileApplication: + $ref: '#/components/schemas/SyntheticsMobileTestsMobileApplication' + monitor_name: + description: The monitor name is used for the alert title as well as for + all monitor dashboard widgets and SLOs. + type: string + monitor_options: + $ref: '#/components/schemas/SyntheticsMobileTestOptionsMonitorOptions' + monitor_priority: + description: Integer from 1 (high) to 5 (low) indicating alert severity. + format: int32 + maximum: 5 + minimum: 1 + type: integer + noScreenshot: + description: The `SyntheticsMobileTestOptions` `noScreenshot`. + type: boolean + restricted_roles: + $ref: '#/components/schemas/SyntheticsRestrictedRoles' + retry: + $ref: '#/components/schemas/SyntheticsTestOptionsRetry' + scheduling: + $ref: '#/components/schemas/SyntheticsTestOptionsScheduling' + tick_every: + description: The frequency at which to run the Synthetic test (in seconds). + format: int64 + maximum: 604800 + minimum: 300 + type: integer + verbosity: + description: The `SyntheticsMobileTestOptions` `verbosity`. + format: int32 + maximum: 5 + minimum: 0 + type: integer + type: object + SyntheticsMobileTestOptionsMonitorOptions: + description: 'Object containing the options for a mobile Synthetic test as a + monitor + + (for example, renotification).' + properties: + escalation_message: + description: Message to include in the escalation notification. + type: string + notification_preset_name: + $ref: '#/components/schemas/SyntheticsMobileTestOptionsMonitorOptionsNotificationPresetName' + renotify_interval: + description: 'Time interval before renotifying if the test is still failing + + (in minutes).' + format: int64 + minimum: 0 + type: integer + renotify_occurrences: + description: The `SyntheticsMobileTestOptionsMonitorOptions` `renotify_occurrences`. + format: int64 + type: integer + type: object + SyntheticsMobileTestOptionsMonitorOptionsNotificationPresetName: + description: The definition of `SyntheticsMobileTestOptionsMonitorOptionsNotificationPresetName` + object. + enum: + - show_all + - hide_all + - hide_query + - hide_handles + type: string + x-enum-varnames: + - SHOW_ALL + - HIDE_ALL + - HIDE_QUERY + - HIDE_HANDLES + SyntheticsMobileTestType: + default: mobile + description: Type of the Synthetic test, `mobile`. + enum: + - mobile + example: mobile + type: string + x-enum-varnames: + - MOBILE + SyntheticsMobileTestsMobileApplication: + description: Mobile application for mobile synthetics test. + properties: + applicationId: + description: Application ID of the mobile application. + maxLength: 1500 + type: string + referenceId: + description: Reference ID of the mobile application. + maxLength: 1500 + type: string + referenceType: + $ref: '#/components/schemas/SyntheticsMobileTestsMobileApplicationReferenceType' + type: object + SyntheticsMobileTestsMobileApplicationReferenceType: + description: Reference type for the mobile application for a mobile synthetics + test. + enum: + - latest + - version + type: string + x-enum-varnames: + - LATEST + - VERSION SyntheticsParsingOptions: description: Parsing options for variables to extract. example: {} @@ -16048,6 +16839,7 @@ components: - blocking - non_blocking - skipped + example: blocking type: string x-enum-varnames: - BLOCKING @@ -31912,6 +32704,158 @@ paths: operator: OR permissions: - synthetics_write + /api/v1/synthetics/tests/mobile: + post: + description: Create a Synthetic mobile test. + operationId: CreateSyntheticsMobileTest + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SyntheticsMobileTest' + description: Details of the test to create. + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SyntheticsMobileTest' + description: OK - Returns the created test details. + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: '- JSON format is wrong + + - Creation failed' + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: Test quota is reached + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: Forbidden + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - synthetics_write + summary: Create a mobile test + tags: + - Synthetics + x-codegen-request-body-name: body + /api/v1/synthetics/tests/mobile/{public_id}: + get: + description: 'Get the detailed configuration associated with + + a Synthetic Mobile test.' + operationId: GetMobileTest + parameters: + - description: The public ID of the test to get details from. + in: path + name: public_id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SyntheticsMobileTest' + description: OK + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: '- Synthetic Monitoring is not activated for the user + + - Test is not owned by the user' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - synthetics_read + summary: Get a Mobile test + tags: + - Synthetics + put: + description: Edit the configuration of a Synthetic Mobile test. + operationId: UpdateMobileTest + parameters: + - description: The public ID of the test to get details from. + in: path + name: public_id + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SyntheticsMobileTest' + description: New test details to be saved. + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SyntheticsMobileTest' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: '- JSON format is wrong + + - Updating sub-type is forbidden' + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: '- Synthetic Monitoring is not activated for the user + + - Test is not owned by the user + + - Test can''t be found' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - synthetics_write + summary: Edit a Mobile test + tags: + - Synthetics + x-codegen-request-body-name: body /api/v1/synthetics/tests/trigger: post: description: Trigger a set of Synthetic tests. diff --git a/cassettes/features/v1/synthetics/Create-a-mobile-test-returns-OK-Returns-the-created-test-details-response.frozen b/cassettes/features/v1/synthetics/Create-a-mobile-test-returns-OK-Returns-the-created-test-details-response.frozen new file mode 100644 index 00000000000..b401cf850c4 --- /dev/null +++ b/cassettes/features/v1/synthetics/Create-a-mobile-test-returns-OK-Returns-the-created-test-details-response.frozen @@ -0,0 +1 @@ +2024-10-01T12:07:30.183Z \ No newline at end of file diff --git a/cassettes/features/v1/synthetics/Create-a-mobile-test-returns-OK-Returns-the-created-test-details-response.yml b/cassettes/features/v1/synthetics/Create-a-mobile-test-returns-OK-Returns-the-created-test-details-response.yml new file mode 100644 index 00000000000..a16a1507a8e --- /dev/null +++ b/cassettes/features/v1/synthetics/Create-a-mobile-test-returns-OK-Returns-the-created-test-details-response.yml @@ -0,0 +1,50 @@ +http_interactions: +- recorded_at: Tue, 01 Oct 2024 12:07:30 GMT + request: + body: + encoding: UTF-8 + string: '{"config":{"variables":[]},"message":"","name":"Test-Create_a_mobile_test_returns_OK_Returns_the_created_test_details_response-1727784450","options":{"device_ids":["synthetics:mobile:device:iphone_15_ios_17"],"mobileApplication":{"applicationId":"ab0e0aed-536d-411a-9a99-5428c27d8f8e","referenceId":"6115922a-5f5d-455e-bc7e-7955a57f3815","referenceType":"version"},"tick_every":3600},"status":"paused","steps":[],"type":"mobile"}' + headers: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v1/synthetics/tests/mobile + response: + body: + encoding: UTF-8 + string: '{"public_id":"dt9-u4h-bqv","name":"Test-Create_a_mobile_test_returns_OK_Returns_the_created_test_details_response-1727784450","status":"paused","type":"mobile","tags":[],"created_at":"2024-10-01T12:07:30.710400+00:00","modified_at":"2024-10-01T12:07:30.710400+00:00","config":{"variables":[]},"message":"","options":{"device_ids":["synthetics:mobile:device:iphone_15_ios_17"],"mobileApplication":{"applicationId":"ab0e0aed-536d-411a-9a99-5428c27d8f8e","referenceId":"6115922a-5f5d-455e-bc7e-7955a57f3815","referenceType":"version"},"tick_every":3600},"locations":["aws:us-west-2"],"created_by":{"name":null,"handle":"frog@datadoghq.com","email":"frog@datadoghq.com"},"deleted_at":null,"monitor_id":155147637,"org_id":321813,"modified_by":{"name":null,"handle":"frog@datadoghq.com","email":"frog@datadoghq.com"},"stepCount":{"assertions":0,"subtests":0,"total":0}} + + ' + headers: + Content-Type: + - application/json + status: + code: 200 + message: OK +- recorded_at: Tue, 01 Oct 2024 12:07:30 GMT + request: + body: + encoding: UTF-8 + string: '{"public_ids":["dt9-u4h-bqv"]}' + headers: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v1/synthetics/tests/delete + response: + body: + encoding: UTF-8 + string: '{"deleted_tests":[{"public_id":"dt9-u4h-bqv","deleted_at":"2024-10-01T12:07:31.533655+00:00"}]} + + ' + headers: + Content-Type: + - application/json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v1/synthetics/Edit-a-Mobile-test-returns-OK-response.frozen b/cassettes/features/v1/synthetics/Edit-a-Mobile-test-returns-OK-response.frozen new file mode 100644 index 00000000000..2045efabd58 --- /dev/null +++ b/cassettes/features/v1/synthetics/Edit-a-Mobile-test-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-10-01T14:13:57.976Z \ No newline at end of file diff --git a/cassettes/features/v1/synthetics/Edit-a-Mobile-test-returns-OK-response.yml b/cassettes/features/v1/synthetics/Edit-a-Mobile-test-returns-OK-response.yml new file mode 100644 index 00000000000..dec80aaf3c3 --- /dev/null +++ b/cassettes/features/v1/synthetics/Edit-a-Mobile-test-returns-OK-response.yml @@ -0,0 +1,74 @@ +http_interactions: +- recorded_at: Tue, 01 Oct 2024 14:13:57 GMT + request: + body: + encoding: UTF-8 + string: '{"config":{"variables":[]},"message":"","name":"Test-Edit_a_Mobile_test_returns_OK_response-1727792037","options":{"device_ids":["synthetics:mobile:device:iphone_15_ios_17"],"mobileApplication":{"applicationId":"ab0e0aed-536d-411a-9a99-5428c27d8f8e","referenceId":"6115922a-5f5d-455e-bc7e-7955a57f3815","referenceType":"version"},"tick_every":3600},"status":"paused","steps":[],"type":"mobile"}' + headers: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v1/synthetics/tests/mobile + response: + body: + encoding: UTF-8 + string: '{"public_id":"ga7-aph-db8","name":"Test-Edit_a_Mobile_test_returns_OK_response-1727792037","status":"paused","type":"mobile","tags":[],"created_at":"2024-10-01T14:13:58.675045+00:00","modified_at":"2024-10-01T14:13:58.675045+00:00","config":{"variables":[]},"message":"","options":{"device_ids":["synthetics:mobile:device:iphone_15_ios_17"],"mobileApplication":{"applicationId":"ab0e0aed-536d-411a-9a99-5428c27d8f8e","referenceId":"6115922a-5f5d-455e-bc7e-7955a57f3815","referenceType":"version"},"tick_every":3600},"locations":["aws:us-west-2"],"created_by":{"name":null,"handle":"frog@datadoghq.com","email":"frog@datadoghq.com"},"deleted_at":null,"monitor_id":155155663,"org_id":321813,"modified_by":{"name":null,"handle":"frog@datadoghq.com","email":"frog@datadoghq.com"},"stepCount":{"assertions":0,"subtests":0,"total":0}} + + ' + headers: + Content-Type: + - application/json + status: + code: 200 + message: OK +- recorded_at: Tue, 01 Oct 2024 14:13:57 GMT + request: + body: + encoding: UTF-8 + string: '{"config":{"variables":[]},"message":"","name":"Test-Edit_a_Mobile_test_returns_OK_response-1727792037-updated","options":{"device_ids":["synthetics:mobile:device:iphone_15_ios_17"],"mobileApplication":{"applicationId":"ab0e0aed-536d-411a-9a99-5428c27d8f8e","referenceId":"6115922a-5f5d-455e-bc7e-7955a57f3815","referenceType":"version"},"tick_every":3600},"status":"paused","steps":[],"type":"mobile"}' + headers: + Accept: + - application/json + Content-Type: + - application/json + method: PUT + uri: https://api.datadoghq.com/api/v1/synthetics/tests/mobile/ga7-aph-db8 + response: + body: + encoding: UTF-8 + string: '{"public_id":"ga7-aph-db8","name":"Test-Edit_a_Mobile_test_returns_OK_response-1727792037-updated","status":"paused","type":"mobile","tags":[],"created_at":"2024-10-01T14:13:58.675045+00:00","modified_at":"2024-10-01T14:13:59.399254+00:00","config":{"variables":[]},"message":"","options":{"device_ids":["synthetics:mobile:device:iphone_15_ios_17"],"mobileApplication":{"applicationId":"ab0e0aed-536d-411a-9a99-5428c27d8f8e","referenceId":"6115922a-5f5d-455e-bc7e-7955a57f3815","referenceType":"version"},"tick_every":3600},"locations":["aws:us-west-2"],"created_by":{"name":null,"handle":"frog@datadoghq.com","email":"frog@datadoghq.com"},"deleted_at":null,"monitor_id":155155663,"org_id":321813,"modified_by":{"name":null,"handle":"frog@datadoghq.com","email":"frog@datadoghq.com"},"overall_state":2,"overall_state_modified":"2024-10-01T14:13:59.470478+00:00","stepCount":{"assertions":0,"subtests":0,"total":0}} + + ' + headers: + Content-Type: + - application/json + status: + code: 200 + message: OK +- recorded_at: Tue, 01 Oct 2024 14:13:57 GMT + request: + body: + encoding: UTF-8 + string: '{"public_ids":["ga7-aph-db8"]}' + headers: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v1/synthetics/tests/delete + response: + body: + encoding: UTF-8 + string: '{"deleted_tests":[{"public_id":"ga7-aph-db8","deleted_at":"2024-10-01T14:14:00.385149+00:00"}]} + + ' + headers: + Content-Type: + - application/json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v1/synthetics/Get-a-Mobile-test-returns-OK-response.frozen b/cassettes/features/v1/synthetics/Get-a-Mobile-test-returns-OK-response.frozen new file mode 100644 index 00000000000..b258779c1e5 --- /dev/null +++ b/cassettes/features/v1/synthetics/Get-a-Mobile-test-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-10-01T13:24:41.737Z \ No newline at end of file diff --git a/cassettes/features/v1/synthetics/Get-a-Mobile-test-returns-OK-response.yml b/cassettes/features/v1/synthetics/Get-a-Mobile-test-returns-OK-response.yml new file mode 100644 index 00000000000..3aa7e318c52 --- /dev/null +++ b/cassettes/features/v1/synthetics/Get-a-Mobile-test-returns-OK-response.yml @@ -0,0 +1,70 @@ +http_interactions: +- recorded_at: Tue, 01 Oct 2024 13:24:41 GMT + request: + body: + encoding: UTF-8 + string: '{"config":{"variables":[]},"message":"","name":"Test-Get_a_Mobile_test_returns_OK_response-1727789081","options":{"device_ids":["synthetics:mobile:device:iphone_15_ios_17"],"mobileApplication":{"applicationId":"ab0e0aed-536d-411a-9a99-5428c27d8f8e","referenceId":"6115922a-5f5d-455e-bc7e-7955a57f3815","referenceType":"version"},"tick_every":3600},"status":"paused","steps":[],"type":"mobile"}' + headers: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v1/synthetics/tests/mobile + response: + body: + encoding: UTF-8 + string: '{"public_id":"hxp-wk7-q37","name":"Test-Get_a_Mobile_test_returns_OK_response-1727789081","status":"paused","type":"mobile","tags":[],"created_at":"2024-10-01T13:24:42.354666+00:00","modified_at":"2024-10-01T13:24:42.354666+00:00","config":{"variables":[]},"message":"","options":{"device_ids":["synthetics:mobile:device:iphone_15_ios_17"],"mobileApplication":{"applicationId":"ab0e0aed-536d-411a-9a99-5428c27d8f8e","referenceId":"6115922a-5f5d-455e-bc7e-7955a57f3815","referenceType":"version"},"tick_every":3600},"locations":["aws:us-west-2"],"created_by":{"name":null,"handle":"frog@datadoghq.com","email":"frog@datadoghq.com"},"deleted_at":null,"monitor_id":155152455,"org_id":321813,"modified_by":{"name":null,"handle":"frog@datadoghq.com","email":"frog@datadoghq.com"},"stepCount":{"assertions":0,"subtests":0,"total":0}} + + ' + headers: + Content-Type: + - application/json + status: + code: 200 + message: OK +- recorded_at: Tue, 01 Oct 2024 13:24:41 GMT + request: + body: null + headers: + Accept: + - application/json + method: GET + uri: https://api.datadoghq.com/api/v1/synthetics/tests/mobile/hxp-wk7-q37 + response: + body: + encoding: UTF-8 + string: '{"public_id":"hxp-wk7-q37","name":"Test-Get_a_Mobile_test_returns_OK_response-1727789081","status":"paused","type":"mobile","tags":[],"created_at":"2024-10-01T13:24:42.354666+00:00","modified_at":"2024-10-01T13:24:42.354666+00:00","config":{"variables":[]},"message":"","options":{"device_ids":["synthetics:mobile:device:iphone_15_ios_17"],"mobileApplication":{"applicationId":"ab0e0aed-536d-411a-9a99-5428c27d8f8e","referenceId":"6115922a-5f5d-455e-bc7e-7955a57f3815","referenceType":"version"},"tick_every":3600},"locations":["aws:us-west-2"],"monitor_id":155152455,"creator":{"name":null,"handle":"frog@datadoghq.com","email":"frog@datadoghq.com"}} + + ' + headers: + Content-Type: + - application/json + status: + code: 200 + message: OK +- recorded_at: Tue, 01 Oct 2024 13:24:41 GMT + request: + body: + encoding: UTF-8 + string: '{"public_ids":["hxp-wk7-q37"]}' + headers: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v1/synthetics/tests/delete + response: + body: + encoding: UTF-8 + string: '{"deleted_tests":[{"public_id":"hxp-wk7-q37","deleted_at":"2024-10-01T13:24:43.687553+00:00"}]} + + ' + headers: + Content-Type: + - application/json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/examples/v1/synthetics/CreateSyntheticsMobileTest.rb b/examples/v1/synthetics/CreateSyntheticsMobileTest.rb new file mode 100644 index 00000000000..8f2a5176041 --- /dev/null +++ b/examples/v1/synthetics/CreateSyntheticsMobileTest.rb @@ -0,0 +1,27 @@ +# Create a mobile test returns "OK - Returns the created test details." response + +require "datadog_api_client" +api_instance = DatadogAPIClient::V1::SyntheticsAPI.new + +body = DatadogAPIClient::V1::SyntheticsMobileTest.new({ + name: "Example-Synthetic", + status: DatadogAPIClient::V1::SyntheticsTestPauseStatus::PAUSED, + type: DatadogAPIClient::V1::SyntheticsMobileTestType::MOBILE, + config: DatadogAPIClient::V1::SyntheticsMobileTestConfig.new({ + variables: [], + }), + message: "", + options: DatadogAPIClient::V1::SyntheticsMobileTestOptions.new({ + device_ids: [ + DatadogAPIClient::V1::SyntheticsMobileDeviceID::SYNTHETICS_MOBILE_DEVICE_IPHONE_15_IOS_17, + ], + mobile_application: DatadogAPIClient::V1::SyntheticsMobileTestsMobileApplication.new({ + application_id: "ab0e0aed-536d-411a-9a99-5428c27d8f8e", + reference_id: "6115922a-5f5d-455e-bc7e-7955a57f3815", + reference_type: DatadogAPIClient::V1::SyntheticsMobileTestsMobileApplicationReferenceType::VERSION, + }), + tick_every: 3600, + }), + steps: [], +}) +p api_instance.create_synthetics_mobile_test(body) diff --git a/examples/v1/synthetics/GetMobileTest.rb b/examples/v1/synthetics/GetMobileTest.rb new file mode 100644 index 00000000000..1dfd111b3de --- /dev/null +++ b/examples/v1/synthetics/GetMobileTest.rb @@ -0,0 +1,8 @@ +# Get a Mobile test returns "OK" response + +require "datadog_api_client" +api_instance = DatadogAPIClient::V1::SyntheticsAPI.new + +# there is a valid "synthetics_mobile_test" in the system +SYNTHETICS_MOBILE_TEST_PUBLIC_ID = ENV["SYNTHETICS_MOBILE_TEST_PUBLIC_ID"] +p api_instance.get_mobile_test(SYNTHETICS_MOBILE_TEST_PUBLIC_ID) diff --git a/examples/v1/synthetics/UpdateMobileTest.rb b/examples/v1/synthetics/UpdateMobileTest.rb new file mode 100644 index 00000000000..d7fadfb0bfa --- /dev/null +++ b/examples/v1/synthetics/UpdateMobileTest.rb @@ -0,0 +1,30 @@ +# Edit a Mobile test returns "OK" response + +require "datadog_api_client" +api_instance = DatadogAPIClient::V1::SyntheticsAPI.new + +# there is a valid "synthetics_mobile_test" in the system +SYNTHETICS_MOBILE_TEST_PUBLIC_ID = ENV["SYNTHETICS_MOBILE_TEST_PUBLIC_ID"] + +body = DatadogAPIClient::V1::SyntheticsMobileTest.new({ + name: "Example-Synthetic-updated", + status: DatadogAPIClient::V1::SyntheticsTestPauseStatus::PAUSED, + type: DatadogAPIClient::V1::SyntheticsMobileTestType::MOBILE, + config: DatadogAPIClient::V1::SyntheticsMobileTestConfig.new({ + variables: [], + }), + message: "", + options: DatadogAPIClient::V1::SyntheticsMobileTestOptions.new({ + device_ids: [ + DatadogAPIClient::V1::SyntheticsMobileDeviceID::SYNTHETICS_MOBILE_DEVICE_IPHONE_15_IOS_17, + ], + mobile_application: DatadogAPIClient::V1::SyntheticsMobileTestsMobileApplication.new({ + application_id: "ab0e0aed-536d-411a-9a99-5428c27d8f8e", + reference_id: "6115922a-5f5d-455e-bc7e-7955a57f3815", + reference_type: DatadogAPIClient::V1::SyntheticsMobileTestsMobileApplicationReferenceType::VERSION, + }), + tick_every: 3600, + }), + steps: [], +}) +p api_instance.update_mobile_test(SYNTHETICS_MOBILE_TEST_PUBLIC_ID, body) diff --git a/features/scenarios_model_mapping.rb b/features/scenarios_model_mapping.rb index d9f0e83a155..deb0841a1e0 100644 --- a/features/scenarios_model_mapping.rb +++ b/features/scenarios_model_mapping.rb @@ -740,6 +740,16 @@ "v1.DeleteTests" => { "body" => "SyntheticsDeleteTestsPayload", }, + "v1.CreateSyntheticsMobileTest" => { + "body" => "SyntheticsMobileTest", + }, + "v1.GetMobileTest" => { + "public_id" => "String", + }, + "v1.UpdateMobileTest" => { + "public_id" => "String", + "body" => "SyntheticsMobileTest", + }, "v1.TriggerTests" => { "body" => "SyntheticsTriggerBody", }, diff --git a/features/v1/given.json b/features/v1/given.json index 02b5bacf34e..0880d17a921 100644 --- a/features/v1/given.json +++ b/features/v1/given.json @@ -270,6 +270,18 @@ "tag": "Synthetics", "operationId": "CreateSyntheticsAPITest" }, + { + "parameters": [ + { + "name": "body", + "value": "{\n \"name\": \"{{ unique }}\",\n \"status\": \"paused\",\n \"type\": \"mobile\",\n \"config\": {\n \"variables\": []\n },\n \"message\": \"\",\n \"options\": {\n \"device_ids\": [\n \"synthetics:mobile:device:iphone_15_ios_17\"\n ],\n \"mobileApplication\": {\n \"applicationId\": \"ab0e0aed-536d-411a-9a99-5428c27d8f8e\",\n \"referenceId\": \"6115922a-5f5d-455e-bc7e-7955a57f3815\",\n \"referenceType\": \"version\"\n },\n \"tick_every\": 3600\n },\n \"steps\": []\n}" + } + ], + "step": "there is a valid \"synthetics_mobile_test\" in the system", + "key": "synthetics_mobile_test", + "tag": "Synthetics", + "operationId": "CreateSyntheticsMobileTest" + }, { "parameters": [ { diff --git a/features/v1/synthetics.feature b/features/v1/synthetics.feature index 943f0f65588..d2e4068308d 100644 --- a/features/v1/synthetics.feature +++ b/features/v1/synthetics.feature @@ -125,6 +125,32 @@ Feature: Synthetics When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/synthetics-ct + Scenario: Create a mobile test returns "- JSON format is wrong" response + Given new "CreateSyntheticsMobileTest" request + And body with value {"config": {"initialApplicationArguments": {"propertyNames": {"pattern": "^(?!_dd).*$"}}, "variables": [{"name": "VARIABLE_NAME", "secure": false, "type": "text"}]}, "device_ids": ["apple ipad (2022),16.4"], "message": "Notification message", "name": "Example test name", "options": {"bindings": [{"items": {"principals": [], "role": "editor"}}], "ci": {"executionRule": "blocking"}, "device_ids": ["apple ipad (2022),16.4"], "mobileApplication": {"referenceType": "latest"}, "monitor_options": {"notification_preset_name": "show_all"}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "steps": [{"publicId": "pub-lic-id0", "type": "assertElementContent"}], "tags": ["env:production"], "type": "mobile"} + When the request is sent + Then the response status is 400 - JSON format is wrong + + @team:DataDog/synthetics-ct + Scenario: Create a mobile test returns "OK - Returns the created test details." response + Given new "CreateSyntheticsMobileTest" request + And body from file "synthetics_mobile_test_payload.json" + When the request is sent + Then the response status is 200 OK - Returns the created test details. + And the response "name" is equal to "{{ unique }}" + And the response "options.device_ids[0]" is equal to "synthetics:mobile:device:iphone_15_ios_17" + And the response "options.mobileApplication.applicationId" is equal to "ab0e0aed-536d-411a-9a99-5428c27d8f8e" + And the response "options.mobileApplication.referenceId" is equal to "6115922a-5f5d-455e-bc7e-7955a57f3815" + And the response "options.mobileApplication.referenceType" is equal to "version" + + @generated @skip @team:DataDog/synthetics-ct + Scenario: Create a mobile test returns "Test quota is reached" response + Given new "CreateSyntheticsMobileTest" request + And body with value {"config": {"initialApplicationArguments": {"propertyNames": {"pattern": "^(?!_dd).*$"}}, "variables": [{"name": "VARIABLE_NAME", "secure": false, "type": "text"}]}, "device_ids": ["apple ipad (2022),16.4"], "message": "Notification message", "name": "Example test name", "options": {"bindings": [{"items": {"principals": [], "role": "editor"}}], "ci": {"executionRule": "blocking"}, "device_ids": ["apple ipad (2022),16.4"], "mobileApplication": {"referenceType": "latest"}, "monitor_options": {"notification_preset_name": "show_all"}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "steps": [{"publicId": "pub-lic-id0", "type": "assertElementContent"}], "tags": ["env:production"], "type": "mobile"} + When the request is sent + Then the response status is 402 Test quota is reached + @team:DataDog/synthetics-ct Scenario: Create a multi-step api test with every type of basicAuth returns "OK - Returns the created test details." response Given new "CreateSyntheticsAPITest" request @@ -331,6 +357,36 @@ Feature: Synthetics Then the response status is 200 OK. And the response "deleted_tests[0].public_id" is equal to "{{ synthetics_api_test.public_id }}" + @generated @skip @team:DataDog/synthetics-ct + Scenario: Edit a Mobile test returns "- JSON format is wrong" response + Given new "UpdateMobileTest" request + And request contains "public_id" parameter from "REPLACE.ME" + And body with value {"config": {"initialApplicationArguments": {"propertyNames": {"pattern": "^(?!_dd).*$"}}, "variables": [{"name": "VARIABLE_NAME", "secure": false, "type": "text"}]}, "device_ids": ["apple ipad (2022),16.4"], "message": "Notification message", "name": "Example test name", "options": {"bindings": [{"items": {"principals": [], "role": "editor"}}], "ci": {"executionRule": "blocking"}, "device_ids": ["apple ipad (2022),16.4"], "mobileApplication": {"referenceType": "latest"}, "monitor_options": {"notification_preset_name": "show_all"}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "steps": [{"publicId": "pub-lic-id0", "type": "assertElementContent"}], "tags": ["env:production"], "type": "mobile"} + When the request is sent + Then the response status is 400 - JSON format is wrong + + @generated @skip @team:DataDog/synthetics-ct + Scenario: Edit a Mobile test returns "- Synthetic Monitoring is not activated for the user" response + Given new "UpdateMobileTest" request + And request contains "public_id" parameter from "REPLACE.ME" + And body with value {"config": {"initialApplicationArguments": {"propertyNames": {"pattern": "^(?!_dd).*$"}}, "variables": [{"name": "VARIABLE_NAME", "secure": false, "type": "text"}]}, "device_ids": ["apple ipad (2022),16.4"], "message": "Notification message", "name": "Example test name", "options": {"bindings": [{"items": {"principals": [], "role": "editor"}}], "ci": {"executionRule": "blocking"}, "device_ids": ["apple ipad (2022),16.4"], "mobileApplication": {"referenceType": "latest"}, "monitor_options": {"notification_preset_name": "show_all"}, "restricted_roles": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], "retry": {}, "scheduling": {"timeframes": [{"day": 1, "from": "07:00", "to": "16:00"}, {"day": 3, "from": "07:00", "to": "16:00"}], "timezone": "America/New_York"}}, "status": "live", "steps": [{"publicId": "pub-lic-id0", "type": "assertElementContent"}], "tags": ["env:production"], "type": "mobile"} + When the request is sent + Then the response status is 404 - Synthetic Monitoring is not activated for the user + + @team:DataDog/synthetics-ct + Scenario: Edit a Mobile test returns "OK" response + Given there is a valid "synthetics_mobile_test" in the system + And new "UpdateMobileTest" request + And request contains "public_id" parameter from "synthetics_mobile_test.public_id" + And body from file "synthetics_mobile_test_update_payload.json" + When the request is sent + Then the response status is 200 OK - Returns the created test details. + And the response "name" is equal to "{{ unique }}-updated" + And the response "options.device_ids[0]" is equal to "synthetics:mobile:device:iphone_15_ios_17" + And the response "options.mobileApplication.applicationId" is equal to "ab0e0aed-536d-411a-9a99-5428c27d8f8e" + And the response "options.mobileApplication.referenceId" is equal to "6115922a-5f5d-455e-bc7e-7955a57f3815" + And the response "options.mobileApplication.referenceType" is equal to "version" + @generated @skip @team:DataDog/synthetics-ct Scenario: Edit a browser test returns "- JSON format is wrong" response Given new "UpdateBrowserTest" request @@ -413,6 +469,27 @@ Feature: Synthetics Then the response status is 200 OK And the response "name" is equal to "{{ synthetics_api_test.name }}-updated" + @generated @skip @team:DataDog/synthetics-ct + Scenario: Get a Mobile test returns "- Synthetic Monitoring is not activated for the user" response + Given new "GetMobileTest" request + And request contains "public_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 - Synthetic Monitoring is not activated for the user + + @team:DataDog/synthetics-ct + Scenario: Get a Mobile test returns "OK" response + Given there is a valid "synthetics_mobile_test" in the system + And new "GetMobileTest" request + And request contains "public_id" parameter from "synthetics_mobile_test.public_id" + When the request is sent + Then the response status is 200 OK + And the response "name" is equal to "{{ synthetics_mobile_test.name }}" + And the response "options.device_ids[0]" is equal to "synthetics:mobile:device:iphone_15_ios_17" + And the response "options.mobileApplication.applicationId" is equal to "ab0e0aed-536d-411a-9a99-5428c27d8f8e" + And the response "options.mobileApplication.referenceId" is equal to "6115922a-5f5d-455e-bc7e-7955a57f3815" + And the response "options.mobileApplication.referenceType" is equal to "version" + And the response "type" is equal to "mobile" + @generated @skip @team:DataDog/synthetics-ct Scenario: Get a browser test result returns "- Synthetic Monitoring is not activated for the user" response Given new "GetBrowserTestResult" request diff --git a/features/v1/synthetics_mobile_test_payload.json b/features/v1/synthetics_mobile_test_payload.json new file mode 100644 index 00000000000..322b7b973b0 --- /dev/null +++ b/features/v1/synthetics_mobile_test_payload.json @@ -0,0 +1,21 @@ +{ + "name": "{{ unique }}", + "status": "paused", + "type": "mobile", + "config": { + "variables": [] + }, + "message": "", + "options": { + "device_ids": [ + "synthetics:mobile:device:iphone_15_ios_17" + ], + "mobileApplication": { + "applicationId": "ab0e0aed-536d-411a-9a99-5428c27d8f8e", + "referenceId": "6115922a-5f5d-455e-bc7e-7955a57f3815", + "referenceType": "version" + }, + "tick_every": 3600 + }, + "steps": [] +} \ No newline at end of file diff --git a/features/v1/synthetics_mobile_test_update_payload.json b/features/v1/synthetics_mobile_test_update_payload.json new file mode 100644 index 00000000000..423deed699d --- /dev/null +++ b/features/v1/synthetics_mobile_test_update_payload.json @@ -0,0 +1,21 @@ +{ + "name": "{{ unique }}-updated", + "status": "paused", + "type": "mobile", + "config": { + "variables": [] + }, + "message": "", + "options": { + "device_ids": [ + "synthetics:mobile:device:iphone_15_ios_17" + ], + "mobileApplication": { + "applicationId": "ab0e0aed-536d-411a-9a99-5428c27d8f8e", + "referenceId": "6115922a-5f5d-455e-bc7e-7955a57f3815", + "referenceType": "version" + }, + "tick_every": 3600 + }, + "steps": [] +} \ No newline at end of file diff --git a/features/v1/undo.json b/features/v1/undo.json index 16982e7aa54..a6bfcfb9a25 100644 --- a/features/v1/undo.json +++ b/features/v1/undo.json @@ -1196,6 +1196,31 @@ "type": "idempotent" } }, + "CreateSyntheticsMobileTest": { + "tag": "Synthetics", + "undo": { + "operationId": "DeleteTests", + "parameters": [ + { + "name": "body", + "template": "{\"public_ids\": [\"{{ public_id }}\"]}" + } + ], + "type": "unsafe" + } + }, + "GetMobileTest": { + "tag": "Synthetics", + "undo": { + "type": "safe" + } + }, + "UpdateMobileTest": { + "tag": "Synthetics", + "undo": { + "type": "idempotent" + } + }, "TriggerTests": { "tag": "Synthetics", "undo": { diff --git a/lib/datadog_api_client/inflector.rb b/lib/datadog_api_client/inflector.rb index fcd37a73368..6fbde824910 100644 --- a/lib/datadog_api_client/inflector.rb +++ b/lib/datadog_api_client/inflector.rb @@ -635,6 +635,23 @@ def overrides "v1.synthetics_local_variable_parsing_options_type" => "SyntheticsLocalVariableParsingOptionsType", "v1.synthetics_location" => "SyntheticsLocation", "v1.synthetics_locations" => "SyntheticsLocations", + "v1.synthetics_mobile_device_id" => "SyntheticsMobileDeviceID", + "v1.synthetics_mobile_step" => "SyntheticsMobileStep", + "v1.synthetics_mobile_step_type" => "SyntheticsMobileStepType", + "v1.synthetics_mobile_test" => "SyntheticsMobileTest", + "v1.synthetics_mobile_test_binding" => "SyntheticsMobileTestBinding", + "v1.synthetics_mobile_test_binding_items" => "SyntheticsMobileTestBindingItems", + "v1.synthetics_mobile_test_binding_items_role" => "SyntheticsMobileTestBindingItemsRole", + "v1.synthetics_mobile_test_ci_options" => "SyntheticsMobileTestCiOptions", + "v1.synthetics_mobile_test_config" => "SyntheticsMobileTestConfig", + "v1.synthetics_mobile_test_initial_application_arguments" => "SyntheticsMobileTestInitialApplicationArguments", + "v1.synthetics_mobile_test_initial_application_arguments_property_names" => "SyntheticsMobileTestInitialApplicationArgumentsPropertyNames", + "v1.synthetics_mobile_test_options" => "SyntheticsMobileTestOptions", + "v1.synthetics_mobile_test_options_monitor_options" => "SyntheticsMobileTestOptionsMonitorOptions", + "v1.synthetics_mobile_test_options_monitor_options_notification_preset_name" => "SyntheticsMobileTestOptionsMonitorOptionsNotificationPresetName", + "v1.synthetics_mobile_tests_mobile_application" => "SyntheticsMobileTestsMobileApplication", + "v1.synthetics_mobile_tests_mobile_application_reference_type" => "SyntheticsMobileTestsMobileApplicationReferenceType", + "v1.synthetics_mobile_test_type" => "SyntheticsMobileTestType", "v1.synthetics_parsing_options" => "SyntheticsParsingOptions", "v1.synthetics_patch_test_body" => "SyntheticsPatchTestBody", "v1.synthetics_patch_test_operation" => "SyntheticsPatchTestOperation", diff --git a/lib/datadog_api_client/v1/api/synthetics_api.rb b/lib/datadog_api_client/v1/api/synthetics_api.rb index d77deee0e8a..4ed1d7f0285 100644 --- a/lib/datadog_api_client/v1/api/synthetics_api.rb +++ b/lib/datadog_api_client/v1/api/synthetics_api.rb @@ -291,6 +291,73 @@ def create_synthetics_browser_test_with_http_info(body, opts = {}) return data, status_code, headers end + # Create a mobile test. + # + # @see #create_synthetics_mobile_test_with_http_info + def create_synthetics_mobile_test(body, opts = {}) + data, _status_code, _headers = create_synthetics_mobile_test_with_http_info(body, opts) + data + end + + # Create a mobile test. + # + # Create a Synthetic mobile test. + # + # @param body [SyntheticsMobileTest] Details of the test to create. + # @param opts [Hash] the optional parameters + # @return [Array<(SyntheticsMobileTest, Integer, Hash)>] SyntheticsMobileTest data, response status code and response headers + def create_synthetics_mobile_test_with_http_info(body, opts = {}) + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: SyntheticsAPI.create_synthetics_mobile_test ...' + end + # verify the required parameter 'body' is set + if @api_client.config.client_side_validation && body.nil? + fail ArgumentError, "Missing the required parameter 'body' when calling SyntheticsAPI.create_synthetics_mobile_test" + end + # resource path + local_var_path = '/api/v1/synthetics/tests/mobile' + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + # HTTP header 'Content-Type' + header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] || @api_client.object_to_http_body(body) + + # return_type + return_type = opts[:debug_return_type] || 'SyntheticsMobileTest' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ] + + new_options = opts.merge( + :operation => :create_synthetics_mobile_test, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V1" + ) + + data, status_code, headers = @api_client.call_api(Net::HTTP::Post, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: SyntheticsAPI#create_synthetics_mobile_test\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + # Delete a global variable. # # @see #delete_global_variable_with_http_info @@ -1039,6 +1106,72 @@ def get_global_variable_with_http_info(variable_id, opts = {}) return data, status_code, headers end + # Get a Mobile test. + # + # @see #get_mobile_test_with_http_info + def get_mobile_test(public_id, opts = {}) + data, _status_code, _headers = get_mobile_test_with_http_info(public_id, opts) + data + end + + # Get a Mobile test. + # + # Get the detailed configuration associated with + # a Synthetic Mobile test. + # + # @param public_id [String] The public ID of the test to get details from. + # @param opts [Hash] the optional parameters + # @return [Array<(SyntheticsMobileTest, Integer, Hash)>] SyntheticsMobileTest data, response status code and response headers + def get_mobile_test_with_http_info(public_id, opts = {}) + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: SyntheticsAPI.get_mobile_test ...' + end + # verify the required parameter 'public_id' is set + if @api_client.config.client_side_validation && public_id.nil? + fail ArgumentError, "Missing the required parameter 'public_id' when calling SyntheticsAPI.get_mobile_test" + end + # resource path + local_var_path = '/api/v1/synthetics/tests/mobile/{public_id}'.sub('{public_id}', CGI.escape(public_id.to_s).gsub('%2F', '/')) + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'SyntheticsMobileTest' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ] + + new_options = opts.merge( + :operation => :get_mobile_test, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V1" + ) + + data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: SyntheticsAPI#get_mobile_test\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + # Get a private location. # # @see #get_private_location_with_http_info @@ -1851,6 +1984,78 @@ def update_browser_test_with_http_info(public_id, body, opts = {}) return data, status_code, headers end + # Edit a Mobile test. + # + # @see #update_mobile_test_with_http_info + def update_mobile_test(public_id, body, opts = {}) + data, _status_code, _headers = update_mobile_test_with_http_info(public_id, body, opts) + data + end + + # Edit a Mobile test. + # + # Edit the configuration of a Synthetic Mobile test. + # + # @param public_id [String] The public ID of the test to get details from. + # @param body [SyntheticsMobileTest] New test details to be saved. + # @param opts [Hash] the optional parameters + # @return [Array<(SyntheticsMobileTest, Integer, Hash)>] SyntheticsMobileTest data, response status code and response headers + def update_mobile_test_with_http_info(public_id, body, opts = {}) + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: SyntheticsAPI.update_mobile_test ...' + end + # verify the required parameter 'public_id' is set + if @api_client.config.client_side_validation && public_id.nil? + fail ArgumentError, "Missing the required parameter 'public_id' when calling SyntheticsAPI.update_mobile_test" + end + # verify the required parameter 'body' is set + if @api_client.config.client_side_validation && body.nil? + fail ArgumentError, "Missing the required parameter 'body' when calling SyntheticsAPI.update_mobile_test" + end + # resource path + local_var_path = '/api/v1/synthetics/tests/mobile/{public_id}'.sub('{public_id}', CGI.escape(public_id.to_s).gsub('%2F', '/')) + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + # HTTP header 'Content-Type' + header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] || @api_client.object_to_http_body(body) + + # return_type + return_type = opts[:debug_return_type] || 'SyntheticsMobileTest' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ] + + new_options = opts.merge( + :operation => :update_mobile_test, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V1" + ) + + data, status_code, headers = @api_client.call_api(Net::HTTP::Put, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: SyntheticsAPI#update_mobile_test\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + # Edit a private location. # # @see #update_private_location_with_http_info diff --git a/lib/datadog_api_client/v1/models/synthetics_config_variable_type.rb b/lib/datadog_api_client/v1/models/synthetics_config_variable_type.rb index 22e3b86de7f..98140a6be20 100644 --- a/lib/datadog_api_client/v1/models/synthetics_config_variable_type.rb +++ b/lib/datadog_api_client/v1/models/synthetics_config_variable_type.rb @@ -23,5 +23,6 @@ class SyntheticsConfigVariableType GLOBAL = "global".freeze TEXT = "text".freeze + EMAIL = "email".freeze end end diff --git a/lib/datadog_api_client/v1/models/synthetics_mobile_device_id.rb b/lib/datadog_api_client/v1/models/synthetics_mobile_device_id.rb new file mode 100644 index 00000000000..69bd33e3743 --- /dev/null +++ b/lib/datadog_api_client/v1/models/synthetics_mobile_device_id.rb @@ -0,0 +1,251 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # The device ID. + class SyntheticsMobileDeviceID + include BaseEnumModel + + APPLE_IPAD__2022__16_4 = "apple ipad (2022),16.4".freeze + APPLE_IPAD__2022__17_3_1 = "apple ipad (2022),17.3.1".freeze + APPLE_IPAD_7TH_GEN__2019__13_3 = "apple ipad 7th gen (2019),13.3".freeze + APPLE_IPAD_9TH_GEN__2021__15_0_2 = "apple ipad 9th gen (2021),15.0.2".freeze + APPLE_IPAD_9TH_GEN__2021__16_1 = "apple ipad 9th gen (2021),16.1".freeze + APPLE_IPAD_AIR__2022__15_4_1 = "apple ipad air (2022),15.4.1".freeze + APPLE_IPAD_MINI__5TH_GEN__14_6 = "apple ipad mini (5th gen),14.6".freeze + APPLE_IPAD_MINI__6TH_GEN__15_1 = "apple ipad mini (6th gen),15.1".freeze + APPLE_IPAD_PRO_11__2022__16_3 = "apple ipad pro 11 (2022),16.3".freeze + APPLE_IPAD_PRO_12_9__2020__14_8 = "apple ipad pro 12.9 (2020),14.8".freeze + APPLE_IPAD_PRO_12_9__2021__15_6_1 = "apple ipad pro 12.9 (2021),15.6.1".freeze + APPLE_IPAD_PRO_12_9__2022__16_5 = "apple ipad pro 12.9 (2022),16.5".freeze + APPLE_IPHONE_11_PRO_MAX_13_1_3 = "apple iphone 11 pro max,13.1.3".freeze + APPLE_IPHONE_11_PRO_13_6 = "apple iphone 11 pro,13.6".freeze + APPLE_IPHONE_11_PRO_15_5 = "apple iphone 11 pro,15.5".freeze + APPLE_IPHONE_11_13_3_1 = "apple iphone 11,13.3.1".freeze + APPLE_IPHONE_11_14_0 = "apple iphone 11,14.0".freeze + APPLE_IPHONE_11_16_3 = "apple iphone 11,16.3".freeze + APPLE_IPHONE_12_MINI_14_2 = "apple iphone 12 mini,14.2".freeze + APPLE_IPHONE_12_MINI_16_5 = "apple iphone 12 mini,16.5".freeze + APPLE_IPHONE_12_PRO_MAX_14_5_1 = "apple iphone 12 pro max,14.5.1".freeze + APPLE_IPHONE_12_PRO_14_5_1 = "apple iphone 12 pro,14.5.1".freeze + APPLE_IPHONE_12_PRO_14_8 = "apple iphone 12 pro,14.8".freeze + APPLE_IPHONE_12_PRO_15_0_2 = "apple iphone 12 pro,15.0.2".freeze + APPLE_IPHONE_12_PRO_16_2 = "apple iphone 12 pro,16.2".freeze + APPLE_IPHONE_12_14_2 = "apple iphone 12,14.2".freeze + APPLE_IPHONE_12_14_6 = "apple iphone 12,14.6".freeze + APPLE_IPHONE_12_14_8 = "apple iphone 12,14.8".freeze + APPLE_IPHONE_12_15_6_1 = "apple iphone 12,15.6.1".freeze + APPLE_IPHONE_12_16_6_1 = "apple iphone 12,16.6.1".freeze + APPLE_IPHONE_13_MINI_15_0_2 = "apple iphone 13 mini,15.0.2".freeze + APPLE_IPHONE_13_MINI_16_6 = "apple iphone 13 mini,16.6".freeze + APPLE_IPHONE_13_PRO_MAX_15_1 = "apple iphone 13 pro max,15.1".freeze + APPLE_IPHONE_13_PRO_MAX_17_3 = "apple iphone 13 pro max,17.3".freeze + APPLE_IPHONE_13_PRO_15_0_2 = "apple iphone 13 pro,15.0.2".freeze + APPLE_IPHONE_13_PRO_15_2 = "apple iphone 13 pro,15.2".freeze + APPLE_IPHONE_14_PLUS_16_1 = "apple iphone 14 plus,16.1".freeze + APPLE_IPHONE_14_PRO_MAX_16_2 = "apple iphone 14 pro max,16.2".freeze + APPLE_IPHONE_14_PRO_16_1 = "apple iphone 14 pro,16.1".freeze + APPLE_IPHONE_14_PRO_17_3_1 = "apple iphone 14 pro,17.3.1".freeze + APPLE_IPHONE_14_16_1 = "apple iphone 14,16.1".freeze + APPLE_IPHONE_15_PRO_MAX_17_3_1 = "apple iphone 15 pro max,17.3.1".freeze + APPLE_IPHONE_15_PRO_17_3_1 = "apple iphone 15 pro,17.3.1".freeze + APPLE_IPHONE_15_17_2_1 = "apple iphone 15,17.2.1".freeze + APPLE_IPHONE_SE__2022__15_4_1 = "apple iphone se (2022),15.4.1".freeze + GALAXY_A40_9 = "galaxy a40,9".freeze + GALAXY_A5_8_0_0 = "galaxy a5,8.0.0".freeze + GALAXY_NOTE_10_9 = "galaxy note 10,9".freeze + GALAXY_NOTE5__AT_T__7_0 = "galaxy note5 (at&t),7.0".freeze + GALAXY_S10_9 = "galaxy s10,9".freeze + GALAXY_S6_EDGE_SMNOT_G925F_7_0 = "galaxy s6 edge sm-g925f,7.0".freeze + GALAXY_S8__TNOT_MOBILE__8_0_0 = "galaxy s8 (t-mobile),8.0.0".freeze + GALAXY_S8_UNLOCKED_8_0_0 = "galaxy s8 unlocked,8.0.0".freeze + GALAXY_S9__UNLOCKED__9 = "galaxy s9 (unlocked),9".freeze + GALAXY_S9___UNLOCKED__8_0_0 = "galaxy s9+ (unlocked),8.0.0".freeze + GALAXY_S9___UNLOCKED__9 = "galaxy s9+ (unlocked),9".freeze + GOOGLE_PIXEL_2_8_0_0 = "google pixel 2,8.0.0".freeze + GOOGLE_PIXEL_2_9 = "google pixel 2,9".freeze + GOOGLE_PIXEL_3_XL_10 = "google pixel 3 xl,10".freeze + GOOGLE_PIXEL_3_XL_9 = "google pixel 3 xl,9".freeze + GOOGLE_PIXEL_3_10 = "google pixel 3,10".freeze + GOOGLE_PIXEL_3_9 = "google pixel 3,9".freeze + GOOGLE_PIXEL_3A_XL_11 = "google pixel 3a xl,11".freeze + GOOGLE_PIXEL_3A_XL_12 = "google pixel 3a xl,12".freeze + GOOGLE_PIXEL_3A_10 = "google pixel 3a,10".freeze + GOOGLE_PIXEL_4__UNLOCKED__10 = "google pixel 4 (unlocked),10".freeze + GOOGLE_PIXEL_4__UNLOCKED__11 = "google pixel 4 (unlocked),11".freeze + GOOGLE_PIXEL_4_XL__UNLOCKED__10 = "google pixel 4 xl (unlocked),10".freeze + GOOGLE_PIXEL_4A_11 = "google pixel 4a,11".freeze + GOOGLE_PIXEL_4A_12 = "google pixel 4a,12".freeze + GOOGLE_PIXEL_5A_5G_12 = "google pixel 5a 5g,12".freeze + GOOGLE_PIXEL_6_PRO_12 = "google pixel 6 pro,12".freeze + GOOGLE_PIXEL_6_12 = "google pixel 6,12".freeze + GOOGLE_PIXEL_6A_13 = "google pixel 6a,13".freeze + GOOGLE_PIXEL_7_PRO_13 = "google pixel 7 pro,13".freeze + GOOGLE_PIXEL_7_13 = "google pixel 7,13".freeze + GOOGLE_PIXEL_7_14 = "google pixel 7,14".freeze + GOOGLE_PIXEL_8_PRO_14 = "google pixel 8 pro,14".freeze + GOOGLE_PIXEL_8_14 = "google pixel 8,14".freeze + IPAD_8TH_GEN__2020__14_8 = "ipad 8th gen (2020),14.8".freeze + IPAD_AIR_2_13_6 = "ipad air 2,13.6".freeze + IPAD_AIR_4TH_GEN__2020__14_8 = "ipad air 4th gen (2020),14.8".freeze + IPHONE_13_15_0_2 = "iphone 13,15.0.2".freeze + IPHONE_13_16_0_2 = "iphone 13,16.0.2".freeze + IPHONE_6_12_5_4 = "iphone 6,12.5.4".freeze + IPHONE_6S_14_4_2 = "iphone 6s,14.4.2".freeze + IPHONE_7_14_8 = "iphone 7,14.8".freeze + IPHONE_8_13_5_1 = "iphone 8,13.5.1".freeze + IPHONE_8_14_4_2 = "iphone 8,14.4.2".freeze + IPHONE_SE__2020__13_6 = "iphone se (2020),13.6".freeze + IPHONE_SE__2020__14_6 = "iphone se (2020),14.6".freeze + IPHONE_SE__2020__15_0_2 = "iphone se (2020),15.0.2".freeze + IPHONE_X_14_6 = "iphone x,14.6".freeze + IPHONE_XR_12_0 = "iphone xr,12.0".freeze + IPHONE_XR_14_0 = "iphone xr,14.0".freeze + IPHONE_XS_MAX_12_1 = "iphone xs max,12.1".freeze + IPHONE_XS_13_6 = "iphone xs,13.6".freeze + LG_STYLO_5_9 = "lg stylo 5,9".freeze + LG_STYLO_6_10 = "lg stylo 6,10".freeze + MOTO_G_4_7_0 = "moto g 4,7.0".freeze + MOTO_G7_PLAY_9 = "moto g7 play,9".freeze + NEXUS_7_NOT__2ND_GEN__WIFI__6_0 = "nexus 7 - 2nd gen (wifi),6.0".freeze + ONEPLUS_8T_11 = "oneplus 8t,11".freeze + PIXEL_2_XL_8_1_0 = "pixel 2 xl,8.1.0".freeze + PIXEL_2_XL_9 = "pixel 2 xl,9".freeze + PIXEL_5_11 = "pixel 5,11".freeze + PIXEL_5_12 = "pixel 5,12".freeze + PIXEL_XL_8_0_0 = "pixel xl,8.0.0".freeze + PIXEL_7_1_2 = "pixel,7.1.2".freeze + SAMSUNG_A51_10 = "samsung a51,10".freeze + SAMSUNG_GALAXY_A10S_10 = "samsung galaxy a10s,10".freeze + SAMSUNG_GALAXY_A13_5G_11 = "samsung galaxy a13 5g,11".freeze + SAMSUNG_GALAXY_A53_5G_12 = "samsung galaxy a53 5g,12".freeze + SAMSUNG_GALAXY_A7_8_0_0 = "samsung galaxy a7,8.0.0".freeze + SAMSUNG_GALAXY_A71_11 = "samsung galaxy a71,11".freeze + SAMSUNG_GALAXY_A73_5G_12 = "samsung galaxy a73 5g,12".freeze + SAMSUNG_GALAXY_J7__2018__8_0_0 = "samsung galaxy j7 (2018),8.0.0".freeze + SAMSUNG_GALAXY_NOTE20_11 = "samsung galaxy note20,11".freeze + SAMSUNG_GALAXY_S20__UNLOCKED__10 = "samsung galaxy s20 (unlocked),10".freeze + SAMSUNG_GALAXY_S20___UNLOCKED__10 = "samsung galaxy s20+ (unlocked),10".freeze + SAMSUNG_GALAXY_S21_ULTRA_11 = "samsung galaxy s21 ultra,11".freeze + SAMSUNG_GALAXY_S21_ULTRA_12 = "samsung galaxy s21 ultra,12".freeze + SAMSUNG_GALAXY_S21__11 = "samsung galaxy s21+,11".freeze + SAMSUNG_GALAXY_S21_11 = "samsung galaxy s21,11".freeze + SAMSUNG_GALAXY_S21_12 = "samsung galaxy s21,12".freeze + SAMSUNG_GALAXY_S22_5G_12 = "samsung galaxy s22 5g,12".freeze + SAMSUNG_GALAXY_S22_5G_13 = "samsung galaxy s22 5g,13".freeze + SAMSUNG_GALAXY_S22_ULTRA_5G_12 = "samsung galaxy s22 ultra 5g,12".freeze + SAMSUNG_GALAXY_S22__5G_12 = "samsung galaxy s22+ 5g,12".freeze + SAMSUNG_GALAXY_S23_ULTRA_13 = "samsung galaxy s23 ultra,13".freeze + SAMSUNG_GALAXY_S23__13 = "samsung galaxy s23+,13".freeze + SAMSUNG_GALAXY_S23_13 = "samsung galaxy s23,13".freeze + SAMSUNG_GALAXY_S23_14 = "samsung galaxy s23,14".freeze + SAMSUNG_GALAXY_TAB_A_10_1_10 = "samsung galaxy tab a 10.1,10".freeze + SAMSUNG_GALAXY_TAB_A_10_1_7_0 = "samsung galaxy tab a 10.1,7.0".freeze + SAMSUNG_GALAXY_TAB_A8__2021__11 = "samsung galaxy tab a8 (2021),11".freeze + SAMSUNG_GALAXY_TAB_S4_8_1_0 = "samsung galaxy tab s4,8.1.0".freeze + SAMSUNG_GALAXY_TAB_S6_9 = "samsung galaxy tab s6,9".freeze + SAMSUNG_GALAXY_TAB_S7_11 = "samsung galaxy tab s7,11".freeze + SAMSUNG_GALAXY_TAB_S8_12 = "samsung galaxy tab s8,12".freeze + SAMSUNG_S20_ULTRA_10 = "samsung s20 ultra,10".freeze + SONY_XPERIA_XZ3_9 = "sony xperia xz3,9".freeze + XIAOMI_REDMI_NOTE_10_5G_11 = "xiaomi redmi note 10 5g,11".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_10TH_GEN_2022_IOS_16 = "synthetics:mobile:device:apple_ipad_10th_gen_2022_ios_16".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_10TH_GEN_2022_IOS_17 = "synthetics:mobile:device:apple_ipad_10th_gen_2022_ios_17".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_9TH_GEN_2021_IOS_15 = "synthetics:mobile:device:apple_ipad_9th_gen_2021_ios_15".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_AIR_2022_IOS_15 = "synthetics:mobile:device:apple_ipad_air_2022_ios_15".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_MINI_5TH_GEN_IOS_14 = "synthetics:mobile:device:apple_ipad_mini_5th_gen_ios_14".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_MINI_6TH_GEN_IOS_15 = "synthetics:mobile:device:apple_ipad_mini_6th_gen_ios_15".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_PRO_11_2022_IOS_16 = "synthetics:mobile:device:apple_ipad_pro_11_2022_ios_16".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_PRO_12_9_2020_IOS_14 = "synthetics:mobile:device:apple_ipad_pro_12_9_2020_ios_14".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_PRO_12_9_2021_IOS_15 = "synthetics:mobile:device:apple_ipad_pro_12_9_2021_ios_15".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPAD_PRO_12_9_2022_IOS_16 = "synthetics:mobile:device:apple_ipad_pro_12_9_2022_ios_16".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_11_IOS_14 = "synthetics:mobile:device:apple_iphone_11_ios_14".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_11_IOS_16 = "synthetics:mobile:device:apple_iphone_11_ios_16".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_11_PRO_IOS_15 = "synthetics:mobile:device:apple_iphone_11_pro_ios_15".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_12_IOS_14 = "synthetics:mobile:device:apple_iphone_12_ios_14".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_12_IOS_15 = "synthetics:mobile:device:apple_iphone_12_ios_15".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_12_IOS_16 = "synthetics:mobile:device:apple_iphone_12_ios_16".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_12_MINI_IOS_14 = "synthetics:mobile:device:apple_iphone_12_mini_ios_14".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_12_MINI_IOS_16 = "synthetics:mobile:device:apple_iphone_12_mini_ios_16".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_12_PRO_IOS_14 = "synthetics:mobile:device:apple_iphone_12_pro_ios_14".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_12_PRO_MAX_IOS_14 = "synthetics:mobile:device:apple_iphone_12_pro_max_ios_14".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_13_MINI_IOS_15 = "synthetics:mobile:device:apple_iphone_13_mini_ios_15".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_13_MINI_IOS_16 = "synthetics:mobile:device:apple_iphone_13_mini_ios_16".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_13_PRO_IOS_15 = "synthetics:mobile:device:apple_iphone_13_pro_ios_15".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_13_PRO_MAX_IOS_15 = "synthetics:mobile:device:apple_iphone_13_pro_max_ios_15".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_13_PRO_MAX_IOS_17 = "synthetics:mobile:device:apple_iphone_13_pro_max_ios_17".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_14_IOS_16 = "synthetics:mobile:device:apple_iphone_14_ios_16".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_14_PLUS_IOS_16 = "synthetics:mobile:device:apple_iphone_14_plus_ios_16".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_14_PRO_IOS_16 = "synthetics:mobile:device:apple_iphone_14_pro_ios_16".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_14_PRO_IOS_17 = "synthetics:mobile:device:apple_iphone_14_pro_ios_17".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_14_PRO_MAX_IOS_16 = "synthetics:mobile:device:apple_iphone_14_pro_max_ios_16".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_6_IOS_12 = "synthetics:mobile:device:apple_iphone_6_ios_12".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_8_IOS_13 = "synthetics:mobile:device:apple_iphone_8_ios_13".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_8_IOS_14 = "synthetics:mobile:device:apple_iphone_8_ios_14".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_SE_2022_IOS_15 = "synthetics:mobile:device:apple_iphone_se_2022_ios_15".freeze + SYNTHETICS_MOBILE_DEVICE_APPLE_IPHONE_SE_2022_IOS_16 = "synthetics:mobile:device:apple_iphone_se_2022_ios_16".freeze + SYNTHETICS_MOBILE_DEVICE_GALAXY_A5_ANDROID_8 = "synthetics:mobile:device:galaxy_a5_android_8".freeze + SYNTHETICS_MOBILE_DEVICE_GALAXY_NOTE5_ANDROID_7 = "synthetics:mobile:device:galaxy_note5_android_7".freeze + SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_3A_XL_ANDROID_11 = "synthetics:mobile:device:google_pixel_3a_xl_android_11".freeze + SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_4_UNLOCKED_ANDROID_11 = "synthetics:mobile:device:google_pixel_4_unlocked_android_11".freeze + SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_4_XL_UNLOCKED_ANDROID_10 = "synthetics:mobile:device:google_pixel_4_xl_unlocked_android_10".freeze + SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_4A_ANDROID_11 = "synthetics:mobile:device:google_pixel_4a_android_11".freeze + SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_6_ANDROID_12 = "synthetics:mobile:device:google_pixel_6_android_12".freeze + SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_6_PRO_ANDROID_12 = "synthetics:mobile:device:google_pixel_6_pro_android_12".freeze + SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_6A_ANDROID_13 = "synthetics:mobile:device:google_pixel_6a_android_13".freeze + SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_7_ANDROID_13 = "synthetics:mobile:device:google_pixel_7_android_13".freeze + SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_7_ANDROID_14 = "synthetics:mobile:device:google_pixel_7_android_14".freeze + SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_7_PRO_ANDROID_13 = "synthetics:mobile:device:google_pixel_7_pro_android_13".freeze + SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_8_ANDROID_14 = "synthetics:mobile:device:google_pixel_8_android_14".freeze + SYNTHETICS_MOBILE_DEVICE_GOOGLE_PIXEL_8_PRO_ANDROID_14 = "synthetics:mobile:device:google_pixel_8_pro_android_14".freeze + SYNTHETICS_MOBILE_DEVICE_IPAD_AIR_2_IOS_13 = "synthetics:mobile:device:ipad_air_2_ios_13".freeze + SYNTHETICS_MOBILE_DEVICE_IPAD_AIR_4TH_GEN_2020_IOS_14 = "synthetics:mobile:device:ipad_air_4th_gen_2020_ios_14".freeze + SYNTHETICS_MOBILE_DEVICE_IPHONE_13_IOS_15 = "synthetics:mobile:device:iphone_13_ios_15".freeze + SYNTHETICS_MOBILE_DEVICE_IPHONE_13_IOS_16 = "synthetics:mobile:device:iphone_13_ios_16".freeze + SYNTHETICS_MOBILE_DEVICE_IPHONE_15_IOS_17 = "synthetics:mobile:device:iphone_15_ios_17".freeze + SYNTHETICS_MOBILE_DEVICE_IPHONE_15_PRO_IOS_17 = "synthetics:mobile:device:iphone_15_pro_ios_17".freeze + SYNTHETICS_MOBILE_DEVICE_IPHONE_15_PRO_MAX_IOS_17 = "synthetics:mobile:device:iphone_15_pro_max_ios_17".freeze + SYNTHETICS_MOBILE_DEVICE_IPHONE_SE_2020_IOS_13 = "synthetics:mobile:device:iphone_se_2020_ios_13".freeze + SYNTHETICS_MOBILE_DEVICE_IPHONE_SE_2020_IOS_14 = "synthetics:mobile:device:iphone_se_2020_ios_14".freeze + SYNTHETICS_MOBILE_DEVICE_IPHONE_X_IOS_14 = "synthetics:mobile:device:iphone_x_ios_14".freeze + SYNTHETICS_MOBILE_DEVICE_IPHONE_XR_IOS_14 = "synthetics:mobile:device:iphone_xr_ios_14".freeze + SYNTHETICS_MOBILE_DEVICE_IPHONE_XS_IOS_13 = "synthetics:mobile:device:iphone_xs_ios_13".freeze + SYNTHETICS_MOBILE_DEVICE_LG_STYLO_6_ANDROID_10 = "synthetics:mobile:device:lg_stylo_6_android_10".freeze + SYNTHETICS_MOBILE_DEVICE_PIXEL_5_ANDROID_12 = "synthetics:mobile:device:pixel_5_android_12".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_A51_ANDROID_10 = "synthetics:mobile:device:samsung_a51_android_10".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_A71_ANDROID_11 = "synthetics:mobile:device:samsung_galaxy_a71_android_11".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_NOTE20_ANDROID_11 = "synthetics:mobile:device:samsung_galaxy_note20_android_11".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S21_ANDROID_11 = "synthetics:mobile:device:samsung_galaxy_s21_android_11".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S21_ANDROID_12 = "synthetics:mobile:device:samsung_galaxy_s21_android_12".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S21_PLUS_ANDROID_11 = "synthetics:mobile:device:samsung_galaxy_s21_plus_android_11".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S21_ULTRA_ANDROID_11 = "synthetics:mobile:device:samsung_galaxy_s21_ultra_android_11".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S22_5G_ANDROID_12 = "synthetics:mobile:device:samsung_galaxy_s22_5g_android_12".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S22_5G_ANDROID_13 = "synthetics:mobile:device:samsung_galaxy_s22_5g_android_13".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S22_PLUS_5G_ANDROID_12 = "synthetics:mobile:device:samsung_galaxy_s22_plus_5g_android_12".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S22_ULTRA_5G_ANDROID_12 = "synthetics:mobile:device:samsung_galaxy_s22_ultra_5g_android_12".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S23_ANDROID_13 = "synthetics:mobile:device:samsung_galaxy_s23_android_13".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S23_ANDROID_14 = "synthetics:mobile:device:samsung_galaxy_s23_android_14".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S23_PLUS_ANDROID_13 = "synthetics:mobile:device:samsung_galaxy_s23_plus_android_13".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S23_PLUS_ANDROID_14 = "synthetics:mobile:device:samsung_galaxy_s23_plus_android_14".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_S23_ULTRA_ANDROID_13 = "synthetics:mobile:device:samsung_galaxy_s23_ultra_android_13".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_TAB_A_10_1_ANDROID_7 = "synthetics:mobile:device:samsung_galaxy_tab_a_10_1_android_7".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_TAB_S7_ANDROID_11 = "synthetics:mobile:device:samsung_galaxy_tab_s7_android_11".freeze + SYNTHETICS_MOBILE_DEVICE_SAMSUNG_GALAXY_TAB_S8_ANDROID_12 = "synthetics:mobile:device:samsung_galaxy_tab_s8_android_12".freeze + SYNTHETICS_MOBILE_DEVICE_XIAOMI_REDMI_NOTE_10_5G_ANDROID_11 = "synthetics:mobile:device:xiaomi_redmi_note_10_5g_android_11".freeze + end +end diff --git a/lib/datadog_api_client/v1/models/synthetics_mobile_step.rb b/lib/datadog_api_client/v1/models/synthetics_mobile_step.rb new file mode 100644 index 00000000000..4d075c92744 --- /dev/null +++ b/lib/datadog_api_client/v1/models/synthetics_mobile_step.rb @@ -0,0 +1,203 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # The steps used in a Synthetic mobile test. + class SyntheticsMobileStep + include BaseGenericModel + + # A boolean set to allow this step to fail. + attr_accessor :allow_failure + + # A boolean set to determine if the step has a new step element. + attr_accessor :has_new_step_element + + # A boolean to use in addition to `allowFailure` to determine if the test should be marked as failed when the step fails. + attr_accessor :is_critical + + # The name of the step. + attr_reader :name + + # A boolean set to not take a screenshot for the step. + attr_accessor :no_screenshot + + # The parameters of the mobile step. + attr_accessor :params + + # The public ID of the step. + attr_accessor :public_id + + # The time before declaring a step failed. + attr_accessor :timeout + + # Step type used in your mobile Synthetic test. + attr_accessor :type + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'allow_failure' => :'allowFailure', + :'has_new_step_element' => :'hasNewStepElement', + :'is_critical' => :'isCritical', + :'name' => :'name', + :'no_screenshot' => :'noScreenshot', + :'params' => :'params', + :'public_id' => :'publicId', + :'timeout' => :'timeout', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'allow_failure' => :'Boolean', + :'has_new_step_element' => :'Boolean', + :'is_critical' => :'Boolean', + :'name' => :'String', + :'no_screenshot' => :'Boolean', + :'params' => :'Object', + :'public_id' => :'String', + :'timeout' => :'Integer', + :'type' => :'SyntheticsMobileStepType' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SyntheticsMobileStep` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'allow_failure') + self.allow_failure = attributes[:'allow_failure'] + end + + if attributes.key?(:'has_new_step_element') + self.has_new_step_element = attributes[:'has_new_step_element'] + end + + if attributes.key?(:'is_critical') + self.is_critical = attributes[:'is_critical'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'no_screenshot') + self.no_screenshot = attributes[:'no_screenshot'] + end + + if attributes.key?(:'params') + self.params = attributes[:'params'] + end + + if attributes.key?(:'public_id') + self.public_id = attributes[:'public_id'] + end + + if attributes.key?(:'timeout') + self.timeout = attributes[:'timeout'] + end + + if attributes.key?(:'type') + self.type = attributes[:'type'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if !@name.nil? && @name.to_s.length > 1500 + true + end + + # Custom attribute writer method with validation + # @param name [Object] Object to be assigned + # @!visibility private + def name=(name) + if !name.nil? && name.to_s.length > 1500 + fail ArgumentError, 'invalid value for "name", the character length must be smaller than or equal to 1500.' + end + @name = name + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + allow_failure == o.allow_failure && + has_new_step_element == o.has_new_step_element && + is_critical == o.is_critical && + name == o.name && + no_screenshot == o.no_screenshot && + params == o.params && + public_id == o.public_id && + timeout == o.timeout && + type == o.type + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [allow_failure, has_new_step_element, is_critical, name, no_screenshot, params, public_id, timeout, type].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/synthetics_mobile_step_type.rb b/lib/datadog_api_client/v1/models/synthetics_mobile_step_type.rb new file mode 100644 index 00000000000..890e14c834c --- /dev/null +++ b/lib/datadog_api_client/v1/models/synthetics_mobile_step_type.rb @@ -0,0 +1,42 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Step type used in your mobile Synthetic test. + class SyntheticsMobileStepType + include BaseEnumModel + + ASSERTELEMENTCONTENT = "assertElementContent".freeze + ASSERTSCREENCONTAINS = "assertScreenContains".freeze + ASSERTSCREENLACKS = "assertScreenLacks".freeze + DOUBLETAP = "doubleTap".freeze + EXTRACTVARIABLE = "extractVariable".freeze + FLICK = "flick".freeze + OPENDEEPLINK = "openDeeplink".freeze + PLAYSUBTEST = "playSubTest".freeze + PRESSBACK = "pressBack".freeze + RESTARTAPPLICATION = "restartApplication".freeze + ROTATE = "rotate".freeze + SCROLL = "scroll".freeze + SCROLLTOELEMENT = "scrollToElement".freeze + TAP = "tap".freeze + TOGGLEWIFI = "toggleWiFi".freeze + TYPETEXT = "typeText".freeze + WAIT = "wait".freeze + end +end diff --git a/lib/datadog_api_client/v1/models/synthetics_mobile_test.rb b/lib/datadog_api_client/v1/models/synthetics_mobile_test.rb new file mode 100644 index 00000000000..6beb57e388b --- /dev/null +++ b/lib/datadog_api_client/v1/models/synthetics_mobile_test.rb @@ -0,0 +1,263 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Object containing details about a Synthetic mobile test. + class SyntheticsMobileTest + include BaseGenericModel + + # Configuration object for a Synthetic mobile test. + attr_reader :config + + # The `SyntheticsMobileTest` `device_ids`. + attr_accessor :device_ids + + # Notification message associated with the test. + attr_accessor :message + + # The associated monitor ID. + attr_accessor :monitor_id + + # Name of the test. + attr_reader :name + + # Object describing the extra options for a Synthetic test. + attr_reader :options + + # The public ID of the test. + attr_accessor :public_id + + # Define whether you want to start (`live`) or pause (`paused`) a + # Synthetic test. + attr_accessor :status + + # Array of steps for the test. + attr_accessor :steps + + # Array of tags attached to the test. + attr_accessor :tags + + # Type of the Synthetic test, `mobile`. + attr_reader :type + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'config' => :'config', + :'device_ids' => :'device_ids', + :'message' => :'message', + :'monitor_id' => :'monitor_id', + :'name' => :'name', + :'options' => :'options', + :'public_id' => :'public_id', + :'status' => :'status', + :'steps' => :'steps', + :'tags' => :'tags', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'config' => :'SyntheticsMobileTestConfig', + :'device_ids' => :'Array', + :'message' => :'String', + :'monitor_id' => :'Integer', + :'name' => :'String', + :'options' => :'SyntheticsMobileTestOptions', + :'public_id' => :'String', + :'status' => :'SyntheticsTestPauseStatus', + :'steps' => :'Array', + :'tags' => :'Array', + :'type' => :'SyntheticsMobileTestType' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SyntheticsMobileTest` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'config') + self.config = attributes[:'config'] + end + + if attributes.key?(:'device_ids') + if (value = attributes[:'device_ids']).is_a?(Array) + self.device_ids = value + end + end + + if attributes.key?(:'message') + self.message = attributes[:'message'] + end + + if attributes.key?(:'monitor_id') + self.monitor_id = attributes[:'monitor_id'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'options') + self.options = attributes[:'options'] + end + + if attributes.key?(:'public_id') + self.public_id = attributes[:'public_id'] + end + + if attributes.key?(:'status') + self.status = attributes[:'status'] + end + + if attributes.key?(:'steps') + if (value = attributes[:'steps']).is_a?(Array) + self.steps = value + end + end + + if attributes.key?(:'tags') + if (value = attributes[:'tags']).is_a?(Array) + self.tags = value + end + end + + if attributes.key?(:'type') + self.type = attributes[:'type'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @config.nil? + return false if @name.nil? + return false if @options.nil? + return false if @type.nil? + true + end + + # Custom attribute writer method with validation + # @param config [Object] Object to be assigned + # @!visibility private + def config=(config) + if config.nil? + fail ArgumentError, 'invalid value for "config", config cannot be nil.' + end + @config = config + end + + # Custom attribute writer method with validation + # @param name [Object] Object to be assigned + # @!visibility private + def name=(name) + if name.nil? + fail ArgumentError, 'invalid value for "name", name cannot be nil.' + end + @name = name + end + + # Custom attribute writer method with validation + # @param options [Object] Object to be assigned + # @!visibility private + def options=(options) + if options.nil? + fail ArgumentError, 'invalid value for "options", options cannot be nil.' + end + @options = options + end + + # Custom attribute writer method with validation + # @param type [Object] Object to be assigned + # @!visibility private + def type=(type) + if type.nil? + fail ArgumentError, 'invalid value for "type", type cannot be nil.' + end + @type = type + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + config == o.config && + device_ids == o.device_ids && + message == o.message && + monitor_id == o.monitor_id && + name == o.name && + options == o.options && + public_id == o.public_id && + status == o.status && + steps == o.steps && + tags == o.tags && + type == o.type + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [config, device_ids, message, monitor_id, name, options, public_id, status, steps, tags, type].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/synthetics_mobile_test_binding.rb b/lib/datadog_api_client/v1/models/synthetics_mobile_test_binding.rb new file mode 100644 index 00000000000..4e384d0184e --- /dev/null +++ b/lib/datadog_api_client/v1/models/synthetics_mobile_test_binding.rb @@ -0,0 +1,105 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Objects describing the binding used for a mobile test. + class SyntheticsMobileTestBinding + include BaseGenericModel + + # Object describing the binding used for a mobile test. + attr_accessor :items + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'items' => :'items' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'items' => :'SyntheticsMobileTestBindingItems' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SyntheticsMobileTestBinding` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'items') + self.items = attributes[:'items'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + items == o.items + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [items].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/synthetics_mobile_test_binding_items.rb b/lib/datadog_api_client/v1/models/synthetics_mobile_test_binding_items.rb new file mode 100644 index 00000000000..432eb356abb --- /dev/null +++ b/lib/datadog_api_client/v1/models/synthetics_mobile_test_binding_items.rb @@ -0,0 +1,117 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Object describing the binding used for a mobile test. + class SyntheticsMobileTestBindingItems + include BaseGenericModel + + # List of principals for a mobile test binding. + attr_accessor :principals + + # The definition of `SyntheticsMobileTestBindingItemsRole` object. + attr_accessor :role + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'principals' => :'principals', + :'role' => :'role' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'principals' => :'Array', + :'role' => :'SyntheticsMobileTestBindingItemsRole' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SyntheticsMobileTestBindingItems` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'principals') + if (value = attributes[:'principals']).is_a?(Array) + self.principals = value + end + end + + if attributes.key?(:'role') + self.role = attributes[:'role'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + principals == o.principals && + role == o.role + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [principals, role].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/synthetics_mobile_test_binding_items_role.rb b/lib/datadog_api_client/v1/models/synthetics_mobile_test_binding_items_role.rb new file mode 100644 index 00000000000..7d3be7fa6cf --- /dev/null +++ b/lib/datadog_api_client/v1/models/synthetics_mobile_test_binding_items_role.rb @@ -0,0 +1,27 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # The definition of `SyntheticsMobileTestBindingItemsRole` object. + class SyntheticsMobileTestBindingItemsRole + include BaseEnumModel + + EDITOR = "editor".freeze + VIEWER = "viewer".freeze + end +end diff --git a/lib/datadog_api_client/v1/models/synthetics_mobile_test_ci_options.rb b/lib/datadog_api_client/v1/models/synthetics_mobile_test_ci_options.rb new file mode 100644 index 00000000000..c5c090607aa --- /dev/null +++ b/lib/datadog_api_client/v1/models/synthetics_mobile_test_ci_options.rb @@ -0,0 +1,123 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # CI/CD options for a Synthetic test. + class SyntheticsMobileTestCiOptions + include BaseGenericModel + + # Execution rule for a Synthetic test. + attr_reader :execution_rule + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'execution_rule' => :'executionRule' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'execution_rule' => :'SyntheticsTestExecutionRule' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SyntheticsMobileTestCiOptions` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'execution_rule') + self.execution_rule = attributes[:'execution_rule'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @execution_rule.nil? + true + end + + # Custom attribute writer method with validation + # @param execution_rule [Object] Object to be assigned + # @!visibility private + def execution_rule=(execution_rule) + if execution_rule.nil? + fail ArgumentError, 'invalid value for "execution_rule", execution_rule cannot be nil.' + end + @execution_rule = execution_rule + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + execution_rule == o.execution_rule + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [execution_rule].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/synthetics_mobile_test_config.rb b/lib/datadog_api_client/v1/models/synthetics_mobile_test_config.rb new file mode 100644 index 00000000000..9081fabe640 --- /dev/null +++ b/lib/datadog_api_client/v1/models/synthetics_mobile_test_config.rb @@ -0,0 +1,117 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Configuration object for a Synthetic mobile test. + class SyntheticsMobileTestConfig + include BaseGenericModel + + # Initial application arguments for a mobile test. + attr_accessor :initial_application_arguments + + # Array of variables used for the test steps. + attr_accessor :variables + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'initial_application_arguments' => :'initialApplicationArguments', + :'variables' => :'variables' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'initial_application_arguments' => :'SyntheticsMobileTestInitialApplicationArguments', + :'variables' => :'Array' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SyntheticsMobileTestConfig` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'initial_application_arguments') + self.initial_application_arguments = attributes[:'initial_application_arguments'] + end + + if attributes.key?(:'variables') + if (value = attributes[:'variables']).is_a?(Array) + self.variables = value + end + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + initial_application_arguments == o.initial_application_arguments && + variables == o.variables + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [initial_application_arguments, variables].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/synthetics_mobile_test_initial_application_arguments.rb b/lib/datadog_api_client/v1/models/synthetics_mobile_test_initial_application_arguments.rb new file mode 100644 index 00000000000..2aa977a77df --- /dev/null +++ b/lib/datadog_api_client/v1/models/synthetics_mobile_test_initial_application_arguments.rb @@ -0,0 +1,105 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Initial application arguments for a mobile test. + class SyntheticsMobileTestInitialApplicationArguments + include BaseGenericModel + + # Name of the property. + attr_accessor :property_names + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'property_names' => :'propertyNames' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'property_names' => :'SyntheticsMobileTestInitialApplicationArgumentsPropertyNames' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SyntheticsMobileTestInitialApplicationArguments` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'property_names') + self.property_names = attributes[:'property_names'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + property_names == o.property_names + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [property_names].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/synthetics_mobile_test_initial_application_arguments_property_names.rb b/lib/datadog_api_client/v1/models/synthetics_mobile_test_initial_application_arguments_property_names.rb new file mode 100644 index 00000000000..18b48cbebe6 --- /dev/null +++ b/lib/datadog_api_client/v1/models/synthetics_mobile_test_initial_application_arguments_property_names.rb @@ -0,0 +1,105 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Name of the property. + class SyntheticsMobileTestInitialApplicationArgumentsPropertyNames + include BaseGenericModel + + # The `propertyNames` `pattern`. + attr_accessor :pattern + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'pattern' => :'pattern' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'pattern' => :'String' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SyntheticsMobileTestInitialApplicationArgumentsPropertyNames` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'pattern') + self.pattern = attributes[:'pattern'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + pattern == o.pattern + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [pattern].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/synthetics_mobile_test_options.rb b/lib/datadog_api_client/v1/models/synthetics_mobile_test_options.rb new file mode 100644 index 00000000000..c43c0421fd2 --- /dev/null +++ b/lib/datadog_api_client/v1/models/synthetics_mobile_test_options.rb @@ -0,0 +1,354 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Object describing the extra options for a Synthetic test. + class SyntheticsMobileTestOptions + include BaseGenericModel + + # The `SyntheticsMobileTestOptions` `allowApplicationCrash`. + attr_accessor :allow_application_crash + + # Array of bindings used for the mobile test. + attr_accessor :bindings + + # CI/CD options for a Synthetic test. + attr_accessor :ci + + # The `SyntheticsMobileTestOptions` `defaultStepTimeout`. + attr_reader :default_step_timeout + + # For mobile test, array with the different device IDs used to run the test. + attr_accessor :device_ids + + # The `SyntheticsMobileTestOptions` `disableAutoAcceptAlert`. + attr_accessor :disable_auto_accept_alert + + # Minimum amount of time in failure required to trigger an alert. + attr_reader :min_failure_duration + + # Mobile application for mobile synthetics test. + attr_accessor :mobile_application + + # The monitor name is used for the alert title as well as for all monitor dashboard widgets and SLOs. + attr_accessor :monitor_name + + # Object containing the options for a mobile Synthetic test as a monitor + # (for example, renotification). + attr_accessor :monitor_options + + # Integer from 1 (high) to 5 (low) indicating alert severity. + attr_reader :monitor_priority + + # The `SyntheticsMobileTestOptions` `noScreenshot`. + attr_accessor :no_screenshot + + # A list of role identifiers that can be pulled from the Roles API, for restricting read and write access. + attr_accessor :restricted_roles + + # Object describing the retry strategy to apply to a Synthetic test. + attr_accessor :_retry + + # Object containing timeframes and timezone used for advanced scheduling. + attr_accessor :scheduling + + # The frequency at which to run the Synthetic test (in seconds). + attr_reader :tick_every + + # The `SyntheticsMobileTestOptions` `verbosity`. + attr_reader :verbosity + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'allow_application_crash' => :'allowApplicationCrash', + :'bindings' => :'bindings', + :'ci' => :'ci', + :'default_step_timeout' => :'defaultStepTimeout', + :'device_ids' => :'device_ids', + :'disable_auto_accept_alert' => :'disableAutoAcceptAlert', + :'min_failure_duration' => :'min_failure_duration', + :'mobile_application' => :'mobileApplication', + :'monitor_name' => :'monitor_name', + :'monitor_options' => :'monitor_options', + :'monitor_priority' => :'monitor_priority', + :'no_screenshot' => :'noScreenshot', + :'restricted_roles' => :'restricted_roles', + :'_retry' => :'retry', + :'scheduling' => :'scheduling', + :'tick_every' => :'tick_every', + :'verbosity' => :'verbosity' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'allow_application_crash' => :'Boolean', + :'bindings' => :'Array', + :'ci' => :'SyntheticsMobileTestCiOptions', + :'default_step_timeout' => :'Integer', + :'device_ids' => :'Array', + :'disable_auto_accept_alert' => :'Boolean', + :'min_failure_duration' => :'Integer', + :'mobile_application' => :'SyntheticsMobileTestsMobileApplication', + :'monitor_name' => :'String', + :'monitor_options' => :'SyntheticsMobileTestOptionsMonitorOptions', + :'monitor_priority' => :'Integer', + :'no_screenshot' => :'Boolean', + :'restricted_roles' => :'Array', + :'_retry' => :'SyntheticsTestOptionsRetry', + :'scheduling' => :'SyntheticsTestOptionsScheduling', + :'tick_every' => :'Integer', + :'verbosity' => :'Integer' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SyntheticsMobileTestOptions` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'allow_application_crash') + self.allow_application_crash = attributes[:'allow_application_crash'] + end + + if attributes.key?(:'bindings') + if (value = attributes[:'bindings']).is_a?(Array) + self.bindings = value + end + end + + if attributes.key?(:'ci') + self.ci = attributes[:'ci'] + end + + if attributes.key?(:'default_step_timeout') + self.default_step_timeout = attributes[:'default_step_timeout'] + end + + if attributes.key?(:'device_ids') + if (value = attributes[:'device_ids']).is_a?(Array) + self.device_ids = value + end + end + + if attributes.key?(:'disable_auto_accept_alert') + self.disable_auto_accept_alert = attributes[:'disable_auto_accept_alert'] + end + + if attributes.key?(:'min_failure_duration') + self.min_failure_duration = attributes[:'min_failure_duration'] + end + + if attributes.key?(:'mobile_application') + self.mobile_application = attributes[:'mobile_application'] + end + + if attributes.key?(:'monitor_name') + self.monitor_name = attributes[:'monitor_name'] + end + + if attributes.key?(:'monitor_options') + self.monitor_options = attributes[:'monitor_options'] + end + + if attributes.key?(:'monitor_priority') + self.monitor_priority = attributes[:'monitor_priority'] + end + + if attributes.key?(:'no_screenshot') + self.no_screenshot = attributes[:'no_screenshot'] + end + + if attributes.key?(:'restricted_roles') + if (value = attributes[:'restricted_roles']).is_a?(Array) + self.restricted_roles = value + end + end + + if attributes.key?(:'_retry') + self._retry = attributes[:'_retry'] + end + + if attributes.key?(:'scheduling') + self.scheduling = attributes[:'scheduling'] + end + + if attributes.key?(:'tick_every') + self.tick_every = attributes[:'tick_every'] + end + + if attributes.key?(:'verbosity') + self.verbosity = attributes[:'verbosity'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if !@default_step_timeout.nil? && @default_step_timeout > 300 + return false if !@default_step_timeout.nil? && @default_step_timeout < 1 + return false if !@min_failure_duration.nil? && @min_failure_duration > 7200 + return false if !@min_failure_duration.nil? && @min_failure_duration < 0 + return false if !@monitor_priority.nil? && @monitor_priority > 5 + return false if !@monitor_priority.nil? && @monitor_priority < 1 + return false if !@tick_every.nil? && @tick_every > 604800 + return false if !@tick_every.nil? && @tick_every < 300 + return false if !@verbosity.nil? && @verbosity > 5 + return false if !@verbosity.nil? && @verbosity < 0 + true + end + + # Custom attribute writer method with validation + # @param default_step_timeout [Object] Object to be assigned + # @!visibility private + def default_step_timeout=(default_step_timeout) + if !default_step_timeout.nil? && default_step_timeout > 300 + fail ArgumentError, 'invalid value for "default_step_timeout", must be smaller than or equal to 300.' + end + if !default_step_timeout.nil? && default_step_timeout < 1 + fail ArgumentError, 'invalid value for "default_step_timeout", must be greater than or equal to 1.' + end + @default_step_timeout = default_step_timeout + end + + # Custom attribute writer method with validation + # @param min_failure_duration [Object] Object to be assigned + # @!visibility private + def min_failure_duration=(min_failure_duration) + if !min_failure_duration.nil? && min_failure_duration > 7200 + fail ArgumentError, 'invalid value for "min_failure_duration", must be smaller than or equal to 7200.' + end + if !min_failure_duration.nil? && min_failure_duration < 0 + fail ArgumentError, 'invalid value for "min_failure_duration", must be greater than or equal to 0.' + end + @min_failure_duration = min_failure_duration + end + + # Custom attribute writer method with validation + # @param monitor_priority [Object] Object to be assigned + # @!visibility private + def monitor_priority=(monitor_priority) + if !monitor_priority.nil? && monitor_priority > 5 + fail ArgumentError, 'invalid value for "monitor_priority", must be smaller than or equal to 5.' + end + if !monitor_priority.nil? && monitor_priority < 1 + fail ArgumentError, 'invalid value for "monitor_priority", must be greater than or equal to 1.' + end + @monitor_priority = monitor_priority + end + + # Custom attribute writer method with validation + # @param tick_every [Object] Object to be assigned + # @!visibility private + def tick_every=(tick_every) + if !tick_every.nil? && tick_every > 604800 + fail ArgumentError, 'invalid value for "tick_every", must be smaller than or equal to 604800.' + end + if !tick_every.nil? && tick_every < 300 + fail ArgumentError, 'invalid value for "tick_every", must be greater than or equal to 300.' + end + @tick_every = tick_every + end + + # Custom attribute writer method with validation + # @param verbosity [Object] Object to be assigned + # @!visibility private + def verbosity=(verbosity) + if !verbosity.nil? && verbosity > 5 + fail ArgumentError, 'invalid value for "verbosity", must be smaller than or equal to 5.' + end + if !verbosity.nil? && verbosity < 0 + fail ArgumentError, 'invalid value for "verbosity", must be greater than or equal to 0.' + end + @verbosity = verbosity + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + allow_application_crash == o.allow_application_crash && + bindings == o.bindings && + ci == o.ci && + default_step_timeout == o.default_step_timeout && + device_ids == o.device_ids && + disable_auto_accept_alert == o.disable_auto_accept_alert && + min_failure_duration == o.min_failure_duration && + mobile_application == o.mobile_application && + monitor_name == o.monitor_name && + monitor_options == o.monitor_options && + monitor_priority == o.monitor_priority && + no_screenshot == o.no_screenshot && + restricted_roles == o.restricted_roles && + _retry == o._retry && + scheduling == o.scheduling && + tick_every == o.tick_every && + verbosity == o.verbosity + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [allow_application_crash, bindings, ci, default_step_timeout, device_ids, disable_auto_accept_alert, min_failure_duration, mobile_application, monitor_name, monitor_options, monitor_priority, no_screenshot, restricted_roles, _retry, scheduling, tick_every, verbosity].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/synthetics_mobile_test_options_monitor_options.rb b/lib/datadog_api_client/v1/models/synthetics_mobile_test_options_monitor_options.rb new file mode 100644 index 00000000000..fea328d49c6 --- /dev/null +++ b/lib/datadog_api_client/v1/models/synthetics_mobile_test_options_monitor_options.rb @@ -0,0 +1,155 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Object containing the options for a mobile Synthetic test as a monitor + # (for example, renotification). + class SyntheticsMobileTestOptionsMonitorOptions + include BaseGenericModel + + # Message to include in the escalation notification. + attr_accessor :escalation_message + + # The definition of `SyntheticsMobileTestOptionsMonitorOptionsNotificationPresetName` object. + attr_accessor :notification_preset_name + + # Time interval before renotifying if the test is still failing + # (in minutes). + attr_reader :renotify_interval + + # The `SyntheticsMobileTestOptionsMonitorOptions` `renotify_occurrences`. + attr_accessor :renotify_occurrences + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'escalation_message' => :'escalation_message', + :'notification_preset_name' => :'notification_preset_name', + :'renotify_interval' => :'renotify_interval', + :'renotify_occurrences' => :'renotify_occurrences' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'escalation_message' => :'String', + :'notification_preset_name' => :'SyntheticsMobileTestOptionsMonitorOptionsNotificationPresetName', + :'renotify_interval' => :'Integer', + :'renotify_occurrences' => :'Integer' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SyntheticsMobileTestOptionsMonitorOptions` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'escalation_message') + self.escalation_message = attributes[:'escalation_message'] + end + + if attributes.key?(:'notification_preset_name') + self.notification_preset_name = attributes[:'notification_preset_name'] + end + + if attributes.key?(:'renotify_interval') + self.renotify_interval = attributes[:'renotify_interval'] + end + + if attributes.key?(:'renotify_occurrences') + self.renotify_occurrences = attributes[:'renotify_occurrences'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if !@renotify_interval.nil? && @renotify_interval < 0 + true + end + + # Custom attribute writer method with validation + # @param renotify_interval [Object] Object to be assigned + # @!visibility private + def renotify_interval=(renotify_interval) + if !renotify_interval.nil? && renotify_interval < 0 + fail ArgumentError, 'invalid value for "renotify_interval", must be greater than or equal to 0.' + end + @renotify_interval = renotify_interval + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + escalation_message == o.escalation_message && + notification_preset_name == o.notification_preset_name && + renotify_interval == o.renotify_interval && + renotify_occurrences == o.renotify_occurrences + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [escalation_message, notification_preset_name, renotify_interval, renotify_occurrences].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/synthetics_mobile_test_options_monitor_options_notification_preset_name.rb b/lib/datadog_api_client/v1/models/synthetics_mobile_test_options_monitor_options_notification_preset_name.rb new file mode 100644 index 00000000000..56f4edcaa88 --- /dev/null +++ b/lib/datadog_api_client/v1/models/synthetics_mobile_test_options_monitor_options_notification_preset_name.rb @@ -0,0 +1,29 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # The definition of `SyntheticsMobileTestOptionsMonitorOptionsNotificationPresetName` object. + class SyntheticsMobileTestOptionsMonitorOptionsNotificationPresetName + include BaseEnumModel + + SHOW_ALL = "show_all".freeze + HIDE_ALL = "hide_all".freeze + HIDE_QUERY = "hide_query".freeze + HIDE_HANDLES = "hide_handles".freeze + end +end diff --git a/lib/datadog_api_client/v1/models/synthetics_mobile_test_type.rb b/lib/datadog_api_client/v1/models/synthetics_mobile_test_type.rb new file mode 100644 index 00000000000..38bd492e16c --- /dev/null +++ b/lib/datadog_api_client/v1/models/synthetics_mobile_test_type.rb @@ -0,0 +1,26 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Type of the Synthetic test, `mobile`. + class SyntheticsMobileTestType + include BaseEnumModel + + MOBILE = "mobile".freeze + end +end diff --git a/lib/datadog_api_client/v1/models/synthetics_mobile_tests_mobile_application.rb b/lib/datadog_api_client/v1/models/synthetics_mobile_tests_mobile_application.rb new file mode 100644 index 00000000000..6e87ed76c63 --- /dev/null +++ b/lib/datadog_api_client/v1/models/synthetics_mobile_tests_mobile_application.rb @@ -0,0 +1,154 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Mobile application for mobile synthetics test. + class SyntheticsMobileTestsMobileApplication + include BaseGenericModel + + # Application ID of the mobile application. + attr_reader :application_id + + # Reference ID of the mobile application. + attr_reader :reference_id + + # Reference type for the mobile application for a mobile synthetics test. + attr_accessor :reference_type + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'application_id' => :'applicationId', + :'reference_id' => :'referenceId', + :'reference_type' => :'referenceType' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'application_id' => :'String', + :'reference_id' => :'String', + :'reference_type' => :'SyntheticsMobileTestsMobileApplicationReferenceType' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SyntheticsMobileTestsMobileApplication` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'application_id') + self.application_id = attributes[:'application_id'] + end + + if attributes.key?(:'reference_id') + self.reference_id = attributes[:'reference_id'] + end + + if attributes.key?(:'reference_type') + self.reference_type = attributes[:'reference_type'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if !@application_id.nil? && @application_id.to_s.length > 1500 + return false if !@reference_id.nil? && @reference_id.to_s.length > 1500 + true + end + + # Custom attribute writer method with validation + # @param application_id [Object] Object to be assigned + # @!visibility private + def application_id=(application_id) + if !application_id.nil? && application_id.to_s.length > 1500 + fail ArgumentError, 'invalid value for "application_id", the character length must be smaller than or equal to 1500.' + end + @application_id = application_id + end + + # Custom attribute writer method with validation + # @param reference_id [Object] Object to be assigned + # @!visibility private + def reference_id=(reference_id) + if !reference_id.nil? && reference_id.to_s.length > 1500 + fail ArgumentError, 'invalid value for "reference_id", the character length must be smaller than or equal to 1500.' + end + @reference_id = reference_id + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + application_id == o.application_id && + reference_id == o.reference_id && + reference_type == o.reference_type + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [application_id, reference_id, reference_type].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/synthetics_mobile_tests_mobile_application_reference_type.rb b/lib/datadog_api_client/v1/models/synthetics_mobile_tests_mobile_application_reference_type.rb new file mode 100644 index 00000000000..1ada87308a2 --- /dev/null +++ b/lib/datadog_api_client/v1/models/synthetics_mobile_tests_mobile_application_reference_type.rb @@ -0,0 +1,27 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Reference type for the mobile application for a mobile synthetics test. + class SyntheticsMobileTestsMobileApplicationReferenceType + include BaseEnumModel + + LATEST = "latest".freeze + VERSION = "version".freeze + end +end