/
bundle_id_capability.rb
136 lines (121 loc) 路 4.95 KB
/
bundle_id_capability.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
require_relative '../model'
module Spaceship
class ConnectAPI
class BundleIdCapability
include Spaceship::ConnectAPI::Model
attr_accessor :capability_type
attr_accessor :settings
attr_mapping({
"capabilityType" => "capability_type",
"settings" => "settings"
})
module Type
ACCESS_WIFI_INFORMATION = "ACCESS_WIFI_INFORMATION"
APP_ATTEST = "APP_ATTEST"
APP_GROUPS = "APP_GROUPS"
APPLE_PAY = "APPLE_PAY"
ASSOCIATED_DOMAINS = "ASSOCIATED_DOMAINS"
AUTOFILL_CREDENTIAL_PROVIDER = "AUTOFILL_CREDENTIAL_PROVIDER"
CLASSKIT = "CLASSKIT"
ICLOUD = "ICLOUD"
USERNOTIFICATIONS_COMMUNICATION = "USERNOTIFICATIONS_COMMUNICATION"
NETWORK_CUSTOM_PROTOCOL = "NETWORK_CUSTOM_PROTOCOL"
DATA_PROTECTION = "DATA_PROTECTION"
EXTENDED_VIRTUAL_ADDRESSING = "EXTENDED_VIRTUAL_ADDRESSING"
FAMILY_CONTROLS = "FAMILY_CONTROLS"
FILEPROVIDER_TESTINGMODE = "FILEPROVIDER_TESTINGMODE"
FONT_INSTALLATION = "FONT_INSTALLATION"
GAME_CENTER = "GAME_CENTER"
GROUP_ACTIVITIES = "GROUP_ACTIVITIES"
HEALTHKIT = "HEALTHKIT"
HEALTHKIT_RECALIBRATE_ESTIMATES = "HEALTHKIT_RECALIBRATE_ESTIMATES"
HLS_INTERSTITIAL_PREVIEW = "HLS_INTERSTITIAL_PREVIEW"
HOMEKIT = "HOMEKIT"
HOT_SPOT = "HOT_SPOT"
IN_APP_PURCHASE = "IN_APP_PURCHASE"
INTER_APP_AUDIO = "INTER_APP_AUDIO"
COREMEDIA_HLS_LOW_LATENCY = "COREMEDIA_HLS_LOW_LATENCY"
MDM_MANAGED_ASSOCIATED_DOMAINS = "MDM_MANAGED_ASSOCIATED_DOMAINS"
MAPS = "MAPS"
MULTIPATH = "MULTIPATH"
NETWORK_EXTENSIONS = "NETWORK_EXTENSIONS"
NFC_TAG_READING = "NFC_TAG_READING"
PERSONAL_VPN = "PERSONAL_VPN"
PUSH_NOTIFICATIONS = "PUSH_NOTIFICATIONS"
APPLE_ID_AUTH = "APPLE_ID_AUTH"
SIRIKIT = "SIRIKIT"
SYSTEM_EXTENSION_INSTALL = "SYSTEM_EXTENSION_INSTALL"
USERNOTIFICATIONS_TIMESENSITIVE = "USERNOTIFICATIONS_TIMESENSITIVE"
USER_MANAGEMENT = "USER_MANAGEMENT"
WALLET = "WALLET"
WIRELESS_ACCESSORY_CONFIGURATION = "WIRELESS_ACCESSORY_CONFIGURATION"
# Additional Capabilities
CARPLAY_PLAYABLE_CONTENT = "CARPLAY_PLAYABLE_CONTENT"
CARPLAY_MESSAGING = "CARPLAY_MESSAGING"
CARPLAY_NAVIGATION = "CARPLAY_NAVIGATION"
CARPLAY_VOIP = "CARPLAY_VOIP"
CRITICAL_ALERTS = "CRITICAL_ALERTS"
HOTSPOT_HELPER_MANAGED = "HOTSPOT_HELPER_MANAGED"
DRIVERKIT = "DRIVERKIT"
DRIVERKIT_ENDPOINT_SECURITY = "DRIVERKIT_ENDPOINT_SECURITY"
DRIVERKIT_HID_DEVICE = "DRIVERKIT_HID_DEVICE"
DRIVERKIT_NETWORKING = "DRIVERKIT_NETWORKING"
DRIVERKIT_SERIAL = "DRIVERKIT_SERIAL"
DRIVERKIT_HID_EVENT_SERVICE = "DRIVERKIT_HID_EVENT_SERVICE"
DRIVERKIT_HID = "DRIVERKIT_HID"
IPAD_CAMERA_MULTITASKING = "IPAD_CAMERA_MULTITASKING"
SFUNIVERSALLINK_API = "SFUNIVERSALLINK_API"
VP9_DECODER = "VP9_DECODER"
# App Services
MUSIC_KIT = "MUSIC_KIT"
SHAZAM_KIT = "SHAZAM_KIT"
# Undocumented as of 2020-06-09
MARZIPAN = "MARZIPAN" # Catalyst
end
module Settings
ICLOUD_VERSION = "ICLOUD_VERSION"
DATA_PROTECTION_PERMISSION_LEVEL = "DATA_PROTECTION_PERMISSION_LEVEL"
APPLE_ID_AUTH_APP_CONSENT = "APPLE_ID_AUTH_APP_CONSENT"
GAME_CENTER_SETTING = "GAME_CENTER_SETTING"
end
module Options
XCODE_5 = "XCODE_5"
XCODE_6 = "XCODE_6"
COMPLETE_PROTECTION = "COMPLETE_PROTECTION"
PROTECTED_UNLESS_OPEN = "PROTECTED_UNLESS_OPEN"
PROTECTED_UNTIL_FIRST_USER_AUTH = "PROTECTED_UNTIL_FIRST_USER_AUTH"
PRIMARY_APP_CONSENT = "PRIMARY_APP_CONSENT"
GAME_CENTER_MAC = "GAME_CENTER_MAC"
GAME_CENTER_IOS = "GAME_CENTER_IOS"
end
def self.type
return "bundleIdCapabilities"
end
#
# Helpers
#
def is_type?(type)
# JWT session returns type under "capability_type" attribute
# Web session returns type under "id" attribute but with "P7GJR49W72_" prefixed
return capability_type == type || id.end_with?(type)
end
#
# API
#
def self.all(client: nil, bundle_id_id:, limit: nil)
client ||= Spaceship::ConnectAPI
resp = client.get_bundle_id_capabilities(bundle_id_id: bundle_id_id, limit: limit).all_pages
return resp.flat_map(&:to_models)
end
def self.create(client: nil, bundle_id_id:, capability_type:, settings: [])
client ||= Spaceship::ConnectAPI
resp = client.post_bundle_id_capability(bundle_id_id: bundle_id_id, capability_type: capability_type, settings: settings)
return resp.to_models.first
end
def delete!(client: nil, filter: {}, includes: nil, limit: nil, sort: nil)
client ||= Spaceship::ConnectAPI
client.delete_bundle_id_capability(bundle_id_capability_id: id)
end
end
end
end